From 932b44f3711995232156d41b146668bc396016db Mon Sep 17 00:00:00 2001 From: fr1j0 Date: Thu, 19 Feb 2026 18:06:43 -0500 Subject: [PATCH 1/2] fix: farm balance send input resetting to 0 on every keystroke The useEffect that resets the amount when the token changes had setAmount in its dependency array. Since the parent component passes a new function reference on every render (via handleAmountChange(index)), this caused the reset effect to fire constantly, making the input unusable. Removed setAmount from the dependency array since the effect should only run when selectedToken actually changes. Co-Authored-By: Claude Opus 4.5 --- src/components/ComboInputField.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/ComboInputField.tsx b/src/components/ComboInputField.tsx index dfdc9f27..3d427cb8 100644 --- a/src/components/ComboInputField.tsx +++ b/src/components/ComboInputField.tsx @@ -313,7 +313,8 @@ function ComboInputField({ setAmount("0"); lastInternalAmountRef.current = "0"; } - }, [selectedToken, setAmount]); + // biome-ignore lint/correctness/useExhaustiveDependencies: Only reset on token change, not callback reference change + }, [selectedToken]); /** * Clamp the internal amount to the max amount From e5784134892f824c8f37f9959fe29b64a012b406 Mon Sep 17 00:00:00 2001 From: fr1j0 Date: Thu, 19 Feb 2026 18:14:01 -0500 Subject: [PATCH 2/2] add schemas --- src/generated/gql/exchange/graphql.ts | 94 ++++--------------------- src/generated/gql/pintostalk/graphql.ts | 12 ++++ 2 files changed, 25 insertions(+), 81 deletions(-) diff --git a/src/generated/gql/exchange/graphql.ts b/src/generated/gql/exchange/graphql.ts index 96429785..bbcf894a 100644 --- a/src/generated/gql/exchange/graphql.ts +++ b/src/generated/gql/exchange/graphql.ts @@ -29,44 +29,6 @@ export type Scalars = { Timestamp: { input: any; output: any; } }; -export type Account = { - __typename?: 'Account'; - id: Scalars['Bytes']['output']; - trades: Array; -}; - - -export type AccountTradesArgs = { - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - where?: InputMaybe; -}; - -export type AccountFilter = { - /** Filter for the block changed event. */ - _change_block?: InputMaybe; - and?: InputMaybe>>; - id?: InputMaybe; - id_contains?: InputMaybe; - id_gt?: InputMaybe; - id_gte?: InputMaybe; - id_in?: InputMaybe>; - id_lt?: InputMaybe; - id_lte?: InputMaybe; - id_not?: InputMaybe; - id_not_contains?: InputMaybe; - id_not_in?: InputMaybe>; - or?: InputMaybe>>; - trades_?: InputMaybe; -}; - -export enum AccountOrderBy { - id = 'id', - trades = 'trades' -} - export enum AggregationInterval { day = 'day', hour = 'hour' @@ -1284,6 +1246,7 @@ export type ConvertCandidateFilter = { export enum ConvertCandidateOrderBy { addLiquidityTrade = 'addLiquidityTrade', + addLiquidityTrade__account = 'addLiquidityTrade__account', addLiquidityTrade__blockNumber = 'addLiquidityTrade__blockNumber', addLiquidityTrade__hash = 'addLiquidityTrade__hash', addLiquidityTrade__id = 'addLiquidityTrade__id', @@ -1298,6 +1261,7 @@ export enum ConvertCandidateOrderBy { addLiquidityTrade__transferVolumeUSD = 'addLiquidityTrade__transferVolumeUSD', id = 'id', removeLiquidityTrade = 'removeLiquidityTrade', + removeLiquidityTrade__account = 'removeLiquidityTrade__account', removeLiquidityTrade__blockNumber = 'removeLiquidityTrade__blockNumber', removeLiquidityTrade__hash = 'removeLiquidityTrade__hash', removeLiquidityTrade__id = 'removeLiquidityTrade__id', @@ -1402,8 +1366,6 @@ export type Query = { __typename?: 'Query'; /** Access to subgraph metadata */ _meta?: Maybe; - account?: Maybe; - accounts: Array; aquifer?: Maybe; aquifers: Array; beanstalk?: Maybe; @@ -1444,24 +1406,6 @@ export type QueryMetaArgs = { }; -export type QueryAccountArgs = { - block?: InputMaybe; - id: Scalars['ID']['input']; - subgraphError?: SubgraphErrorPolicy; -}; - - -export type QueryAccountsArgs = { - block?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - subgraphError?: SubgraphErrorPolicy; - where?: InputMaybe; -}; - - export type QueryAquiferArgs = { block?: InputMaybe; id: Scalars['ID']['input']; @@ -1953,7 +1897,7 @@ export enum TokenOrderBy { export type Trade = { __typename?: 'Trade'; /** Account that sent this transaction */ - account: Account; + account: Scalars['Bytes']['output']; /** Well.reserves after this event */ afterReserves: Array; /** Well.tokenRates before this event */ @@ -2015,27 +1959,16 @@ export enum TradeType { export type TradeFilter = { /** Filter for the block changed event. */ _change_block?: InputMaybe; - account?: InputMaybe; - account_?: InputMaybe; - account_contains?: InputMaybe; - account_contains_nocase?: InputMaybe; - account_ends_with?: InputMaybe; - account_ends_with_nocase?: InputMaybe; - account_gt?: InputMaybe; - account_gte?: InputMaybe; - account_in?: InputMaybe>; - account_lt?: InputMaybe; - account_lte?: InputMaybe; - account_not?: InputMaybe; - account_not_contains?: InputMaybe; - account_not_contains_nocase?: InputMaybe; - account_not_ends_with?: InputMaybe; - account_not_ends_with_nocase?: InputMaybe; - account_not_in?: InputMaybe>; - account_not_starts_with?: InputMaybe; - account_not_starts_with_nocase?: InputMaybe; - account_starts_with?: InputMaybe; - account_starts_with_nocase?: InputMaybe; + account?: InputMaybe; + account_contains?: InputMaybe; + account_gt?: InputMaybe; + account_gte?: InputMaybe; + account_in?: InputMaybe>; + account_lt?: InputMaybe; + account_lte?: InputMaybe; + account_not?: InputMaybe; + account_not_contains?: InputMaybe; + account_not_in?: InputMaybe>; afterReserves?: InputMaybe>; afterReserves_contains?: InputMaybe>; afterReserves_contains_nocase?: InputMaybe>; @@ -2255,7 +2188,6 @@ export type TradeFilter = { export enum TradeOrderBy { account = 'account', - account__id = 'account__id', afterReserves = 'afterReserves', afterTokenRates = 'afterTokenRates', beforeReserves = 'beforeReserves', diff --git a/src/generated/gql/pintostalk/graphql.ts b/src/generated/gql/pintostalk/graphql.ts index 78aa7d75..5f99c7fe 100644 --- a/src/generated/gql/pintostalk/graphql.ts +++ b/src/generated/gql/pintostalk/graphql.ts @@ -3413,6 +3413,8 @@ export type Plot = { __typename?: 'Plot'; /** Number of beans spent for each pod, whether through sowing or on the marketplace */ beansPerPod: Scalars['BigInt']['output']; + /** Block number of the most recent plot combination, null if never combined */ + combinedAtBlock?: Maybe; /** Timestamp of entity creation (not sown) */ createdAt: Scalars['BigInt']['output']; /** Transaction hash of when this plot entity was created (not sown) */ @@ -3496,6 +3498,14 @@ export type PlotFilter = { beansPerPod_lte?: InputMaybe; beansPerPod_not?: InputMaybe; beansPerPod_not_in?: InputMaybe>; + combinedAtBlock?: InputMaybe; + combinedAtBlock_gt?: InputMaybe; + combinedAtBlock_gte?: InputMaybe; + combinedAtBlock_in?: InputMaybe>; + combinedAtBlock_lt?: InputMaybe; + combinedAtBlock_lte?: InputMaybe; + combinedAtBlock_not?: InputMaybe; + combinedAtBlock_not_in?: InputMaybe>; createdAt?: InputMaybe; createdAt_gt?: InputMaybe; createdAt_gte?: InputMaybe; @@ -3811,6 +3821,7 @@ export type PlotFilter = { export enum PlotOrderBy { beansPerPod = 'beansPerPod', + combinedAtBlock = 'combinedAtBlock', createdAt = 'createdAt', creationHash = 'creationHash', farmer = 'farmer', @@ -5140,6 +5151,7 @@ export enum PodListingOrderBy { originalPlaceInLine = 'originalPlaceInLine', plot = 'plot', plot__beansPerPod = 'plot__beansPerPod', + plot__combinedAtBlock = 'plot__combinedAtBlock', plot__createdAt = 'plot__createdAt', plot__creationHash = 'plot__creationHash', plot__fieldId = 'plot__fieldId',