timelock-sdk 0.0.245 → 0.0.247
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.cjs +2 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +499 -499
- package/dist/client.d.ts +478 -478
- package/dist/client.js +4 -4
- package/dist/client.js.map +1 -1
- package/dist/{index-M4O1ki8k.d.cts → index-D4EmMTld.d.cts} +475 -475
- package/dist/{index-30QEgiSM.d.ts → index-Dn37-mKt.d.ts} +475 -475
- package/dist/package.d.cts +1 -1
- package/dist/package.d.ts +1 -1
- package/package.json +1 -1
package/dist/client.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.cjs","names":["defaultWrapper","getSdk","#baseUrl","#request","getTimelockGraphqlSdk","GraphQLClient","getUniV4GraphqlSdk","getTimelockLens","getStateView","getQuoter","lensAbi","lensAbi","optionsMarketAbi","lensAbi","wrapAmount","stateViewAbi","lensAbi","getErc20","erc20Abi","maxUint256","getNearestValidStrikeTick","getTimelockMarket","optionsMarketAbi","getPriceAtTick","wrapPrice","getPriceAtSqrtPriceX96","getPriceAtSqrtPriceX96","wrapPrice","swappers","swapperData","optionsMarketAbi","token0ToToken1AtTick","token1ToToken0AtTick","token0ToToken1","token1ToToken0","wrapAmount","maxUint160","lensAbi","swappers","optionsMarketAbi","strikeTickRounded","roundTick","optionsMarketAbi","wrapAmount","strikeTickRounded","roundTick","optionsMarketAbi","wrapAmount","getTimelockMarket","optionsMarketAbi","maxUint256","address","optionsMarketAbi","getTimelockMarket","getNearestValidStrikeTick","maxUint256","lensAbi","erc20Abi","wrapAmount","optionsMarketAbi","getPriceHistory","quoterAbi","lensAbi","hash","singleOwnerVaultAbi","minInt256","maxUint256","lensAbi","zeroAddress","getAmountsFromLiquidity","singleOwnerVaultAbi","maxInt256","maxUint256","lensAbi","wrapAmount","zeroAddress","singleOwnerVaultAbi","lensAbi","guardianAbi","guardianAbi","guardianAbi","lensAbi","timelockFactories","factoryAbi","optionsMarketAbi","lensAbi","lensAbi","lensAbi","timelockFactories","factoryAbi","optionsMarketAbi"],"sources":["../src/generated/timelock.ts","../src/generated/univ4.ts","../src/lib/perpsOperator.ts","../src/providers/TimelockProvider.tsx","../src/hooks/useLens.ts","../src/hooks/market/useMarketData.ts","../src/hooks/market/useMarketState.ts","../src/hooks/market/useMarketVolume.ts","../src/hooks/market/useMarketUserVolume.ts","../src/hooks/market/useUpdateMarketBounds.ts","../src/hooks/market/useMarketDailyVolume.ts","../src/hooks/options/useMaxPositionSize.ts","../src/hooks/pool/useCurrentTick.ts","../src/hooks/pool/usePoolData.ts","../src/hooks/tokens/useApproval.ts","../src/lib/utils.ts","../src/hooks/options/useMintOption.ts","../src/hooks/pool/usePriceAtTick.ts","../src/hooks/pool/useCurrentPrice.ts","../src/hooks/options/useExerciseOption.ts","../src/hooks/options/useOptionPnl.ts","../src/hooks/options/useMintFees.ts","../src/hooks/options/useExtensionFees.ts","../src/hooks/options/useUserOptions.ts","../src/hooks/options/useExtendOption.ts","../src/hooks/options/useOptionTimeline.ts","../src/hooks/perps/usePerpsOperator.ts","../src/hooks/operators/useUserOperators.ts","../src/hooks/operators/useSetOperatorPerms.ts","../src/hooks/perps/useMintPerp.ts","../src/hooks/perps/useClosePerp.ts","../src/hooks/perps/useUserPerps.ts","../src/hooks/tokens/useTokenData.ts","../src/hooks/tokens/useTokenBalance.ts","../src/hooks/operators/useOperatorPerms.ts","../src/hooks/pool/usePriceHistory.ts","../src/hooks/pool/usePoolVolume.ts","../src/hooks/pool/usePoolUserVolume.ts","../src/hooks/pool/useQuote.ts","../src/hooks/vault/useVaultData.ts","../src/hooks/vault/useBurnLiquidity.ts","../src/hooks/vault/useLiquidityBlocks.ts","../src/hooks/vault/useMintLiquidity.ts","../src/hooks/vault/useVaultTVL.ts","../src/hooks/vault/useWithdrawPremium.ts","../src/hooks/vault/useCollectedPremium.ts","../src/hooks/guardian/useGlobalGuardianState.ts","../src/hooks/guardian/useMarketGuardianState.ts","../src/hooks/guardian/usePauseAllMarkets.ts","../src/hooks/guardian/usePauseMarket.ts","../src/hooks/fees/useFeeRates.ts","../src/hooks/fees/useUpdateMarketFees.ts","../src/hooks/pricing/usePricingParams.ts","../src/hooks/pricing/useOptionPricingParams.ts","../src/hooks/pricing/useStaticPricingParams.ts","../src/hooks/pricing/useUpdateMarketPricing.ts"],"sourcesContent":["import {GraphQLClient, RequestOptions} from 'graphql-request';\nimport gql from 'graphql-tag';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends {[key: string]: unknown}> = {[K in keyof T]: T[K]};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<T extends {[key: string]: unknown}, K extends keyof T> = {\n [_ in K]?: never;\n};\nexport type Incremental<T> =\n | T\n | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never};\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: {input: string; output: string};\n String: {input: string; output: string};\n Boolean: {input: boolean; output: boolean};\n Int: {input: number; output: number};\n Float: {input: number; output: number};\n jsonb: {input: any; output: any};\n numeric: {input: any; output: any};\n optiontype: {input: any; output: any};\n timestamptz: {input: any; output: any};\n};\n\n/** Boolean expression to compare columns of type \"Boolean\". All fields are combined with logical 'AND'. */\nexport type BooleanComparisonExp = {\n _eq?: InputMaybe<Scalars['Boolean']['input']>;\n _gt?: InputMaybe<Scalars['Boolean']['input']>;\n _gte?: InputMaybe<Scalars['Boolean']['input']>;\n _in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Boolean']['input']>;\n _lte?: InputMaybe<Scalars['Boolean']['input']>;\n _neq?: InputMaybe<Scalars['Boolean']['input']>;\n _nin?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n};\n\n/** columns and relationships of \"BorrowEvent\" */\nexport type BorrowEvent = {\n __typename: 'BorrowEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"BorrowEvent\". All fields are combined with a logical 'AND'. */\nexport type BorrowEventBoolExp = {\n _and?: InputMaybe<Array<BorrowEventBoolExp>>;\n _not?: InputMaybe<BorrowEventBoolExp>;\n _or?: InputMaybe<Array<BorrowEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"BorrowEvent\". */\nexport type BorrowEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"BorrowEvent\" */\nexport type BorrowEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"BorrowEvent\" */\nexport type BorrowEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: BorrowEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type BorrowEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"BurnEvent\" */\nexport type BurnEvent = {\n __typename: 'BurnEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"BurnEvent\". All fields are combined with a logical 'AND'. */\nexport type BurnEventBoolExp = {\n _and?: InputMaybe<Array<BurnEventBoolExp>>;\n _not?: InputMaybe<BurnEventBoolExp>;\n _or?: InputMaybe<Array<BurnEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"BurnEvent\". */\nexport type BurnEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"BurnEvent\" */\nexport type BurnEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"BurnEvent\" */\nexport type BurnEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: BurnEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type BurnEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEvent = {\n __typename: 'ExerciseOptionEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidities: Array<Scalars['String']['output']>;\n /** An object relationship */\n option?: Maybe<UserOption>;\n option_id: Scalars['String']['output'];\n payout: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"ExerciseOptionEvent\". All fields are combined with a logical 'AND'. */\nexport type ExerciseOptionEventBoolExp = {\n _and?: InputMaybe<Array<ExerciseOptionEventBoolExp>>;\n _not?: InputMaybe<ExerciseOptionEventBoolExp>;\n _or?: InputMaybe<Array<ExerciseOptionEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidities?: InputMaybe<StringArrayComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n payout?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"ExerciseOptionEvent\". */\nexport type ExerciseOptionEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option?: InputMaybe<UserOptionOrderBy>;\n option_id?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidities'\n /** column name */\n | 'option_id'\n /** column name */\n | 'payout'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ExerciseOptionEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ExerciseOptionEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidities?: InputMaybe<Array<Scalars['String']['input']>>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n payout?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"ExtendOptionEvent\" */\nexport type ExtendOptionEvent = {\n __typename: 'ExtendOptionEvent';\n addedDuration: Scalars['numeric']['output'];\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n option?: Maybe<UserOption>;\n option_id: Scalars['String']['output'];\n premium: Scalars['numeric']['output'];\n price: Scalars['numeric']['output'];\n protocolFee: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"ExtendOptionEvent\". All fields are combined with a logical 'AND'. */\nexport type ExtendOptionEventBoolExp = {\n _and?: InputMaybe<Array<ExtendOptionEventBoolExp>>;\n _not?: InputMaybe<ExtendOptionEventBoolExp>;\n _or?: InputMaybe<Array<ExtendOptionEventBoolExp>>;\n addedDuration?: InputMaybe<NumericComparisonExp>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n premium?: InputMaybe<NumericComparisonExp>;\n price?: InputMaybe<NumericComparisonExp>;\n protocolFee?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"ExtendOptionEvent\". */\nexport type ExtendOptionEventOrderBy = {\n addedDuration?: InputMaybe<OrderBy>;\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n option?: InputMaybe<UserOptionOrderBy>;\n option_id?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n price?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"ExtendOptionEvent\" */\nexport type ExtendOptionEventSelectColumn =\n /** column name */\n | 'addedDuration'\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'option_id'\n /** column name */\n | 'premium'\n /** column name */\n | 'price'\n /** column name */\n | 'protocolFee'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"ExtendOptionEvent\" */\nexport type ExtendOptionEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ExtendOptionEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ExtendOptionEventStreamCursorValueInput = {\n addedDuration?: InputMaybe<Scalars['numeric']['input']>;\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n premium?: InputMaybe<Scalars['numeric']['input']>;\n price?: InputMaybe<Scalars['numeric']['input']>;\n protocolFee?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to compare columns of type \"Int\". All fields are combined with logical 'AND'. */\nexport type IntComparisonExp = {\n _eq?: InputMaybe<Scalars['Int']['input']>;\n _gt?: InputMaybe<Scalars['Int']['input']>;\n _gte?: InputMaybe<Scalars['Int']['input']>;\n _in?: InputMaybe<Array<Scalars['Int']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Int']['input']>;\n _lte?: InputMaybe<Scalars['Int']['input']>;\n _neq?: InputMaybe<Scalars['Int']['input']>;\n _nin?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\n/** columns and relationships of \"MarketDailyData\" */\nexport type MarketDailyData = {\n __typename: 'MarketDailyData';\n date: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n totalPayout: Scalars['numeric']['output'];\n totalPremium: Scalars['numeric']['output'];\n totalProtocolFee: Scalars['numeric']['output'];\n totalVolume: Scalars['numeric']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"MarketDailyData\". All fields are combined with a logical 'AND'. */\nexport type MarketDailyDataBoolExp = {\n _and?: InputMaybe<Array<MarketDailyDataBoolExp>>;\n _not?: InputMaybe<MarketDailyDataBoolExp>;\n _or?: InputMaybe<Array<MarketDailyDataBoolExp>>;\n date?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n totalPayout?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n totalProtocolFee?: InputMaybe<NumericComparisonExp>;\n totalVolume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MarketDailyData\". */\nexport type MarketDailyDataOrderBy = {\n date?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"MarketDailyData\" */\nexport type MarketDailyDataSelectColumn =\n /** column name */\n | 'date'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'totalPayout'\n /** column name */\n | 'totalPremium'\n /** column name */\n | 'totalProtocolFee'\n /** column name */\n | 'totalVolume';\n\n/** Streaming cursor of the table \"MarketDailyData\" */\nexport type MarketDailyDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MarketDailyDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MarketDailyDataStreamCursorValueInput = {\n date?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n totalPayout?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: InputMaybe<Scalars['numeric']['input']>;\n totalProtocolFee?: InputMaybe<Scalars['numeric']['input']>;\n totalVolume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"MarketOperator\" */\nexport type MarketOperator = {\n __typename: 'MarketOperator';\n address: Scalars['String']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An array relationship */\n userPermissions: Array<UserMarketOperator>;\n};\n\n/** columns and relationships of \"MarketOperator\" */\nexport type MarketOperatorUserPermissionsArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\n/** Boolean expression to filter rows from the table \"MarketOperator\". All fields are combined with a logical 'AND'. */\nexport type MarketOperatorBoolExp = {\n _and?: InputMaybe<Array<MarketOperatorBoolExp>>;\n _not?: InputMaybe<MarketOperatorBoolExp>;\n _or?: InputMaybe<Array<MarketOperatorBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n userPermissions?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\n/** Ordering options when selecting data from \"MarketOperator\". */\nexport type MarketOperatorOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n userPermissions_aggregate?: InputMaybe<UserMarketOperatorAggregateOrderBy>;\n};\n\n/** select columns of table \"MarketOperator\" */\nexport type MarketOperatorSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id';\n\n/** Streaming cursor of the table \"MarketOperator\" */\nexport type MarketOperatorStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MarketOperatorStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MarketOperatorStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"MintEvent\" */\nexport type MintEvent = {\n __typename: 'MintEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"MintEvent\". All fields are combined with a logical 'AND'. */\nexport type MintEventBoolExp = {\n _and?: InputMaybe<Array<MintEventBoolExp>>;\n _not?: InputMaybe<MintEventBoolExp>;\n _or?: InputMaybe<Array<MintEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MintEvent\". */\nexport type MintEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"MintEvent\" */\nexport type MintEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"MintEvent\" */\nexport type MintEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MintEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MintEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"MintOptionEvent\" */\nexport type MintOptionEvent = {\n __typename: 'MintOptionEvent';\n blockNumber: Scalars['numeric']['output'];\n expiresAt: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidities: Array<Scalars['String']['output']>;\n /** An object relationship */\n option?: Maybe<UserOption>;\n optionType: Scalars['Int']['output'];\n option_id: Scalars['String']['output'];\n owner: Scalars['String']['output'];\n premium: Scalars['numeric']['output'];\n price: Scalars['numeric']['output'];\n protocolFee: Scalars['numeric']['output'];\n strikeTick: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"MintOptionEvent\". All fields are combined with a logical 'AND'. */\nexport type MintOptionEventBoolExp = {\n _and?: InputMaybe<Array<MintOptionEventBoolExp>>;\n _not?: InputMaybe<MintOptionEventBoolExp>;\n _or?: InputMaybe<Array<MintOptionEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n expiresAt?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidities?: InputMaybe<StringArrayComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n optionType?: InputMaybe<IntComparisonExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n owner?: InputMaybe<StringComparisonExp>;\n premium?: InputMaybe<NumericComparisonExp>;\n price?: InputMaybe<NumericComparisonExp>;\n protocolFee?: InputMaybe<NumericComparisonExp>;\n strikeTick?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MintOptionEvent\". */\nexport type MintOptionEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option?: InputMaybe<UserOptionOrderBy>;\n optionType?: InputMaybe<OrderBy>;\n option_id?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n price?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"MintOptionEvent\" */\nexport type MintOptionEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'expiresAt'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidities'\n /** column name */\n | 'optionType'\n /** column name */\n | 'option_id'\n /** column name */\n | 'owner'\n /** column name */\n | 'premium'\n /** column name */\n | 'price'\n /** column name */\n | 'protocolFee'\n /** column name */\n | 'strikeTick'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"MintOptionEvent\" */\nexport type MintOptionEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MintOptionEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MintOptionEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n expiresAt?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidities?: InputMaybe<Array<Scalars['String']['input']>>;\n optionType?: InputMaybe<Scalars['Int']['input']>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n owner?: InputMaybe<Scalars['String']['input']>;\n premium?: InputMaybe<Scalars['numeric']['input']>;\n price?: InputMaybe<Scalars['numeric']['input']>;\n protocolFee?: InputMaybe<Scalars['numeric']['input']>;\n strikeTick?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"RepayEvent\" */\nexport type RepayEvent = {\n __typename: 'RepayEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"RepayEvent\". All fields are combined with a logical 'AND'. */\nexport type RepayEventBoolExp = {\n _and?: InputMaybe<Array<RepayEventBoolExp>>;\n _not?: InputMaybe<RepayEventBoolExp>;\n _or?: InputMaybe<Array<RepayEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"RepayEvent\". */\nexport type RepayEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"RepayEvent\" */\nexport type RepayEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"RepayEvent\" */\nexport type RepayEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: RepayEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type RepayEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringArrayComparisonExp = {\n /** is the array contained in the given array value */\n _contained_in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the array contain the given value */\n _contains?: InputMaybe<Array<Scalars['String']['input']>>;\n _eq?: InputMaybe<Array<Scalars['String']['input']>>;\n _gt?: InputMaybe<Array<Scalars['String']['input']>>;\n _gte?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Array<Scalars['String']['input']>>;\n _lte?: InputMaybe<Array<Scalars['String']['input']>>;\n _neq?: InputMaybe<Array<Scalars['String']['input']>>;\n _nin?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringComparisonExp = {\n _eq?: InputMaybe<Scalars['String']['input']>;\n _gt?: InputMaybe<Scalars['String']['input']>;\n _gte?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given case-insensitive pattern */\n _ilike?: InputMaybe<Scalars['String']['input']>;\n _in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column match the given POSIX regular expression, case insensitive */\n _iregex?: InputMaybe<Scalars['String']['input']>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n /** does the column match the given pattern */\n _like?: InputMaybe<Scalars['String']['input']>;\n _lt?: InputMaybe<Scalars['String']['input']>;\n _lte?: InputMaybe<Scalars['String']['input']>;\n _neq?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given case-insensitive pattern */\n _nilike?: InputMaybe<Scalars['String']['input']>;\n _nin?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column NOT match the given POSIX regular expression, case insensitive */\n _niregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given pattern */\n _nlike?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given POSIX regular expression, case sensitive */\n _nregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given SQL regular expression */\n _nsimilar?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given POSIX regular expression, case sensitive */\n _regex?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given SQL regular expression */\n _similar?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"TimelockMarket\" */\nexport type TimelockMarket = {\n __typename: 'TimelockMarket';\n address: Scalars['String']['output'];\n currency0: Scalars['String']['output'];\n currency1: Scalars['String']['output'];\n fee: Scalars['Int']['output'];\n hooks: Scalars['String']['output'];\n id: Scalars['String']['output'];\n optionAsset: Scalars['String']['output'];\n optionAssetDecimals: Scalars['Int']['output'];\n optionAssetIsToken0: Scalars['Boolean']['output'];\n optionAssetName: Scalars['String']['output'];\n optionAssetSymbol: Scalars['String']['output'];\n /** An array relationship */\n options: Array<UserOption>;\n optionsCount: Scalars['numeric']['output'];\n payoutAsset: Scalars['String']['output'];\n payoutAssetDecimals: Scalars['Int']['output'];\n payoutAssetName: Scalars['String']['output'];\n payoutAssetSymbol: Scalars['String']['output'];\n poolManager: Scalars['String']['output'];\n tickSpacing: Scalars['Int']['output'];\n totalPayout: Scalars['numeric']['output'];\n totalPremium: Scalars['numeric']['output'];\n totalProtocolFee: Scalars['numeric']['output'];\n totalVolume: Scalars['numeric']['output'];\n /** An array relationship */\n traders: Array<TimelockMarketUser>;\n tradersCount: Scalars['numeric']['output'];\n vault: Scalars['String']['output'];\n};\n\n/** columns and relationships of \"TimelockMarket\" */\nexport type TimelockMarketOptionsArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\n/** columns and relationships of \"TimelockMarket\" */\nexport type TimelockMarketTradersArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketUserOrderBy>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\n/** columns and relationships of \"TimelockMarketUser\" */\nexport type TimelockMarketUser = {\n __typename: 'TimelockMarketUser';\n address: Scalars['String']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An array relationship */\n operators: Array<UserMarketOperator>;\n /** An array relationship */\n options: Array<UserOption>;\n optionsCount: Scalars['numeric']['output'];\n totalPayout: Scalars['numeric']['output'];\n totalPremium: Scalars['numeric']['output'];\n totalProtocolFee: Scalars['numeric']['output'];\n totalVolume: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"TimelockMarketUser\" */\nexport type TimelockMarketUserOperatorsArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\n/** columns and relationships of \"TimelockMarketUser\" */\nexport type TimelockMarketUserOptionsArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\n/** order by aggregate values of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserAggregateOrderBy = {\n avg?: InputMaybe<TimelockMarketUserAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TimelockMarketUserMaxOrderBy>;\n min?: InputMaybe<TimelockMarketUserMinOrderBy>;\n stddev?: InputMaybe<TimelockMarketUserStddevOrderBy>;\n stddev_pop?: InputMaybe<TimelockMarketUserStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TimelockMarketUserStddevSampOrderBy>;\n sum?: InputMaybe<TimelockMarketUserSumOrderBy>;\n var_pop?: InputMaybe<TimelockMarketUserVarPopOrderBy>;\n var_samp?: InputMaybe<TimelockMarketUserVarSampOrderBy>;\n variance?: InputMaybe<TimelockMarketUserVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserAvgOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TimelockMarketUser\". All fields are combined with a logical 'AND'. */\nexport type TimelockMarketUserBoolExp = {\n _and?: InputMaybe<Array<TimelockMarketUserBoolExp>>;\n _not?: InputMaybe<TimelockMarketUserBoolExp>;\n _or?: InputMaybe<Array<TimelockMarketUserBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n operators?: InputMaybe<UserMarketOperatorBoolExp>;\n options?: InputMaybe<UserOptionBoolExp>;\n optionsCount?: InputMaybe<NumericComparisonExp>;\n totalPayout?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n totalProtocolFee?: InputMaybe<NumericComparisonExp>;\n totalVolume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMaxOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMinOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TimelockMarketUser\". */\nexport type TimelockMarketUserOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operators_aggregate?: InputMaybe<UserMarketOperatorAggregateOrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n options_aggregate?: InputMaybe<UserOptionAggregateOrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'optionsCount'\n /** column name */\n | 'totalPayout'\n /** column name */\n | 'totalPremium'\n /** column name */\n | 'totalProtocolFee'\n /** column name */\n | 'totalVolume';\n\n/** order by stddev() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevSampOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TimelockMarketUserStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TimelockMarketUserStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n optionsCount?: InputMaybe<Scalars['numeric']['input']>;\n totalPayout?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: InputMaybe<Scalars['numeric']['input']>;\n totalProtocolFee?: InputMaybe<Scalars['numeric']['input']>;\n totalVolume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSumOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarSampOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarianceOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TimelockMarket\". All fields are combined with a logical 'AND'. */\nexport type TimelockMarketBoolExp = {\n _and?: InputMaybe<Array<TimelockMarketBoolExp>>;\n _not?: InputMaybe<TimelockMarketBoolExp>;\n _or?: InputMaybe<Array<TimelockMarketBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n currency0?: InputMaybe<StringComparisonExp>;\n currency1?: InputMaybe<StringComparisonExp>;\n fee?: InputMaybe<IntComparisonExp>;\n hooks?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n optionAsset?: InputMaybe<StringComparisonExp>;\n optionAssetDecimals?: InputMaybe<IntComparisonExp>;\n optionAssetIsToken0?: InputMaybe<BooleanComparisonExp>;\n optionAssetName?: InputMaybe<StringComparisonExp>;\n optionAssetSymbol?: InputMaybe<StringComparisonExp>;\n options?: InputMaybe<UserOptionBoolExp>;\n optionsCount?: InputMaybe<NumericComparisonExp>;\n payoutAsset?: InputMaybe<StringComparisonExp>;\n payoutAssetDecimals?: InputMaybe<IntComparisonExp>;\n payoutAssetName?: InputMaybe<StringComparisonExp>;\n payoutAssetSymbol?: InputMaybe<StringComparisonExp>;\n poolManager?: InputMaybe<StringComparisonExp>;\n tickSpacing?: InputMaybe<IntComparisonExp>;\n totalPayout?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n totalProtocolFee?: InputMaybe<NumericComparisonExp>;\n totalVolume?: InputMaybe<NumericComparisonExp>;\n traders?: InputMaybe<TimelockMarketUserBoolExp>;\n tradersCount?: InputMaybe<NumericComparisonExp>;\n vault?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"TimelockMarket\". */\nexport type TimelockMarketOrderBy = {\n address?: InputMaybe<OrderBy>;\n currency0?: InputMaybe<OrderBy>;\n currency1?: InputMaybe<OrderBy>;\n fee?: InputMaybe<OrderBy>;\n hooks?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n optionAsset?: InputMaybe<OrderBy>;\n optionAssetDecimals?: InputMaybe<OrderBy>;\n optionAssetIsToken0?: InputMaybe<OrderBy>;\n optionAssetName?: InputMaybe<OrderBy>;\n optionAssetSymbol?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n options_aggregate?: InputMaybe<UserOptionAggregateOrderBy>;\n payoutAsset?: InputMaybe<OrderBy>;\n payoutAssetDecimals?: InputMaybe<OrderBy>;\n payoutAssetName?: InputMaybe<OrderBy>;\n payoutAssetSymbol?: InputMaybe<OrderBy>;\n poolManager?: InputMaybe<OrderBy>;\n tickSpacing?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n tradersCount?: InputMaybe<OrderBy>;\n traders_aggregate?: InputMaybe<TimelockMarketUserAggregateOrderBy>;\n vault?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TimelockMarket\" */\nexport type TimelockMarketSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'currency0'\n /** column name */\n | 'currency1'\n /** column name */\n | 'fee'\n /** column name */\n | 'hooks'\n /** column name */\n | 'id'\n /** column name */\n | 'optionAsset'\n /** column name */\n | 'optionAssetDecimals'\n /** column name */\n | 'optionAssetIsToken0'\n /** column name */\n | 'optionAssetName'\n /** column name */\n | 'optionAssetSymbol'\n /** column name */\n | 'optionsCount'\n /** column name */\n | 'payoutAsset'\n /** column name */\n | 'payoutAssetDecimals'\n /** column name */\n | 'payoutAssetName'\n /** column name */\n | 'payoutAssetSymbol'\n /** column name */\n | 'poolManager'\n /** column name */\n | 'tickSpacing'\n /** column name */\n | 'totalPayout'\n /** column name */\n | 'totalPremium'\n /** column name */\n | 'totalProtocolFee'\n /** column name */\n | 'totalVolume'\n /** column name */\n | 'tradersCount'\n /** column name */\n | 'vault';\n\n/** Streaming cursor of the table \"TimelockMarket\" */\nexport type TimelockMarketStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TimelockMarketStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TimelockMarketStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n currency0?: InputMaybe<Scalars['String']['input']>;\n currency1?: InputMaybe<Scalars['String']['input']>;\n fee?: InputMaybe<Scalars['Int']['input']>;\n hooks?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n optionAsset?: InputMaybe<Scalars['String']['input']>;\n optionAssetDecimals?: InputMaybe<Scalars['Int']['input']>;\n optionAssetIsToken0?: InputMaybe<Scalars['Boolean']['input']>;\n optionAssetName?: InputMaybe<Scalars['String']['input']>;\n optionAssetSymbol?: InputMaybe<Scalars['String']['input']>;\n optionsCount?: InputMaybe<Scalars['numeric']['input']>;\n payoutAsset?: InputMaybe<Scalars['String']['input']>;\n payoutAssetDecimals?: InputMaybe<Scalars['Int']['input']>;\n payoutAssetName?: InputMaybe<Scalars['String']['input']>;\n payoutAssetSymbol?: InputMaybe<Scalars['String']['input']>;\n poolManager?: InputMaybe<Scalars['String']['input']>;\n tickSpacing?: InputMaybe<Scalars['Int']['input']>;\n totalPayout?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: InputMaybe<Scalars['numeric']['input']>;\n totalProtocolFee?: InputMaybe<Scalars['numeric']['input']>;\n totalVolume?: InputMaybe<Scalars['numeric']['input']>;\n tradersCount?: InputMaybe<Scalars['numeric']['input']>;\n vault?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"UpdateOperatorPermsEvent\" */\nexport type UpdateOperatorPermsEvent = {\n __typename: 'UpdateOperatorPermsEvent';\n blockNumber: Scalars['numeric']['output'];\n canExercise: Scalars['Boolean']['output'];\n canExtend: Scalars['Boolean']['output'];\n canMint: Scalars['Boolean']['output'];\n canTransfer: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n operator: Scalars['String']['output'];\n /** An object relationship */\n owner?: Maybe<TimelockMarketUser>;\n owner_id: Scalars['String']['output'];\n spendingApproval: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"UpdateOperatorPermsEvent\". All fields are combined with a logical 'AND'. */\nexport type UpdateOperatorPermsEventBoolExp = {\n _and?: InputMaybe<Array<UpdateOperatorPermsEventBoolExp>>;\n _not?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n _or?: InputMaybe<Array<UpdateOperatorPermsEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n canExercise?: InputMaybe<BooleanComparisonExp>;\n canExtend?: InputMaybe<BooleanComparisonExp>;\n canMint?: InputMaybe<BooleanComparisonExp>;\n canTransfer?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n operator?: InputMaybe<StringComparisonExp>;\n owner?: InputMaybe<TimelockMarketUserBoolExp>;\n owner_id?: InputMaybe<StringComparisonExp>;\n spendingApproval?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"UpdateOperatorPermsEvent\". */\nexport type UpdateOperatorPermsEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n canExercise?: InputMaybe<OrderBy>;\n canExtend?: InputMaybe<OrderBy>;\n canMint?: InputMaybe<OrderBy>;\n canTransfer?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator?: InputMaybe<OrderBy>;\n owner?: InputMaybe<TimelockMarketUserOrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"UpdateOperatorPermsEvent\" */\nexport type UpdateOperatorPermsEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'canExercise'\n /** column name */\n | 'canExtend'\n /** column name */\n | 'canMint'\n /** column name */\n | 'canTransfer'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'operator'\n /** column name */\n | 'owner_id'\n /** column name */\n | 'spendingApproval'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"UpdateOperatorPermsEvent\" */\nexport type UpdateOperatorPermsEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: UpdateOperatorPermsEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type UpdateOperatorPermsEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n canExercise?: InputMaybe<Scalars['Boolean']['input']>;\n canExtend?: InputMaybe<Scalars['Boolean']['input']>;\n canMint?: InputMaybe<Scalars['Boolean']['input']>;\n canTransfer?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n operator?: InputMaybe<Scalars['String']['input']>;\n owner_id?: InputMaybe<Scalars['String']['input']>;\n spendingApproval?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"UserMarketOperator\" */\nexport type UserMarketOperator = {\n __typename: 'UserMarketOperator';\n canExercise: Scalars['Boolean']['output'];\n canExtend: Scalars['Boolean']['output'];\n canMint: Scalars['Boolean']['output'];\n canTransfer: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An object relationship */\n operator?: Maybe<MarketOperator>;\n operator_id: Scalars['String']['output'];\n spendingApproval: Scalars['numeric']['output'];\n /** An object relationship */\n user?: Maybe<TimelockMarketUser>;\n user_id: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"UserMarketOperator\" */\nexport type UserMarketOperatorAggregateOrderBy = {\n avg?: InputMaybe<UserMarketOperatorAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<UserMarketOperatorMaxOrderBy>;\n min?: InputMaybe<UserMarketOperatorMinOrderBy>;\n stddev?: InputMaybe<UserMarketOperatorStddevOrderBy>;\n stddev_pop?: InputMaybe<UserMarketOperatorStddevPopOrderBy>;\n stddev_samp?: InputMaybe<UserMarketOperatorStddevSampOrderBy>;\n sum?: InputMaybe<UserMarketOperatorSumOrderBy>;\n var_pop?: InputMaybe<UserMarketOperatorVarPopOrderBy>;\n var_samp?: InputMaybe<UserMarketOperatorVarSampOrderBy>;\n variance?: InputMaybe<UserMarketOperatorVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorAvgOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"UserMarketOperator\". All fields are combined with a logical 'AND'. */\nexport type UserMarketOperatorBoolExp = {\n _and?: InputMaybe<Array<UserMarketOperatorBoolExp>>;\n _not?: InputMaybe<UserMarketOperatorBoolExp>;\n _or?: InputMaybe<Array<UserMarketOperatorBoolExp>>;\n canExercise?: InputMaybe<BooleanComparisonExp>;\n canExtend?: InputMaybe<BooleanComparisonExp>;\n canMint?: InputMaybe<BooleanComparisonExp>;\n canTransfer?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n operator?: InputMaybe<MarketOperatorBoolExp>;\n operator_id?: InputMaybe<StringComparisonExp>;\n spendingApproval?: InputMaybe<NumericComparisonExp>;\n user?: InputMaybe<TimelockMarketUserBoolExp>;\n user_id?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n user_id?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n user_id?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"UserMarketOperator\". */\nexport type UserMarketOperatorOrderBy = {\n canExercise?: InputMaybe<OrderBy>;\n canExtend?: InputMaybe<OrderBy>;\n canMint?: InputMaybe<OrderBy>;\n canTransfer?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator?: InputMaybe<MarketOperatorOrderBy>;\n operator_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n user?: InputMaybe<TimelockMarketUserOrderBy>;\n user_id?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorSelectColumn =\n /** column name */\n | 'canExercise'\n /** column name */\n | 'canExtend'\n /** column name */\n | 'canMint'\n /** column name */\n | 'canTransfer'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'operator_id'\n /** column name */\n | 'spendingApproval'\n /** column name */\n | 'user_id';\n\n/** order by stddev() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorStddevOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorStddevPopOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorStddevSampOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"UserMarketOperator\" */\nexport type UserMarketOperatorStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: UserMarketOperatorStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type UserMarketOperatorStreamCursorValueInput = {\n canExercise?: InputMaybe<Scalars['Boolean']['input']>;\n canExtend?: InputMaybe<Scalars['Boolean']['input']>;\n canMint?: InputMaybe<Scalars['Boolean']['input']>;\n canTransfer?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n operator_id?: InputMaybe<Scalars['String']['input']>;\n spendingApproval?: InputMaybe<Scalars['numeric']['input']>;\n user_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorSumOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorVarPopOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorVarSampOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorVarianceOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"UserOption\" */\nexport type UserOption = {\n __typename: 'UserOption';\n createdAt: Scalars['numeric']['output'];\n entryPrice: Scalars['numeric']['output'];\n expiresAt: Scalars['numeric']['output'];\n fullyExercised: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n liquiditiesAtOpen: Array<Scalars['String']['output']>;\n liquiditiesCurrent: Array<Scalars['String']['output']>;\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n optionId: Scalars['numeric']['output'];\n optionType: Scalars['optiontype']['output'];\n /** An object relationship */\n owner?: Maybe<TimelockMarketUser>;\n owner_id: Scalars['String']['output'];\n positionSizeAtOpen: Scalars['numeric']['output'];\n positionSizeCurrent: Scalars['numeric']['output'];\n premium: Scalars['numeric']['output'];\n protocolFee: Scalars['numeric']['output'];\n realizedPayout: Scalars['numeric']['output'];\n startTick: Scalars['Int']['output'];\n strikePrice: Scalars['numeric']['output'];\n strikeTick: Scalars['Int']['output'];\n};\n\n/** order by aggregate values of table \"UserOption\" */\nexport type UserOptionAggregateOrderBy = {\n avg?: InputMaybe<UserOptionAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<UserOptionMaxOrderBy>;\n min?: InputMaybe<UserOptionMinOrderBy>;\n stddev?: InputMaybe<UserOptionStddevOrderBy>;\n stddev_pop?: InputMaybe<UserOptionStddevPopOrderBy>;\n stddev_samp?: InputMaybe<UserOptionStddevSampOrderBy>;\n sum?: InputMaybe<UserOptionSumOrderBy>;\n var_pop?: InputMaybe<UserOptionVarPopOrderBy>;\n var_samp?: InputMaybe<UserOptionVarSampOrderBy>;\n variance?: InputMaybe<UserOptionVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"UserOption\" */\nexport type UserOptionAvgOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"UserOption\". All fields are combined with a logical 'AND'. */\nexport type UserOptionBoolExp = {\n _and?: InputMaybe<Array<UserOptionBoolExp>>;\n _not?: InputMaybe<UserOptionBoolExp>;\n _or?: InputMaybe<Array<UserOptionBoolExp>>;\n createdAt?: InputMaybe<NumericComparisonExp>;\n entryPrice?: InputMaybe<NumericComparisonExp>;\n expiresAt?: InputMaybe<NumericComparisonExp>;\n fullyExercised?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquiditiesAtOpen?: InputMaybe<StringArrayComparisonExp>;\n liquiditiesCurrent?: InputMaybe<StringArrayComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n optionId?: InputMaybe<NumericComparisonExp>;\n optionType?: InputMaybe<OptiontypeComparisonExp>;\n owner?: InputMaybe<TimelockMarketUserBoolExp>;\n owner_id?: InputMaybe<StringComparisonExp>;\n positionSizeAtOpen?: InputMaybe<NumericComparisonExp>;\n positionSizeCurrent?: InputMaybe<NumericComparisonExp>;\n premium?: InputMaybe<NumericComparisonExp>;\n protocolFee?: InputMaybe<NumericComparisonExp>;\n realizedPayout?: InputMaybe<NumericComparisonExp>;\n startTick?: InputMaybe<IntComparisonExp>;\n strikePrice?: InputMaybe<NumericComparisonExp>;\n strikeTick?: InputMaybe<IntComparisonExp>;\n};\n\n/** order by max() on columns of table \"UserOption\" */\nexport type UserOptionMaxOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"UserOption\" */\nexport type UserOptionMinOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"UserOption\". */\nexport type UserOptionOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n fullyExercised?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner?: InputMaybe<TimelockMarketUserOrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"UserOption\" */\nexport type UserOptionSelectColumn =\n /** column name */\n | 'createdAt'\n /** column name */\n | 'entryPrice'\n /** column name */\n | 'expiresAt'\n /** column name */\n | 'fullyExercised'\n /** column name */\n | 'id'\n /** column name */\n | 'liquiditiesAtOpen'\n /** column name */\n | 'liquiditiesCurrent'\n /** column name */\n | 'market_id'\n /** column name */\n | 'optionId'\n /** column name */\n | 'optionType'\n /** column name */\n | 'owner_id'\n /** column name */\n | 'positionSizeAtOpen'\n /** column name */\n | 'positionSizeCurrent'\n /** column name */\n | 'premium'\n /** column name */\n | 'protocolFee'\n /** column name */\n | 'realizedPayout'\n /** column name */\n | 'startTick'\n /** column name */\n | 'strikePrice'\n /** column name */\n | 'strikeTick';\n\n/** order by stddev() on columns of table \"UserOption\" */\nexport type UserOptionStddevOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"UserOption\" */\nexport type UserOptionStddevPopOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"UserOption\" */\nexport type UserOptionStddevSampOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"UserOption\" */\nexport type UserOptionStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: UserOptionStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type UserOptionStreamCursorValueInput = {\n createdAt?: InputMaybe<Scalars['numeric']['input']>;\n entryPrice?: InputMaybe<Scalars['numeric']['input']>;\n expiresAt?: InputMaybe<Scalars['numeric']['input']>;\n fullyExercised?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquiditiesAtOpen?: InputMaybe<Array<Scalars['String']['input']>>;\n liquiditiesCurrent?: InputMaybe<Array<Scalars['String']['input']>>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n optionId?: InputMaybe<Scalars['numeric']['input']>;\n optionType?: InputMaybe<Scalars['optiontype']['input']>;\n owner_id?: InputMaybe<Scalars['String']['input']>;\n positionSizeAtOpen?: InputMaybe<Scalars['numeric']['input']>;\n positionSizeCurrent?: InputMaybe<Scalars['numeric']['input']>;\n premium?: InputMaybe<Scalars['numeric']['input']>;\n protocolFee?: InputMaybe<Scalars['numeric']['input']>;\n realizedPayout?: InputMaybe<Scalars['numeric']['input']>;\n startTick?: InputMaybe<Scalars['Int']['input']>;\n strikePrice?: InputMaybe<Scalars['numeric']['input']>;\n strikeTick?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** order by sum() on columns of table \"UserOption\" */\nexport type UserOptionSumOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"UserOption\" */\nexport type UserOptionVarPopOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"UserOption\" */\nexport type UserOptionVarSampOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"UserOption\" */\nexport type UserOptionVarianceOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"_meta\" */\nexport type Meta = {\n __typename: '_meta';\n bufferBlock?: Maybe<Scalars['Int']['output']>;\n chainId?: Maybe<Scalars['Int']['output']>;\n endBlock?: Maybe<Scalars['Int']['output']>;\n eventsProcessed?: Maybe<Scalars['Int']['output']>;\n firstEventBlock?: Maybe<Scalars['Int']['output']>;\n isReady?: Maybe<Scalars['Boolean']['output']>;\n progressBlock?: Maybe<Scalars['Int']['output']>;\n readyAt?: Maybe<Scalars['timestamptz']['output']>;\n sourceBlock?: Maybe<Scalars['Int']['output']>;\n startBlock?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Boolean expression to filter rows from the table \"_meta\". All fields are combined with a logical 'AND'. */\nexport type MetaBoolExp = {\n _and?: InputMaybe<Array<MetaBoolExp>>;\n _not?: InputMaybe<MetaBoolExp>;\n _or?: InputMaybe<Array<MetaBoolExp>>;\n bufferBlock?: InputMaybe<IntComparisonExp>;\n chainId?: InputMaybe<IntComparisonExp>;\n endBlock?: InputMaybe<IntComparisonExp>;\n eventsProcessed?: InputMaybe<IntComparisonExp>;\n firstEventBlock?: InputMaybe<IntComparisonExp>;\n isReady?: InputMaybe<BooleanComparisonExp>;\n progressBlock?: InputMaybe<IntComparisonExp>;\n readyAt?: InputMaybe<TimestamptzComparisonExp>;\n sourceBlock?: InputMaybe<IntComparisonExp>;\n startBlock?: InputMaybe<IntComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"_meta\". */\nexport type MetaOrderBy = {\n bufferBlock?: InputMaybe<OrderBy>;\n chainId?: InputMaybe<OrderBy>;\n endBlock?: InputMaybe<OrderBy>;\n eventsProcessed?: InputMaybe<OrderBy>;\n firstEventBlock?: InputMaybe<OrderBy>;\n isReady?: InputMaybe<OrderBy>;\n progressBlock?: InputMaybe<OrderBy>;\n readyAt?: InputMaybe<OrderBy>;\n sourceBlock?: InputMaybe<OrderBy>;\n startBlock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"_meta\" */\nexport type MetaSelectColumn =\n /** column name */\n | 'bufferBlock'\n /** column name */\n | 'chainId'\n /** column name */\n | 'endBlock'\n /** column name */\n | 'eventsProcessed'\n /** column name */\n | 'firstEventBlock'\n /** column name */\n | 'isReady'\n /** column name */\n | 'progressBlock'\n /** column name */\n | 'readyAt'\n /** column name */\n | 'sourceBlock'\n /** column name */\n | 'startBlock';\n\n/** Streaming cursor of the table \"_meta\" */\nexport type MetaStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MetaStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MetaStreamCursorValueInput = {\n bufferBlock?: InputMaybe<Scalars['Int']['input']>;\n chainId?: InputMaybe<Scalars['Int']['input']>;\n endBlock?: InputMaybe<Scalars['Int']['input']>;\n eventsProcessed?: InputMaybe<Scalars['Int']['input']>;\n firstEventBlock?: InputMaybe<Scalars['Int']['input']>;\n isReady?: InputMaybe<Scalars['Boolean']['input']>;\n progressBlock?: InputMaybe<Scalars['Int']['input']>;\n readyAt?: InputMaybe<Scalars['timestamptz']['input']>;\n sourceBlock?: InputMaybe<Scalars['Int']['input']>;\n startBlock?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** columns and relationships of \"chain_metadata\" */\nexport type ChainMetadata = {\n __typename: 'chain_metadata';\n block_height?: Maybe<Scalars['Int']['output']>;\n chain_id?: Maybe<Scalars['Int']['output']>;\n end_block?: Maybe<Scalars['Int']['output']>;\n first_event_block_number?: Maybe<Scalars['Int']['output']>;\n is_hyper_sync?: Maybe<Scalars['Boolean']['output']>;\n latest_fetched_block_number?: Maybe<Scalars['Int']['output']>;\n latest_processed_block?: Maybe<Scalars['Int']['output']>;\n num_batches_fetched?: Maybe<Scalars['Int']['output']>;\n num_events_processed?: Maybe<Scalars['Int']['output']>;\n start_block?: Maybe<Scalars['Int']['output']>;\n timestamp_caught_up_to_head_or_endblock?: Maybe<\n Scalars['timestamptz']['output']\n >;\n};\n\n/** Boolean expression to filter rows from the table \"chain_metadata\". All fields are combined with a logical 'AND'. */\nexport type ChainMetadataBoolExp = {\n _and?: InputMaybe<Array<ChainMetadataBoolExp>>;\n _not?: InputMaybe<ChainMetadataBoolExp>;\n _or?: InputMaybe<Array<ChainMetadataBoolExp>>;\n block_height?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n end_block?: InputMaybe<IntComparisonExp>;\n first_event_block_number?: InputMaybe<IntComparisonExp>;\n is_hyper_sync?: InputMaybe<BooleanComparisonExp>;\n latest_fetched_block_number?: InputMaybe<IntComparisonExp>;\n latest_processed_block?: InputMaybe<IntComparisonExp>;\n num_batches_fetched?: InputMaybe<IntComparisonExp>;\n num_events_processed?: InputMaybe<IntComparisonExp>;\n start_block?: InputMaybe<IntComparisonExp>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<TimestamptzComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"chain_metadata\". */\nexport type ChainMetadataOrderBy = {\n block_height?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n end_block?: InputMaybe<OrderBy>;\n first_event_block_number?: InputMaybe<OrderBy>;\n is_hyper_sync?: InputMaybe<OrderBy>;\n latest_fetched_block_number?: InputMaybe<OrderBy>;\n latest_processed_block?: InputMaybe<OrderBy>;\n num_batches_fetched?: InputMaybe<OrderBy>;\n num_events_processed?: InputMaybe<OrderBy>;\n start_block?: InputMaybe<OrderBy>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"chain_metadata\" */\nexport type ChainMetadataSelectColumn =\n /** column name */\n | 'block_height'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'end_block'\n /** column name */\n | 'first_event_block_number'\n /** column name */\n | 'is_hyper_sync'\n /** column name */\n | 'latest_fetched_block_number'\n /** column name */\n | 'latest_processed_block'\n /** column name */\n | 'num_batches_fetched'\n /** column name */\n | 'num_events_processed'\n /** column name */\n | 'start_block'\n /** column name */\n | 'timestamp_caught_up_to_head_or_endblock';\n\n/** Streaming cursor of the table \"chain_metadata\" */\nexport type ChainMetadataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ChainMetadataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ChainMetadataStreamCursorValueInput = {\n block_height?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n end_block?: InputMaybe<Scalars['Int']['input']>;\n first_event_block_number?: InputMaybe<Scalars['Int']['input']>;\n is_hyper_sync?: InputMaybe<Scalars['Boolean']['input']>;\n latest_fetched_block_number?: InputMaybe<Scalars['Int']['input']>;\n latest_processed_block?: InputMaybe<Scalars['Int']['input']>;\n num_batches_fetched?: InputMaybe<Scalars['Int']['input']>;\n num_events_processed?: InputMaybe<Scalars['Int']['input']>;\n start_block?: InputMaybe<Scalars['Int']['input']>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<\n Scalars['timestamptz']['input']\n >;\n};\n\n/** ordering argument of a cursor */\nexport type CursorOrdering =\n /** ascending ordering of the cursor */\n | 'ASC'\n /** descending ordering of the cursor */\n | 'DESC';\n\nexport type JsonbCastExp = {\n String?: InputMaybe<StringComparisonExp>;\n};\n\n/** Boolean expression to compare columns of type \"jsonb\". All fields are combined with logical 'AND'. */\nexport type JsonbComparisonExp = {\n _cast?: InputMaybe<JsonbCastExp>;\n /** is the column contained in the given json value */\n _contained_in?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the column contain the given json value at the top level */\n _contains?: InputMaybe<Scalars['jsonb']['input']>;\n _eq?: InputMaybe<Scalars['jsonb']['input']>;\n _gt?: InputMaybe<Scalars['jsonb']['input']>;\n _gte?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the string exist as a top-level key in the column */\n _has_key?: InputMaybe<Scalars['String']['input']>;\n /** do all of these strings exist as top-level keys in the column */\n _has_keys_all?: InputMaybe<Array<Scalars['String']['input']>>;\n /** do any of these strings exist as top-level keys in the column */\n _has_keys_any?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['jsonb']['input']>;\n _lte?: InputMaybe<Scalars['jsonb']['input']>;\n _neq?: InputMaybe<Scalars['jsonb']['input']>;\n _nin?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n};\n\n/** Boolean expression to compare columns of type \"numeric\". All fields are combined with logical 'AND'. */\nexport type NumericComparisonExp = {\n _eq?: InputMaybe<Scalars['numeric']['input']>;\n _gt?: InputMaybe<Scalars['numeric']['input']>;\n _gte?: InputMaybe<Scalars['numeric']['input']>;\n _in?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['numeric']['input']>;\n _lte?: InputMaybe<Scalars['numeric']['input']>;\n _neq?: InputMaybe<Scalars['numeric']['input']>;\n _nin?: InputMaybe<Array<Scalars['numeric']['input']>>;\n};\n\n/** Boolean expression to compare columns of type \"optiontype\". All fields are combined with logical 'AND'. */\nexport type OptiontypeComparisonExp = {\n _eq?: InputMaybe<Scalars['optiontype']['input']>;\n _gt?: InputMaybe<Scalars['optiontype']['input']>;\n _gte?: InputMaybe<Scalars['optiontype']['input']>;\n _in?: InputMaybe<Array<Scalars['optiontype']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['optiontype']['input']>;\n _lte?: InputMaybe<Scalars['optiontype']['input']>;\n _neq?: InputMaybe<Scalars['optiontype']['input']>;\n _nin?: InputMaybe<Array<Scalars['optiontype']['input']>>;\n};\n\n/** column ordering options */\nexport type OrderBy =\n /** in ascending order, nulls last */\n | 'asc'\n /** in ascending order, nulls first */\n | 'asc_nulls_first'\n /** in ascending order, nulls last */\n | 'asc_nulls_last'\n /** in descending order, nulls first */\n | 'desc'\n /** in descending order, nulls first */\n | 'desc_nulls_first'\n /** in descending order, nulls last */\n | 'desc_nulls_last';\n\nexport type QueryRoot = {\n __typename: 'query_root';\n /** fetch data from the table: \"BorrowEvent\" */\n BorrowEvent: Array<BorrowEvent>;\n /** fetch data from the table: \"BorrowEvent\" using primary key columns */\n BorrowEvent_by_pk?: Maybe<BorrowEvent>;\n /** fetch data from the table: \"BurnEvent\" */\n BurnEvent: Array<BurnEvent>;\n /** fetch data from the table: \"BurnEvent\" using primary key columns */\n BurnEvent_by_pk?: Maybe<BurnEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" */\n ExerciseOptionEvent: Array<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" using primary key columns */\n ExerciseOptionEvent_by_pk?: Maybe<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" */\n ExtendOptionEvent: Array<ExtendOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" using primary key columns */\n ExtendOptionEvent_by_pk?: Maybe<ExtendOptionEvent>;\n /** fetch data from the table: \"MarketDailyData\" */\n MarketDailyData: Array<MarketDailyData>;\n /** fetch data from the table: \"MarketDailyData\" using primary key columns */\n MarketDailyData_by_pk?: Maybe<MarketDailyData>;\n /** fetch data from the table: \"MarketOperator\" */\n MarketOperator: Array<MarketOperator>;\n /** fetch data from the table: \"MarketOperator\" using primary key columns */\n MarketOperator_by_pk?: Maybe<MarketOperator>;\n /** fetch data from the table: \"MintEvent\" */\n MintEvent: Array<MintEvent>;\n /** fetch data from the table: \"MintEvent\" using primary key columns */\n MintEvent_by_pk?: Maybe<MintEvent>;\n /** fetch data from the table: \"MintOptionEvent\" */\n MintOptionEvent: Array<MintOptionEvent>;\n /** fetch data from the table: \"MintOptionEvent\" using primary key columns */\n MintOptionEvent_by_pk?: Maybe<MintOptionEvent>;\n /** fetch data from the table: \"RepayEvent\" */\n RepayEvent: Array<RepayEvent>;\n /** fetch data from the table: \"RepayEvent\" using primary key columns */\n RepayEvent_by_pk?: Maybe<RepayEvent>;\n /** fetch data from the table: \"TimelockMarket\" */\n TimelockMarket: Array<TimelockMarket>;\n /** fetch data from the table: \"TimelockMarketUser\" */\n TimelockMarketUser: Array<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarketUser\" using primary key columns */\n TimelockMarketUser_by_pk?: Maybe<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarket\" using primary key columns */\n TimelockMarket_by_pk?: Maybe<TimelockMarket>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" */\n UpdateOperatorPermsEvent: Array<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" using primary key columns */\n UpdateOperatorPermsEvent_by_pk?: Maybe<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UserMarketOperator\" */\n UserMarketOperator: Array<UserMarketOperator>;\n /** fetch data from the table: \"UserMarketOperator\" using primary key columns */\n UserMarketOperator_by_pk?: Maybe<UserMarketOperator>;\n /** fetch data from the table: \"UserOption\" */\n UserOption: Array<UserOption>;\n /** fetch data from the table: \"UserOption\" using primary key columns */\n UserOption_by_pk?: Maybe<UserOption>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n};\n\nexport type QueryRootBorrowEventArgs = {\n distinct_on?: InputMaybe<Array<BorrowEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BorrowEventOrderBy>>;\n where?: InputMaybe<BorrowEventBoolExp>;\n};\n\nexport type QueryRootBorrowEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootBurnEventArgs = {\n distinct_on?: InputMaybe<Array<BurnEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BurnEventOrderBy>>;\n where?: InputMaybe<BurnEventBoolExp>;\n};\n\nexport type QueryRootBurnEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootExerciseOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExerciseOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExerciseOptionEventOrderBy>>;\n where?: InputMaybe<ExerciseOptionEventBoolExp>;\n};\n\nexport type QueryRootExerciseOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootExtendOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExtendOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExtendOptionEventOrderBy>>;\n where?: InputMaybe<ExtendOptionEventBoolExp>;\n};\n\nexport type QueryRootExtendOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMarketDailyDataArgs = {\n distinct_on?: InputMaybe<Array<MarketDailyDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketDailyDataOrderBy>>;\n where?: InputMaybe<MarketDailyDataBoolExp>;\n};\n\nexport type QueryRootMarketDailyDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<MarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketOperatorOrderBy>>;\n where?: InputMaybe<MarketOperatorBoolExp>;\n};\n\nexport type QueryRootMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMintEventArgs = {\n distinct_on?: InputMaybe<Array<MintEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintEventOrderBy>>;\n where?: InputMaybe<MintEventBoolExp>;\n};\n\nexport type QueryRootMintEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMintOptionEventArgs = {\n distinct_on?: InputMaybe<Array<MintOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintOptionEventOrderBy>>;\n where?: InputMaybe<MintOptionEventBoolExp>;\n};\n\nexport type QueryRootMintOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootRepayEventArgs = {\n distinct_on?: InputMaybe<Array<RepayEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RepayEventOrderBy>>;\n where?: InputMaybe<RepayEventBoolExp>;\n};\n\nexport type QueryRootRepayEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTimelockMarketArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketOrderBy>>;\n where?: InputMaybe<TimelockMarketBoolExp>;\n};\n\nexport type QueryRootTimelockMarketUserArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketUserOrderBy>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\nexport type QueryRootTimelockMarketUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTimelockMarketByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootUpdateOperatorPermsEventArgs = {\n distinct_on?: InputMaybe<Array<UpdateOperatorPermsEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UpdateOperatorPermsEventOrderBy>>;\n where?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n};\n\nexport type QueryRootUpdateOperatorPermsEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootUserMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\nexport type QueryRootUserMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootUserOptionArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\nexport type QueryRootUserOptionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type QueryRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type QueryRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type QueryRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEvents = {\n __typename: 'raw_events';\n block_fields: Scalars['jsonb']['output'];\n block_hash: Scalars['String']['output'];\n block_number: Scalars['Int']['output'];\n block_timestamp: Scalars['Int']['output'];\n chain_id: Scalars['Int']['output'];\n contract_name: Scalars['String']['output'];\n event_id: Scalars['numeric']['output'];\n event_name: Scalars['String']['output'];\n log_index: Scalars['Int']['output'];\n params: Scalars['jsonb']['output'];\n serial: Scalars['Int']['output'];\n src_address: Scalars['String']['output'];\n transaction_fields: Scalars['jsonb']['output'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsBlockFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsParamsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsTransactionFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to filter rows from the table \"raw_events\". All fields are combined with a logical 'AND'. */\nexport type RawEventsBoolExp = {\n _and?: InputMaybe<Array<RawEventsBoolExp>>;\n _not?: InputMaybe<RawEventsBoolExp>;\n _or?: InputMaybe<Array<RawEventsBoolExp>>;\n block_fields?: InputMaybe<JsonbComparisonExp>;\n block_hash?: InputMaybe<StringComparisonExp>;\n block_number?: InputMaybe<IntComparisonExp>;\n block_timestamp?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n contract_name?: InputMaybe<StringComparisonExp>;\n event_id?: InputMaybe<NumericComparisonExp>;\n event_name?: InputMaybe<StringComparisonExp>;\n log_index?: InputMaybe<IntComparisonExp>;\n params?: InputMaybe<JsonbComparisonExp>;\n serial?: InputMaybe<IntComparisonExp>;\n src_address?: InputMaybe<StringComparisonExp>;\n transaction_fields?: InputMaybe<JsonbComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"raw_events\". */\nexport type RawEventsOrderBy = {\n block_fields?: InputMaybe<OrderBy>;\n block_hash?: InputMaybe<OrderBy>;\n block_number?: InputMaybe<OrderBy>;\n block_timestamp?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n contract_name?: InputMaybe<OrderBy>;\n event_id?: InputMaybe<OrderBy>;\n event_name?: InputMaybe<OrderBy>;\n log_index?: InputMaybe<OrderBy>;\n params?: InputMaybe<OrderBy>;\n serial?: InputMaybe<OrderBy>;\n src_address?: InputMaybe<OrderBy>;\n transaction_fields?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"raw_events\" */\nexport type RawEventsSelectColumn =\n /** column name */\n | 'block_fields'\n /** column name */\n | 'block_hash'\n /** column name */\n | 'block_number'\n /** column name */\n | 'block_timestamp'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'contract_name'\n /** column name */\n | 'event_id'\n /** column name */\n | 'event_name'\n /** column name */\n | 'log_index'\n /** column name */\n | 'params'\n /** column name */\n | 'serial'\n /** column name */\n | 'src_address'\n /** column name */\n | 'transaction_fields';\n\n/** Streaming cursor of the table \"raw_events\" */\nexport type RawEventsStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: RawEventsStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type RawEventsStreamCursorValueInput = {\n block_fields?: InputMaybe<Scalars['jsonb']['input']>;\n block_hash?: InputMaybe<Scalars['String']['input']>;\n block_number?: InputMaybe<Scalars['Int']['input']>;\n block_timestamp?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n contract_name?: InputMaybe<Scalars['String']['input']>;\n event_id?: InputMaybe<Scalars['numeric']['input']>;\n event_name?: InputMaybe<Scalars['String']['input']>;\n log_index?: InputMaybe<Scalars['Int']['input']>;\n params?: InputMaybe<Scalars['jsonb']['input']>;\n serial?: InputMaybe<Scalars['Int']['input']>;\n src_address?: InputMaybe<Scalars['String']['input']>;\n transaction_fields?: InputMaybe<Scalars['jsonb']['input']>;\n};\n\nexport type SubscriptionRoot = {\n __typename: 'subscription_root';\n /** fetch data from the table: \"BorrowEvent\" */\n BorrowEvent: Array<BorrowEvent>;\n /** fetch data from the table: \"BorrowEvent\" using primary key columns */\n BorrowEvent_by_pk?: Maybe<BorrowEvent>;\n /** fetch data from the table in a streaming manner: \"BorrowEvent\" */\n BorrowEvent_stream: Array<BorrowEvent>;\n /** fetch data from the table: \"BurnEvent\" */\n BurnEvent: Array<BurnEvent>;\n /** fetch data from the table: \"BurnEvent\" using primary key columns */\n BurnEvent_by_pk?: Maybe<BurnEvent>;\n /** fetch data from the table in a streaming manner: \"BurnEvent\" */\n BurnEvent_stream: Array<BurnEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" */\n ExerciseOptionEvent: Array<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" using primary key columns */\n ExerciseOptionEvent_by_pk?: Maybe<ExerciseOptionEvent>;\n /** fetch data from the table in a streaming manner: \"ExerciseOptionEvent\" */\n ExerciseOptionEvent_stream: Array<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" */\n ExtendOptionEvent: Array<ExtendOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" using primary key columns */\n ExtendOptionEvent_by_pk?: Maybe<ExtendOptionEvent>;\n /** fetch data from the table in a streaming manner: \"ExtendOptionEvent\" */\n ExtendOptionEvent_stream: Array<ExtendOptionEvent>;\n /** fetch data from the table: \"MarketDailyData\" */\n MarketDailyData: Array<MarketDailyData>;\n /** fetch data from the table: \"MarketDailyData\" using primary key columns */\n MarketDailyData_by_pk?: Maybe<MarketDailyData>;\n /** fetch data from the table in a streaming manner: \"MarketDailyData\" */\n MarketDailyData_stream: Array<MarketDailyData>;\n /** fetch data from the table: \"MarketOperator\" */\n MarketOperator: Array<MarketOperator>;\n /** fetch data from the table: \"MarketOperator\" using primary key columns */\n MarketOperator_by_pk?: Maybe<MarketOperator>;\n /** fetch data from the table in a streaming manner: \"MarketOperator\" */\n MarketOperator_stream: Array<MarketOperator>;\n /** fetch data from the table: \"MintEvent\" */\n MintEvent: Array<MintEvent>;\n /** fetch data from the table: \"MintEvent\" using primary key columns */\n MintEvent_by_pk?: Maybe<MintEvent>;\n /** fetch data from the table in a streaming manner: \"MintEvent\" */\n MintEvent_stream: Array<MintEvent>;\n /** fetch data from the table: \"MintOptionEvent\" */\n MintOptionEvent: Array<MintOptionEvent>;\n /** fetch data from the table: \"MintOptionEvent\" using primary key columns */\n MintOptionEvent_by_pk?: Maybe<MintOptionEvent>;\n /** fetch data from the table in a streaming manner: \"MintOptionEvent\" */\n MintOptionEvent_stream: Array<MintOptionEvent>;\n /** fetch data from the table: \"RepayEvent\" */\n RepayEvent: Array<RepayEvent>;\n /** fetch data from the table: \"RepayEvent\" using primary key columns */\n RepayEvent_by_pk?: Maybe<RepayEvent>;\n /** fetch data from the table in a streaming manner: \"RepayEvent\" */\n RepayEvent_stream: Array<RepayEvent>;\n /** fetch data from the table: \"TimelockMarket\" */\n TimelockMarket: Array<TimelockMarket>;\n /** fetch data from the table: \"TimelockMarketUser\" */\n TimelockMarketUser: Array<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarketUser\" using primary key columns */\n TimelockMarketUser_by_pk?: Maybe<TimelockMarketUser>;\n /** fetch data from the table in a streaming manner: \"TimelockMarketUser\" */\n TimelockMarketUser_stream: Array<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarket\" using primary key columns */\n TimelockMarket_by_pk?: Maybe<TimelockMarket>;\n /** fetch data from the table in a streaming manner: \"TimelockMarket\" */\n TimelockMarket_stream: Array<TimelockMarket>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" */\n UpdateOperatorPermsEvent: Array<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" using primary key columns */\n UpdateOperatorPermsEvent_by_pk?: Maybe<UpdateOperatorPermsEvent>;\n /** fetch data from the table in a streaming manner: \"UpdateOperatorPermsEvent\" */\n UpdateOperatorPermsEvent_stream: Array<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UserMarketOperator\" */\n UserMarketOperator: Array<UserMarketOperator>;\n /** fetch data from the table: \"UserMarketOperator\" using primary key columns */\n UserMarketOperator_by_pk?: Maybe<UserMarketOperator>;\n /** fetch data from the table in a streaming manner: \"UserMarketOperator\" */\n UserMarketOperator_stream: Array<UserMarketOperator>;\n /** fetch data from the table: \"UserOption\" */\n UserOption: Array<UserOption>;\n /** fetch data from the table: \"UserOption\" using primary key columns */\n UserOption_by_pk?: Maybe<UserOption>;\n /** fetch data from the table in a streaming manner: \"UserOption\" */\n UserOption_stream: Array<UserOption>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table in a streaming manner: \"_meta\" */\n _meta_stream: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table in a streaming manner: \"chain_metadata\" */\n chain_metadata_stream: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n /** fetch data from the table in a streaming manner: \"raw_events\" */\n raw_events_stream: Array<RawEvents>;\n};\n\nexport type SubscriptionRootBorrowEventArgs = {\n distinct_on?: InputMaybe<Array<BorrowEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BorrowEventOrderBy>>;\n where?: InputMaybe<BorrowEventBoolExp>;\n};\n\nexport type SubscriptionRootBorrowEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootBorrowEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<BorrowEventStreamCursorInput>>;\n where?: InputMaybe<BorrowEventBoolExp>;\n};\n\nexport type SubscriptionRootBurnEventArgs = {\n distinct_on?: InputMaybe<Array<BurnEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BurnEventOrderBy>>;\n where?: InputMaybe<BurnEventBoolExp>;\n};\n\nexport type SubscriptionRootBurnEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootBurnEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<BurnEventStreamCursorInput>>;\n where?: InputMaybe<BurnEventBoolExp>;\n};\n\nexport type SubscriptionRootExerciseOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExerciseOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExerciseOptionEventOrderBy>>;\n where?: InputMaybe<ExerciseOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootExerciseOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootExerciseOptionEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ExerciseOptionEventStreamCursorInput>>;\n where?: InputMaybe<ExerciseOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootExtendOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExtendOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExtendOptionEventOrderBy>>;\n where?: InputMaybe<ExtendOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootExtendOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootExtendOptionEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ExtendOptionEventStreamCursorInput>>;\n where?: InputMaybe<ExtendOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootMarketDailyDataArgs = {\n distinct_on?: InputMaybe<Array<MarketDailyDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketDailyDataOrderBy>>;\n where?: InputMaybe<MarketDailyDataBoolExp>;\n};\n\nexport type SubscriptionRootMarketDailyDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMarketDailyDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MarketDailyDataStreamCursorInput>>;\n where?: InputMaybe<MarketDailyDataBoolExp>;\n};\n\nexport type SubscriptionRootMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<MarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketOperatorOrderBy>>;\n where?: InputMaybe<MarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMarketOperatorStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MarketOperatorStreamCursorInput>>;\n where?: InputMaybe<MarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootMintEventArgs = {\n distinct_on?: InputMaybe<Array<MintEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintEventOrderBy>>;\n where?: InputMaybe<MintEventBoolExp>;\n};\n\nexport type SubscriptionRootMintEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMintEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MintEventStreamCursorInput>>;\n where?: InputMaybe<MintEventBoolExp>;\n};\n\nexport type SubscriptionRootMintOptionEventArgs = {\n distinct_on?: InputMaybe<Array<MintOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintOptionEventOrderBy>>;\n where?: InputMaybe<MintOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootMintOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMintOptionEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MintOptionEventStreamCursorInput>>;\n where?: InputMaybe<MintOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootRepayEventArgs = {\n distinct_on?: InputMaybe<Array<RepayEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RepayEventOrderBy>>;\n where?: InputMaybe<RepayEventBoolExp>;\n};\n\nexport type SubscriptionRootRepayEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootRepayEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<RepayEventStreamCursorInput>>;\n where?: InputMaybe<RepayEventBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketOrderBy>>;\n where?: InputMaybe<TimelockMarketBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketUserArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketUserOrderBy>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTimelockMarketUserStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TimelockMarketUserStreamCursorInput>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTimelockMarketStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TimelockMarketStreamCursorInput>>;\n where?: InputMaybe<TimelockMarketBoolExp>;\n};\n\nexport type SubscriptionRootUpdateOperatorPermsEventArgs = {\n distinct_on?: InputMaybe<Array<UpdateOperatorPermsEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UpdateOperatorPermsEventOrderBy>>;\n where?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n};\n\nexport type SubscriptionRootUpdateOperatorPermsEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootUpdateOperatorPermsEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<UpdateOperatorPermsEventStreamCursorInput>>;\n where?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n};\n\nexport type SubscriptionRootUserMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootUserMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootUserMarketOperatorStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<UserMarketOperatorStreamCursorInput>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootUserOptionArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\nexport type SubscriptionRootUserOptionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootUserOptionStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<UserOptionStreamCursorInput>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\nexport type SubscriptionRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootMetaStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MetaStreamCursorInput>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ChainMetadataStreamCursorInput>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\nexport type SubscriptionRootRawEventsStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<RawEventsStreamCursorInput>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\n/** Boolean expression to compare columns of type \"timestamptz\". All fields are combined with logical 'AND'. */\nexport type TimestamptzComparisonExp = {\n _eq?: InputMaybe<Scalars['timestamptz']['input']>;\n _gt?: InputMaybe<Scalars['timestamptz']['input']>;\n _gte?: InputMaybe<Scalars['timestamptz']['input']>;\n _in?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['timestamptz']['input']>;\n _lte?: InputMaybe<Scalars['timestamptz']['input']>;\n _neq?: InputMaybe<Scalars['timestamptz']['input']>;\n _nin?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n};\n\nexport type UserOptionFieldsFragment = {\n __typename: 'UserOption';\n id: string;\n optionId: any;\n optionType: any;\n strikeTick: number;\n startTick: number;\n strikePrice: any;\n entryPrice: any;\n expiresAt: any;\n createdAt: any;\n premium: any;\n protocolFee: any;\n realizedPayout: any;\n liquiditiesAtOpen: Array<string>;\n liquiditiesCurrent: Array<string>;\n positionSizeAtOpen: any;\n positionSizeCurrent: any;\n fullyExercised: boolean;\n owner?: {__typename: 'TimelockMarketUser'; address: string} | null;\n market?: {__typename: 'TimelockMarket'; address: string} | null;\n};\n\nexport type GetActiveUserOptionsQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetActiveUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetActiveUserOptionsByMarketQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetActiveUserOptionsByMarketQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetClosedUserOptionsQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetClosedUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetClosedUserOptionsByMarketQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetClosedUserOptionsByMarketQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetMarketDataQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketDataQuery = {\n __typename: 'query_root';\n TimelockMarket: Array<{\n __typename: 'TimelockMarket';\n id: string;\n address: string;\n vault: string;\n tickSpacing: number;\n optionAssetIsToken0: boolean;\n optionAsset: string;\n payoutAsset: string;\n optionAssetDecimals: number;\n payoutAssetDecimals: number;\n optionAssetSymbol: string;\n payoutAssetSymbol: string;\n optionAssetName: string;\n payoutAssetName: string;\n poolManager: string;\n currency0: string;\n currency1: string;\n fee: number;\n hooks: string;\n }>;\n};\n\nexport type GetMarketVolumeQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketVolumeQuery = {\n __typename: 'query_root';\n TimelockMarket: Array<{\n __typename: 'TimelockMarket';\n id: string;\n address: string;\n optionsCount: any;\n tradersCount: any;\n totalVolume: any;\n totalPremium: any;\n totalPayout: any;\n totalProtocolFee: any;\n }>;\n};\n\nexport type GetMarketDailyVolumeQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketDailyVolumeQuery = {\n __typename: 'query_root';\n MarketDailyData: Array<{\n __typename: 'MarketDailyData';\n id: string;\n date: any;\n totalVolume: any;\n totalPremium: any;\n totalPayout: any;\n totalProtocolFee: any;\n }>;\n};\n\nexport type GetMarketUserVolumeQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketUserVolumeQuery = {\n __typename: 'query_root';\n TimelockMarketUser: Array<{\n __typename: 'TimelockMarketUser';\n address: string;\n totalVolume: any;\n totalPayout: any;\n totalPremium: any;\n totalProtocolFee: any;\n optionsCount: any;\n }>;\n};\n\nexport type GetUserMarketOperatorsQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetUserMarketOperatorsQuery = {\n __typename: 'query_root';\n UserMarketOperator: Array<{\n __typename: 'UserMarketOperator';\n id: string;\n canExtend: boolean;\n canExercise: boolean;\n canTransfer: boolean;\n canMint: boolean;\n spendingApproval: any;\n operator?: {__typename: 'MarketOperator'; address: string} | null;\n }>;\n};\n\nexport type GetOptionEventsQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n optionId: Scalars['numeric']['input'];\n}>;\n\nexport type GetOptionEventsQuery = {\n __typename: 'query_root';\n MintOptionEvent: Array<{\n __typename: 'MintOptionEvent';\n id: string;\n optionType: number;\n strikeTick: number;\n price: any;\n expiresAt: any;\n premium: any;\n protocolFee: any;\n liquidities: Array<string>;\n timestamp: any;\n blockNumber: any;\n transactionHash: string;\n }>;\n ExerciseOptionEvent: Array<{\n __typename: 'ExerciseOptionEvent';\n id: string;\n liquidities: Array<string>;\n payout: any;\n timestamp: any;\n blockNumber: any;\n transactionHash: string;\n }>;\n ExtendOptionEvent: Array<{\n __typename: 'ExtendOptionEvent';\n id: string;\n premium: any;\n protocolFee: any;\n price: any;\n addedDuration: any;\n timestamp: any;\n blockNumber: any;\n transactionHash: string;\n }>;\n};\n\nexport const UserOptionFieldsFragmentDoc = gql`\n fragment UserOptionFields on UserOption {\n id\n optionId\n owner {\n address\n }\n market {\n address\n }\n optionType\n strikeTick\n startTick\n strikePrice\n entryPrice\n expiresAt\n createdAt\n premium\n protocolFee\n realizedPayout\n liquiditiesAtOpen\n liquiditiesCurrent\n positionSizeAtOpen\n positionSizeCurrent\n fullyExercised\n }\n`;\nexport const GetActiveUserOptionsDocument = gql`\n query GetActiveUserOptions($userAddr: String!) {\n UserOption(\n where: {owner: {address: {_eq: $userAddr}}, fullyExercised: {_eq: false}}\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetActiveUserOptionsByMarketDocument = gql`\n query GetActiveUserOptionsByMarket($userAddr: String!, $marketAddr: String!) {\n UserOption(\n where: {\n owner: {address: {_eq: $userAddr}}\n fullyExercised: {_eq: false}\n market: {address: {_eq: $marketAddr}}\n }\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetClosedUserOptionsDocument = gql`\n query GetClosedUserOptions($userAddr: String!) {\n UserOption(\n where: {owner: {address: {_eq: $userAddr}}, fullyExercised: {_eq: true}}\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetClosedUserOptionsByMarketDocument = gql`\n query GetClosedUserOptionsByMarket($userAddr: String!, $marketAddr: String!) {\n UserOption(\n where: {\n owner: {address: {_eq: $userAddr}}\n fullyExercised: {_eq: true}\n market: {address: {_eq: $marketAddr}}\n }\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetMarketDataDocument = gql`\n query GetMarketData($marketAddr: String!) {\n TimelockMarket(where: {address: {_eq: $marketAddr}}, limit: 1) {\n id\n address\n vault\n tickSpacing\n optionAssetIsToken0\n optionAsset\n payoutAsset\n optionAssetDecimals\n payoutAssetDecimals\n optionAssetSymbol\n payoutAssetSymbol\n optionAssetName\n payoutAssetName\n poolManager\n currency0\n currency1\n fee\n hooks\n tickSpacing\n }\n }\n`;\nexport const GetMarketVolumeDocument = gql`\n query GetMarketVolume($marketAddr: String!) {\n TimelockMarket(where: {address: {_eq: $marketAddr}}, limit: 1) {\n id\n address\n optionsCount\n tradersCount\n totalVolume\n totalPremium\n totalPayout\n totalProtocolFee\n }\n }\n`;\nexport const GetMarketDailyVolumeDocument = gql`\n query GetMarketDailyVolume($marketAddr: String!) {\n MarketDailyData(\n where: {market: {address: {_eq: $marketAddr}}}\n order_by: {date: asc}\n ) {\n id\n date\n totalVolume\n totalPremium\n totalPayout\n totalProtocolFee\n }\n }\n`;\nexport const GetMarketUserVolumeDocument = gql`\n query GetMarketUserVolume($marketAddr: String!, $userAddr: String!) {\n TimelockMarketUser(\n where: {address: {_eq: $userAddr}, market: {address: {_eq: $marketAddr}}}\n limit: 1\n ) {\n address\n totalVolume\n totalPayout\n totalPremium\n totalProtocolFee\n optionsCount\n }\n }\n`;\nexport const GetUserMarketOperatorsDocument = gql`\n query GetUserMarketOperators($userAddr: String!, $marketAddr: String!) {\n UserMarketOperator(\n where: {\n user: {address: {_eq: $userAddr}}\n market: {address: {_eq: $marketAddr}}\n }\n limit: 1000\n ) {\n id\n operator {\n address\n }\n canExtend\n canExercise\n canTransfer\n canMint\n spendingApproval\n }\n }\n`;\nexport const GetOptionEventsDocument = gql`\n query GetOptionEvents($marketAddr: String!, $optionId: numeric!) {\n MintOptionEvent(\n where: {\n option: {\n optionId: {_eq: $optionId}\n market: {address: {_eq: $marketAddr}}\n }\n }\n limit: 1000\n ) {\n id\n optionType\n strikeTick\n price\n expiresAt\n premium\n protocolFee\n liquidities\n timestamp\n blockNumber\n transactionHash\n }\n ExerciseOptionEvent(\n where: {\n option: {\n market: {address: {_eq: $marketAddr}}\n optionId: {_eq: $optionId}\n }\n }\n limit: 1000\n ) {\n id\n liquidities\n payout\n timestamp\n blockNumber\n transactionHash\n }\n ExtendOptionEvent(\n where: {\n option: {\n market: {address: {_eq: $marketAddr}}\n optionId: {_eq: $optionId}\n }\n }\n limit: 1000\n ) {\n id\n premium\n protocolFee\n price\n addedDuration\n timestamp\n blockNumber\n transactionHash\n }\n }\n`;\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n GetActiveUserOptions(\n variables: GetActiveUserOptionsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetActiveUserOptionsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetActiveUserOptionsQuery>({\n document: GetActiveUserOptionsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetActiveUserOptions',\n 'query',\n variables,\n );\n },\n GetActiveUserOptionsByMarket(\n variables: GetActiveUserOptionsByMarketQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetActiveUserOptionsByMarketQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetActiveUserOptionsByMarketQuery>({\n document: GetActiveUserOptionsByMarketDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetActiveUserOptionsByMarket',\n 'query',\n variables,\n );\n },\n GetClosedUserOptions(\n variables: GetClosedUserOptionsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetClosedUserOptionsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetClosedUserOptionsQuery>({\n document: GetClosedUserOptionsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetClosedUserOptions',\n 'query',\n variables,\n );\n },\n GetClosedUserOptionsByMarket(\n variables: GetClosedUserOptionsByMarketQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetClosedUserOptionsByMarketQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetClosedUserOptionsByMarketQuery>({\n document: GetClosedUserOptionsByMarketDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetClosedUserOptionsByMarket',\n 'query',\n variables,\n );\n },\n GetMarketData(\n variables: GetMarketDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketDataQuery>({\n document: GetMarketDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketData',\n 'query',\n variables,\n );\n },\n GetMarketVolume(\n variables: GetMarketVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketVolumeQuery>({\n document: GetMarketVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketVolume',\n 'query',\n variables,\n );\n },\n GetMarketDailyVolume(\n variables: GetMarketDailyVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketDailyVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketDailyVolumeQuery>({\n document: GetMarketDailyVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketDailyVolume',\n 'query',\n variables,\n );\n },\n GetMarketUserVolume(\n variables: GetMarketUserVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketUserVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketUserVolumeQuery>({\n document: GetMarketUserVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketUserVolume',\n 'query',\n variables,\n );\n },\n GetUserMarketOperators(\n variables: GetUserMarketOperatorsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetUserMarketOperatorsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetUserMarketOperatorsQuery>({\n document: GetUserMarketOperatorsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetUserMarketOperators',\n 'query',\n variables,\n );\n },\n GetOptionEvents(\n variables: GetOptionEventsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetOptionEventsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetOptionEventsQuery>({\n document: GetOptionEventsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetOptionEvents',\n 'query',\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","import {GraphQLClient, RequestOptions} from 'graphql-request';\nimport gql from 'graphql-tag';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends {[key: string]: unknown}> = {[K in keyof T]: T[K]};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<T extends {[key: string]: unknown}, K extends keyof T> = {\n [_ in K]?: never;\n};\nexport type Incremental<T> =\n | T\n | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never};\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: {input: string; output: string};\n String: {input: string; output: string};\n Boolean: {input: boolean; output: boolean};\n Int: {input: number; output: number};\n Float: {input: number; output: number};\n jsonb: {input: any; output: any};\n numeric: {input: any; output: any};\n timestamptz: {input: any; output: any};\n};\n\n/** Boolean expression to compare columns of type \"Boolean\". All fields are combined with logical 'AND'. */\nexport type BooleanComparisonExp = {\n _eq?: InputMaybe<Scalars['Boolean']['input']>;\n _gt?: InputMaybe<Scalars['Boolean']['input']>;\n _gte?: InputMaybe<Scalars['Boolean']['input']>;\n _in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Boolean']['input']>;\n _lte?: InputMaybe<Scalars['Boolean']['input']>;\n _neq?: InputMaybe<Scalars['Boolean']['input']>;\n _nin?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n};\n\n/** columns and relationships of \"HookStats\" */\nexport type HookStats = {\n __typename: 'HookStats';\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n firstPoolCreatedAt: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n poolCount: Scalars['numeric']['output'];\n swapCount: Scalars['numeric']['output'];\n tvl0: Scalars['numeric']['output'];\n tvl1: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"HookStats\". All fields are combined with a logical 'AND'. */\nexport type HookStatsBoolExp = {\n _and?: InputMaybe<Array<HookStatsBoolExp>>;\n _not?: InputMaybe<HookStatsBoolExp>;\n _or?: InputMaybe<Array<HookStatsBoolExp>>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n firstPoolCreatedAt?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n poolCount?: InputMaybe<NumericComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tvl0?: InputMaybe<NumericComparisonExp>;\n tvl1?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"HookStats\". */\nexport type HookStatsOrderBy = {\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n firstPoolCreatedAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n poolCount?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tvl0?: InputMaybe<OrderBy>;\n tvl1?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"HookStats\" */\nexport type HookStatsSelectColumn =\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'firstPoolCreatedAt'\n /** column name */\n | 'id'\n /** column name */\n | 'poolCount'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tvl0'\n /** column name */\n | 'tvl1'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** Streaming cursor of the table \"HookStats\" */\nexport type HookStatsStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: HookStatsStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type HookStatsStreamCursorValueInput = {\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n firstPoolCreatedAt?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n poolCount?: InputMaybe<Scalars['numeric']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tvl0?: InputMaybe<Scalars['numeric']['input']>;\n tvl1?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** Boolean expression to compare columns of type \"Int\". All fields are combined with logical 'AND'. */\nexport type IntComparisonExp = {\n _eq?: InputMaybe<Scalars['Int']['input']>;\n _gt?: InputMaybe<Scalars['Int']['input']>;\n _gte?: InputMaybe<Scalars['Int']['input']>;\n _in?: InputMaybe<Array<Scalars['Int']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Int']['input']>;\n _lte?: InputMaybe<Scalars['Int']['input']>;\n _neq?: InputMaybe<Scalars['Int']['input']>;\n _nin?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\n/** columns and relationships of \"LiquidityProvider\" */\nexport type LiquidityProvider = {\n __typename: 'LiquidityProvider';\n address: Scalars['String']['output'];\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n deposited0: Scalars['numeric']['output'];\n deposited1: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n positionCount: Scalars['numeric']['output'];\n /** An array relationship */\n positions: Array<Position>;\n withdrawn0: Scalars['numeric']['output'];\n withdrawn1: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"LiquidityProvider\" */\nexport type LiquidityProviderPositionsArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\n/** Boolean expression to filter rows from the table \"LiquidityProvider\". All fields are combined with a logical 'AND'. */\nexport type LiquidityProviderBoolExp = {\n _and?: InputMaybe<Array<LiquidityProviderBoolExp>>;\n _not?: InputMaybe<LiquidityProviderBoolExp>;\n _or?: InputMaybe<Array<LiquidityProviderBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n deposited0?: InputMaybe<NumericComparisonExp>;\n deposited1?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n positions?: InputMaybe<PositionBoolExp>;\n withdrawn0?: InputMaybe<NumericComparisonExp>;\n withdrawn1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"LiquidityProvider\". */\nexport type LiquidityProviderOrderBy = {\n address?: InputMaybe<OrderBy>;\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n positions_aggregate?: InputMaybe<PositionAggregateOrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"LiquidityProvider\" */\nexport type LiquidityProviderSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'deposited0'\n /** column name */\n | 'deposited1'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'withdrawn0'\n /** column name */\n | 'withdrawn1';\n\n/** Streaming cursor of the table \"LiquidityProvider\" */\nexport type LiquidityProviderStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: LiquidityProviderStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type LiquidityProviderStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n deposited0?: InputMaybe<Scalars['numeric']['input']>;\n deposited1?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n withdrawn0?: InputMaybe<Scalars['numeric']['input']>;\n withdrawn1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"ModifyLiquidity\" */\nexport type ModifyLiquidity = {\n __typename: 'ModifyLiquidity';\n amount: Scalars['numeric']['output'];\n amount0: Scalars['numeric']['output'];\n amount1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n logIndex: Scalars['numeric']['output'];\n origin: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sender: Scalars['String']['output'];\n tickLower: Scalars['numeric']['output'];\n tickUpper: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n /** An object relationship */\n transaction?: Maybe<Transaction>;\n transaction_id: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityAggregateOrderBy = {\n avg?: InputMaybe<ModifyLiquidityAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<ModifyLiquidityMaxOrderBy>;\n min?: InputMaybe<ModifyLiquidityMinOrderBy>;\n stddev?: InputMaybe<ModifyLiquidityStddevOrderBy>;\n stddev_pop?: InputMaybe<ModifyLiquidityStddevPopOrderBy>;\n stddev_samp?: InputMaybe<ModifyLiquidityStddevSampOrderBy>;\n sum?: InputMaybe<ModifyLiquiditySumOrderBy>;\n var_pop?: InputMaybe<ModifyLiquidityVarPopOrderBy>;\n var_samp?: InputMaybe<ModifyLiquidityVarSampOrderBy>;\n variance?: InputMaybe<ModifyLiquidityVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityAvgOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"ModifyLiquidity\". All fields are combined with a logical 'AND'. */\nexport type ModifyLiquidityBoolExp = {\n _and?: InputMaybe<Array<ModifyLiquidityBoolExp>>;\n _not?: InputMaybe<ModifyLiquidityBoolExp>;\n _or?: InputMaybe<Array<ModifyLiquidityBoolExp>>;\n amount?: InputMaybe<NumericComparisonExp>;\n amount0?: InputMaybe<NumericComparisonExp>;\n amount1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n logIndex?: InputMaybe<NumericComparisonExp>;\n origin?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sender?: InputMaybe<StringComparisonExp>;\n tickLower?: InputMaybe<NumericComparisonExp>;\n tickUpper?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n transaction?: InputMaybe<TransactionBoolExp>;\n transaction_id?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityMaxOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityMinOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"ModifyLiquidity\". */\nexport type ModifyLiquidityOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction?: InputMaybe<TransactionOrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquiditySelectColumn =\n /** column name */\n | 'amount'\n /** column name */\n | 'amount0'\n /** column name */\n | 'amount1'\n /** column name */\n | 'id'\n /** column name */\n | 'logIndex'\n /** column name */\n | 'origin'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sender'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'transaction_id';\n\n/** order by stddev() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStddevOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStddevPopOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStddevSampOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ModifyLiquidityStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ModifyLiquidityStreamCursorValueInput = {\n amount?: InputMaybe<Scalars['numeric']['input']>;\n amount0?: InputMaybe<Scalars['numeric']['input']>;\n amount1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n logIndex?: InputMaybe<Scalars['numeric']['input']>;\n origin?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sender?: InputMaybe<Scalars['String']['input']>;\n tickLower?: InputMaybe<Scalars['numeric']['input']>;\n tickUpper?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n transaction_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquiditySumOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityVarPopOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityVarSampOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityVarianceOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type Pool = {\n __typename: 'Pool';\n activePositionCount: Scalars['numeric']['output'];\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n feeGrowthGlobal0X128: Scalars['numeric']['output'];\n feeGrowthGlobal1X128: Scalars['numeric']['output'];\n feeTier: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n hooks: Scalars['String']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n lpCount: Scalars['numeric']['output'];\n /** An array relationship */\n modifyLiquidities: Array<ModifyLiquidity>;\n modifyLiquidityCount: Scalars['numeric']['output'];\n name: Scalars['String']['output'];\n observationIndex: Scalars['numeric']['output'];\n /** An array relationship */\n pool5MinuteData: Array<Pool5MinuteData>;\n /** An array relationship */\n poolDayData: Array<PoolDayData>;\n /** An array relationship */\n poolHourData: Array<PoolHourData>;\n poolId: Scalars['String']['output'];\n positionCount: Scalars['numeric']['output'];\n /** An array relationship */\n positions: Array<Position>;\n sqrtPrice: Scalars['numeric']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n swapCount: Scalars['numeric']['output'];\n /** An array relationship */\n swaps: Array<Swap>;\n tick: Scalars['numeric']['output'];\n tickSpacing: Scalars['numeric']['output'];\n /** An array relationship */\n ticks: Array<Tick>;\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n tvl0: Scalars['numeric']['output'];\n tvl1: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolModifyLiquiditiesArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPool5MinuteDataArgs = {\n distinct_on?: InputMaybe<Array<Pool5MinuteDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<Pool5MinuteDataOrderBy>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPoolDayDataArgs = {\n distinct_on?: InputMaybe<Array<PoolDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolDayDataOrderBy>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPoolHourDataArgs = {\n distinct_on?: InputMaybe<Array<PoolHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolHourDataOrderBy>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPositionsArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolSwapsArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolTicksArgs = {\n distinct_on?: InputMaybe<Array<TickSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TickOrderBy>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\n/** columns and relationships of \"Pool5MinuteData\" */\nexport type Pool5MinuteData = {\n __typename: 'Pool5MinuteData';\n close: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n high: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n low: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n open_: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataAggregateOrderBy = {\n avg?: InputMaybe<Pool5MinuteDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<Pool5MinuteDataMaxOrderBy>;\n min?: InputMaybe<Pool5MinuteDataMinOrderBy>;\n stddev?: InputMaybe<Pool5MinuteDataStddevOrderBy>;\n stddev_pop?: InputMaybe<Pool5MinuteDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<Pool5MinuteDataStddevSampOrderBy>;\n sum?: InputMaybe<Pool5MinuteDataSumOrderBy>;\n var_pop?: InputMaybe<Pool5MinuteDataVarPopOrderBy>;\n var_samp?: InputMaybe<Pool5MinuteDataVarSampOrderBy>;\n variance?: InputMaybe<Pool5MinuteDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataAvgOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Pool5MinuteData\". All fields are combined with a logical 'AND'. */\nexport type Pool5MinuteDataBoolExp = {\n _and?: InputMaybe<Array<Pool5MinuteDataBoolExp>>;\n _not?: InputMaybe<Pool5MinuteDataBoolExp>;\n _or?: InputMaybe<Array<Pool5MinuteDataBoolExp>>;\n close?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n high?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n low?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n open_?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataMaxOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataMinOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Pool5MinuteData\". */\nexport type Pool5MinuteDataOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataSelectColumn =\n /** column name */\n | 'close'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'high'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'low'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'open_'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** order by stddev() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStddevOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStddevPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStddevSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: Pool5MinuteDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type Pool5MinuteDataStreamCursorValueInput = {\n close?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n high?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n low?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n open_?: InputMaybe<Scalars['numeric']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataSumOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataVarPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataVarSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataVarianceOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"PoolDayData\" */\nexport type PoolDayData = {\n __typename: 'PoolDayData';\n close: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n high: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n low: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n open_: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"PoolDayData\" */\nexport type PoolDayDataAggregateOrderBy = {\n avg?: InputMaybe<PoolDayDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<PoolDayDataMaxOrderBy>;\n min?: InputMaybe<PoolDayDataMinOrderBy>;\n stddev?: InputMaybe<PoolDayDataStddevOrderBy>;\n stddev_pop?: InputMaybe<PoolDayDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<PoolDayDataStddevSampOrderBy>;\n sum?: InputMaybe<PoolDayDataSumOrderBy>;\n var_pop?: InputMaybe<PoolDayDataVarPopOrderBy>;\n var_samp?: InputMaybe<PoolDayDataVarSampOrderBy>;\n variance?: InputMaybe<PoolDayDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"PoolDayData\" */\nexport type PoolDayDataAvgOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"PoolDayData\". All fields are combined with a logical 'AND'. */\nexport type PoolDayDataBoolExp = {\n _and?: InputMaybe<Array<PoolDayDataBoolExp>>;\n _not?: InputMaybe<PoolDayDataBoolExp>;\n _or?: InputMaybe<Array<PoolDayDataBoolExp>>;\n close?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n high?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n low?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n open_?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"PoolDayData\" */\nexport type PoolDayDataMaxOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"PoolDayData\" */\nexport type PoolDayDataMinOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"PoolDayData\". */\nexport type PoolDayDataOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"PoolDayData\" */\nexport type PoolDayDataSelectColumn =\n /** column name */\n | 'close'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'high'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'low'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'open_'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** order by stddev() on columns of table \"PoolDayData\" */\nexport type PoolDayDataStddevOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"PoolDayData\" */\nexport type PoolDayDataStddevPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"PoolDayData\" */\nexport type PoolDayDataStddevSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"PoolDayData\" */\nexport type PoolDayDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolDayDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolDayDataStreamCursorValueInput = {\n close?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n high?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n low?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n open_?: InputMaybe<Scalars['numeric']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"PoolDayData\" */\nexport type PoolDayDataSumOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"PoolDayData\" */\nexport type PoolDayDataVarPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"PoolDayData\" */\nexport type PoolDayDataVarSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"PoolDayData\" */\nexport type PoolDayDataVarianceOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"PoolHourData\" */\nexport type PoolHourData = {\n __typename: 'PoolHourData';\n close: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n high: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n low: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n open_: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"PoolHourData\" */\nexport type PoolHourDataAggregateOrderBy = {\n avg?: InputMaybe<PoolHourDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<PoolHourDataMaxOrderBy>;\n min?: InputMaybe<PoolHourDataMinOrderBy>;\n stddev?: InputMaybe<PoolHourDataStddevOrderBy>;\n stddev_pop?: InputMaybe<PoolHourDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<PoolHourDataStddevSampOrderBy>;\n sum?: InputMaybe<PoolHourDataSumOrderBy>;\n var_pop?: InputMaybe<PoolHourDataVarPopOrderBy>;\n var_samp?: InputMaybe<PoolHourDataVarSampOrderBy>;\n variance?: InputMaybe<PoolHourDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"PoolHourData\" */\nexport type PoolHourDataAvgOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"PoolHourData\". All fields are combined with a logical 'AND'. */\nexport type PoolHourDataBoolExp = {\n _and?: InputMaybe<Array<PoolHourDataBoolExp>>;\n _not?: InputMaybe<PoolHourDataBoolExp>;\n _or?: InputMaybe<Array<PoolHourDataBoolExp>>;\n close?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n high?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n low?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n open_?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"PoolHourData\" */\nexport type PoolHourDataMaxOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"PoolHourData\" */\nexport type PoolHourDataMinOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"PoolHourData\". */\nexport type PoolHourDataOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"PoolHourData\" */\nexport type PoolHourDataSelectColumn =\n /** column name */\n | 'close'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'high'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'low'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'open_'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** order by stddev() on columns of table \"PoolHourData\" */\nexport type PoolHourDataStddevOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"PoolHourData\" */\nexport type PoolHourDataStddevPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"PoolHourData\" */\nexport type PoolHourDataStddevSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"PoolHourData\" */\nexport type PoolHourDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolHourDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolHourDataStreamCursorValueInput = {\n close?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n high?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n low?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n open_?: InputMaybe<Scalars['numeric']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"PoolHourData\" */\nexport type PoolHourDataSumOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"PoolHourData\" */\nexport type PoolHourDataVarPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"PoolHourData\" */\nexport type PoolHourDataVarSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"PoolHourData\" */\nexport type PoolHourDataVarianceOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"PoolUser\" */\nexport type PoolUser = {\n __typename: 'PoolUser';\n address: Scalars['String']['output'];\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n swapCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"PoolUser\". All fields are combined with a logical 'AND'. */\nexport type PoolUserBoolExp = {\n _and?: InputMaybe<Array<PoolUserBoolExp>>;\n _not?: InputMaybe<PoolUserBoolExp>;\n _or?: InputMaybe<Array<PoolUserBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"PoolUser\". */\nexport type PoolUserOrderBy = {\n address?: InputMaybe<OrderBy>;\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"PoolUser\" */\nexport type PoolUserSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'id'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** Streaming cursor of the table \"PoolUser\" */\nexport type PoolUserStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolUserStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolUserStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** Boolean expression to filter rows from the table \"Pool\". All fields are combined with a logical 'AND'. */\nexport type PoolBoolExp = {\n _and?: InputMaybe<Array<PoolBoolExp>>;\n _not?: InputMaybe<PoolBoolExp>;\n _or?: InputMaybe<Array<PoolBoolExp>>;\n activePositionCount?: InputMaybe<NumericComparisonExp>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n feeGrowthGlobal0X128?: InputMaybe<NumericComparisonExp>;\n feeGrowthGlobal1X128?: InputMaybe<NumericComparisonExp>;\n feeTier?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n hooks?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n lpCount?: InputMaybe<NumericComparisonExp>;\n modifyLiquidities?: InputMaybe<ModifyLiquidityBoolExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n name?: InputMaybe<StringComparisonExp>;\n observationIndex?: InputMaybe<NumericComparisonExp>;\n pool5MinuteData?: InputMaybe<Pool5MinuteDataBoolExp>;\n poolDayData?: InputMaybe<PoolDayDataBoolExp>;\n poolHourData?: InputMaybe<PoolHourDataBoolExp>;\n poolId?: InputMaybe<StringComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n positions?: InputMaybe<PositionBoolExp>;\n sqrtPrice?: InputMaybe<NumericComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n swaps?: InputMaybe<SwapBoolExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n tickSpacing?: InputMaybe<NumericComparisonExp>;\n ticks?: InputMaybe<TickBoolExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n tvl0?: InputMaybe<NumericComparisonExp>;\n tvl1?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"Pool\". */\nexport type PoolOrderBy = {\n activePositionCount?: InputMaybe<OrderBy>;\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthGlobal0X128?: InputMaybe<OrderBy>;\n feeGrowthGlobal1X128?: InputMaybe<OrderBy>;\n feeTier?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n hooks?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n lpCount?: InputMaybe<OrderBy>;\n modifyLiquidities_aggregate?: InputMaybe<ModifyLiquidityAggregateOrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n name?: InputMaybe<OrderBy>;\n observationIndex?: InputMaybe<OrderBy>;\n pool5MinuteData_aggregate?: InputMaybe<Pool5MinuteDataAggregateOrderBy>;\n poolDayData_aggregate?: InputMaybe<PoolDayDataAggregateOrderBy>;\n poolHourData_aggregate?: InputMaybe<PoolHourDataAggregateOrderBy>;\n poolId?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n positions_aggregate?: InputMaybe<PositionAggregateOrderBy>;\n sqrtPrice?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n swaps_aggregate?: InputMaybe<SwapAggregateOrderBy>;\n tick?: InputMaybe<OrderBy>;\n tickSpacing?: InputMaybe<OrderBy>;\n ticks_aggregate?: InputMaybe<TickAggregateOrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n tvl0?: InputMaybe<OrderBy>;\n tvl1?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Pool\" */\nexport type PoolSelectColumn =\n /** column name */\n | 'activePositionCount'\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'feeGrowthGlobal0X128'\n /** column name */\n | 'feeGrowthGlobal1X128'\n /** column name */\n | 'feeTier'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'hooks'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'lpCount'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'name'\n /** column name */\n | 'observationIndex'\n /** column name */\n | 'poolId'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'sqrtPrice'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'tickSpacing'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'tvl0'\n /** column name */\n | 'tvl1'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** Streaming cursor of the table \"Pool\" */\nexport type PoolStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolStreamCursorValueInput = {\n activePositionCount?: InputMaybe<Scalars['numeric']['input']>;\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthGlobal0X128?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthGlobal1X128?: InputMaybe<Scalars['numeric']['input']>;\n feeTier?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n hooks?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n lpCount?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n observationIndex?: InputMaybe<Scalars['numeric']['input']>;\n poolId?: InputMaybe<Scalars['String']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n sqrtPrice?: InputMaybe<Scalars['numeric']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n tickSpacing?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n tvl0?: InputMaybe<Scalars['numeric']['input']>;\n tvl1?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"Position\" */\nexport type Position = {\n __typename: 'Position';\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n deposited0: Scalars['numeric']['output'];\n deposited1: Scalars['numeric']['output'];\n feeGrowthInside0LastX128: Scalars['numeric']['output'];\n feeGrowthInside1LastX128: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n /** An object relationship */\n liquidityProvider?: Maybe<LiquidityProvider>;\n liquidityProvider_id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n owner: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n tickLower: Scalars['numeric']['output'];\n tickUpper: Scalars['numeric']['output'];\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n /** An object relationship */\n transaction?: Maybe<Transaction>;\n transaction_id: Scalars['String']['output'];\n withdrawn0: Scalars['numeric']['output'];\n withdrawn1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"Position\" */\nexport type PositionAggregateOrderBy = {\n avg?: InputMaybe<PositionAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<PositionMaxOrderBy>;\n min?: InputMaybe<PositionMinOrderBy>;\n stddev?: InputMaybe<PositionStddevOrderBy>;\n stddev_pop?: InputMaybe<PositionStddevPopOrderBy>;\n stddev_samp?: InputMaybe<PositionStddevSampOrderBy>;\n sum?: InputMaybe<PositionSumOrderBy>;\n var_pop?: InputMaybe<PositionVarPopOrderBy>;\n var_samp?: InputMaybe<PositionVarSampOrderBy>;\n variance?: InputMaybe<PositionVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Position\" */\nexport type PositionAvgOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Position\". All fields are combined with a logical 'AND'. */\nexport type PositionBoolExp = {\n _and?: InputMaybe<Array<PositionBoolExp>>;\n _not?: InputMaybe<PositionBoolExp>;\n _or?: InputMaybe<Array<PositionBoolExp>>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n deposited0?: InputMaybe<NumericComparisonExp>;\n deposited1?: InputMaybe<NumericComparisonExp>;\n feeGrowthInside0LastX128?: InputMaybe<NumericComparisonExp>;\n feeGrowthInside1LastX128?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n liquidityProvider?: InputMaybe<LiquidityProviderBoolExp>;\n liquidityProvider_id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n owner?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n tickLower?: InputMaybe<NumericComparisonExp>;\n tickUpper?: InputMaybe<NumericComparisonExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n transaction?: InputMaybe<TransactionBoolExp>;\n transaction_id?: InputMaybe<StringComparisonExp>;\n withdrawn0?: InputMaybe<NumericComparisonExp>;\n withdrawn1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"Position\" */\nexport type PositionMaxOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n liquidityProvider_id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Position\" */\nexport type PositionMinOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n liquidityProvider_id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Position\". */\nexport type PositionOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n liquidityProvider?: InputMaybe<LiquidityProviderOrderBy>;\n liquidityProvider_id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction?: InputMaybe<TransactionOrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Position\" */\nexport type PositionSelectColumn =\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'deposited0'\n /** column name */\n | 'deposited1'\n /** column name */\n | 'feeGrowthInside0LastX128'\n /** column name */\n | 'feeGrowthInside1LastX128'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'liquidityProvider_id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'owner'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'transaction_id'\n /** column name */\n | 'withdrawn0'\n /** column name */\n | 'withdrawn1';\n\n/** order by stddev() on columns of table \"Position\" */\nexport type PositionStddevOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Position\" */\nexport type PositionStddevPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Position\" */\nexport type PositionStddevSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Position\" */\nexport type PositionStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PositionStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PositionStreamCursorValueInput = {\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n deposited0?: InputMaybe<Scalars['numeric']['input']>;\n deposited1?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthInside0LastX128?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthInside1LastX128?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n liquidityProvider_id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n owner?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n tickLower?: InputMaybe<Scalars['numeric']['input']>;\n tickUpper?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n transaction_id?: InputMaybe<Scalars['String']['input']>;\n withdrawn0?: InputMaybe<Scalars['numeric']['input']>;\n withdrawn1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"Position\" */\nexport type PositionSumOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Position\" */\nexport type PositionVarPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Position\" */\nexport type PositionVarSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Position\" */\nexport type PositionVarianceOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringArrayComparisonExp = {\n /** is the array contained in the given array value */\n _contained_in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the array contain the given value */\n _contains?: InputMaybe<Array<Scalars['String']['input']>>;\n _eq?: InputMaybe<Array<Scalars['String']['input']>>;\n _gt?: InputMaybe<Array<Scalars['String']['input']>>;\n _gte?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Array<Scalars['String']['input']>>;\n _lte?: InputMaybe<Array<Scalars['String']['input']>>;\n _neq?: InputMaybe<Array<Scalars['String']['input']>>;\n _nin?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringComparisonExp = {\n _eq?: InputMaybe<Scalars['String']['input']>;\n _gt?: InputMaybe<Scalars['String']['input']>;\n _gte?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given case-insensitive pattern */\n _ilike?: InputMaybe<Scalars['String']['input']>;\n _in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column match the given POSIX regular expression, case insensitive */\n _iregex?: InputMaybe<Scalars['String']['input']>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n /** does the column match the given pattern */\n _like?: InputMaybe<Scalars['String']['input']>;\n _lt?: InputMaybe<Scalars['String']['input']>;\n _lte?: InputMaybe<Scalars['String']['input']>;\n _neq?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given case-insensitive pattern */\n _nilike?: InputMaybe<Scalars['String']['input']>;\n _nin?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column NOT match the given POSIX regular expression, case insensitive */\n _niregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given pattern */\n _nlike?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given POSIX regular expression, case sensitive */\n _nregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given SQL regular expression */\n _nsimilar?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given POSIX regular expression, case sensitive */\n _regex?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given SQL regular expression */\n _similar?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"Swap\" */\nexport type Swap = {\n __typename: 'Swap';\n amount0: Scalars['numeric']['output'];\n amount1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n logIndex?: Maybe<Scalars['numeric']['output']>;\n origin: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n recipient: Scalars['String']['output'];\n sender: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n /** An object relationship */\n transaction?: Maybe<Transaction>;\n transaction_id: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"Swap\" */\nexport type SwapAggregateOrderBy = {\n avg?: InputMaybe<SwapAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<SwapMaxOrderBy>;\n min?: InputMaybe<SwapMinOrderBy>;\n stddev?: InputMaybe<SwapStddevOrderBy>;\n stddev_pop?: InputMaybe<SwapStddevPopOrderBy>;\n stddev_samp?: InputMaybe<SwapStddevSampOrderBy>;\n sum?: InputMaybe<SwapSumOrderBy>;\n var_pop?: InputMaybe<SwapVarPopOrderBy>;\n var_samp?: InputMaybe<SwapVarSampOrderBy>;\n variance?: InputMaybe<SwapVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Swap\" */\nexport type SwapAvgOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Swap\". All fields are combined with a logical 'AND'. */\nexport type SwapBoolExp = {\n _and?: InputMaybe<Array<SwapBoolExp>>;\n _not?: InputMaybe<SwapBoolExp>;\n _or?: InputMaybe<Array<SwapBoolExp>>;\n amount0?: InputMaybe<NumericComparisonExp>;\n amount1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n logIndex?: InputMaybe<NumericComparisonExp>;\n origin?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n recipient?: InputMaybe<StringComparisonExp>;\n sender?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n transaction?: InputMaybe<TransactionBoolExp>;\n transaction_id?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"Swap\" */\nexport type SwapMaxOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n recipient?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Swap\" */\nexport type SwapMinOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n recipient?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Swap\". */\nexport type SwapOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n recipient?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction?: InputMaybe<TransactionOrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Swap\" */\nexport type SwapSelectColumn =\n /** column name */\n | 'amount0'\n /** column name */\n | 'amount1'\n /** column name */\n | 'id'\n /** column name */\n | 'logIndex'\n /** column name */\n | 'origin'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'recipient'\n /** column name */\n | 'sender'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'tick'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'transaction_id';\n\n/** order by stddev() on columns of table \"Swap\" */\nexport type SwapStddevOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Swap\" */\nexport type SwapStddevPopOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Swap\" */\nexport type SwapStddevSampOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Swap\" */\nexport type SwapStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: SwapStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type SwapStreamCursorValueInput = {\n amount0?: InputMaybe<Scalars['numeric']['input']>;\n amount1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n logIndex?: InputMaybe<Scalars['numeric']['input']>;\n origin?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n recipient?: InputMaybe<Scalars['String']['input']>;\n sender?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n transaction_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"Swap\" */\nexport type SwapSumOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Swap\" */\nexport type SwapVarPopOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Swap\" */\nexport type SwapVarSampOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Swap\" */\nexport type SwapVarianceOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"Tick\" */\nexport type Tick = {\n __typename: 'Tick';\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n feeGrowthOutside0X128: Scalars['numeric']['output'];\n feeGrowthOutside1X128: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidityGross: Scalars['numeric']['output'];\n liquidityNet: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n poolId?: Maybe<Scalars['String']['output']>;\n pool_id: Scalars['String']['output'];\n positionCount: Scalars['numeric']['output'];\n price0: Scalars['numeric']['output'];\n price1: Scalars['numeric']['output'];\n tickIdx: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"Tick\" */\nexport type TickAggregateOrderBy = {\n avg?: InputMaybe<TickAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TickMaxOrderBy>;\n min?: InputMaybe<TickMinOrderBy>;\n stddev?: InputMaybe<TickStddevOrderBy>;\n stddev_pop?: InputMaybe<TickStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TickStddevSampOrderBy>;\n sum?: InputMaybe<TickSumOrderBy>;\n var_pop?: InputMaybe<TickVarPopOrderBy>;\n var_samp?: InputMaybe<TickVarSampOrderBy>;\n variance?: InputMaybe<TickVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Tick\" */\nexport type TickAvgOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Tick\". All fields are combined with a logical 'AND'. */\nexport type TickBoolExp = {\n _and?: InputMaybe<Array<TickBoolExp>>;\n _not?: InputMaybe<TickBoolExp>;\n _or?: InputMaybe<Array<TickBoolExp>>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n feeGrowthOutside0X128?: InputMaybe<NumericComparisonExp>;\n feeGrowthOutside1X128?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidityGross?: InputMaybe<NumericComparisonExp>;\n liquidityNet?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n poolId?: InputMaybe<StringComparisonExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n price0?: InputMaybe<NumericComparisonExp>;\n price1?: InputMaybe<NumericComparisonExp>;\n tickIdx?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"Tick\" */\nexport type TickMaxOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n poolId?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Tick\" */\nexport type TickMinOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n poolId?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Tick\". */\nexport type TickOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n poolId?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Tick\" */\nexport type TickSelectColumn =\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'feeGrowthOutside0X128'\n /** column name */\n | 'feeGrowthOutside1X128'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidityGross'\n /** column name */\n | 'liquidityNet'\n /** column name */\n | 'poolId'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'price0'\n /** column name */\n | 'price1'\n /** column name */\n | 'tickIdx';\n\n/** order by stddev() on columns of table \"Tick\" */\nexport type TickStddevOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Tick\" */\nexport type TickStddevPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Tick\" */\nexport type TickStddevSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Tick\" */\nexport type TickStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TickStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TickStreamCursorValueInput = {\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthOutside0X128?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthOutside1X128?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidityGross?: InputMaybe<Scalars['numeric']['input']>;\n liquidityNet?: InputMaybe<Scalars['numeric']['input']>;\n poolId?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n price0?: InputMaybe<Scalars['numeric']['input']>;\n price1?: InputMaybe<Scalars['numeric']['input']>;\n tickIdx?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"Tick\" */\nexport type TickSumOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Tick\" */\nexport type TickVarPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Tick\" */\nexport type TickVarSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Tick\" */\nexport type TickVarianceOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"Token\" */\nexport type Token = {\n __typename: 'Token';\n decimals: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n lpCount: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n name: Scalars['String']['output'];\n poolCount: Scalars['numeric']['output'];\n positionCount: Scalars['numeric']['output'];\n swapCount: Scalars['numeric']['output'];\n symbol: Scalars['String']['output'];\n /** An array relationship */\n tokenDayData: Array<TokenDayData>;\n /** An array relationship */\n tokenHourData: Array<TokenHourData>;\n totalSupply: Scalars['numeric']['output'];\n tvl: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume: Scalars['numeric']['output'];\n whitelistPools: Array<Scalars['String']['output']>;\n};\n\n/** columns and relationships of \"Token\" */\nexport type TokenTokenDayDataArgs = {\n distinct_on?: InputMaybe<Array<TokenDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenDayDataOrderBy>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\n/** columns and relationships of \"Token\" */\nexport type TokenTokenHourDataArgs = {\n distinct_on?: InputMaybe<Array<TokenHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenHourDataOrderBy>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\n/** columns and relationships of \"TokenDayData\" */\nexport type TokenDayData = {\n __typename: 'TokenDayData';\n id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n /** An object relationship */\n token?: Maybe<Token>;\n token_id: Scalars['String']['output'];\n txCount: Scalars['numeric']['output'];\n volume: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"TokenDayData\" */\nexport type TokenDayDataAggregateOrderBy = {\n avg?: InputMaybe<TokenDayDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TokenDayDataMaxOrderBy>;\n min?: InputMaybe<TokenDayDataMinOrderBy>;\n stddev?: InputMaybe<TokenDayDataStddevOrderBy>;\n stddev_pop?: InputMaybe<TokenDayDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TokenDayDataStddevSampOrderBy>;\n sum?: InputMaybe<TokenDayDataSumOrderBy>;\n var_pop?: InputMaybe<TokenDayDataVarPopOrderBy>;\n var_samp?: InputMaybe<TokenDayDataVarSampOrderBy>;\n variance?: InputMaybe<TokenDayDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"TokenDayData\" */\nexport type TokenDayDataAvgOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TokenDayData\". All fields are combined with a logical 'AND'. */\nexport type TokenDayDataBoolExp = {\n _and?: InputMaybe<Array<TokenDayDataBoolExp>>;\n _not?: InputMaybe<TokenDayDataBoolExp>;\n _or?: InputMaybe<Array<TokenDayDataBoolExp>>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n token?: InputMaybe<TokenBoolExp>;\n token_id?: InputMaybe<StringComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"TokenDayData\" */\nexport type TokenDayDataMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TokenDayData\" */\nexport type TokenDayDataMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TokenDayData\". */\nexport type TokenDayDataOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token?: InputMaybe<TokenOrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TokenDayData\" */\nexport type TokenDayDataSelectColumn =\n /** column name */\n | 'id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'token_id'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume';\n\n/** order by stddev() on columns of table \"TokenDayData\" */\nexport type TokenDayDataStddevOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TokenDayData\" */\nexport type TokenDayDataStddevPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TokenDayData\" */\nexport type TokenDayDataStddevSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"TokenDayData\" */\nexport type TokenDayDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TokenDayDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TokenDayDataStreamCursorValueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n token_id?: InputMaybe<Scalars['String']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"TokenDayData\" */\nexport type TokenDayDataSumOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TokenDayData\" */\nexport type TokenDayDataVarPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TokenDayData\" */\nexport type TokenDayDataVarSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TokenDayData\" */\nexport type TokenDayDataVarianceOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"TokenHourData\" */\nexport type TokenHourData = {\n __typename: 'TokenHourData';\n id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n /** An object relationship */\n token?: Maybe<Token>;\n token_id: Scalars['String']['output'];\n txCount: Scalars['numeric']['output'];\n volume: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"TokenHourData\" */\nexport type TokenHourDataAggregateOrderBy = {\n avg?: InputMaybe<TokenHourDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TokenHourDataMaxOrderBy>;\n min?: InputMaybe<TokenHourDataMinOrderBy>;\n stddev?: InputMaybe<TokenHourDataStddevOrderBy>;\n stddev_pop?: InputMaybe<TokenHourDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TokenHourDataStddevSampOrderBy>;\n sum?: InputMaybe<TokenHourDataSumOrderBy>;\n var_pop?: InputMaybe<TokenHourDataVarPopOrderBy>;\n var_samp?: InputMaybe<TokenHourDataVarSampOrderBy>;\n variance?: InputMaybe<TokenHourDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"TokenHourData\" */\nexport type TokenHourDataAvgOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TokenHourData\". All fields are combined with a logical 'AND'. */\nexport type TokenHourDataBoolExp = {\n _and?: InputMaybe<Array<TokenHourDataBoolExp>>;\n _not?: InputMaybe<TokenHourDataBoolExp>;\n _or?: InputMaybe<Array<TokenHourDataBoolExp>>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n token?: InputMaybe<TokenBoolExp>;\n token_id?: InputMaybe<StringComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"TokenHourData\" */\nexport type TokenHourDataMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TokenHourData\" */\nexport type TokenHourDataMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TokenHourData\". */\nexport type TokenHourDataOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token?: InputMaybe<TokenOrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TokenHourData\" */\nexport type TokenHourDataSelectColumn =\n /** column name */\n | 'id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'token_id'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume';\n\n/** order by stddev() on columns of table \"TokenHourData\" */\nexport type TokenHourDataStddevOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TokenHourData\" */\nexport type TokenHourDataStddevPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TokenHourData\" */\nexport type TokenHourDataStddevSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"TokenHourData\" */\nexport type TokenHourDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TokenHourDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TokenHourDataStreamCursorValueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n token_id?: InputMaybe<Scalars['String']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"TokenHourData\" */\nexport type TokenHourDataSumOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TokenHourData\" */\nexport type TokenHourDataVarPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TokenHourData\" */\nexport type TokenHourDataVarSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TokenHourData\" */\nexport type TokenHourDataVarianceOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Token\". All fields are combined with a logical 'AND'. */\nexport type TokenBoolExp = {\n _and?: InputMaybe<Array<TokenBoolExp>>;\n _not?: InputMaybe<TokenBoolExp>;\n _or?: InputMaybe<Array<TokenBoolExp>>;\n decimals?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n lpCount?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n name?: InputMaybe<StringComparisonExp>;\n poolCount?: InputMaybe<NumericComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n symbol?: InputMaybe<StringComparisonExp>;\n tokenDayData?: InputMaybe<TokenDayDataBoolExp>;\n tokenHourData?: InputMaybe<TokenHourDataBoolExp>;\n totalSupply?: InputMaybe<NumericComparisonExp>;\n tvl?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume?: InputMaybe<NumericComparisonExp>;\n whitelistPools?: InputMaybe<StringArrayComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"Token\". */\nexport type TokenOrderBy = {\n decimals?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n lpCount?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n name?: InputMaybe<OrderBy>;\n poolCount?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n symbol?: InputMaybe<OrderBy>;\n tokenDayData_aggregate?: InputMaybe<TokenDayDataAggregateOrderBy>;\n tokenHourData_aggregate?: InputMaybe<TokenHourDataAggregateOrderBy>;\n totalSupply?: InputMaybe<OrderBy>;\n tvl?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n whitelistPools?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Token\" */\nexport type TokenSelectColumn =\n /** column name */\n | 'decimals'\n /** column name */\n | 'id'\n /** column name */\n | 'lpCount'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'name'\n /** column name */\n | 'poolCount'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'symbol'\n /** column name */\n | 'totalSupply'\n /** column name */\n | 'tvl'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume'\n /** column name */\n | 'whitelistPools';\n\n/** Streaming cursor of the table \"Token\" */\nexport type TokenStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TokenStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TokenStreamCursorValueInput = {\n decimals?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n lpCount?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n poolCount?: InputMaybe<Scalars['numeric']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n symbol?: InputMaybe<Scalars['String']['input']>;\n totalSupply?: InputMaybe<Scalars['numeric']['input']>;\n tvl?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume?: InputMaybe<Scalars['numeric']['input']>;\n whitelistPools?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** columns and relationships of \"Transaction\" */\nexport type Transaction = {\n __typename: 'Transaction';\n blockNumber: Scalars['numeric']['output'];\n gasPrice: Scalars['numeric']['output'];\n gasUsed: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An array relationship */\n modifyLiquidities: Array<ModifyLiquidity>;\n /** An array relationship */\n swaps: Array<Swap>;\n timestamp: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"Transaction\" */\nexport type TransactionModifyLiquiditiesArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\n/** columns and relationships of \"Transaction\" */\nexport type TransactionSwapsArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\n/** Boolean expression to filter rows from the table \"Transaction\". All fields are combined with a logical 'AND'. */\nexport type TransactionBoolExp = {\n _and?: InputMaybe<Array<TransactionBoolExp>>;\n _not?: InputMaybe<TransactionBoolExp>;\n _or?: InputMaybe<Array<TransactionBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n gasPrice?: InputMaybe<NumericComparisonExp>;\n gasUsed?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidities?: InputMaybe<ModifyLiquidityBoolExp>;\n swaps?: InputMaybe<SwapBoolExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"Transaction\". */\nexport type TransactionOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n gasPrice?: InputMaybe<OrderBy>;\n gasUsed?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n modifyLiquidities_aggregate?: InputMaybe<ModifyLiquidityAggregateOrderBy>;\n swaps_aggregate?: InputMaybe<SwapAggregateOrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Transaction\" */\nexport type TransactionSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'gasPrice'\n /** column name */\n | 'gasUsed'\n /** column name */\n | 'id'\n /** column name */\n | 'timestamp';\n\n/** Streaming cursor of the table \"Transaction\" */\nexport type TransactionStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TransactionStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TransactionStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n gasPrice?: InputMaybe<Scalars['numeric']['input']>;\n gasUsed?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"_meta\" */\nexport type Meta = {\n __typename: '_meta';\n bufferBlock?: Maybe<Scalars['Int']['output']>;\n chainId?: Maybe<Scalars['Int']['output']>;\n endBlock?: Maybe<Scalars['Int']['output']>;\n eventsProcessed?: Maybe<Scalars['Int']['output']>;\n firstEventBlock?: Maybe<Scalars['Int']['output']>;\n isReady?: Maybe<Scalars['Boolean']['output']>;\n progressBlock?: Maybe<Scalars['Int']['output']>;\n readyAt?: Maybe<Scalars['timestamptz']['output']>;\n sourceBlock?: Maybe<Scalars['Int']['output']>;\n startBlock?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Boolean expression to filter rows from the table \"_meta\". All fields are combined with a logical 'AND'. */\nexport type MetaBoolExp = {\n _and?: InputMaybe<Array<MetaBoolExp>>;\n _not?: InputMaybe<MetaBoolExp>;\n _or?: InputMaybe<Array<MetaBoolExp>>;\n bufferBlock?: InputMaybe<IntComparisonExp>;\n chainId?: InputMaybe<IntComparisonExp>;\n endBlock?: InputMaybe<IntComparisonExp>;\n eventsProcessed?: InputMaybe<IntComparisonExp>;\n firstEventBlock?: InputMaybe<IntComparisonExp>;\n isReady?: InputMaybe<BooleanComparisonExp>;\n progressBlock?: InputMaybe<IntComparisonExp>;\n readyAt?: InputMaybe<TimestamptzComparisonExp>;\n sourceBlock?: InputMaybe<IntComparisonExp>;\n startBlock?: InputMaybe<IntComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"_meta\". */\nexport type MetaOrderBy = {\n bufferBlock?: InputMaybe<OrderBy>;\n chainId?: InputMaybe<OrderBy>;\n endBlock?: InputMaybe<OrderBy>;\n eventsProcessed?: InputMaybe<OrderBy>;\n firstEventBlock?: InputMaybe<OrderBy>;\n isReady?: InputMaybe<OrderBy>;\n progressBlock?: InputMaybe<OrderBy>;\n readyAt?: InputMaybe<OrderBy>;\n sourceBlock?: InputMaybe<OrderBy>;\n startBlock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"_meta\" */\nexport type MetaSelectColumn =\n /** column name */\n | 'bufferBlock'\n /** column name */\n | 'chainId'\n /** column name */\n | 'endBlock'\n /** column name */\n | 'eventsProcessed'\n /** column name */\n | 'firstEventBlock'\n /** column name */\n | 'isReady'\n /** column name */\n | 'progressBlock'\n /** column name */\n | 'readyAt'\n /** column name */\n | 'sourceBlock'\n /** column name */\n | 'startBlock';\n\n/** Streaming cursor of the table \"_meta\" */\nexport type MetaStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MetaStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MetaStreamCursorValueInput = {\n bufferBlock?: InputMaybe<Scalars['Int']['input']>;\n chainId?: InputMaybe<Scalars['Int']['input']>;\n endBlock?: InputMaybe<Scalars['Int']['input']>;\n eventsProcessed?: InputMaybe<Scalars['Int']['input']>;\n firstEventBlock?: InputMaybe<Scalars['Int']['input']>;\n isReady?: InputMaybe<Scalars['Boolean']['input']>;\n progressBlock?: InputMaybe<Scalars['Int']['input']>;\n readyAt?: InputMaybe<Scalars['timestamptz']['input']>;\n sourceBlock?: InputMaybe<Scalars['Int']['input']>;\n startBlock?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** columns and relationships of \"chain_metadata\" */\nexport type ChainMetadata = {\n __typename: 'chain_metadata';\n block_height?: Maybe<Scalars['Int']['output']>;\n chain_id?: Maybe<Scalars['Int']['output']>;\n end_block?: Maybe<Scalars['Int']['output']>;\n first_event_block_number?: Maybe<Scalars['Int']['output']>;\n is_hyper_sync?: Maybe<Scalars['Boolean']['output']>;\n latest_fetched_block_number?: Maybe<Scalars['Int']['output']>;\n latest_processed_block?: Maybe<Scalars['Int']['output']>;\n num_batches_fetched?: Maybe<Scalars['Int']['output']>;\n num_events_processed?: Maybe<Scalars['Int']['output']>;\n start_block?: Maybe<Scalars['Int']['output']>;\n timestamp_caught_up_to_head_or_endblock?: Maybe<\n Scalars['timestamptz']['output']\n >;\n};\n\n/** Boolean expression to filter rows from the table \"chain_metadata\". All fields are combined with a logical 'AND'. */\nexport type ChainMetadataBoolExp = {\n _and?: InputMaybe<Array<ChainMetadataBoolExp>>;\n _not?: InputMaybe<ChainMetadataBoolExp>;\n _or?: InputMaybe<Array<ChainMetadataBoolExp>>;\n block_height?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n end_block?: InputMaybe<IntComparisonExp>;\n first_event_block_number?: InputMaybe<IntComparisonExp>;\n is_hyper_sync?: InputMaybe<BooleanComparisonExp>;\n latest_fetched_block_number?: InputMaybe<IntComparisonExp>;\n latest_processed_block?: InputMaybe<IntComparisonExp>;\n num_batches_fetched?: InputMaybe<IntComparisonExp>;\n num_events_processed?: InputMaybe<IntComparisonExp>;\n start_block?: InputMaybe<IntComparisonExp>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<TimestamptzComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"chain_metadata\". */\nexport type ChainMetadataOrderBy = {\n block_height?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n end_block?: InputMaybe<OrderBy>;\n first_event_block_number?: InputMaybe<OrderBy>;\n is_hyper_sync?: InputMaybe<OrderBy>;\n latest_fetched_block_number?: InputMaybe<OrderBy>;\n latest_processed_block?: InputMaybe<OrderBy>;\n num_batches_fetched?: InputMaybe<OrderBy>;\n num_events_processed?: InputMaybe<OrderBy>;\n start_block?: InputMaybe<OrderBy>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"chain_metadata\" */\nexport type ChainMetadataSelectColumn =\n /** column name */\n | 'block_height'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'end_block'\n /** column name */\n | 'first_event_block_number'\n /** column name */\n | 'is_hyper_sync'\n /** column name */\n | 'latest_fetched_block_number'\n /** column name */\n | 'latest_processed_block'\n /** column name */\n | 'num_batches_fetched'\n /** column name */\n | 'num_events_processed'\n /** column name */\n | 'start_block'\n /** column name */\n | 'timestamp_caught_up_to_head_or_endblock';\n\n/** Streaming cursor of the table \"chain_metadata\" */\nexport type ChainMetadataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ChainMetadataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ChainMetadataStreamCursorValueInput = {\n block_height?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n end_block?: InputMaybe<Scalars['Int']['input']>;\n first_event_block_number?: InputMaybe<Scalars['Int']['input']>;\n is_hyper_sync?: InputMaybe<Scalars['Boolean']['input']>;\n latest_fetched_block_number?: InputMaybe<Scalars['Int']['input']>;\n latest_processed_block?: InputMaybe<Scalars['Int']['input']>;\n num_batches_fetched?: InputMaybe<Scalars['Int']['input']>;\n num_events_processed?: InputMaybe<Scalars['Int']['input']>;\n start_block?: InputMaybe<Scalars['Int']['input']>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<\n Scalars['timestamptz']['input']\n >;\n};\n\n/** ordering argument of a cursor */\nexport type CursorOrdering =\n /** ascending ordering of the cursor */\n | 'ASC'\n /** descending ordering of the cursor */\n | 'DESC';\n\nexport type JsonbCastExp = {\n String?: InputMaybe<StringComparisonExp>;\n};\n\n/** Boolean expression to compare columns of type \"jsonb\". All fields are combined with logical 'AND'. */\nexport type JsonbComparisonExp = {\n _cast?: InputMaybe<JsonbCastExp>;\n /** is the column contained in the given json value */\n _contained_in?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the column contain the given json value at the top level */\n _contains?: InputMaybe<Scalars['jsonb']['input']>;\n _eq?: InputMaybe<Scalars['jsonb']['input']>;\n _gt?: InputMaybe<Scalars['jsonb']['input']>;\n _gte?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the string exist as a top-level key in the column */\n _has_key?: InputMaybe<Scalars['String']['input']>;\n /** do all of these strings exist as top-level keys in the column */\n _has_keys_all?: InputMaybe<Array<Scalars['String']['input']>>;\n /** do any of these strings exist as top-level keys in the column */\n _has_keys_any?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['jsonb']['input']>;\n _lte?: InputMaybe<Scalars['jsonb']['input']>;\n _neq?: InputMaybe<Scalars['jsonb']['input']>;\n _nin?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n};\n\n/** Boolean expression to compare columns of type \"numeric\". All fields are combined with logical 'AND'. */\nexport type NumericComparisonExp = {\n _eq?: InputMaybe<Scalars['numeric']['input']>;\n _gt?: InputMaybe<Scalars['numeric']['input']>;\n _gte?: InputMaybe<Scalars['numeric']['input']>;\n _in?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['numeric']['input']>;\n _lte?: InputMaybe<Scalars['numeric']['input']>;\n _neq?: InputMaybe<Scalars['numeric']['input']>;\n _nin?: InputMaybe<Array<Scalars['numeric']['input']>>;\n};\n\n/** column ordering options */\nexport type OrderBy =\n /** in ascending order, nulls last */\n | 'asc'\n /** in ascending order, nulls first */\n | 'asc_nulls_first'\n /** in ascending order, nulls last */\n | 'asc_nulls_last'\n /** in descending order, nulls first */\n | 'desc'\n /** in descending order, nulls first */\n | 'desc_nulls_first'\n /** in descending order, nulls last */\n | 'desc_nulls_last';\n\nexport type QueryRoot = {\n __typename: 'query_root';\n /** fetch data from the table: \"HookStats\" */\n HookStats: Array<HookStats>;\n /** fetch data from the table: \"HookStats\" using primary key columns */\n HookStats_by_pk?: Maybe<HookStats>;\n /** fetch data from the table: \"LiquidityProvider\" */\n LiquidityProvider: Array<LiquidityProvider>;\n /** fetch data from the table: \"LiquidityProvider\" using primary key columns */\n LiquidityProvider_by_pk?: Maybe<LiquidityProvider>;\n /** fetch data from the table: \"ModifyLiquidity\" */\n ModifyLiquidity: Array<ModifyLiquidity>;\n /** fetch data from the table: \"ModifyLiquidity\" using primary key columns */\n ModifyLiquidity_by_pk?: Maybe<ModifyLiquidity>;\n /** fetch data from the table: \"Pool\" */\n Pool: Array<Pool>;\n /** fetch data from the table: \"Pool5MinuteData\" */\n Pool5MinuteData: Array<Pool5MinuteData>;\n /** fetch data from the table: \"Pool5MinuteData\" using primary key columns */\n Pool5MinuteData_by_pk?: Maybe<Pool5MinuteData>;\n /** fetch data from the table: \"PoolDayData\" */\n PoolDayData: Array<PoolDayData>;\n /** fetch data from the table: \"PoolDayData\" using primary key columns */\n PoolDayData_by_pk?: Maybe<PoolDayData>;\n /** fetch data from the table: \"PoolHourData\" */\n PoolHourData: Array<PoolHourData>;\n /** fetch data from the table: \"PoolHourData\" using primary key columns */\n PoolHourData_by_pk?: Maybe<PoolHourData>;\n /** fetch data from the table: \"PoolUser\" */\n PoolUser: Array<PoolUser>;\n /** fetch data from the table: \"PoolUser\" using primary key columns */\n PoolUser_by_pk?: Maybe<PoolUser>;\n /** fetch data from the table: \"Pool\" using primary key columns */\n Pool_by_pk?: Maybe<Pool>;\n /** fetch data from the table: \"Position\" */\n Position: Array<Position>;\n /** fetch data from the table: \"Position\" using primary key columns */\n Position_by_pk?: Maybe<Position>;\n /** fetch data from the table: \"Swap\" */\n Swap: Array<Swap>;\n /** fetch data from the table: \"Swap\" using primary key columns */\n Swap_by_pk?: Maybe<Swap>;\n /** fetch data from the table: \"Tick\" */\n Tick: Array<Tick>;\n /** fetch data from the table: \"Tick\" using primary key columns */\n Tick_by_pk?: Maybe<Tick>;\n /** fetch data from the table: \"Token\" */\n Token: Array<Token>;\n /** fetch data from the table: \"TokenDayData\" */\n TokenDayData: Array<TokenDayData>;\n /** fetch data from the table: \"TokenDayData\" using primary key columns */\n TokenDayData_by_pk?: Maybe<TokenDayData>;\n /** fetch data from the table: \"TokenHourData\" */\n TokenHourData: Array<TokenHourData>;\n /** fetch data from the table: \"TokenHourData\" using primary key columns */\n TokenHourData_by_pk?: Maybe<TokenHourData>;\n /** fetch data from the table: \"Token\" using primary key columns */\n Token_by_pk?: Maybe<Token>;\n /** fetch data from the table: \"Transaction\" */\n Transaction: Array<Transaction>;\n /** fetch data from the table: \"Transaction\" using primary key columns */\n Transaction_by_pk?: Maybe<Transaction>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n};\n\nexport type QueryRootHookStatsArgs = {\n distinct_on?: InputMaybe<Array<HookStatsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<HookStatsOrderBy>>;\n where?: InputMaybe<HookStatsBoolExp>;\n};\n\nexport type QueryRootHookStatsByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootLiquidityProviderArgs = {\n distinct_on?: InputMaybe<Array<LiquidityProviderSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<LiquidityProviderOrderBy>>;\n where?: InputMaybe<LiquidityProviderBoolExp>;\n};\n\nexport type QueryRootLiquidityProviderByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootModifyLiquidityArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\nexport type QueryRootModifyLiquidityByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolArgs = {\n distinct_on?: InputMaybe<Array<PoolSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolOrderBy>>;\n where?: InputMaybe<PoolBoolExp>;\n};\n\nexport type QueryRootPool5MinuteDataArgs = {\n distinct_on?: InputMaybe<Array<Pool5MinuteDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<Pool5MinuteDataOrderBy>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\nexport type QueryRootPool5MinuteDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolDayDataArgs = {\n distinct_on?: InputMaybe<Array<PoolDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolDayDataOrderBy>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\nexport type QueryRootPoolDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolHourDataArgs = {\n distinct_on?: InputMaybe<Array<PoolHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolHourDataOrderBy>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\nexport type QueryRootPoolHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolUserArgs = {\n distinct_on?: InputMaybe<Array<PoolUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolUserOrderBy>>;\n where?: InputMaybe<PoolUserBoolExp>;\n};\n\nexport type QueryRootPoolUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPositionArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\nexport type QueryRootPositionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootSwapArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\nexport type QueryRootSwapByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTickArgs = {\n distinct_on?: InputMaybe<Array<TickSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TickOrderBy>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\nexport type QueryRootTickByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTokenArgs = {\n distinct_on?: InputMaybe<Array<TokenSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenOrderBy>>;\n where?: InputMaybe<TokenBoolExp>;\n};\n\nexport type QueryRootTokenDayDataArgs = {\n distinct_on?: InputMaybe<Array<TokenDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenDayDataOrderBy>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\nexport type QueryRootTokenDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTokenHourDataArgs = {\n distinct_on?: InputMaybe<Array<TokenHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenHourDataOrderBy>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\nexport type QueryRootTokenHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTokenByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTransactionArgs = {\n distinct_on?: InputMaybe<Array<TransactionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TransactionOrderBy>>;\n where?: InputMaybe<TransactionBoolExp>;\n};\n\nexport type QueryRootTransactionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type QueryRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type QueryRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type QueryRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEvents = {\n __typename: 'raw_events';\n block_fields: Scalars['jsonb']['output'];\n block_hash: Scalars['String']['output'];\n block_number: Scalars['Int']['output'];\n block_timestamp: Scalars['Int']['output'];\n chain_id: Scalars['Int']['output'];\n contract_name: Scalars['String']['output'];\n event_id: Scalars['numeric']['output'];\n event_name: Scalars['String']['output'];\n log_index: Scalars['Int']['output'];\n params: Scalars['jsonb']['output'];\n serial: Scalars['Int']['output'];\n src_address: Scalars['String']['output'];\n transaction_fields: Scalars['jsonb']['output'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsBlockFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsParamsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsTransactionFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to filter rows from the table \"raw_events\". All fields are combined with a logical 'AND'. */\nexport type RawEventsBoolExp = {\n _and?: InputMaybe<Array<RawEventsBoolExp>>;\n _not?: InputMaybe<RawEventsBoolExp>;\n _or?: InputMaybe<Array<RawEventsBoolExp>>;\n block_fields?: InputMaybe<JsonbComparisonExp>;\n block_hash?: InputMaybe<StringComparisonExp>;\n block_number?: InputMaybe<IntComparisonExp>;\n block_timestamp?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n contract_name?: InputMaybe<StringComparisonExp>;\n event_id?: InputMaybe<NumericComparisonExp>;\n event_name?: InputMaybe<StringComparisonExp>;\n log_index?: InputMaybe<IntComparisonExp>;\n params?: InputMaybe<JsonbComparisonExp>;\n serial?: InputMaybe<IntComparisonExp>;\n src_address?: InputMaybe<StringComparisonExp>;\n transaction_fields?: InputMaybe<JsonbComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"raw_events\". */\nexport type RawEventsOrderBy = {\n block_fields?: InputMaybe<OrderBy>;\n block_hash?: InputMaybe<OrderBy>;\n block_number?: InputMaybe<OrderBy>;\n block_timestamp?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n contract_name?: InputMaybe<OrderBy>;\n event_id?: InputMaybe<OrderBy>;\n event_name?: InputMaybe<OrderBy>;\n log_index?: InputMaybe<OrderBy>;\n params?: InputMaybe<OrderBy>;\n serial?: InputMaybe<OrderBy>;\n src_address?: InputMaybe<OrderBy>;\n transaction_fields?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"raw_events\" */\nexport type RawEventsSelectColumn =\n /** column name */\n | 'block_fields'\n /** column name */\n | 'block_hash'\n /** column name */\n | 'block_number'\n /** column name */\n | 'block_timestamp'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'contract_name'\n /** column name */\n | 'event_id'\n /** column name */\n | 'event_name'\n /** column name */\n | 'log_index'\n /** column name */\n | 'params'\n /** column name */\n | 'serial'\n /** column name */\n | 'src_address'\n /** column name */\n | 'transaction_fields';\n\n/** Streaming cursor of the table \"raw_events\" */\nexport type RawEventsStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: RawEventsStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type RawEventsStreamCursorValueInput = {\n block_fields?: InputMaybe<Scalars['jsonb']['input']>;\n block_hash?: InputMaybe<Scalars['String']['input']>;\n block_number?: InputMaybe<Scalars['Int']['input']>;\n block_timestamp?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n contract_name?: InputMaybe<Scalars['String']['input']>;\n event_id?: InputMaybe<Scalars['numeric']['input']>;\n event_name?: InputMaybe<Scalars['String']['input']>;\n log_index?: InputMaybe<Scalars['Int']['input']>;\n params?: InputMaybe<Scalars['jsonb']['input']>;\n serial?: InputMaybe<Scalars['Int']['input']>;\n src_address?: InputMaybe<Scalars['String']['input']>;\n transaction_fields?: InputMaybe<Scalars['jsonb']['input']>;\n};\n\nexport type SubscriptionRoot = {\n __typename: 'subscription_root';\n /** fetch data from the table: \"HookStats\" */\n HookStats: Array<HookStats>;\n /** fetch data from the table: \"HookStats\" using primary key columns */\n HookStats_by_pk?: Maybe<HookStats>;\n /** fetch data from the table in a streaming manner: \"HookStats\" */\n HookStats_stream: Array<HookStats>;\n /** fetch data from the table: \"LiquidityProvider\" */\n LiquidityProvider: Array<LiquidityProvider>;\n /** fetch data from the table: \"LiquidityProvider\" using primary key columns */\n LiquidityProvider_by_pk?: Maybe<LiquidityProvider>;\n /** fetch data from the table in a streaming manner: \"LiquidityProvider\" */\n LiquidityProvider_stream: Array<LiquidityProvider>;\n /** fetch data from the table: \"ModifyLiquidity\" */\n ModifyLiquidity: Array<ModifyLiquidity>;\n /** fetch data from the table: \"ModifyLiquidity\" using primary key columns */\n ModifyLiquidity_by_pk?: Maybe<ModifyLiquidity>;\n /** fetch data from the table in a streaming manner: \"ModifyLiquidity\" */\n ModifyLiquidity_stream: Array<ModifyLiquidity>;\n /** fetch data from the table: \"Pool\" */\n Pool: Array<Pool>;\n /** fetch data from the table: \"Pool5MinuteData\" */\n Pool5MinuteData: Array<Pool5MinuteData>;\n /** fetch data from the table: \"Pool5MinuteData\" using primary key columns */\n Pool5MinuteData_by_pk?: Maybe<Pool5MinuteData>;\n /** fetch data from the table in a streaming manner: \"Pool5MinuteData\" */\n Pool5MinuteData_stream: Array<Pool5MinuteData>;\n /** fetch data from the table: \"PoolDayData\" */\n PoolDayData: Array<PoolDayData>;\n /** fetch data from the table: \"PoolDayData\" using primary key columns */\n PoolDayData_by_pk?: Maybe<PoolDayData>;\n /** fetch data from the table in a streaming manner: \"PoolDayData\" */\n PoolDayData_stream: Array<PoolDayData>;\n /** fetch data from the table: \"PoolHourData\" */\n PoolHourData: Array<PoolHourData>;\n /** fetch data from the table: \"PoolHourData\" using primary key columns */\n PoolHourData_by_pk?: Maybe<PoolHourData>;\n /** fetch data from the table in a streaming manner: \"PoolHourData\" */\n PoolHourData_stream: Array<PoolHourData>;\n /** fetch data from the table: \"PoolUser\" */\n PoolUser: Array<PoolUser>;\n /** fetch data from the table: \"PoolUser\" using primary key columns */\n PoolUser_by_pk?: Maybe<PoolUser>;\n /** fetch data from the table in a streaming manner: \"PoolUser\" */\n PoolUser_stream: Array<PoolUser>;\n /** fetch data from the table: \"Pool\" using primary key columns */\n Pool_by_pk?: Maybe<Pool>;\n /** fetch data from the table in a streaming manner: \"Pool\" */\n Pool_stream: Array<Pool>;\n /** fetch data from the table: \"Position\" */\n Position: Array<Position>;\n /** fetch data from the table: \"Position\" using primary key columns */\n Position_by_pk?: Maybe<Position>;\n /** fetch data from the table in a streaming manner: \"Position\" */\n Position_stream: Array<Position>;\n /** fetch data from the table: \"Swap\" */\n Swap: Array<Swap>;\n /** fetch data from the table: \"Swap\" using primary key columns */\n Swap_by_pk?: Maybe<Swap>;\n /** fetch data from the table in a streaming manner: \"Swap\" */\n Swap_stream: Array<Swap>;\n /** fetch data from the table: \"Tick\" */\n Tick: Array<Tick>;\n /** fetch data from the table: \"Tick\" using primary key columns */\n Tick_by_pk?: Maybe<Tick>;\n /** fetch data from the table in a streaming manner: \"Tick\" */\n Tick_stream: Array<Tick>;\n /** fetch data from the table: \"Token\" */\n Token: Array<Token>;\n /** fetch data from the table: \"TokenDayData\" */\n TokenDayData: Array<TokenDayData>;\n /** fetch data from the table: \"TokenDayData\" using primary key columns */\n TokenDayData_by_pk?: Maybe<TokenDayData>;\n /** fetch data from the table in a streaming manner: \"TokenDayData\" */\n TokenDayData_stream: Array<TokenDayData>;\n /** fetch data from the table: \"TokenHourData\" */\n TokenHourData: Array<TokenHourData>;\n /** fetch data from the table: \"TokenHourData\" using primary key columns */\n TokenHourData_by_pk?: Maybe<TokenHourData>;\n /** fetch data from the table in a streaming manner: \"TokenHourData\" */\n TokenHourData_stream: Array<TokenHourData>;\n /** fetch data from the table: \"Token\" using primary key columns */\n Token_by_pk?: Maybe<Token>;\n /** fetch data from the table in a streaming manner: \"Token\" */\n Token_stream: Array<Token>;\n /** fetch data from the table: \"Transaction\" */\n Transaction: Array<Transaction>;\n /** fetch data from the table: \"Transaction\" using primary key columns */\n Transaction_by_pk?: Maybe<Transaction>;\n /** fetch data from the table in a streaming manner: \"Transaction\" */\n Transaction_stream: Array<Transaction>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table in a streaming manner: \"_meta\" */\n _meta_stream: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table in a streaming manner: \"chain_metadata\" */\n chain_metadata_stream: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n /** fetch data from the table in a streaming manner: \"raw_events\" */\n raw_events_stream: Array<RawEvents>;\n};\n\nexport type SubscriptionRootHookStatsArgs = {\n distinct_on?: InputMaybe<Array<HookStatsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<HookStatsOrderBy>>;\n where?: InputMaybe<HookStatsBoolExp>;\n};\n\nexport type SubscriptionRootHookStatsByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootHookStatsStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<HookStatsStreamCursorInput>>;\n where?: InputMaybe<HookStatsBoolExp>;\n};\n\nexport type SubscriptionRootLiquidityProviderArgs = {\n distinct_on?: InputMaybe<Array<LiquidityProviderSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<LiquidityProviderOrderBy>>;\n where?: InputMaybe<LiquidityProviderBoolExp>;\n};\n\nexport type SubscriptionRootLiquidityProviderByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootLiquidityProviderStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<LiquidityProviderStreamCursorInput>>;\n where?: InputMaybe<LiquidityProviderBoolExp>;\n};\n\nexport type SubscriptionRootModifyLiquidityArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\nexport type SubscriptionRootModifyLiquidityByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootModifyLiquidityStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ModifyLiquidityStreamCursorInput>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\nexport type SubscriptionRootPoolArgs = {\n distinct_on?: InputMaybe<Array<PoolSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolOrderBy>>;\n where?: InputMaybe<PoolBoolExp>;\n};\n\nexport type SubscriptionRootPool5MinuteDataArgs = {\n distinct_on?: InputMaybe<Array<Pool5MinuteDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<Pool5MinuteDataOrderBy>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\nexport type SubscriptionRootPool5MinuteDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPool5MinuteDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<Pool5MinuteDataStreamCursorInput>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolDayDataArgs = {\n distinct_on?: InputMaybe<Array<PoolDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolDayDataOrderBy>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolDayDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolDayDataStreamCursorInput>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolHourDataArgs = {\n distinct_on?: InputMaybe<Array<PoolHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolHourDataOrderBy>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolHourDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolHourDataStreamCursorInput>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolUserArgs = {\n distinct_on?: InputMaybe<Array<PoolUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolUserOrderBy>>;\n where?: InputMaybe<PoolUserBoolExp>;\n};\n\nexport type SubscriptionRootPoolUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolUserStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolUserStreamCursorInput>>;\n where?: InputMaybe<PoolUserBoolExp>;\n};\n\nexport type SubscriptionRootPoolByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolStreamCursorInput>>;\n where?: InputMaybe<PoolBoolExp>;\n};\n\nexport type SubscriptionRootPositionArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\nexport type SubscriptionRootPositionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPositionStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PositionStreamCursorInput>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\nexport type SubscriptionRootSwapArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\nexport type SubscriptionRootSwapByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootSwapStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<SwapStreamCursorInput>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\nexport type SubscriptionRootTickArgs = {\n distinct_on?: InputMaybe<Array<TickSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TickOrderBy>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\nexport type SubscriptionRootTickByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTickStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TickStreamCursorInput>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\nexport type SubscriptionRootTokenArgs = {\n distinct_on?: InputMaybe<Array<TokenSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenOrderBy>>;\n where?: InputMaybe<TokenBoolExp>;\n};\n\nexport type SubscriptionRootTokenDayDataArgs = {\n distinct_on?: InputMaybe<Array<TokenDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenDayDataOrderBy>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTokenDayDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TokenDayDataStreamCursorInput>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenHourDataArgs = {\n distinct_on?: InputMaybe<Array<TokenHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenHourDataOrderBy>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTokenHourDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TokenHourDataStreamCursorInput>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTokenStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TokenStreamCursorInput>>;\n where?: InputMaybe<TokenBoolExp>;\n};\n\nexport type SubscriptionRootTransactionArgs = {\n distinct_on?: InputMaybe<Array<TransactionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TransactionOrderBy>>;\n where?: InputMaybe<TransactionBoolExp>;\n};\n\nexport type SubscriptionRootTransactionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTransactionStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TransactionStreamCursorInput>>;\n where?: InputMaybe<TransactionBoolExp>;\n};\n\nexport type SubscriptionRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootMetaStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MetaStreamCursorInput>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ChainMetadataStreamCursorInput>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\nexport type SubscriptionRootRawEventsStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<RawEventsStreamCursorInput>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\n/** Boolean expression to compare columns of type \"timestamptz\". All fields are combined with logical 'AND'. */\nexport type TimestamptzComparisonExp = {\n _eq?: InputMaybe<Scalars['timestamptz']['input']>;\n _gt?: InputMaybe<Scalars['timestamptz']['input']>;\n _gte?: InputMaybe<Scalars['timestamptz']['input']>;\n _in?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['timestamptz']['input']>;\n _lte?: InputMaybe<Scalars['timestamptz']['input']>;\n _neq?: InputMaybe<Scalars['timestamptz']['input']>;\n _nin?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n};\n\nexport type GetPoolVolumeQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n}>;\n\nexport type GetPoolVolumeQuery = {\n __typename: 'query_root';\n Pool: Array<{\n __typename: 'Pool';\n id: string;\n volume0: any;\n volume1: any;\n fees0: any;\n fees1: any;\n txCount: any;\n swapCount: any;\n modifyLiquidityCount: any;\n positionCount: any;\n }>;\n};\n\nexport type GetPoolUserVolumeQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetPoolUserVolumeQuery = {\n __typename: 'query_root';\n PoolUser: Array<{\n __typename: 'PoolUser';\n address: string;\n volume0: any;\n volume1: any;\n fees0: any;\n fees1: any;\n swapCount: any;\n }>;\n};\n\nexport type GetLpFeesQueryVariables = Exact<{\n lpId: Scalars['String']['input'];\n}>;\n\nexport type GetLpFeesQuery = {\n __typename: 'query_root';\n LiquidityProvider: Array<{\n __typename: 'LiquidityProvider';\n id: string;\n fees0: any;\n fees1: any;\n }>;\n};\n\nexport type GetPoolDayDataQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n endTimestamp?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n}>;\n\nexport type GetPoolDayDataQuery = {\n __typename: 'query_root';\n PoolDayData: Array<{\n __typename: 'PoolDayData';\n startTimestamp: number;\n volume0: any;\n volume1: any;\n open_: any;\n high: any;\n low: any;\n close: any;\n sqrtPriceX96: any;\n }>;\n};\n\nexport type GetPoolHourDataQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n endTimestamp?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n}>;\n\nexport type GetPoolHourDataQuery = {\n __typename: 'query_root';\n PoolHourData: Array<{\n __typename: 'PoolHourData';\n startTimestamp: number;\n volume0: any;\n volume1: any;\n open_: any;\n high: any;\n low: any;\n close: any;\n sqrtPriceX96: any;\n }>;\n};\n\nexport type GetPool5MinuteDataQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n endTimestamp?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n}>;\n\nexport type GetPool5MinuteDataQuery = {\n __typename: 'query_root';\n Pool5MinuteData: Array<{\n __typename: 'Pool5MinuteData';\n startTimestamp: number;\n volume0: any;\n volume1: any;\n open_: any;\n high: any;\n low: any;\n close: any;\n sqrtPriceX96: any;\n }>;\n};\n\nexport const GetPoolVolumeDocument = gql`\n query GetPoolVolume($poolId: String!) {\n Pool(where: {id: {_eq: $poolId}}) {\n id\n volume0\n volume1\n fees0\n fees1\n txCount\n swapCount\n modifyLiquidityCount\n positionCount\n }\n }\n`;\nexport const GetPoolUserVolumeDocument = gql`\n query GetPoolUserVolume($poolId: String!, $userAddr: String!) {\n PoolUser(where: {pool: {id: {_eq: $poolId}}, address: {_eq: $userAddr}}) {\n address\n volume0\n volume1\n fees0\n fees1\n swapCount\n }\n }\n`;\nexport const GetLpFeesDocument = gql`\n query GetLPFees($lpId: String!) {\n LiquidityProvider(where: {id: {_eq: $lpId}}) {\n id\n fees0\n fees1\n }\n }\n`;\nexport const GetPoolDayDataDocument = gql`\n query GetPoolDayData(\n $poolId: String!\n $startTimestamp: Int\n $endTimestamp: Int\n $limit: Int\n $offset: Int\n ) {\n PoolDayData(\n where: {\n pool: {id: {_eq: $poolId}}\n startTimestamp: {_gte: $startTimestamp, _lte: $endTimestamp}\n }\n order_by: {startTimestamp: asc}\n limit: $limit\n offset: $offset\n ) {\n startTimestamp\n volume0\n volume1\n open_\n high\n low\n close\n sqrtPriceX96\n }\n }\n`;\nexport const GetPoolHourDataDocument = gql`\n query GetPoolHourData(\n $poolId: String!\n $startTimestamp: Int\n $endTimestamp: Int\n $limit: Int\n $offset: Int\n ) {\n PoolHourData(\n where: {\n pool: {id: {_eq: $poolId}}\n startTimestamp: {_gte: $startTimestamp, _lte: $endTimestamp}\n }\n order_by: {startTimestamp: asc}\n limit: $limit\n offset: $offset\n ) {\n startTimestamp\n volume0\n volume1\n open_\n high\n low\n close\n sqrtPriceX96\n }\n }\n`;\nexport const GetPool5MinuteDataDocument = gql`\n query GetPool5MinuteData(\n $poolId: String!\n $startTimestamp: Int\n $endTimestamp: Int\n $limit: Int\n $offset: Int\n ) {\n Pool5MinuteData(\n where: {\n pool: {id: {_eq: $poolId}}\n startTimestamp: {_gte: $startTimestamp, _lte: $endTimestamp}\n }\n order_by: {startTimestamp: asc}\n limit: $limit\n offset: $offset\n ) {\n startTimestamp\n volume0\n volume1\n open_\n high\n low\n close\n sqrtPriceX96\n }\n }\n`;\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n GetPoolVolume(\n variables: GetPoolVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolVolumeQuery>({\n document: GetPoolVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolVolume',\n 'query',\n variables,\n );\n },\n GetPoolUserVolume(\n variables: GetPoolUserVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolUserVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolUserVolumeQuery>({\n document: GetPoolUserVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolUserVolume',\n 'query',\n variables,\n );\n },\n GetLPFees(\n variables: GetLpFeesQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetLpFeesQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetLpFeesQuery>({\n document: GetLpFeesDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetLPFees',\n 'query',\n variables,\n );\n },\n GetPoolDayData(\n variables: GetPoolDayDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolDayDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolDayDataQuery>({\n document: GetPoolDayDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolDayData',\n 'query',\n variables,\n );\n },\n GetPoolHourData(\n variables: GetPoolHourDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolHourDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolHourDataQuery>({\n document: GetPoolHourDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolHourData',\n 'query',\n variables,\n );\n },\n GetPool5MinuteData(\n variables: GetPool5MinuteDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPool5MinuteDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPool5MinuteDataQuery>({\n document: GetPool5MinuteDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPool5MinuteData',\n 'query',\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","import type {Address, Hex} from 'viem';\n\nexport type MintPerpBody = {\n marketAddr: Address;\n optionType: 'CALL' | 'PUT';\n amount: bigint;\n duration: number;\n strikeTick: number;\n};\n\nexport type ExercisePerpBody = {\n marketAddr: Address;\n optionId: bigint;\n liquidities: bigint[];\n};\n\nexport class PerpsOperator {\n #baseUrl: string;\n auth?: {message: string; signature: Hex};\n\n constructor(baseUrl: string) {\n this.#baseUrl = baseUrl;\n }\n\n #request = async <T>(path: string, body?: unknown) => {\n const url = new URL(path, this.#baseUrl);\n const res = await fetch(url, {\n method: body ? 'POST' : 'GET',\n headers: {\n Connection: 'keep-alive',\n 'Content-Type': 'application/json',\n 'Keep-Alive': 'timeout=120',\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n if (res.ok) {\n const {data} = (await res.json()) as {data: T};\n return data;\n }\n const resText = await res.text();\n\n try {\n const error = JSON.parse(resText) as {error: string};\n throw new Error(`${res.status} ${res.statusText}: ${error.error}`);\n } catch (error) {\n throw new Error(`${res.status} ${res.statusText}: ${resText}`);\n }\n };\n\n getOperatorAddr = async (): Promise<Address> => {\n const {address} = await this.#request<{address: Address}>(\n 'api/operator/address',\n );\n return address;\n };\n\n genAuthMessage = async (userAddr: Address): Promise<string> => {\n const {message} = await this.#request<{message: string}>('api/auth/gen', {\n userAddr,\n });\n return message;\n };\n\n validateAuthMessage = async (message: string, signature: Hex) => {\n const {address, createdAt, validUntil} = await this.#request<{\n address: Address;\n createdAt: number;\n validUntil: number;\n }>('api/auth/validate', {message, signature});\n return {address, createdAt, validUntil};\n };\n\n setAuth = (message: string, signature: Hex) => {\n this.auth = {message, signature};\n };\n\n getUserPerps = async (\n userAddr: Address,\n marketAddr?: Address,\n type?: 'active' | 'closed',\n offset = 0,\n limit = 1000,\n ) => {\n const params = new URLSearchParams({\n offset: offset.toString(),\n limit: limit.toString(),\n });\n if (type) params.append('type', type);\n if (marketAddr) params.append('marketAddr', marketAddr);\n\n const url = `api/positions/${userAddr}?${params.toString()}`;\n\n const data = await this.#request<\n {\n id: string;\n ownerAddr: Address;\n marketAddr: Address;\n optionId: string;\n perpDuration: number;\n expiresAt: number;\n closed: boolean;\n }[]\n >(url);\n\n return data.map(p => ({...p, optionId: BigInt(p.optionId)}));\n };\n\n mintPerp = async (body: MintPerpBody) => {\n if (!this.auth) {\n throw new Error(\n 'Authentication required. Call setAuth() with authMessage and signature before exercising perps.',\n );\n }\n const {txHash, optionId} = await this.#request<{\n txHash: Hex;\n optionId: string;\n }>('api/positions/mint', {\n ...body,\n amount: body.amount.toString(),\n auth: this.auth,\n });\n return {txHash, optionId: BigInt(optionId)};\n };\n\n exercisePerp = async (body: ExercisePerpBody) => {\n if (!this.auth) {\n throw new Error(\n 'Authentication required. Call setAuth() with authMessage and signature before exercising perps.',\n );\n }\n const {txHash, optionId} = await this.#request<{\n txHash: Hex;\n optionId: string;\n }>('api/positions/exercise', {\n ...body,\n optionId: body.optionId.toString(),\n liquidities: body.liquidities.map(l => l.toString()),\n auth: this.auth,\n });\n return {txHash, optionId: BigInt(optionId)};\n };\n}\n","'use client';\nimport type {Address} from 'viem';\nimport React, {createContext, useContext, useMemo, type ReactNode} from 'react';\nimport {GraphQLClient} from 'graphql-request';\n\nimport {getSdk as getTimelockGraphqlSdk} from '~/generated/timelock';\nimport {getSdk as getUniV4GraphqlSdk} from '~/generated/univ4';\n\nimport {type TimelockMarketData} from '~/lib/contracts';\nimport {PerpsOperator} from '~/lib/perpsOperator';\n\ntype TimelockContextValue = {\n marketData: Partial<TimelockMarketData>;\n lensAddr?: Address;\n uniswapMathLensAddr?: Address;\n timelockGraphqlUrl?: string;\n timelockGraphqlClient?: ReturnType<typeof getTimelockGraphqlSdk>;\n uniV4GraphqlClient?: ReturnType<typeof getUniV4GraphqlSdk>;\n perpsOperator?: PerpsOperator;\n perpsOperatorUrl?: string;\n};\n\nconst TimelockContext = createContext<TimelockContextValue | undefined>(\n undefined,\n);\n\nexport const TimelockProvider = ({\n children,\n marketData,\n timelockGraphqlUrl,\n uniV4GraphqlUrl,\n perpsOperatorUrl,\n}: {\n children: ReactNode;\n marketData?: Partial<TimelockMarketData>;\n timelockGraphqlUrl?: string;\n uniV4GraphqlUrl?: string;\n perpsOperatorUrl?: string;\n}) => {\n const timelockGraphqlClient = useMemo(() => {\n if (timelockGraphqlUrl) {\n return getTimelockGraphqlSdk(new GraphQLClient(timelockGraphqlUrl));\n }\n return undefined;\n }, [timelockGraphqlUrl]);\n\n const uniV4GraphqlClient = useMemo(() => {\n if (uniV4GraphqlUrl) {\n return getUniV4GraphqlSdk(new GraphQLClient(uniV4GraphqlUrl));\n }\n return undefined;\n }, [uniV4GraphqlUrl]);\n\n const perpsOperator = useMemo(() => {\n if (perpsOperatorUrl) {\n return new PerpsOperator(perpsOperatorUrl);\n }\n return undefined;\n }, [perpsOperatorUrl]);\n\n const contextValue = useMemo(\n () => ({\n marketData: marketData || {},\n timelockGraphqlUrl,\n uniV4GraphqlUrl,\n perpsOperator,\n uniV4GraphqlClient,\n timelockGraphqlClient,\n perpsOperatorUrl,\n }),\n [\n marketData,\n timelockGraphqlUrl,\n uniV4GraphqlUrl,\n perpsOperator,\n timelockGraphqlClient,\n uniV4GraphqlClient,\n perpsOperatorUrl,\n ],\n );\n\n return (\n <TimelockContext.Provider value={contextValue}>\n {children}\n </TimelockContext.Provider>\n );\n};\n\nexport const useCurrentMarket = () => {\n const context = useContext(TimelockContext);\n\n if (context === undefined) {\n throw new Error('useCurrentMarket must be used within a TimelockProvider');\n }\n return context.marketData;\n};\n\nexport const useTimelockConfig = () => {\n const context = useContext(TimelockContext);\n\n if (context === undefined) {\n throw new Error('useConfig must be used within a TimelockProvider');\n }\n return context;\n};\n","import {useQuery} from '@tanstack/react-query';\nimport {usePublicClient} from 'wagmi';\nimport {getTimelockLens, getStateView, getQuoter} from '~/lib/contracts';\n\nexport const useLens = (): {\n timelockLens: Awaited<ReturnType<typeof getTimelockLens>> | undefined;\n stateView: Awaited<ReturnType<typeof getStateView>> | undefined;\n quoter: Awaited<ReturnType<typeof getQuoter>> | undefined;\n} => {\n const client = usePublicClient();\n\n const {data: timelockLens} = useQuery({\n queryKey: ['timelockLens', client?.uid],\n queryFn: () => (client ? getTimelockLens(client) : undefined),\n enabled: !!client,\n });\n const {data: stateView} = useQuery({\n queryKey: ['stateView', client?.uid],\n queryFn: () => (client ? getStateView(client) : undefined),\n enabled: !!client,\n });\n const {data: quoter} = useQuery({\n queryKey: ['quoter', client?.uid],\n queryFn: () => (client ? getQuoter(client) : undefined),\n enabled: !!client,\n });\n return {timelockLens, stateView, quoter};\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {useReadContract, useReadContracts} from 'wagmi';\n\nimport {useLens} from '../useLens';\nimport type {getTimelockLens} from '~/lib/contracts';\nimport {lensAbi} from '~/abis/lens';\n\nexport type MarketData = Awaited<\n ReturnType<\n Awaited<ReturnType<typeof getTimelockLens>>['read']['getMarketData']\n >\n>;\n\nexport const useMarketData = (marketAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMarketData',\n args: marketAddr ? [marketAddr] : undefined,\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n\nexport const useMarketsData = (marketAddrs: Address[]) => {\n const {timelockLens} = useLens();\n\n // Get unique addresses and create index mapping\n const {uniqueAddrs, indexMap} = useMemo(() => {\n const seen = new Map<Address, number>();\n const unique: Address[] = [];\n const mapping: number[] = [];\n\n for (const addr of marketAddrs) {\n if (!seen.has(addr)) {\n seen.set(addr, unique.length);\n unique.push(addr);\n }\n mapping.push(seen.get(addr)!);\n }\n return {uniqueAddrs: unique, indexMap: mapping};\n }, [marketAddrs]);\n\n // Build contracts array for unique addresses only\n const contracts = useMemo(() => {\n if (!timelockLens) return undefined;\n\n return uniqueAddrs.map(addr => ({\n address: timelockLens.address,\n abi: lensAbi,\n functionName: 'getMarketData' as const,\n args: [addr] as const,\n }));\n }, [timelockLens, uniqueAddrs]);\n\n const result = useReadContracts({\n contracts,\n query: {\n enabled: !!timelockLens && marketAddrs.length > 0,\n staleTime: 30_000,\n },\n });\n\n // Map unique results back to original array order (with duplicates)\n const data = useMemo(() => {\n if (!result.data) return undefined;\n\n return indexMap.map(idx => {\n const marketData = result.data[idx]?.result;\n\n if (!marketData) {\n throw new Error(`Failed to fetch data for market at index ${idx}`);\n }\n return marketData;\n });\n }, [result.data, indexMap]);\n\n return {...result, data};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useMarketState = (marketAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMarketState',\n args: marketAddr ? [marketAddr] : undefined,\n });\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useMarketVolume = (marketAddr: Address | undefined) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: ['marketVolume', marketAddr?.toLowerCase() || '--'],\n queryFn: async () => {\n const result = await timelockGraphqlClient!.GetMarketVolume({\n marketAddr: marketAddr!.toLowerCase(),\n });\n return {\n ...result.TimelockMarket[0],\n address: result.TimelockMarket[0].address as Address,\n totalVolume: BigInt(result.TimelockMarket[0].totalVolume),\n totalPremium: BigInt(result.TimelockMarket[0].totalPremium),\n totalPayout: BigInt(result.TimelockMarket[0].totalPayout),\n optionsCount: BigInt(result.TimelockMarket[0].optionsCount),\n tradersCount: BigInt(result.TimelockMarket[0].tradersCount),\n };\n },\n enabled: !!marketAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useMarketUserVolume = (\n marketAddr: Address | undefined,\n userAddr?: Address | undefined,\n) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: [\n 'marketUserVolume',\n marketAddr?.toLowerCase() || '--',\n userAddr?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n const result = await timelockGraphqlClient!.GetMarketUserVolume({\n marketAddr: marketAddr!.toLowerCase(),\n userAddr: userAddr!.toLowerCase(),\n });\n return {\n address: result.TimelockMarketUser[0].address as Address,\n totalVolume: BigInt(result.TimelockMarketUser[0].totalVolume),\n totalPremium: BigInt(result.TimelockMarketUser[0].totalPremium),\n totalPayout: BigInt(result.TimelockMarketUser[0].totalPayout),\n optionsCount: BigInt(result.TimelockMarketUser[0].optionsCount),\n };\n },\n enabled: !!marketAddr && !!userAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useWriteContract} from 'wagmi';\nimport {useMarketState} from './useMarketState';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useUpdateMarketBounds = (marketAddr: Address | undefined) => {\n const {\n data: {minDuration, maxDuration, minPositionSize, maxPositionSize} = {},\n error,\n } = useMarketState(marketAddr);\n\n const {mutateAsync, ...rest} = useWriteContract();\n\n const updateBounds = ({\n minDuration: newMinDuration,\n maxDuration: newMaxDuration,\n minPositionSize: newMinPositionSize,\n maxPositionSize: newMaxPositionSize,\n }: {\n minDuration?: number;\n maxDuration?: number;\n minPositionSize?: bigint;\n maxPositionSize?: bigint;\n }) => {\n if (!marketAddr) {\n throw new Error('Market address not provided');\n }\n if (\n minDuration === undefined ||\n maxDuration === undefined ||\n minPositionSize === undefined ||\n maxPositionSize === undefined\n ) {\n throw new Error('Market state not loaded: ' + error?.message);\n }\n return mutateAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'updatePositionBounds',\n args: [\n newMinDuration || minDuration,\n newMaxDuration || maxDuration,\n newMinPositionSize || minPositionSize,\n newMaxPositionSize || maxPositionSize,\n ],\n });\n };\n\n return {updateBounds, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useMarketDailyVolume = (marketAddr: Address | undefined) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: ['marketDailyData', marketAddr?.toLowerCase() || '--'],\n queryFn: async () => {\n const result = await timelockGraphqlClient!.GetMarketDailyVolume({\n marketAddr: marketAddr!.toLowerCase(),\n });\n return result.MarketDailyData.map(data => ({\n id: data.id,\n date: BigInt(data.date),\n totalVolume: BigInt(data.totalVolume),\n totalPremium: BigInt(data.totalPremium),\n totalPayout: BigInt(data.totalPayout),\n totalProtocolFee: BigInt(data.totalProtocolFee),\n }));\n },\n enabled: !!marketAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\n\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useLens} from '~/hooks/useLens';\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useMaxPositionSize = (\n marketAddr: Address | undefined,\n strikeTick?: number,\n maxSteps = 100,\n) => {\n const {timelockLens} = useLens();\n const {optionAssetDecimals} = useMarketData(marketAddr);\n\n const {data, ...rest} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: strikeTick ? 'getMaxPositionSizes' : 'getMaxATMPositionSizes',\n args: marketAddr\n ? strikeTick\n ? [marketAddr, strikeTick, maxSteps]\n : [marketAddr, maxSteps]\n : undefined,\n query: {enabled: !!marketAddr && !!timelockLens},\n // @ts-ignore\n gas: 100_000_000n,\n });\n\n const maxCallSize =\n data && optionAssetDecimals\n ? wrapAmount(data[0], optionAssetDecimals)\n : undefined;\n const maxPutSize =\n data && optionAssetDecimals\n ? wrapAmount(data[1], optionAssetDecimals)\n : undefined;\n\n return {maxCallSize, maxPutSize, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useReadContract, useReadContracts} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {stateViewAbi} from '~/abis/stateView';\nimport type {PoolInput} from './usePoolData';\n\nexport const useCurrentTick = (poolManager?: Address, poolKey?: PoolKey) => {\n const {stateView} = useLens();\n\n return useReadContract({\n address: stateView?.address,\n abi: stateViewAbi,\n functionName: 'getSlot0',\n args: poolManager && poolKey ? [poolManager, poolKey] : undefined,\n query: {\n enabled: !!poolManager && !!poolKey,\n refetchInterval: 3000,\n select: raw => {\n const sqrtPriceX96 = raw[0];\n const currentTick = raw[1];\n return {currentTick, sqrtPriceX96};\n },\n },\n });\n};\n\nexport const useCurrentTicks = (pools: PoolInput[]) => {\n const {stateView} = useLens();\n\n // Get unique pools and create index mapping\n const {uniquePools, indexMap} = useMemo(() => {\n const seen = new Map<string, number>();\n const unique: PoolInput[] = [];\n const mapping: number[] = [];\n\n for (const pool of pools) {\n const key = [\n pool.poolManager,\n pool.poolKey.currency0,\n pool.poolKey.currency1,\n pool.poolKey.fee,\n pool.poolKey.tickSpacing,\n pool.poolKey.hooks,\n ].join('-');\n\n if (!seen.has(key)) {\n seen.set(key, unique.length);\n unique.push(pool);\n }\n mapping.push(seen.get(key)!);\n }\n\n return {uniquePools: unique, indexMap: mapping};\n }, [pools]);\n\n // Build contracts array for unique pools only\n const contracts = useMemo(() => {\n if (!stateView) return undefined;\n\n return uniquePools.map(({poolManager, poolKey}) => ({\n address: stateView.address,\n abi: stateViewAbi,\n functionName: 'getSlot0' as const,\n args: [poolManager, poolKey] as const,\n }));\n }, [stateView, uniquePools]);\n\n const result = useReadContracts({\n contracts,\n query: {\n enabled: !!stateView && pools.length > 0,\n refetchInterval: 3000,\n },\n });\n\n // Map unique results back to original array order (with duplicates)\n const data = useMemo(() => {\n if (!result.data) return undefined;\n\n return indexMap.map(idx => {\n const raw = result.data[idx]?.result;\n\n if (!raw) {\n throw new Error(`Failed to fetch data for pool at index ${idx}`);\n }\n const sqrtPriceX96 = raw[0];\n const currentTick = raw[1];\n\n return {currentTick, sqrtPriceX96};\n });\n }, [result.data, indexMap]);\n\n return {...result, data};\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useReadContract, useReadContracts} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {lensAbi} from '~/abis/lens';\n\nexport type UniswapPoolData = ReturnType<typeof usePoolData>;\n\nexport const usePoolData = (poolManager?: Address, poolKey?: PoolKey) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getPoolData',\n args: poolManager && poolKey ? [poolManager, poolKey] : undefined,\n query: {enabled: !!poolManager && !!poolKey},\n });\n const _default = useMemo(\n () => ({\n token0: poolKey?.currency0,\n token1: poolKey?.currency1,\n tickSpacing: poolKey?.tickSpacing,\n fee: poolKey?.fee,\n }),\n [poolKey],\n );\n return (data || _default) as Partial<NonUndefinedGuard<typeof data>>;\n};\n\nexport type PoolInput = {\n poolManager: Address;\n poolKey: PoolKey;\n};\n\nexport const usePoolsData = (pools: PoolInput[]) => {\n const {timelockLens} = useLens();\n\n // Get unique pools and create index mapping\n const {uniquePools, indexMap} = useMemo(() => {\n const seen = new Map<string, number>();\n const unique: PoolInput[] = [];\n const mapping: number[] = [];\n\n for (const pool of pools) {\n const key = [\n pool.poolManager,\n pool.poolKey.currency0,\n pool.poolKey.currency1,\n pool.poolKey.fee,\n pool.poolKey.tickSpacing,\n pool.poolKey.hooks,\n ].join('-');\n\n if (!seen.has(key)) {\n seen.set(key, unique.length);\n unique.push(pool);\n }\n mapping.push(seen.get(key)!);\n }\n\n return {uniquePools: unique, indexMap: mapping};\n }, [pools]);\n\n // Build contracts array for unique pools only\n const contracts = useMemo(() => {\n if (!timelockLens) return undefined;\n\n return uniquePools.map(({poolManager, poolKey}) => ({\n address: timelockLens.address,\n abi: lensAbi,\n functionName: 'getPoolData' as const,\n args: [poolManager, poolKey] as const,\n }));\n }, [timelockLens, uniquePools]);\n\n const result = useReadContracts({\n contracts,\n query: {\n enabled: !!timelockLens && pools.length > 0,\n staleTime: 30_000,\n },\n });\n\n // Map unique results back to original array order (with duplicates)\n const data = useMemo(() => {\n if (!result.data) return undefined;\n\n return indexMap.map(idx => {\n const poolData = result.data[idx]?.result;\n\n if (!poolData) {\n throw new Error(`Failed to fetch data for pool at index ${idx}`);\n }\n return poolData;\n });\n }, [result.data, indexMap]);\n\n return {...result, data};\n};\n","import {type Address, erc20Abi, maxUint256} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {getErc20} from '~/lib/contracts';\n\nexport const useApproval = () => {\n const client = useClient();\n const {address} = useConnection();\n const {mutateAsync, data: hash, ...rest} = useWriteContract();\n\n const askForApproval = async (\n tokenAddress: Address,\n spenderAddress: Address,\n amount: bigint,\n ) => {\n if (!client || !address) throw new Error('Wallet not connected');\n\n const tokenContract = getErc20(tokenAddress, client);\n\n const allowance = await tokenContract.read.allowance([\n address,\n spenderAddress,\n ]);\n\n if (allowance < amount) {\n const approvalHash = await mutateAsync({\n address: tokenAddress,\n abi: erc20Abi,\n functionName: 'approve',\n args: [spenderAddress, maxUint256],\n });\n await waitForTransactionReceipt(client, {hash: approvalHash});\n }\n };\n return {askForApproval, hash, ...rest};\n};\n","import {encodeAbiParameters, keccak256} from 'viem';\nimport type {PoolKey} from './liquidityUtils';\n\nexport const sleep = (ms: number) =>\n new Promise(resolve => setTimeout(resolve, ms));\n\nexport const getPoolId = (poolKey: PoolKey) => {\n return keccak256(\n encodeAbiParameters(\n [\n {type: 'address', name: 'currency0'},\n {type: 'address', name: 'currency1'},\n {type: 'uint24', name: 'fee'},\n {type: 'int24', name: 'tickSpacing'},\n {type: 'address', name: 'hooks'},\n ],\n [\n poolKey.currency0,\n poolKey.currency1,\n poolKey.fee,\n poolKey.tickSpacing,\n poolKey.hooks,\n ],\n ),\n );\n};\n","import type {Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {useLens} from '~/hooks/useLens';\n\nimport {getTimelockMarket} from '~/lib/contracts';\nimport {getNearestValidStrikeTick} from '~/lib/liquidityUtils';\nimport {sleep} from '~/lib/utils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useMintOption = (marketAddr: Address | undefined) => {\n const {payoutAsset, vault, poolManager, poolKey, optionAssetIsToken0} =\n useMarketData(marketAddr);\n\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n const {refetch: refetchCurrentTick} = useCurrentTick(poolManager, poolKey);\n\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n const {timelockLens} = useLens();\n\n const {askForApproval} = useApproval();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const mintOption = async ({\n optionType,\n amount,\n duration,\n strikeTick,\n maxSteps = 100,\n }: {\n optionType: 'CALL' | 'PUT';\n amount: bigint;\n duration: number;\n strikeTick?: number;\n maxSteps?: number;\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not available');\n if (!timelockLens) throw new Error('Timelock lens not available');\n if (!tickSpacing) throw new Error('Pool data not available');\n\n if (!vault || !payoutAsset || optionAssetIsToken0 === undefined) {\n throw new Error('Market data not available');\n }\n const {data: {currentTick} = {}} = await refetchCurrentTick();\n\n if (currentTick === undefined) {\n throw new Error('Could not fetch current tick');\n }\n strikeTick = getNearestValidStrikeTick(\n optionType,\n optionAssetIsToken0,\n tickSpacing,\n currentTick,\n strikeTick,\n );\n const market = getTimelockMarket(marketAddr, client);\n\n const [premium, protocolFee] = await market.read.getMintFees([\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n duration,\n '0x',\n ]);\n const maxPremium = ((premium + protocolFee) * 11n) / 10n;\n await askForApproval(payoutAsset, marketAddr, maxPremium);\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'mintOption',\n args: [\n address,\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n duration,\n maxPremium,\n maxSteps,\n await timelockLens.read.getRefTick([vault, strikeTick]),\n '0x',\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n\n return hash;\n };\n return useMutation({mutationFn: mintOption});\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {usePoolData, usePoolsData, type PoolInput} from './usePoolData';\nimport {useCurrentTicks} from './useCurrentTick';\n\nimport {\n type PoolKey,\n getPriceAtTick,\n getPriceAtSqrtPriceX96,\n} from '~/lib/liquidityUtils';\nimport {wrapPrice} from '~/lib/numberUtils';\n\nexport const usePriceAtTick = (\n poolManager?: Address,\n poolKey?: PoolKey,\n tick?: number,\n token0For1 = true,\n) => {\n const {token0Decimals, token1Decimals} = usePoolData(poolManager, poolKey);\n\n const priceBigInt = useMemo(\n () => (tick !== undefined ? getPriceAtTick(tick, token0For1) : undefined),\n [tick],\n );\n const price = useMemo(\n () =>\n priceBigInt && token0Decimals && token1Decimals\n ? wrapPrice(\n priceBigInt,\n token0For1 ? token0Decimals : token1Decimals,\n token0For1 ? token1Decimals : token0Decimals,\n )\n : undefined,\n [priceBigInt, token0Decimals, token1Decimals],\n );\n return price;\n};\n\nexport const usePriceAtSqrtPriceX96 = (\n poolManager?: Address,\n poolKey?: PoolKey,\n sqrtPriceX96?: bigint,\n token0For1 = true,\n) => {\n const {token0Decimals, token1Decimals} = usePoolData(poolManager, poolKey);\n\n const priceBigInt = useMemo(\n () =>\n sqrtPriceX96 !== undefined\n ? getPriceAtSqrtPriceX96(sqrtPriceX96, token0For1)\n : undefined,\n [sqrtPriceX96],\n );\n\n const price = useMemo(() => {\n if (priceBigInt === undefined || !token0Decimals || !token1Decimals) {\n return undefined;\n }\n return wrapPrice(\n priceBigInt,\n token0For1 ? token0Decimals : token1Decimals,\n token0For1 ? token1Decimals : token0Decimals,\n );\n }, [priceBigInt, token0Decimals, token1Decimals]);\n\n return price;\n};\n","import {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {usePriceAtSqrtPriceX96} from './usePriceAtTick';\nimport {useCurrentTick, useCurrentTicks} from './useCurrentTick';\nimport {usePoolsData, type PoolInput} from './usePoolData';\nimport {getPriceAtSqrtPriceX96, type PoolKey} from '~/lib/liquidityUtils';\nimport {wrapPrice} from '~/lib/numberUtils';\n\nexport const useCurrentPrice = (\n poolManager?: Address,\n poolKey?: PoolKey,\n token0For1 = true,\n) => {\n const {data: {sqrtPriceX96, currentTick} = {}} = useCurrentTick(\n poolManager,\n poolKey,\n );\n const currentPrice = usePriceAtSqrtPriceX96(\n poolManager,\n poolKey,\n sqrtPriceX96,\n token0For1,\n );\n\n return useMemo(\n () => ({currentPrice, sqrtPriceX96, currentTick}),\n [currentPrice, sqrtPriceX96, currentTick],\n );\n};\n\nexport const useCurrentPrices = (\n pools: (PoolInput & {token0For1: boolean})[],\n) => {\n const {data: ticksData, ...ticksResult} = useCurrentTicks(pools);\n const {data: poolsData} = usePoolsData(pools);\n\n const pricesBigInt = useMemo(() => {\n if (!ticksData) return undefined;\n\n return ticksData.map(({sqrtPriceX96}, index) =>\n getPriceAtSqrtPriceX96(sqrtPriceX96, pools[index].token0For1),\n );\n }, [ticksData, pools]);\n\n const data = useMemo(() => {\n if (!ticksData || !pricesBigInt || !poolsData) return undefined;\n\n return pricesBigInt.map((priceBigInt, index) => ({\n currentPrice: wrapPrice(\n priceBigInt,\n pools[index].token0For1\n ? poolsData[index]!.token0Decimals\n : poolsData[index]!.token1Decimals,\n pools[index].token0For1\n ? poolsData[index]!.token1Decimals\n : poolsData[index]!.token0Decimals,\n ),\n sqrtPriceX96: ticksData[index]!.sqrtPriceX96,\n currentTick: ticksData[index]!.currentTick,\n }));\n }, [ticksData, poolsData, pricesBigInt]);\n\n return {...ticksResult, data};\n};\n","import {encodeAbiParameters, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport type {OptionData} from './useUserOptions';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useCurrentPrice} from '~/hooks/pool/useCurrentPrice';\nimport {useLens} from '~/hooks/useLens';\n\nimport {sleep} from '~/lib/utils';\nimport {swappers} from '~/lib/contracts';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useExerciseOption = (marketAddr: Address | undefined) => {\n const {vault, poolManager, poolKey} = useMarketData(marketAddr);\n const {timelockLens} = useLens();\n\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const {sqrtPriceX96} = useCurrentPrice(poolManager, poolKey);\n\n const exerciseOption = async ({\n option,\n liquidities,\n }: {\n option: OptionData;\n liquidities: readonly bigint[];\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not available');\n if (!timelockLens) throw new Error('Timelock lens not available');\n if (!vault) throw new Error('Vault not available');\n if (!poolKey || !poolManager) throw new Error('Pool data not available');\n if (!sqrtPriceX96) throw new Error('Current price not available');\n\n const swapper = swappers[client.chain.id];\n if (!swapper) throw new Error('Swapper not available');\n\n const minSqrtPrice = (sqrtPriceX96 * 9n) / 10n;\n const maxSqrtPrice = (sqrtPriceX96 * 11n) / 10n;\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 60 * 10);\n\n const refTick = await timelockLens.read.getRefTick([\n vault,\n option.startTick,\n ]);\n const swapperData = encodeAbiParameters(\n [{type: 'uint160'}, {type: 'uint160'}, {type: 'uint256'}],\n [minSqrtPrice, maxSqrtPrice, deadline],\n );\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'exerciseOption',\n args: [option.optionId, liquidities, 0n, swapper, swapperData, refTick],\n });\n await waitForTransactionReceipt(client, {hash});\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n\n return hash;\n };\n return useMutation({mutationFn: exerciseOption});\n};\n","import {useMemo} from 'react';\nimport {\n useSimulateContract,\n useChainId,\n useReadContract,\n useConnection,\n} from 'wagmi';\nimport {encodeAbiParameters, maxUint160} from 'viem';\n\nimport type {OptionData} from './useUserOptions';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useCurrentPrice} from '~/hooks/pool/useCurrentPrice';\nimport {useLens} from '~/hooks/useLens';\nimport {\n token0ToToken1,\n token0ToToken1AtTick,\n token1ToToken0,\n token1ToToken0AtTick,\n} from '~/lib/liquidityUtils';\nimport {type Amount, wrapAmount} from '~/lib/numberUtils';\nimport {swappers} from '~/lib/contracts';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\nimport {lensAbi} from '~/abis/lens';\n\nconst calculateDisplayPnl = (\n option: OptionData,\n poolPrice: bigint,\n optionAssetIsToken0: boolean,\n payoutAssetDecimals: number,\n): Amount => {\n const strikeSize = optionAssetIsToken0\n ? token0ToToken1AtTick(option.positionSizeCurrent, option.strikeTick)\n : token1ToToken0AtTick(option.positionSizeCurrent, option.strikeTick);\n\n const currentSize = optionAssetIsToken0\n ? token0ToToken1(option.positionSizeCurrent, poolPrice)\n : token1ToToken0(option.positionSizeCurrent, poolPrice);\n\n const delta = currentSize - strikeSize;\n const pnl = option.optionType === 'CALL' ? delta : -delta;\n\n return wrapAmount(pnl, payoutAssetDecimals);\n};\n\nconst swapperData = encodeAbiParameters(\n [{type: 'uint160'}, {type: 'uint160'}, {type: 'uint256'}],\n [0n, maxUint160, BigInt(Math.floor(Date.now() / 1000) + 60 * 10)],\n);\n\nexport const useOptionPnl = (option?: OptionData) => {\n const chainId = useChainId();\n const {address: account} = useConnection();\n const {timelockLens} = useLens();\n\n const {\n vault,\n poolManager,\n poolKey,\n optionAssetIsToken0,\n payoutAssetDecimals,\n } = useMarketData(option?.marketAddr);\n\n const {currentPrice: poolPrice} = useCurrentPrice(poolManager, poolKey);\n\n // Simple theoretical PnL (no slippage)\n const displayPnl = useMemo(() => {\n if (\n !option ||\n !poolPrice ||\n !payoutAssetDecimals ||\n optionAssetIsToken0 === undefined\n )\n return undefined;\n\n return calculateDisplayPnl(\n option,\n poolPrice.scaled,\n optionAssetIsToken0,\n payoutAssetDecimals,\n );\n }, [option, optionAssetIsToken0, poolPrice, payoutAssetDecimals]);\n\n const {data: refTick} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getRefTick',\n args: vault && option?.startTick ? [vault, option.startTick] : undefined,\n });\n\n const swapper = swappers[chainId];\n\n // Actual payout accounting for slippage via simulate call to exerciseOption\n const {data: unrealizedPayout, ...rest} = useSimulateContract({\n address: option?.marketAddr,\n abi: optionsMarketAbi,\n functionName: 'exerciseOption',\n account,\n args:\n option && refTick\n ? [\n option.optionId,\n option.liquiditiesCurrent,\n 0n,\n swapper,\n swapperData,\n refTick,\n ]\n : undefined,\n query: {\n enabled:\n !!option &&\n !!swapperData &&\n !!swapper &&\n refTick !== undefined &&\n !!account,\n staleTime: 10_000, // Cache for 10s to avoid excessive calls\n select: data => {\n if (!payoutAssetDecimals) return undefined;\n return wrapAmount(data.result, payoutAssetDecimals);\n },\n },\n });\n\n return {...rest, data: {displayPnl, unrealizedPayout}};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useMemo} from 'react';\n\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useMarketData} from '~/hooks/market/useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {roundTick} from '~/lib/liquidityUtils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useMintFees = (\n marketAddr: Address | undefined,\n optionType: 'CALL' | 'PUT',\n optionAmount?: bigint,\n duration?: number,\n strikeTick?: number,\n) => {\n const {poolManager, poolKey, payoutAssetDecimals, optionAssetIsToken0} =\n useMarketData(marketAddr);\n\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n\n const strikeTickRounded = useMemo(() => {\n if (!tickSpacing || currentTick === undefined) {\n return undefined;\n }\n let strikeTickRounded = roundTick(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTickRounded += tickSpacing;\n }\n return strikeTickRounded;\n }, [currentTick, tickSpacing, optionType, optionAssetIsToken0, strikeTick]);\n\n const {data: [premium, protocolFee] = []} = useReadContract({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'getMintFees',\n args:\n strikeTickRounded !== undefined &&\n optionAmount !== undefined &&\n duration !== undefined\n ? [\n optionType === 'CALL' ? 0 : 1,\n optionAmount,\n strikeTickRounded,\n duration,\n '0x',\n ]\n : undefined,\n });\n\n return useMemo(() => {\n if (\n premium === undefined ||\n protocolFee === undefined ||\n payoutAssetDecimals === undefined\n ) {\n return {};\n }\n return {\n premium: wrapAmount(premium, payoutAssetDecimals),\n protocolFee: wrapAmount(protocolFee, payoutAssetDecimals),\n totalPremium: wrapAmount(premium + protocolFee, payoutAssetDecimals),\n };\n }, [premium, protocolFee, payoutAssetDecimals]);\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useMemo} from 'react';\n\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useMarketData} from '~/hooks/market/useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {roundTick} from '~/lib/liquidityUtils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useExtensionFees = (\n marketAddr: Address | undefined,\n optionType: 'CALL' | 'PUT',\n optionAmount?: bigint,\n addedDuration?: number,\n remainingDuration?: number,\n strikeTick?: number,\n) => {\n const {poolManager, poolKey, payoutAssetDecimals, optionAssetIsToken0} =\n useMarketData(marketAddr);\n\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n\n const strikeTickRounded = useMemo(() => {\n if (!tickSpacing || currentTick === undefined) {\n return undefined;\n }\n let strikeTickRounded = roundTick(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTickRounded += tickSpacing;\n }\n return strikeTickRounded;\n }, [currentTick, tickSpacing, optionType, optionAssetIsToken0, strikeTick]);\n\n const {data: [premium, protocolFee] = []} = useReadContract({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'getExtendFees',\n args:\n strikeTickRounded !== undefined &&\n optionAmount !== undefined &&\n addedDuration !== undefined &&\n remainingDuration !== undefined\n ? [\n optionType === 'CALL' ? 0 : 1,\n optionAmount,\n strikeTickRounded,\n addedDuration,\n remainingDuration,\n '0x',\n ]\n : undefined,\n });\n\n return useMemo(() => {\n if (\n premium === undefined ||\n protocolFee === undefined ||\n payoutAssetDecimals === undefined\n ) {\n return {};\n }\n return {\n premium: wrapAmount(premium, payoutAssetDecimals),\n protocolFee: wrapAmount(protocolFee, payoutAssetDecimals),\n totalPremium: wrapAmount(premium + protocolFee, payoutAssetDecimals),\n };\n }, [premium, protocolFee, payoutAssetDecimals]);\n};\n","import type {Address} from 'viem';\nimport {useQuery, type NonUndefinedGuard} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport type OptionData = NonUndefinedGuard<\n ReturnType<typeof useUserOptions>['data']\n>[number];\n\nconst useUserOptions = (\n userAddr: Address | undefined,\n marketAddr: Address | '*' | undefined,\n active = false,\n) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n userAddr = userAddr?.toLowerCase() as Address | undefined;\n marketAddr = marketAddr?.toLowerCase() as Address | '*' | undefined;\n\n return useQuery({\n queryKey: ['userOptions', userAddr || '--', active],\n queryFn: async () => {\n if (!timelockGraphqlClient || !userAddr || !marketAddr) return [];\n\n const data = await (marketAddr === '*'\n ? active\n ? timelockGraphqlClient.GetActiveUserOptions({userAddr})\n : timelockGraphqlClient.GetClosedUserOptions({userAddr})\n : active\n ? timelockGraphqlClient.GetActiveUserOptionsByMarket({\n userAddr,\n marketAddr,\n })\n : timelockGraphqlClient.GetClosedUserOptionsByMarket({\n userAddr,\n marketAddr,\n }));\n\n return data.UserOption.map(option => ({\n ...option,\n optionId: BigInt(option.optionId),\n marketAddr: option.market!.address as Address,\n ownerAddr: option.owner!.address as Address,\n optionType: option.optionType as 'CALL' | 'PUT',\n createdAt: new Date(Number(option.createdAt) * 1000),\n expiresAt: new Date(Number(option.expiresAt) * 1000),\n premium: BigInt(option.premium),\n protocolFee: BigInt(option.protocolFee),\n realizedPayout: BigInt(option.realizedPayout),\n liquiditiesAtOpen: option.liquiditiesAtOpen.map(l => BigInt(l)),\n liquiditiesCurrent: option.liquiditiesCurrent.map(l => BigInt(l)),\n positionSizeAtOpen: BigInt(option.positionSizeAtOpen),\n positionSizeCurrent: BigInt(option.positionSizeCurrent),\n strikePrice: BigInt(option.strikePrice),\n entryPrice: BigInt(option.entryPrice),\n })).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\n },\n enabled: !!userAddr && !!marketAddr && !!timelockGraphqlClient,\n });\n};\n\nexport const useActiveUserOptions = (\n userAddr?: Address,\n marketAddr?: Address | '*',\n) => {\n return useUserOptions(userAddr, marketAddr, true);\n};\n\nexport const useClosedUserOptions = (\n userAddr?: Address,\n marketAddr?: Address | '*',\n) => {\n return useUserOptions(userAddr, marketAddr, false);\n};\n","import {maxUint256, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport type {OptionData} from './useUserOptions';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {getTimelockMarket} from '~/lib/contracts';\nimport {sleep} from '~/lib/utils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useExtendOption = (marketAddr: Address | undefined) => {\n const {payoutAsset} = useMarketData(marketAddr);\n\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n\n const {askForApproval} = useApproval();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const extendOption = async ({\n option,\n duration,\n }: {\n option: OptionData;\n duration: number;\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n\n if (!marketAddr || !payoutAsset) {\n throw new Error('Market address not available');\n }\n const market = getTimelockMarket(marketAddr, client);\n\n const remainingDuration = Math.max(\n 0,\n Math.floor((option.expiresAt.getTime() - Date.now()) / 1000),\n );\n const [premium, protocolFee] = await market.read.getExtendFees([\n option.optionType === 'CALL' ? 0 : 1,\n option.positionSizeCurrent,\n option.strikeTick,\n duration,\n remainingDuration,\n '0x',\n ]);\n const maxPremium = ((premium + protocolFee) * 11n) / 10n;\n await askForApproval(payoutAsset, marketAddr, maxPremium);\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'extendOption',\n args: [option.optionId, duration, maxUint256, '0x'],\n });\n await waitForTransactionReceipt(client, {hash});\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n\n return hash;\n };\n return useMutation({mutationFn: extendOption});\n};\n","import type {Address} from 'viem';\nimport {useQuery, type NonUndefinedGuard} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport type OptionEvent = NonUndefinedGuard<\n ReturnType<typeof useOptionTimeline>['data']\n>[number];\nexport type MintOptionEvent = Extract<OptionEvent, {type: 'mint'}>;\nexport type ExerciseOptionEvent = Extract<OptionEvent, {type: 'exercise'}>;\nexport type ExtendEvent = Extract<OptionEvent, {type: 'extend'}>;\n\nexport const useOptionTimeline = (\n marketAddr: Address | undefined,\n optionId: bigint | undefined,\n) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n marketAddr = marketAddr?.toLowerCase() as Address | undefined;\n\n return useQuery({\n queryKey: [\n 'optionTimeline',\n marketAddr || '--',\n optionId?.toString() || '--',\n ],\n queryFn: async () => {\n if (!timelockGraphqlClient || !marketAddr || optionId === undefined) {\n return [];\n }\n const result = await timelockGraphqlClient.GetOptionEvents({\n marketAddr: marketAddr,\n optionId: optionId.toString(),\n });\n\n const mintEvents = result.MintOptionEvent.map(event => ({\n id: event.id,\n optionType: event.optionType as 0 | 1,\n strikeTick: event.strikeTick,\n price: BigInt(event.price),\n premium: BigInt(event.premium),\n protocolFee: BigInt(event.protocolFee),\n liquidities: event.liquidities.map(l => BigInt(l)),\n timestamp: new Date(Number(event.timestamp) * 1000),\n expiresAt: new Date(Number(event.expiresAt) * 1000),\n blockNumber: BigInt(event.blockNumber),\n transactionHash: event.transactionHash,\n }));\n const exerciseEvents = result.ExerciseOptionEvent.map(event => ({\n id: event.id,\n payout: BigInt(event.payout),\n liquidities: event.liquidities.map(l => BigInt(l)),\n timestamp: new Date(Number(event.timestamp) * 1000),\n blockNumber: BigInt(event.blockNumber),\n transactionHash: event.transactionHash,\n }));\n const extendEvents = result.ExtendOptionEvent.map(event => ({\n id: event.id,\n premium: BigInt(event.premium),\n protocolFee: BigInt(event.protocolFee),\n price: BigInt(event.price),\n addedDuration: BigInt(event.addedDuration),\n timestamp: new Date(Number(event.timestamp) * 1000),\n blockNumber: BigInt(event.blockNumber),\n transactionHash: event.transactionHash,\n }));\n\n type MintEvent = {type: 'mint'; data: (typeof mintEvents)[number]};\n type ExerciseEvent = {\n type: 'exercise';\n data: (typeof exerciseEvents)[number];\n };\n type ExtendEvent = {type: 'extend'; data: (typeof extendEvents)[number]};\n type OptionEvent = MintEvent | ExerciseEvent | ExtendEvent;\n\n const events: OptionEvent[] = [\n ...mintEvents.map(data => ({type: 'mint', data}) as const),\n ...exerciseEvents.map(data => ({type: 'exercise', data}) as const),\n ...extendEvents.map(data => ({type: 'extend', data}) as const),\n ];\n return events.sort(\n (a, b) => a.data.timestamp.getTime() - b.data.timestamp.getTime(),\n );\n },\n enabled: !!marketAddr && optionId !== undefined && !!timelockGraphqlClient,\n });\n};\n","import type {Address, Hex} from 'viem';\nimport {useEffect} from 'react';\nimport {useConnection, useSignMessage} from 'wagmi';\nimport {useMutation, useQuery} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nconst isValidHex = (value: unknown): value is Hex => {\n return typeof value === 'string' && /^0x[a-fA-F0-9]+$/.test(value);\n};\n\nconst isValidSavedSignature = (\n data: unknown,\n): data is {signature: Hex; message: string} => {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'signature' in data &&\n 'message' in data &&\n isValidHex(data.signature) &&\n typeof data.message === 'string'\n );\n};\n\nconst getSavedSignature = (userAddr: Address) => {\n const key = `perps-auth-${userAddr.toLowerCase()}`;\n const raw = localStorage.getItem(key);\n if (!raw) return;\n\n try {\n const parsed = JSON.parse(raw);\n if (!isValidSavedSignature(parsed)) {\n clearSignature(userAddr);\n throw new Error('Invalid stored signature: ' + raw);\n }\n return parsed;\n } catch (error) {\n clearSignature(userAddr);\n throw new Error('Invalid stored signature: ' + raw);\n }\n};\n\nconst saveSignature = (userAddr: Address, message: string, signature: Hex) => {\n const key = `perps-auth-${userAddr.toLowerCase()}`;\n const data = JSON.stringify({message, signature});\n localStorage.setItem(key, data);\n};\n\nconst clearSignature = (userAddr: Address) => {\n const key = `perps-auth-${userAddr.toLowerCase()}`;\n localStorage.removeItem(key);\n};\n\nexport const usePerpsOperator = () => {\n const {address: userAddr} = useConnection();\n const {perpsOperatorUrl, perpsOperator: operator} = useTimelockConfig();\n const {mutateAsync: signMessageAsync} = useSignMessage();\n\n const {data: address} = useQuery({\n queryKey: ['perpsOperatorAddr', perpsOperatorUrl || '--'],\n queryFn: () => operator?.getOperatorAddr(),\n staleTime: 10000,\n refetchInterval: 10000,\n enabled: !!operator,\n });\n\n const validateAndSetAuth = async (message: string, signature: Hex) => {\n if (!operator || !userAddr) return;\n\n try {\n const {address, validUntil} = await operator.validateAuthMessage(\n message,\n signature,\n );\n if (validUntil < Date.now()) {\n throw new Error('Signature expired');\n }\n if (address.toLowerCase() !== userAddr.toLowerCase()) {\n throw new Error('Valid signature but different user address');\n }\n operator.setAuth(message, signature);\n } catch (error) {\n clearSignature(userAddr);\n console.error(error);\n }\n };\n\n useEffect(() => {\n if (!userAddr || !operator) return;\n\n const sig = getSavedSignature(userAddr);\n if (!sig) return;\n\n void validateAndSetAuth(sig.message, sig.signature);\n }, [userAddr, operator]);\n\n const signMessage = useMutation({\n mutationFn: async () => {\n if (!operator) throw new Error('Operator not initialized');\n if (!userAddr) throw new Error('Wallet not connected');\n\n const message = await operator.genAuthMessage(userAddr);\n const signature = await signMessageAsync({message});\n\n saveSignature(userAddr, message, signature);\n operator.setAuth(message, signature);\n },\n });\n\n return {operator, address, signMessage};\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useUserOperators = (userAddr?: Address, marketAddr?: Address) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: [\n 'userOperators',\n userAddr?.toLowerCase() || '--',\n marketAddr?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n if (!userAddr || !marketAddr) return undefined;\n\n const result = await timelockGraphqlClient!.GetUserMarketOperators({\n userAddr: userAddr.toLowerCase(),\n marketAddr: marketAddr.toLowerCase(),\n });\n return result.UserMarketOperator.map(operator => ({\n ...operator,\n spendingApproval: BigInt(operator.spendingApproval),\n operatorAddr: operator.operator!.address.toLowerCase(),\n }));\n },\n enabled: !!userAddr && !!marketAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useSetOperatorPerms = (marketAddr: Address | undefined) => {\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const setOperatorPerms = async ({\n operator,\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n }: {\n operator: Address;\n canExtend: boolean;\n canExercise: boolean;\n canTransfer: boolean;\n canMint: boolean;\n spendingApproval: bigint;\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not available');\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'setOperatorPerms',\n args: [\n operator,\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n\n void queryClient.invalidateQueries({queryKey: ['userOperators']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n return hash;\n };\n return useMutation({mutationFn: setOperatorPerms});\n};\n","import {maxUint256, type Address} from 'viem';\nimport {useConnection, useClient} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {usePerpsOperator} from './usePerpsOperator';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {useUserOperators} from '~/hooks/operators/useUserOperators';\nimport {useSetOperatorPerms} from '~/hooks/operators/useSetOperatorPerms';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {getTimelockMarket} from '~/lib/contracts';\nimport {getNearestValidStrikeTick} from '~/lib/liquidityUtils';\nimport {sleep} from '~/lib/utils';\n\nexport const useMintPerp = (marketAddr: Address | undefined) => {\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n\n const {\n operator,\n address: operatorAddr,\n signMessage: {mutateAsync: signMessage},\n } = usePerpsOperator();\n\n const {poolManager, poolKey, optionAssetIsToken0, payoutAsset} =\n useMarketData(marketAddr);\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n\n const {askForApproval} = useApproval();\n const {mutateAsync: setOperatorPerms} = useSetOperatorPerms(marketAddr);\n\n const {refetch: refetchOperators} = useUserOperators(address, marketAddr);\n const {refetch: refetchCurrentTick} = useCurrentTick(poolManager, poolKey);\n\n const mintPerp = async (data: {\n optionType: 'CALL' | 'PUT';\n amount: bigint;\n duration: number;\n strikeTick?: number;\n }) => {\n const {optionType, amount, duration, strikeTick} = data;\n\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not found');\n if (!tickSpacing) throw new Error('Pool data not found');\n\n if (!operator || !operatorAddr) {\n throw new Error('Operator address not found');\n }\n if (optionAssetIsToken0 === undefined || !payoutAsset) {\n throw new Error('Market data not found');\n }\n if (!operator.auth) await signMessage();\n\n const market = getTimelockMarket(marketAddr, client);\n\n const {data: {currentTick} = {}} = await refetchCurrentTick();\n\n if (currentTick === undefined) {\n throw new Error('Could not fetch current tick');\n }\n const {data: operators = []} = await refetchOperators();\n\n const userPerms = operatorAddr\n ? operators.find(\n o => o.operatorAddr.toLowerCase() === operatorAddr.toLowerCase(),\n )\n : undefined;\n\n const validStrikeTick = getNearestValidStrikeTick(\n optionType,\n optionAssetIsToken0,\n tickSpacing,\n currentTick,\n strikeTick,\n );\n const [premium, protocolFee] = await market.read.getMintFees([\n optionType === 'CALL' ? 0 : 1,\n amount,\n validStrikeTick,\n duration,\n '0x',\n ]);\n const maxPremium = ((premium + protocolFee) * 11n) / 10n;\n\n const hasEnoughPerms =\n userPerms &&\n userPerms.canMint &&\n userPerms.canExtend &&\n userPerms.canExercise &&\n userPerms.spendingApproval > maxPremium;\n\n if (!hasEnoughPerms) {\n await setOperatorPerms({\n operator: operatorAddr,\n canMint: true,\n canExtend: true,\n canExercise: true,\n canTransfer: userPerms?.canTransfer || false,\n spendingApproval: maxUint256,\n });\n }\n await askForApproval(payoutAsset, marketAddr, maxPremium);\n\n await operator.mintPerp({\n marketAddr: marketAddr,\n amount: amount,\n optionType: optionType,\n duration: duration,\n strikeTick: validStrikeTick,\n });\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n };\n return useMutation({mutationFn: mintPerp});\n};\n","import {useMutation, useQueryClient} from '@tanstack/react-query';\nimport {usePerpsOperator} from './usePerpsOperator';\nimport type {ExercisePerpBody} from '~/lib/perpsOperator';\nimport {sleep} from '~/lib/utils';\n\nexport const useClosePerp = () => {\n const queryClient = useQueryClient();\n const {\n operator,\n signMessage: {mutateAsync: signMessage},\n } = usePerpsOperator();\n\n return useMutation({\n mutationFn: async (body: ExercisePerpBody) => {\n if (!operator) throw new Error('Operator not connected');\n if (!operator.auth) await signMessage();\n await operator.exercisePerp(body);\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n },\n });\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\nimport {usePerpsOperator} from './usePerpsOperator';\n\nexport const useUserPerps = (\n marketAddr: Address | undefined,\n userAddr: Address | undefined,\n type: 'active' | 'closed' | undefined,\n) => {\n const {operator} = usePerpsOperator();\n\n userAddr = userAddr?.toLowerCase() as Address;\n marketAddr = marketAddr?.toLowerCase() as Address;\n\n return useQuery({\n queryKey: ['userPerps', type, userAddr || '-', marketAddr || '-'],\n queryFn: () => operator?.getUserPerps(userAddr!, marketAddr, type),\n enabled: !!userAddr,\n staleTime: 10000,\n refetchInterval: 10000,\n });\n};\n\nexport const useActiveUserPerps = (\n marketAddr: Address | undefined,\n userAddr: Address | undefined,\n) => {\n return useUserPerps(marketAddr, userAddr, 'active');\n};\n\nexport const useClosedUserPerps = (\n marketAddr: Address | undefined,\n userAddr: Address | undefined,\n) => {\n return useUserPerps(marketAddr, userAddr, 'closed');\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useClient, useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type TokenData = ReturnType<typeof useTokenData>;\n\nexport const useTokenData = (tokenAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n const client = useClient();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getTokenData',\n args: tokenAddr ? [tokenAddr] : undefined,\n query: {enabled: !!tokenAddr && !!client},\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useMemo} from 'react';\nimport {useTokenData} from './useTokenData';\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {erc20Abi} from '~/abis/erc20';\n\nexport const useTokenBalance = (token?: Address, user?: Address) => {\n const {decimals} = useTokenData(token);\n\n const {data: raw, ...rest} = useReadContract({\n address: token,\n abi: erc20Abi,\n functionName: 'balanceOf',\n args: user ? [user] : undefined,\n query: {enabled: !!token && !!user},\n });\n const balance = useMemo(\n () =>\n raw !== undefined && decimals !== undefined\n ? wrapAmount(raw, decimals)\n : undefined,\n [raw, decimals],\n );\n\n return {data: balance, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useReadContract} from 'wagmi';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useTokenBalance} from '~/hooks/tokens/useTokenBalance';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useOperatorPerms = (\n marketAddr?: Address,\n userAddr?: Address,\n operatorAddr?: Address,\n) => {\n const {payoutAsset} = useMarketData(marketAddr);\n const {data: payoutAssetBalance} = useTokenBalance(payoutAsset, userAddr);\n\n const {data, ...rest} = useReadContract({\n abi: optionsMarketAbi,\n address: marketAddr,\n functionName: 'operatorPerms',\n args: [userAddr!, operatorAddr!],\n query: {\n enabled: !!userAddr && !!operatorAddr,\n refetchInterval: 5000,\n },\n });\n const [canExtend, canExercise, canTransfer, canMint, spendingApproval] =\n data || [];\n\n const min = (a: bigint, b: bigint) => (a < b ? a : b);\n\n const effectiveApproval =\n spendingApproval && payoutAssetBalance\n ? min(spendingApproval, payoutAssetBalance.scaled)\n : 0n;\n\n const d = useMemo(\n () => ({\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n effectiveApproval,\n }),\n [\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n effectiveApproval,\n ],\n );\n return {data: d, ...rest};\n};\n","import {useQuery} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useChainId} from 'wagmi';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {getPriceHistory, type PriceResolution} from '~/lib/price';\n\nexport const usePriceHistory = (\n pool: Address | undefined,\n token: 0 | 1,\n resolution: PriceResolution,\n startTimestamp: Date,\n endTimestamp: Date,\n) => {\n const chainId = useChainId();\n\n return useQuery({\n queryKey: [\n 'priceHistory',\n pool,\n chainId,\n token,\n resolution,\n startTimestamp,\n endTimestamp,\n ],\n queryFn: () =>\n getPriceHistory(pool!, token, resolution, startTimestamp, endTimestamp),\n enabled: !!pool && startTimestamp < endTimestamp,\n staleTime: 60 * 1000, // Consider data stale after 1 minute\n gcTime: 5 * 60 * 1000, // Keep in cache for 5 minutes\n retry: 2,\n });\n};\n\nexport const useMarketPriceHistory = (\n marketAddr: Address | undefined,\n resolution: PriceResolution,\n startTimestamp: Date,\n endTimestamp: Date,\n) => {\n const {pool, optionAssetIsToken0} = useMarketData(marketAddr);\n\n return usePriceHistory(\n pool!,\n optionAssetIsToken0 ? 0 : 1,\n resolution,\n startTimestamp,\n endTimestamp,\n );\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {getPoolId} from '~/lib/utils';\n\nexport const usePoolVolume = (\n poolManager: Address | undefined,\n poolKey: PoolKey | undefined,\n) => {\n const {uniV4GraphqlClient} = useTimelockConfig();\n\n const poolId = useMemo(\n () => (poolKey ? getPoolId(poolKey) : undefined),\n [poolKey],\n );\n\n return useQuery({\n queryKey: [\n 'poolVolume',\n poolId?.toLowerCase() || '--',\n poolManager?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n const result = await uniV4GraphqlClient!.GetPoolVolume({\n poolId: poolId!,\n });\n return {\n ...result.Pool[0],\n volume0: BigInt(result.Pool[0].volume0),\n volume1: BigInt(result.Pool[0].volume1),\n fees0: BigInt(result.Pool[0].fees0),\n fees1: BigInt(result.Pool[0].fees1),\n txCount: BigInt(result.Pool[0].txCount),\n swapCount: BigInt(result.Pool[0].swapCount),\n modifyLiquidityCount: BigInt(result.Pool[0].modifyLiquidityCount),\n positionCount: BigInt(result.Pool[0].positionCount),\n };\n },\n enabled: !!poolId && !!uniV4GraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {getPoolId} from '~/lib/utils';\n\nexport const usePoolUserVolume = (\n poolManager: Address | undefined,\n poolKey: PoolKey | undefined,\n userAddr: Address | undefined,\n) => {\n const {uniV4GraphqlClient} = useTimelockConfig();\n\n const poolId = useMemo(\n () => (poolKey ? getPoolId(poolKey) : undefined),\n [poolKey],\n );\n\n return useQuery({\n queryKey: [\n 'poolUserVolume',\n poolManager?.toLowerCase() || '--',\n poolId?.toLowerCase() || '--',\n userAddr?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n const result = await uniV4GraphqlClient!.GetPoolUserVolume({\n poolId: poolId!,\n userAddr: userAddr!,\n });\n return {\n address: result.PoolUser[0].address as Address,\n volume0: BigInt(result.PoolUser[0].volume0),\n volume1: BigInt(result.PoolUser[0].volume1),\n fees0: BigInt(result.PoolUser[0].fees0),\n fees1: BigInt(result.PoolUser[0].fees1),\n swapCount: BigInt(result.PoolUser[0].swapCount),\n };\n },\n enabled: !!poolId && !!userAddr && !!uniV4GraphqlClient,\n });\n};\n","import type {Address, Hex} from 'viem';\nimport {useSimulateContract} from 'wagmi';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {useLens} from '../useLens';\nimport {quoterAbi} from '~/abis/quoterV4';\n\nexport type QuoteExactSingleParams = {\n poolKey: PoolKey;\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData: Hex;\n};\n\nexport type PathKey = {\n intermediateCurrency: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n hookData: Hex;\n};\n\nexport type QuoteExactParams = {\n exactCurrency: Address;\n path: PathKey[];\n exactAmount: bigint;\n};\n\nexport type UseQuoteOptions = {\n enabled?: boolean;\n};\n\ntype QuoteResult = {\n quotedAmount: bigint;\n gasEstimate: bigint;\n};\n\nconst selectQuoteResult = (data: {\n result: readonly [bigint, bigint];\n}): QuoteResult => ({\n quotedAmount: data.result[0],\n gasEstimate: data.result[1],\n});\n\n/**\n * Hook to get a quote for an exact input single-hop swap\n */\nexport const useQuoteExactInputSingle = (\n poolManager: Address | undefined,\n params: QuoteExactSingleParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactInputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Hook to get a quote for an exact output single-hop swap\n */\nexport const useQuoteExactOutputSingle = (\n poolManager: Address | undefined,\n params: QuoteExactSingleParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Hook to get a quote for an exact input multi-hop swap\n */\nexport const useQuoteExactInput = (\n poolManager: Address | undefined,\n params: QuoteExactParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactInput',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Hook to get a quote for an exact output multi-hop swap\n */\nexport const useQuoteExactOutput = (\n poolManager: Address | undefined,\n params: QuoteExactParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactOutput',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Convenience hook for simple single-hop swaps\n * Automatically builds the params from common inputs\n */\nexport const useQuote = (\n poolManager: Address | undefined,\n poolKey: PoolKey | undefined,\n {\n exactAmount,\n zeroForOne,\n exactInput = true,\n hookData = '0x' as Hex,\n enabled = true,\n }: {\n exactAmount: bigint | undefined;\n zeroForOne: boolean;\n exactInput?: boolean;\n hookData?: Hex;\n enabled?: boolean;\n },\n) => {\n const {quoter} = useLens();\n\n const params =\n poolKey && exactAmount !== undefined\n ? {\n poolKey,\n zeroForOne,\n exactAmount,\n hookData,\n }\n : undefined;\n\n const isEnabled = enabled && !!quoter?.address && !!poolManager && !!params;\n\n const inputResult = useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactInputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: isEnabled && exactInput,\n select: selectQuoteResult,\n },\n });\n\n const outputResult = useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: isEnabled && !exactInput,\n select: selectQuoteResult,\n },\n });\n\n return exactInput ? inputResult : outputResult;\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {lensAbi} from '~/abis/lens';\nimport {useLens} from '../useLens';\n\nexport const useVaultData = (vaultAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getVaultData',\n args: vaultAddr ? [vaultAddr] : undefined,\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import {type Address, encodeFunctionData, maxUint256, minInt256} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useWaitForTransactionReceipt, useClient} from 'wagmi';\n\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {useVaultData} from './useVaultData';\nimport {useLens} from '../useLens';\n\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\ninterface BurnPosition {\n tickLower: number;\n tickUpper: number;\n liquidity: bigint;\n}\n\nexport const useBurnLiquidity = (vaultAddr: Address | undefined) => {\n const client = useClient();\n const {timelockLens} = useLens();\n const {poolManager, poolKey} = useVaultData(vaultAddr);\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n\n const {\n mutateAsync: writeContractAsync,\n data: hash,\n isPending,\n error,\n } = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const burn = async (\n tickLower: number,\n tickUpper: number,\n liquidity: bigint,\n ) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (!vaultAddr || !timelockLens) {\n throw new Error('Vault/lens not available');\n }\n const refTick = await timelockLens.read.getRefTick([vaultAddr, tickLower]);\n\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'burn',\n args: [\n tickLower,\n tickUpper,\n liquidity,\n refTick,\n minInt256,\n minInt256,\n maxUint256,\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n\n const burnMultiple = async (positions: BurnPosition[]) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (!currentTick) {\n throw new Error('Current tick not available');\n }\n if (positions.length === 0) {\n throw new Error('No positions to burn');\n }\n if (!timelockLens || !vaultAddr) {\n throw new Error('Vault/lens not available');\n }\n if (positions.length === 1) {\n await burn(\n positions[0].tickLower,\n positions[0].tickUpper,\n positions[0].liquidity,\n );\n } else {\n const refTick = await timelockLens.read.getRefTick([\n vaultAddr,\n Math.min(...positions.map(p => p.tickLower)),\n ]);\n const multicallData = positions.map(p =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'burn',\n args: [\n p.tickLower,\n p.tickUpper,\n p.liquidity,\n refTick,\n minInt256,\n minInt256,\n maxUint256,\n ],\n }),\n );\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'multicall',\n args: [multicallData],\n });\n await waitForTransactionReceipt(client, {hash});\n }\n };\n\n return {\n burnMultiple,\n burn,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\n };\n};\n","import {zeroAddress, type Address} from 'viem';\nimport {useReadContract} from 'wagmi';\n\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type LiquidityBlockData = ReturnType<\n typeof useLiquidityBlocks\n>['data'][0];\n\nexport const useLiquidityBlocks = (vaultAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data: blocks = [], ...rest} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getAllBlocks',\n args: [vaultAddr || zeroAddress],\n query: {enabled: !!vaultAddr},\n });\n return {data: blocks, ...rest};\n};\n","import {encodeFunctionData, maxInt256, maxUint256, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {useVaultData} from './useVaultData';\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {useLens} from '~/hooks/useLens';\n\nimport {getAmountsFromLiquidity} from '~/lib/liquidityUtils';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const batchGetAmountsFromLiquidity = (\n tickLowers: number[],\n tickUppers: number[],\n liquidities: bigint[],\n currentTick: number,\n) => {\n let totalAmount0 = 0n;\n let totalAmount1 = 0n;\n\n const amounts0: bigint[] = [];\n const amounts1: bigint[] = [];\n\n for (const [i, tickLower] of tickLowers.entries()) {\n const [amount0, amount1] = getAmountsFromLiquidity(\n tickLower,\n tickUppers[i],\n liquidities[i],\n currentTick,\n );\n totalAmount0 += amount0;\n totalAmount1 += amount1;\n amounts0.push(amount0);\n amounts1.push(amount1);\n }\n return {totalAmount0, totalAmount1, amounts0, amounts1};\n};\n\ninterface MintPositionParams {\n tickLower: number;\n tickUpper: number;\n liquidity: bigint;\n}\n\nexport const useMintLiquidity = (vaultAddr: Address | undefined) => {\n const queryClient = useQueryClient();\n const client = useClient();\n const {poolManager, poolKey} = useVaultData(vaultAddr);\n const {timelockLens} = useLens();\n\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n const {token0, token1} = usePoolData(poolManager, poolKey);\n\n const {askForApproval} = useApproval();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const processApproval = async (params: MintPositionParams[]) => {\n if (currentTick === undefined || !token0 || !token1 || !vaultAddr) {\n throw new Error('Current tick not available');\n }\n const {totalAmount0, totalAmount1} = batchGetAmountsFromLiquidity(\n params.map(p => p.tickLower),\n params.map(p => p.tickUpper),\n params.map(p => p.liquidity),\n currentTick,\n );\n await askForApproval(token0, vaultAddr, totalAmount0);\n await askForApproval(token1, vaultAddr, totalAmount1);\n };\n\n return useMutation({\n mutationFn: async (params: MintPositionParams | MintPositionParams[]) => {\n if (!client) {\n throw new Error('Wallet not connected');\n }\n if (currentTick === undefined) {\n throw new Error('Current tick not available');\n }\n if (!timelockLens || !vaultAddr) {\n throw new Error('Vault/lens not available');\n }\n if (!Array.isArray(params)) {\n params = [params];\n }\n if (params.length === 0) {\n throw new Error('No positions to mint');\n }\n await processApproval(params);\n\n const refTicks = await timelockLens.read.batchGetRefTick([\n vaultAddr,\n params.map(position => position.tickLower),\n ]);\n const multicallData = params.map((p, i) =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'mint',\n args: [\n p.tickLower,\n p.tickUpper,\n p.liquidity,\n refTicks[i],\n maxInt256,\n maxInt256,\n maxUint256,\n ],\n }),\n );\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'multicall',\n args: [multicallData],\n });\n await waitForTransactionReceipt(client, {hash});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n },\n });\n};\n","import {useReadContract} from 'wagmi';\nimport type {Address} from 'viem';\n\nimport {useLens} from '../useLens';\nimport {useVaultData} from './useVaultData';\nimport {usePoolData} from '../pool/usePoolData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {lensAbi} from '~/abis/lens';\nimport {useMemo} from 'react';\n\nexport const useVaultTVL = (vaultAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {poolManager, poolKey} = useVaultData(vaultAddr);\n const {token0Decimals, token1Decimals} = usePoolData(poolManager, poolKey);\n\n const {data, refetch} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getVaultTVL',\n args: [vaultAddr!],\n query: {enabled: !!vaultAddr && !!timelockLens},\n });\n\n return useMemo(() => {\n if (!token0Decimals || !token1Decimals || !data) return {};\n\n const total0 = wrapAmount(data[0], token0Decimals);\n const total1 = wrapAmount(data[1], token1Decimals);\n const borrowed0 = wrapAmount(data[2], token0Decimals);\n const borrowed1 = wrapAmount(data[3], token1Decimals);\n const tvlAs0 = wrapAmount(data[4], token0Decimals);\n const tvlAs1 = wrapAmount(data[5], token1Decimals);\n const blocksCount = data[6];\n\n return {\n tvlAs0,\n tvlAs1,\n total0,\n total1,\n borrowed0,\n borrowed1,\n blocksCount,\n refetch,\n };\n }, [data, token0Decimals, token1Decimals, refetch]);\n};\n","import {zeroAddress, type Address} from 'viem';\nimport {useWriteContract} from 'wagmi';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const useWithdrawPremium = (vaultAddr: Address | undefined) => {\n const {mutateAsync, ...rest} = useWriteContract();\n\n const withdrawPremium = (\n assets: Address[],\n amounts: bigint[],\n recipient: Address,\n ) => {\n if (!vaultAddr) {\n throw new Error('Vault address not provided');\n }\n if (!assets.length || !amounts.length || assets.length !== amounts.length) {\n throw new Error('Invalid assets or amounts');\n }\n if (recipient === zeroAddress) {\n throw new Error('Invalid recipient address');\n }\n return mutateAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'withdrawTokens',\n args: [assets, amounts, recipient],\n });\n };\n return {withdrawPremium, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useTokenBalance} from '../tokens/useTokenBalance';\n\nexport const useCollectedPremium = (\n vault: Address | undefined,\n payoutAsset: Address | undefined,\n) => {\n return useTokenBalance(payoutAsset, vault);\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useGlobalGuardianState = (guardianAddr?: Address) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getGlobalGuardianState',\n args: guardianAddr ? [guardianAddr] : undefined,\n });\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {guardianAbi} from '~/abis/guardian';\n\nexport const useMarketGuardianState = (\n guardianAddr?: Address,\n marketAddr?: Address,\n) => {\n return useReadContract({\n address: guardianAddr,\n abi: guardianAbi,\n functionName: 'marketTradingPaused',\n args: marketAddr ? [marketAddr] : undefined,\n query: {\n select: data => ({paused: data[0], updatedAt: data[1]}),\n },\n });\n};\n","import type {Address} from 'viem';\nimport {usePublicClient, useWriteContract} from 'wagmi';\nimport {useGlobalGuardianState} from './useGlobalGuardianState';\nimport {guardianAbi} from '~/abis/guardian';\n\nexport const usePauseAllMarkets = (guardianAddr: Address | undefined) => {\n const {data: {globalBurnPaused, globalMintPaused} = {}, refetch} =\n useGlobalGuardianState(guardianAddr);\n\n const publicClient = usePublicClient();\n const {mutateAsync, ...rest} = useWriteContract();\n\n const pauseAllMarkets = async (paused: boolean) => {\n if (!guardianAddr) {\n throw new Error('Could not load guardian address');\n }\n if (!globalMintPaused || !globalBurnPaused) {\n throw new Error('Could not load global mint or burn paused state');\n }\n if (!publicClient) {\n throw new Error('Could not load public client');\n }\n const hash = await mutateAsync({\n address: guardianAddr,\n abi: guardianAbi,\n functionName: 'pauseGlobal',\n args: [globalMintPaused.paused, globalBurnPaused.paused, paused],\n });\n await publicClient.waitForTransactionReceipt({hash});\n void refetch();\n\n return hash;\n };\n return {pauseAllMarkets, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useWriteContract} from 'wagmi';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {guardianAbi} from '~/abis/guardian';\n\nexport const usePauseMarket = (marketAddr: Address | undefined) => {\n const {guardian} = useMarketData(marketAddr);\n const {mutateAsync, ...rest} = useWriteContract();\n\n const pauseMarket = async (paused: boolean) => {\n if (!marketAddr) {\n throw new Error('Market address is required');\n }\n if (!guardian) {\n throw new Error('Could not load guardian address');\n }\n return await mutateAsync({\n address: guardian,\n abi: guardianAbi,\n functionName: 'pauseMarket',\n args: [marketAddr, paused],\n });\n };\n return {pauseMarket, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useFeeRates = (feeStrategy?: Address) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n args: feeStrategy ? [feeStrategy] : undefined,\n functionName: 'getFeeRates',\n });\n};\n","import {type Address, decodeEventLog} from 'viem';\nimport {useChainId, useWriteContract, usePublicClient} from 'wagmi';\nimport {useQueryClient} from '@tanstack/react-query';\nimport {useMarketState} from '~/hooks/market/useMarketState';\nimport {useFeeRates} from './useFeeRates';\nimport {timelockFactories} from '~/lib/contracts';\nimport {factoryAbi} from '~/abis/factory';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useUpdateMarketFees = (marketAddr: Address) => {\n const {mutateAsync: writeContractAsync, ...rest} = useWriteContract();\n const queryClient = useQueryClient();\n const publicClient = usePublicClient();\n const chainId = useChainId();\n\n const {\n data: {feeStrategy, optionPricing, priceFeed} = {},\n error: stateError,\n } = useMarketState(marketAddr);\n\n const {\n data: {\n openingFeeRate,\n extensionFeeRate,\n minOpeningFee,\n minExtensionFee,\n feeRecipient,\n } = {},\n } = useFeeRates(feeStrategy);\n\n const updateMarketFees = async (rates: {\n openingFeeRate?: number;\n extensionFeeRate?: number;\n minOpeningFee?: bigint;\n minExtensionFee?: bigint;\n feeRecipient?: Address;\n }) => {\n if (\n openingFeeRate === undefined ||\n extensionFeeRate === undefined ||\n minOpeningFee === undefined ||\n minExtensionFee === undefined ||\n feeRecipient === undefined\n ) {\n throw new Error('Missing current fee rates');\n }\n if (!optionPricing || !priceFeed) {\n throw new Error('Market state not available: ' + stateError?.message);\n }\n if (!publicClient) {\n throw new Error('Public client not available');\n }\n const factoryAddr = timelockFactories[chainId].toLowerCase() as Address;\n\n const hash = await writeContractAsync({\n address: factoryAddr,\n abi: factoryAbi,\n functionName: 'deployFeeStrategy',\n args: [\n rates.openingFeeRate ?? openingFeeRate,\n rates.extensionFeeRate ?? extensionFeeRate,\n rates.minOpeningFee ?? minOpeningFee,\n rates.minExtensionFee ?? minExtensionFee,\n rates.feeRecipient ?? feeRecipient,\n ],\n });\n const receipt = await publicClient.waitForTransactionReceipt({hash});\n\n const deployEvent = receipt.logs.find(\n log => log.address.toLowerCase() === factoryAddr,\n );\n if (!deployEvent) {\n throw new Error('DeployFeeStrategy event not found');\n }\n\n const decodedEvent = decodeEventLog({\n abi: factoryAbi,\n data: deployEvent.data,\n topics: deployEvent.topics,\n });\n if (decodedEvent.eventName !== 'DeployFeeStrategy') {\n throw new Error('Unexpected event');\n }\n const newFeeStrategy = decodedEvent.args.feeStrategy;\n\n const hash2 = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'updateAddresses',\n args: [optionPricing, newFeeStrategy, priceFeed],\n });\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n return {deployHash: hash, updateHash: hash2, newFeeStrategy};\n };\n\n return {updateMarketFees, ...rest};\n};\n","import {type Address, decodeAbiParameters, type Hex} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type StaticPricingParams = {\n model: 'static';\n openingRate: number;\n dailyFundingRate: number;\n minOpeningAmount: bigint;\n minFundingAmount: bigint;\n};\n\nexport type OptionPricingParams = {\n model: 'bsm';\n logicContract: Address;\n iv: number;\n riskFreeRate: number;\n minPremiumDailyRate: number;\n minPremiumAmount: bigint;\n};\nexport type PricingParams = StaticPricingParams | OptionPricingParams;\n\nexport const usePricingParams = (pricingAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getPricingParams',\n args: pricingAddr ? [pricingAddr] : undefined,\n query: {\n select: ([pricingModel, rawData]): PricingParams => {\n if (pricingModel === 0) {\n // OptionPricing: (uint8, address, uint32, uint32, uint32, uint256)\n const [\n logicContract,\n iv,\n riskFreeRate,\n minPremiumDailyRate,\n minPremiumAmount,\n ] = decodeAbiParameters(\n [\n {name: 'logicContract', type: 'address'},\n {name: 'iv', type: 'uint32'},\n {name: 'riskFreeRate', type: 'uint32'},\n {name: 'minPremiumDailyRate', type: 'uint32'},\n {name: 'minPremiumAmount', type: 'uint256'},\n ],\n rawData as Hex,\n );\n\n return {\n model: 'bsm',\n logicContract,\n iv,\n riskFreeRate,\n minPremiumDailyRate,\n minPremiumAmount,\n };\n } else if (pricingModel === 1) {\n const [\n openingRate,\n dailyFundingRate,\n minOpeningAmount,\n minFundingAmount,\n ] = decodeAbiParameters(\n [\n {name: 'openingRate', type: 'uint32'},\n {name: 'dailyFundingRate', type: 'uint32'},\n {name: 'minOpeningAmount', type: 'uint128'},\n {name: 'minFundingAmount', type: 'uint128'},\n ],\n rawData as Hex,\n );\n return {\n model: 'static',\n openingRate,\n dailyFundingRate,\n minOpeningAmount,\n minFundingAmount,\n };\n }\n throw new Error('Unknown pricing model');\n },\n },\n });\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useOptionPricingParams = (pricingAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n args: pricingAddr ? [pricingAddr] : undefined,\n functionName: 'getOptionPricingParams',\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useStaticPricingParams = (pricingAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n args: pricingAddr ? [pricingAddr] : undefined,\n functionName: 'getStaticPricingParams',\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import {type Address, decodeEventLog} from 'viem';\nimport {useChainId, useWriteContract, usePublicClient} from 'wagmi';\nimport {useQueryClient} from '@tanstack/react-query';\nimport {useMarketState} from '~/hooks/market/useMarketState';\nimport {\n usePricingParams,\n type OptionPricingParams,\n type StaticPricingParams,\n} from './usePricingParams';\nimport {timelockFactories} from '~/lib/contracts';\nimport {factoryAbi} from '~/abis/factory';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useUpdateMarketPricing = (marketAddr: Address | undefined) => {\n const {mutateAsync: writeContractAsync, ...rest} = useWriteContract();\n const queryClient = useQueryClient();\n const publicClient = usePublicClient();\n const chainId = useChainId();\n\n const {\n data: {feeStrategy, optionPricing, priceFeed} = {},\n error: stateError,\n } = useMarketState(marketAddr);\n\n const {data: pricingData, error: pricingError} =\n usePricingParams(optionPricing);\n\n const updateMarketPricing = async <T extends 'static' | 'bsm'>(\n data: T extends 'static'\n ? Partial<StaticPricingParams> & {model: 'static'}\n : Partial<OptionPricingParams> & {model: 'bsm'},\n ) => {\n if (!marketAddr) {\n throw new Error('Market address not found');\n }\n if (!pricingData) {\n throw new Error(\n 'Market pricing data not available: ' + pricingError?.message,\n );\n }\n if (!publicClient) {\n throw new Error('Public client not available');\n }\n if (!feeStrategy || !priceFeed) {\n throw new Error('Market state not available: ' + stateError?.message);\n }\n const factoryAddr = timelockFactories[chainId].toLowerCase() as Address;\n\n if (data.model === 'static' && pricingData.model === 'static') {\n data.openingRate ??= pricingData.openingRate;\n data.dailyFundingRate ??= pricingData.dailyFundingRate;\n data.minOpeningAmount ??= pricingData.minOpeningAmount;\n data.minFundingAmount ??= pricingData.minFundingAmount;\n }\n if (data.model === 'bsm' && pricingData.model === 'bsm') {\n data.logicContract ??= pricingData.logicContract;\n data.iv ??= pricingData.iv;\n data.riskFreeRate ??= pricingData.riskFreeRate;\n data.minPremiumDailyRate ??= pricingData.minPremiumDailyRate;\n data.minPremiumAmount ??= pricingData.minPremiumAmount;\n }\n if (data.model !== pricingData.model) {\n if (data.model === 'static') {\n if (data.openingRate === undefined) {\n throw new Error(\n 'openingRate is required when switching to static model',\n );\n }\n if (data.dailyFundingRate === undefined) {\n throw new Error(\n 'dailyFundingRate is required when switching to static model',\n );\n }\n if (data.minOpeningAmount === undefined) {\n throw new Error(\n 'minOpeningAmount is required when switching to static model',\n );\n }\n if (data.minFundingAmount === undefined) {\n throw new Error(\n 'minFundingAmount is required when switching to static model',\n );\n }\n } else {\n if (data.logicContract === undefined) {\n throw new Error(\n 'logicContract is required when switching to option model',\n );\n }\n if (data.iv === undefined) {\n throw new Error('iv is required when switching to option model');\n }\n if (data.riskFreeRate === undefined) {\n throw new Error(\n 'riskFreeRate is required when switching to option model',\n );\n }\n if (data.minPremiumDailyRate === undefined) {\n throw new Error(\n 'minPremiumDailyRate is required when switching to option model',\n );\n }\n if (data.minPremiumAmount === undefined) {\n throw new Error(\n 'minPremiumAmount is required when switching to option model',\n );\n }\n }\n }\n\n const hash =\n data.model === 'static'\n ? await writeContractAsync({\n address: factoryAddr,\n abi: factoryAbi,\n functionName: 'deployStaticPerpsPricing',\n args: [\n data.openingRate!,\n data.dailyFundingRate!,\n data.minOpeningAmount!,\n data.minFundingAmount!,\n ],\n })\n : await writeContractAsync({\n address: factoryAddr,\n abi: factoryAbi,\n functionName: 'deployOptionPricing',\n args: [\n data.logicContract!,\n data.iv!,\n data.riskFreeRate!,\n data.minPremiumDailyRate!,\n data.minPremiumAmount!,\n ],\n });\n const receipt = await publicClient.waitForTransactionReceipt({hash});\n\n const deployEvent = receipt.logs.find(\n log => log.address.toLowerCase() === factoryAddr,\n );\n if (!deployEvent) {\n throw new Error('DeployFeeStrategy event not found');\n }\n\n const decodedEvent = decodeEventLog({\n abi: factoryAbi,\n data: deployEvent.data,\n topics: deployEvent.topics,\n });\n\n if (\n decodedEvent.eventName !== 'DeployStaticPerpsPricing' &&\n decodedEvent.eventName !== 'DeployOptionPricing'\n ) {\n throw new Error('Unexpected event');\n }\n const pricingAddr = decodedEvent.args.pricing;\n\n const hash2 = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'updateAddresses',\n args: [pricingAddr, feeStrategy, priceFeed],\n });\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n return {deployHash: hash, updateHash: hash2, newPricingAddr: pricingAddr};\n };\n\n return {updateMarketPricing, ...rest};\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.cjs","names":["defaultWrapper","getSdk","#baseUrl","#request","getTimelockGraphqlSdk","GraphQLClient","getUniV4GraphqlSdk","getTimelockLens","getStateView","getQuoter","lensAbi","lensAbi","optionsMarketAbi","lensAbi","wrapAmount","stateViewAbi","lensAbi","getErc20","erc20Abi","maxUint256","getNearestValidStrikeTick","getTimelockMarket","optionsMarketAbi","getPriceAtTick","wrapPrice","getPriceAtSqrtPriceX96","getPriceAtSqrtPriceX96","wrapPrice","swappers","swapperData","optionsMarketAbi","token0ToToken1AtTick","token1ToToken0AtTick","token0ToToken1","token1ToToken0","wrapAmount","MIN_SQRT_RATIO","MAX_SQRT_RATIO","lensAbi","swappers","optionsMarketAbi","strikeTickRounded","roundTick","optionsMarketAbi","wrapAmount","strikeTickRounded","roundTick","optionsMarketAbi","wrapAmount","getTimelockMarket","optionsMarketAbi","maxUint256","address","optionsMarketAbi","getTimelockMarket","getNearestValidStrikeTick","maxUint256","lensAbi","erc20Abi","wrapAmount","optionsMarketAbi","getPriceHistory","quoterAbi","lensAbi","hash","singleOwnerVaultAbi","minInt256","maxUint256","lensAbi","zeroAddress","getAmountsFromLiquidity","singleOwnerVaultAbi","maxInt256","maxUint256","lensAbi","wrapAmount","zeroAddress","singleOwnerVaultAbi","lensAbi","guardianAbi","guardianAbi","guardianAbi","lensAbi","timelockFactories","factoryAbi","optionsMarketAbi","lensAbi","lensAbi","lensAbi","timelockFactories","factoryAbi","optionsMarketAbi"],"sources":["../src/generated/timelock.ts","../src/generated/univ4.ts","../src/lib/perpsOperator.ts","../src/providers/TimelockProvider.tsx","../src/hooks/useLens.ts","../src/hooks/market/useMarketData.ts","../src/hooks/market/useMarketState.ts","../src/hooks/market/useMarketVolume.ts","../src/hooks/market/useMarketUserVolume.ts","../src/hooks/market/useUpdateMarketBounds.ts","../src/hooks/market/useMarketDailyVolume.ts","../src/hooks/options/useMaxPositionSize.ts","../src/hooks/pool/useCurrentTick.ts","../src/hooks/pool/usePoolData.ts","../src/hooks/tokens/useApproval.ts","../src/lib/utils.ts","../src/hooks/options/useMintOption.ts","../src/hooks/pool/usePriceAtTick.ts","../src/hooks/pool/useCurrentPrice.ts","../src/hooks/options/useExerciseOption.ts","../src/hooks/options/useOptionPnl.ts","../src/hooks/options/useMintFees.ts","../src/hooks/options/useExtensionFees.ts","../src/hooks/options/useUserOptions.ts","../src/hooks/options/useExtendOption.ts","../src/hooks/options/useOptionTimeline.ts","../src/hooks/perps/usePerpsOperator.ts","../src/hooks/operators/useUserOperators.ts","../src/hooks/operators/useSetOperatorPerms.ts","../src/hooks/perps/useMintPerp.ts","../src/hooks/perps/useClosePerp.ts","../src/hooks/perps/useUserPerps.ts","../src/hooks/tokens/useTokenData.ts","../src/hooks/tokens/useTokenBalance.ts","../src/hooks/operators/useOperatorPerms.ts","../src/hooks/pool/usePriceHistory.ts","../src/hooks/pool/usePoolVolume.ts","../src/hooks/pool/usePoolUserVolume.ts","../src/hooks/pool/useQuote.ts","../src/hooks/vault/useVaultData.ts","../src/hooks/vault/useBurnLiquidity.ts","../src/hooks/vault/useLiquidityBlocks.ts","../src/hooks/vault/useMintLiquidity.ts","../src/hooks/vault/useVaultTVL.ts","../src/hooks/vault/useWithdrawPremium.ts","../src/hooks/vault/useCollectedPremium.ts","../src/hooks/guardian/useGlobalGuardianState.ts","../src/hooks/guardian/useMarketGuardianState.ts","../src/hooks/guardian/usePauseAllMarkets.ts","../src/hooks/guardian/usePauseMarket.ts","../src/hooks/fees/useFeeRates.ts","../src/hooks/fees/useUpdateMarketFees.ts","../src/hooks/pricing/usePricingParams.ts","../src/hooks/pricing/useOptionPricingParams.ts","../src/hooks/pricing/useStaticPricingParams.ts","../src/hooks/pricing/useUpdateMarketPricing.ts"],"sourcesContent":["import {GraphQLClient, RequestOptions} from 'graphql-request';\nimport gql from 'graphql-tag';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends {[key: string]: unknown}> = {[K in keyof T]: T[K]};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<T extends {[key: string]: unknown}, K extends keyof T> = {\n [_ in K]?: never;\n};\nexport type Incremental<T> =\n | T\n | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never};\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: {input: string; output: string};\n String: {input: string; output: string};\n Boolean: {input: boolean; output: boolean};\n Int: {input: number; output: number};\n Float: {input: number; output: number};\n jsonb: {input: any; output: any};\n numeric: {input: any; output: any};\n optiontype: {input: any; output: any};\n timestamptz: {input: any; output: any};\n};\n\n/** Boolean expression to compare columns of type \"Boolean\". All fields are combined with logical 'AND'. */\nexport type BooleanComparisonExp = {\n _eq?: InputMaybe<Scalars['Boolean']['input']>;\n _gt?: InputMaybe<Scalars['Boolean']['input']>;\n _gte?: InputMaybe<Scalars['Boolean']['input']>;\n _in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Boolean']['input']>;\n _lte?: InputMaybe<Scalars['Boolean']['input']>;\n _neq?: InputMaybe<Scalars['Boolean']['input']>;\n _nin?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n};\n\n/** columns and relationships of \"BorrowEvent\" */\nexport type BorrowEvent = {\n __typename: 'BorrowEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"BorrowEvent\". All fields are combined with a logical 'AND'. */\nexport type BorrowEventBoolExp = {\n _and?: InputMaybe<Array<BorrowEventBoolExp>>;\n _not?: InputMaybe<BorrowEventBoolExp>;\n _or?: InputMaybe<Array<BorrowEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"BorrowEvent\". */\nexport type BorrowEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"BorrowEvent\" */\nexport type BorrowEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"BorrowEvent\" */\nexport type BorrowEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: BorrowEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type BorrowEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"BurnEvent\" */\nexport type BurnEvent = {\n __typename: 'BurnEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"BurnEvent\". All fields are combined with a logical 'AND'. */\nexport type BurnEventBoolExp = {\n _and?: InputMaybe<Array<BurnEventBoolExp>>;\n _not?: InputMaybe<BurnEventBoolExp>;\n _or?: InputMaybe<Array<BurnEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"BurnEvent\". */\nexport type BurnEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"BurnEvent\" */\nexport type BurnEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"BurnEvent\" */\nexport type BurnEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: BurnEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type BurnEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEvent = {\n __typename: 'ExerciseOptionEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidities: Array<Scalars['String']['output']>;\n /** An object relationship */\n option?: Maybe<UserOption>;\n option_id: Scalars['String']['output'];\n payout: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"ExerciseOptionEvent\". All fields are combined with a logical 'AND'. */\nexport type ExerciseOptionEventBoolExp = {\n _and?: InputMaybe<Array<ExerciseOptionEventBoolExp>>;\n _not?: InputMaybe<ExerciseOptionEventBoolExp>;\n _or?: InputMaybe<Array<ExerciseOptionEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidities?: InputMaybe<StringArrayComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n payout?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"ExerciseOptionEvent\". */\nexport type ExerciseOptionEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option?: InputMaybe<UserOptionOrderBy>;\n option_id?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidities'\n /** column name */\n | 'option_id'\n /** column name */\n | 'payout'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ExerciseOptionEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ExerciseOptionEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidities?: InputMaybe<Array<Scalars['String']['input']>>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n payout?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"ExtendOptionEvent\" */\nexport type ExtendOptionEvent = {\n __typename: 'ExtendOptionEvent';\n addedDuration: Scalars['numeric']['output'];\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n option?: Maybe<UserOption>;\n option_id: Scalars['String']['output'];\n premium: Scalars['numeric']['output'];\n price: Scalars['numeric']['output'];\n protocolFee: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"ExtendOptionEvent\". All fields are combined with a logical 'AND'. */\nexport type ExtendOptionEventBoolExp = {\n _and?: InputMaybe<Array<ExtendOptionEventBoolExp>>;\n _not?: InputMaybe<ExtendOptionEventBoolExp>;\n _or?: InputMaybe<Array<ExtendOptionEventBoolExp>>;\n addedDuration?: InputMaybe<NumericComparisonExp>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n premium?: InputMaybe<NumericComparisonExp>;\n price?: InputMaybe<NumericComparisonExp>;\n protocolFee?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"ExtendOptionEvent\". */\nexport type ExtendOptionEventOrderBy = {\n addedDuration?: InputMaybe<OrderBy>;\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n option?: InputMaybe<UserOptionOrderBy>;\n option_id?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n price?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"ExtendOptionEvent\" */\nexport type ExtendOptionEventSelectColumn =\n /** column name */\n | 'addedDuration'\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'option_id'\n /** column name */\n | 'premium'\n /** column name */\n | 'price'\n /** column name */\n | 'protocolFee'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"ExtendOptionEvent\" */\nexport type ExtendOptionEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ExtendOptionEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ExtendOptionEventStreamCursorValueInput = {\n addedDuration?: InputMaybe<Scalars['numeric']['input']>;\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n premium?: InputMaybe<Scalars['numeric']['input']>;\n price?: InputMaybe<Scalars['numeric']['input']>;\n protocolFee?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to compare columns of type \"Int\". All fields are combined with logical 'AND'. */\nexport type IntComparisonExp = {\n _eq?: InputMaybe<Scalars['Int']['input']>;\n _gt?: InputMaybe<Scalars['Int']['input']>;\n _gte?: InputMaybe<Scalars['Int']['input']>;\n _in?: InputMaybe<Array<Scalars['Int']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Int']['input']>;\n _lte?: InputMaybe<Scalars['Int']['input']>;\n _neq?: InputMaybe<Scalars['Int']['input']>;\n _nin?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\n/** columns and relationships of \"MarketDailyData\" */\nexport type MarketDailyData = {\n __typename: 'MarketDailyData';\n date: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n totalPayout: Scalars['numeric']['output'];\n totalPremium: Scalars['numeric']['output'];\n totalProtocolFee: Scalars['numeric']['output'];\n totalVolume: Scalars['numeric']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"MarketDailyData\". All fields are combined with a logical 'AND'. */\nexport type MarketDailyDataBoolExp = {\n _and?: InputMaybe<Array<MarketDailyDataBoolExp>>;\n _not?: InputMaybe<MarketDailyDataBoolExp>;\n _or?: InputMaybe<Array<MarketDailyDataBoolExp>>;\n date?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n totalPayout?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n totalProtocolFee?: InputMaybe<NumericComparisonExp>;\n totalVolume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MarketDailyData\". */\nexport type MarketDailyDataOrderBy = {\n date?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"MarketDailyData\" */\nexport type MarketDailyDataSelectColumn =\n /** column name */\n | 'date'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'totalPayout'\n /** column name */\n | 'totalPremium'\n /** column name */\n | 'totalProtocolFee'\n /** column name */\n | 'totalVolume';\n\n/** Streaming cursor of the table \"MarketDailyData\" */\nexport type MarketDailyDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MarketDailyDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MarketDailyDataStreamCursorValueInput = {\n date?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n totalPayout?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: InputMaybe<Scalars['numeric']['input']>;\n totalProtocolFee?: InputMaybe<Scalars['numeric']['input']>;\n totalVolume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"MarketOperator\" */\nexport type MarketOperator = {\n __typename: 'MarketOperator';\n address: Scalars['String']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An array relationship */\n userPermissions: Array<UserMarketOperator>;\n};\n\n/** columns and relationships of \"MarketOperator\" */\nexport type MarketOperatorUserPermissionsArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\n/** Boolean expression to filter rows from the table \"MarketOperator\". All fields are combined with a logical 'AND'. */\nexport type MarketOperatorBoolExp = {\n _and?: InputMaybe<Array<MarketOperatorBoolExp>>;\n _not?: InputMaybe<MarketOperatorBoolExp>;\n _or?: InputMaybe<Array<MarketOperatorBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n userPermissions?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\n/** Ordering options when selecting data from \"MarketOperator\". */\nexport type MarketOperatorOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n userPermissions_aggregate?: InputMaybe<UserMarketOperatorAggregateOrderBy>;\n};\n\n/** select columns of table \"MarketOperator\" */\nexport type MarketOperatorSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id';\n\n/** Streaming cursor of the table \"MarketOperator\" */\nexport type MarketOperatorStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MarketOperatorStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MarketOperatorStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"MintEvent\" */\nexport type MintEvent = {\n __typename: 'MintEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"MintEvent\". All fields are combined with a logical 'AND'. */\nexport type MintEventBoolExp = {\n _and?: InputMaybe<Array<MintEventBoolExp>>;\n _not?: InputMaybe<MintEventBoolExp>;\n _or?: InputMaybe<Array<MintEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MintEvent\". */\nexport type MintEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"MintEvent\" */\nexport type MintEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"MintEvent\" */\nexport type MintEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MintEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MintEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"MintOptionEvent\" */\nexport type MintOptionEvent = {\n __typename: 'MintOptionEvent';\n blockNumber: Scalars['numeric']['output'];\n expiresAt: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidities: Array<Scalars['String']['output']>;\n /** An object relationship */\n option?: Maybe<UserOption>;\n optionType: Scalars['Int']['output'];\n option_id: Scalars['String']['output'];\n owner: Scalars['String']['output'];\n premium: Scalars['numeric']['output'];\n price: Scalars['numeric']['output'];\n protocolFee: Scalars['numeric']['output'];\n strikeTick: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"MintOptionEvent\". All fields are combined with a logical 'AND'. */\nexport type MintOptionEventBoolExp = {\n _and?: InputMaybe<Array<MintOptionEventBoolExp>>;\n _not?: InputMaybe<MintOptionEventBoolExp>;\n _or?: InputMaybe<Array<MintOptionEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n expiresAt?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidities?: InputMaybe<StringArrayComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n optionType?: InputMaybe<IntComparisonExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n owner?: InputMaybe<StringComparisonExp>;\n premium?: InputMaybe<NumericComparisonExp>;\n price?: InputMaybe<NumericComparisonExp>;\n protocolFee?: InputMaybe<NumericComparisonExp>;\n strikeTick?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MintOptionEvent\". */\nexport type MintOptionEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option?: InputMaybe<UserOptionOrderBy>;\n optionType?: InputMaybe<OrderBy>;\n option_id?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n price?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"MintOptionEvent\" */\nexport type MintOptionEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'expiresAt'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidities'\n /** column name */\n | 'optionType'\n /** column name */\n | 'option_id'\n /** column name */\n | 'owner'\n /** column name */\n | 'premium'\n /** column name */\n | 'price'\n /** column name */\n | 'protocolFee'\n /** column name */\n | 'strikeTick'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"MintOptionEvent\" */\nexport type MintOptionEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MintOptionEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MintOptionEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n expiresAt?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidities?: InputMaybe<Array<Scalars['String']['input']>>;\n optionType?: InputMaybe<Scalars['Int']['input']>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n owner?: InputMaybe<Scalars['String']['input']>;\n premium?: InputMaybe<Scalars['numeric']['input']>;\n price?: InputMaybe<Scalars['numeric']['input']>;\n protocolFee?: InputMaybe<Scalars['numeric']['input']>;\n strikeTick?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"RepayEvent\" */\nexport type RepayEvent = {\n __typename: 'RepayEvent';\n blockNumber: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n tickLower: Scalars['Int']['output'];\n tickUpper: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n userAddr: Scalars['String']['output'];\n vaultAddr: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"RepayEvent\". All fields are combined with a logical 'AND'. */\nexport type RepayEventBoolExp = {\n _and?: InputMaybe<Array<RepayEventBoolExp>>;\n _not?: InputMaybe<RepayEventBoolExp>;\n _or?: InputMaybe<Array<RepayEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n tickLower?: InputMaybe<IntComparisonExp>;\n tickUpper?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n vaultAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"RepayEvent\". */\nexport type RepayEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n vaultAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"RepayEvent\" */\nexport type RepayEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash'\n /** column name */\n | 'userAddr'\n /** column name */\n | 'vaultAddr';\n\n/** Streaming cursor of the table \"RepayEvent\" */\nexport type RepayEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: RepayEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type RepayEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n tickLower?: InputMaybe<Scalars['Int']['input']>;\n tickUpper?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n vaultAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringArrayComparisonExp = {\n /** is the array contained in the given array value */\n _contained_in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the array contain the given value */\n _contains?: InputMaybe<Array<Scalars['String']['input']>>;\n _eq?: InputMaybe<Array<Scalars['String']['input']>>;\n _gt?: InputMaybe<Array<Scalars['String']['input']>>;\n _gte?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Array<Scalars['String']['input']>>;\n _lte?: InputMaybe<Array<Scalars['String']['input']>>;\n _neq?: InputMaybe<Array<Scalars['String']['input']>>;\n _nin?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringComparisonExp = {\n _eq?: InputMaybe<Scalars['String']['input']>;\n _gt?: InputMaybe<Scalars['String']['input']>;\n _gte?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given case-insensitive pattern */\n _ilike?: InputMaybe<Scalars['String']['input']>;\n _in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column match the given POSIX regular expression, case insensitive */\n _iregex?: InputMaybe<Scalars['String']['input']>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n /** does the column match the given pattern */\n _like?: InputMaybe<Scalars['String']['input']>;\n _lt?: InputMaybe<Scalars['String']['input']>;\n _lte?: InputMaybe<Scalars['String']['input']>;\n _neq?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given case-insensitive pattern */\n _nilike?: InputMaybe<Scalars['String']['input']>;\n _nin?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column NOT match the given POSIX regular expression, case insensitive */\n _niregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given pattern */\n _nlike?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given POSIX regular expression, case sensitive */\n _nregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given SQL regular expression */\n _nsimilar?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given POSIX regular expression, case sensitive */\n _regex?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given SQL regular expression */\n _similar?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"TimelockMarket\" */\nexport type TimelockMarket = {\n __typename: 'TimelockMarket';\n address: Scalars['String']['output'];\n currency0: Scalars['String']['output'];\n currency1: Scalars['String']['output'];\n fee: Scalars['Int']['output'];\n hooks: Scalars['String']['output'];\n id: Scalars['String']['output'];\n optionAsset: Scalars['String']['output'];\n optionAssetDecimals: Scalars['Int']['output'];\n optionAssetIsToken0: Scalars['Boolean']['output'];\n optionAssetName: Scalars['String']['output'];\n optionAssetSymbol: Scalars['String']['output'];\n /** An array relationship */\n options: Array<UserOption>;\n optionsCount: Scalars['numeric']['output'];\n payoutAsset: Scalars['String']['output'];\n payoutAssetDecimals: Scalars['Int']['output'];\n payoutAssetName: Scalars['String']['output'];\n payoutAssetSymbol: Scalars['String']['output'];\n poolManager: Scalars['String']['output'];\n tickSpacing: Scalars['Int']['output'];\n totalPayout: Scalars['numeric']['output'];\n totalPremium: Scalars['numeric']['output'];\n totalProtocolFee: Scalars['numeric']['output'];\n totalVolume: Scalars['numeric']['output'];\n /** An array relationship */\n traders: Array<TimelockMarketUser>;\n tradersCount: Scalars['numeric']['output'];\n vault: Scalars['String']['output'];\n};\n\n/** columns and relationships of \"TimelockMarket\" */\nexport type TimelockMarketOptionsArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\n/** columns and relationships of \"TimelockMarket\" */\nexport type TimelockMarketTradersArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketUserOrderBy>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\n/** columns and relationships of \"TimelockMarketUser\" */\nexport type TimelockMarketUser = {\n __typename: 'TimelockMarketUser';\n address: Scalars['String']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An array relationship */\n operators: Array<UserMarketOperator>;\n /** An array relationship */\n options: Array<UserOption>;\n optionsCount: Scalars['numeric']['output'];\n totalPayout: Scalars['numeric']['output'];\n totalPremium: Scalars['numeric']['output'];\n totalProtocolFee: Scalars['numeric']['output'];\n totalVolume: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"TimelockMarketUser\" */\nexport type TimelockMarketUserOperatorsArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\n/** columns and relationships of \"TimelockMarketUser\" */\nexport type TimelockMarketUserOptionsArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\n/** order by aggregate values of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserAggregateOrderBy = {\n avg?: InputMaybe<TimelockMarketUserAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TimelockMarketUserMaxOrderBy>;\n min?: InputMaybe<TimelockMarketUserMinOrderBy>;\n stddev?: InputMaybe<TimelockMarketUserStddevOrderBy>;\n stddev_pop?: InputMaybe<TimelockMarketUserStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TimelockMarketUserStddevSampOrderBy>;\n sum?: InputMaybe<TimelockMarketUserSumOrderBy>;\n var_pop?: InputMaybe<TimelockMarketUserVarPopOrderBy>;\n var_samp?: InputMaybe<TimelockMarketUserVarSampOrderBy>;\n variance?: InputMaybe<TimelockMarketUserVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserAvgOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TimelockMarketUser\". All fields are combined with a logical 'AND'. */\nexport type TimelockMarketUserBoolExp = {\n _and?: InputMaybe<Array<TimelockMarketUserBoolExp>>;\n _not?: InputMaybe<TimelockMarketUserBoolExp>;\n _or?: InputMaybe<Array<TimelockMarketUserBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n operators?: InputMaybe<UserMarketOperatorBoolExp>;\n options?: InputMaybe<UserOptionBoolExp>;\n optionsCount?: InputMaybe<NumericComparisonExp>;\n totalPayout?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n totalProtocolFee?: InputMaybe<NumericComparisonExp>;\n totalVolume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMaxOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMinOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TimelockMarketUser\". */\nexport type TimelockMarketUserOrderBy = {\n address?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operators_aggregate?: InputMaybe<UserMarketOperatorAggregateOrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n options_aggregate?: InputMaybe<UserOptionAggregateOrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'optionsCount'\n /** column name */\n | 'totalPayout'\n /** column name */\n | 'totalPremium'\n /** column name */\n | 'totalProtocolFee'\n /** column name */\n | 'totalVolume';\n\n/** order by stddev() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevSampOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TimelockMarketUserStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TimelockMarketUserStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n optionsCount?: InputMaybe<Scalars['numeric']['input']>;\n totalPayout?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: InputMaybe<Scalars['numeric']['input']>;\n totalProtocolFee?: InputMaybe<Scalars['numeric']['input']>;\n totalVolume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSumOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarSampOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarianceOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TimelockMarket\". All fields are combined with a logical 'AND'. */\nexport type TimelockMarketBoolExp = {\n _and?: InputMaybe<Array<TimelockMarketBoolExp>>;\n _not?: InputMaybe<TimelockMarketBoolExp>;\n _or?: InputMaybe<Array<TimelockMarketBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n currency0?: InputMaybe<StringComparisonExp>;\n currency1?: InputMaybe<StringComparisonExp>;\n fee?: InputMaybe<IntComparisonExp>;\n hooks?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n optionAsset?: InputMaybe<StringComparisonExp>;\n optionAssetDecimals?: InputMaybe<IntComparisonExp>;\n optionAssetIsToken0?: InputMaybe<BooleanComparisonExp>;\n optionAssetName?: InputMaybe<StringComparisonExp>;\n optionAssetSymbol?: InputMaybe<StringComparisonExp>;\n options?: InputMaybe<UserOptionBoolExp>;\n optionsCount?: InputMaybe<NumericComparisonExp>;\n payoutAsset?: InputMaybe<StringComparisonExp>;\n payoutAssetDecimals?: InputMaybe<IntComparisonExp>;\n payoutAssetName?: InputMaybe<StringComparisonExp>;\n payoutAssetSymbol?: InputMaybe<StringComparisonExp>;\n poolManager?: InputMaybe<StringComparisonExp>;\n tickSpacing?: InputMaybe<IntComparisonExp>;\n totalPayout?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n totalProtocolFee?: InputMaybe<NumericComparisonExp>;\n totalVolume?: InputMaybe<NumericComparisonExp>;\n traders?: InputMaybe<TimelockMarketUserBoolExp>;\n tradersCount?: InputMaybe<NumericComparisonExp>;\n vault?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"TimelockMarket\". */\nexport type TimelockMarketOrderBy = {\n address?: InputMaybe<OrderBy>;\n currency0?: InputMaybe<OrderBy>;\n currency1?: InputMaybe<OrderBy>;\n fee?: InputMaybe<OrderBy>;\n hooks?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n optionAsset?: InputMaybe<OrderBy>;\n optionAssetDecimals?: InputMaybe<OrderBy>;\n optionAssetIsToken0?: InputMaybe<OrderBy>;\n optionAssetName?: InputMaybe<OrderBy>;\n optionAssetSymbol?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n options_aggregate?: InputMaybe<UserOptionAggregateOrderBy>;\n payoutAsset?: InputMaybe<OrderBy>;\n payoutAssetDecimals?: InputMaybe<OrderBy>;\n payoutAssetName?: InputMaybe<OrderBy>;\n payoutAssetSymbol?: InputMaybe<OrderBy>;\n poolManager?: InputMaybe<OrderBy>;\n tickSpacing?: InputMaybe<OrderBy>;\n totalPayout?: InputMaybe<OrderBy>;\n totalPremium?: InputMaybe<OrderBy>;\n totalProtocolFee?: InputMaybe<OrderBy>;\n totalVolume?: InputMaybe<OrderBy>;\n tradersCount?: InputMaybe<OrderBy>;\n traders_aggregate?: InputMaybe<TimelockMarketUserAggregateOrderBy>;\n vault?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TimelockMarket\" */\nexport type TimelockMarketSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'currency0'\n /** column name */\n | 'currency1'\n /** column name */\n | 'fee'\n /** column name */\n | 'hooks'\n /** column name */\n | 'id'\n /** column name */\n | 'optionAsset'\n /** column name */\n | 'optionAssetDecimals'\n /** column name */\n | 'optionAssetIsToken0'\n /** column name */\n | 'optionAssetName'\n /** column name */\n | 'optionAssetSymbol'\n /** column name */\n | 'optionsCount'\n /** column name */\n | 'payoutAsset'\n /** column name */\n | 'payoutAssetDecimals'\n /** column name */\n | 'payoutAssetName'\n /** column name */\n | 'payoutAssetSymbol'\n /** column name */\n | 'poolManager'\n /** column name */\n | 'tickSpacing'\n /** column name */\n | 'totalPayout'\n /** column name */\n | 'totalPremium'\n /** column name */\n | 'totalProtocolFee'\n /** column name */\n | 'totalVolume'\n /** column name */\n | 'tradersCount'\n /** column name */\n | 'vault';\n\n/** Streaming cursor of the table \"TimelockMarket\" */\nexport type TimelockMarketStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TimelockMarketStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TimelockMarketStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n currency0?: InputMaybe<Scalars['String']['input']>;\n currency1?: InputMaybe<Scalars['String']['input']>;\n fee?: InputMaybe<Scalars['Int']['input']>;\n hooks?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n optionAsset?: InputMaybe<Scalars['String']['input']>;\n optionAssetDecimals?: InputMaybe<Scalars['Int']['input']>;\n optionAssetIsToken0?: InputMaybe<Scalars['Boolean']['input']>;\n optionAssetName?: InputMaybe<Scalars['String']['input']>;\n optionAssetSymbol?: InputMaybe<Scalars['String']['input']>;\n optionsCount?: InputMaybe<Scalars['numeric']['input']>;\n payoutAsset?: InputMaybe<Scalars['String']['input']>;\n payoutAssetDecimals?: InputMaybe<Scalars['Int']['input']>;\n payoutAssetName?: InputMaybe<Scalars['String']['input']>;\n payoutAssetSymbol?: InputMaybe<Scalars['String']['input']>;\n poolManager?: InputMaybe<Scalars['String']['input']>;\n tickSpacing?: InputMaybe<Scalars['Int']['input']>;\n totalPayout?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: InputMaybe<Scalars['numeric']['input']>;\n totalProtocolFee?: InputMaybe<Scalars['numeric']['input']>;\n totalVolume?: InputMaybe<Scalars['numeric']['input']>;\n tradersCount?: InputMaybe<Scalars['numeric']['input']>;\n vault?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"UpdateOperatorPermsEvent\" */\nexport type UpdateOperatorPermsEvent = {\n __typename: 'UpdateOperatorPermsEvent';\n blockNumber: Scalars['numeric']['output'];\n canExercise: Scalars['Boolean']['output'];\n canExtend: Scalars['Boolean']['output'];\n canMint: Scalars['Boolean']['output'];\n canTransfer: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n operator: Scalars['String']['output'];\n /** An object relationship */\n owner?: Maybe<TimelockMarketUser>;\n owner_id: Scalars['String']['output'];\n spendingApproval: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"UpdateOperatorPermsEvent\". All fields are combined with a logical 'AND'. */\nexport type UpdateOperatorPermsEventBoolExp = {\n _and?: InputMaybe<Array<UpdateOperatorPermsEventBoolExp>>;\n _not?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n _or?: InputMaybe<Array<UpdateOperatorPermsEventBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n canExercise?: InputMaybe<BooleanComparisonExp>;\n canExtend?: InputMaybe<BooleanComparisonExp>;\n canMint?: InputMaybe<BooleanComparisonExp>;\n canTransfer?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n operator?: InputMaybe<StringComparisonExp>;\n owner?: InputMaybe<TimelockMarketUserBoolExp>;\n owner_id?: InputMaybe<StringComparisonExp>;\n spendingApproval?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"UpdateOperatorPermsEvent\". */\nexport type UpdateOperatorPermsEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n canExercise?: InputMaybe<OrderBy>;\n canExtend?: InputMaybe<OrderBy>;\n canMint?: InputMaybe<OrderBy>;\n canTransfer?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator?: InputMaybe<OrderBy>;\n owner?: InputMaybe<TimelockMarketUserOrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"UpdateOperatorPermsEvent\" */\nexport type UpdateOperatorPermsEventSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'canExercise'\n /** column name */\n | 'canExtend'\n /** column name */\n | 'canMint'\n /** column name */\n | 'canTransfer'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'operator'\n /** column name */\n | 'owner_id'\n /** column name */\n | 'spendingApproval'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** Streaming cursor of the table \"UpdateOperatorPermsEvent\" */\nexport type UpdateOperatorPermsEventStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: UpdateOperatorPermsEventStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type UpdateOperatorPermsEventStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n canExercise?: InputMaybe<Scalars['Boolean']['input']>;\n canExtend?: InputMaybe<Scalars['Boolean']['input']>;\n canMint?: InputMaybe<Scalars['Boolean']['input']>;\n canTransfer?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n operator?: InputMaybe<Scalars['String']['input']>;\n owner_id?: InputMaybe<Scalars['String']['input']>;\n spendingApproval?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n transactionHash?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"UserMarketOperator\" */\nexport type UserMarketOperator = {\n __typename: 'UserMarketOperator';\n canExercise: Scalars['Boolean']['output'];\n canExtend: Scalars['Boolean']['output'];\n canMint: Scalars['Boolean']['output'];\n canTransfer: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An object relationship */\n operator?: Maybe<MarketOperator>;\n operator_id: Scalars['String']['output'];\n spendingApproval: Scalars['numeric']['output'];\n /** An object relationship */\n user?: Maybe<TimelockMarketUser>;\n user_id: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"UserMarketOperator\" */\nexport type UserMarketOperatorAggregateOrderBy = {\n avg?: InputMaybe<UserMarketOperatorAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<UserMarketOperatorMaxOrderBy>;\n min?: InputMaybe<UserMarketOperatorMinOrderBy>;\n stddev?: InputMaybe<UserMarketOperatorStddevOrderBy>;\n stddev_pop?: InputMaybe<UserMarketOperatorStddevPopOrderBy>;\n stddev_samp?: InputMaybe<UserMarketOperatorStddevSampOrderBy>;\n sum?: InputMaybe<UserMarketOperatorSumOrderBy>;\n var_pop?: InputMaybe<UserMarketOperatorVarPopOrderBy>;\n var_samp?: InputMaybe<UserMarketOperatorVarSampOrderBy>;\n variance?: InputMaybe<UserMarketOperatorVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorAvgOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"UserMarketOperator\". All fields are combined with a logical 'AND'. */\nexport type UserMarketOperatorBoolExp = {\n _and?: InputMaybe<Array<UserMarketOperatorBoolExp>>;\n _not?: InputMaybe<UserMarketOperatorBoolExp>;\n _or?: InputMaybe<Array<UserMarketOperatorBoolExp>>;\n canExercise?: InputMaybe<BooleanComparisonExp>;\n canExtend?: InputMaybe<BooleanComparisonExp>;\n canMint?: InputMaybe<BooleanComparisonExp>;\n canTransfer?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n operator?: InputMaybe<MarketOperatorBoolExp>;\n operator_id?: InputMaybe<StringComparisonExp>;\n spendingApproval?: InputMaybe<NumericComparisonExp>;\n user?: InputMaybe<TimelockMarketUserBoolExp>;\n user_id?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n user_id?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n user_id?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"UserMarketOperator\". */\nexport type UserMarketOperatorOrderBy = {\n canExercise?: InputMaybe<OrderBy>;\n canExtend?: InputMaybe<OrderBy>;\n canMint?: InputMaybe<OrderBy>;\n canTransfer?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n operator?: InputMaybe<MarketOperatorOrderBy>;\n operator_id?: InputMaybe<OrderBy>;\n spendingApproval?: InputMaybe<OrderBy>;\n user?: InputMaybe<TimelockMarketUserOrderBy>;\n user_id?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorSelectColumn =\n /** column name */\n | 'canExercise'\n /** column name */\n | 'canExtend'\n /** column name */\n | 'canMint'\n /** column name */\n | 'canTransfer'\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'operator_id'\n /** column name */\n | 'spendingApproval'\n /** column name */\n | 'user_id';\n\n/** order by stddev() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorStddevOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorStddevPopOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorStddevSampOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"UserMarketOperator\" */\nexport type UserMarketOperatorStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: UserMarketOperatorStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type UserMarketOperatorStreamCursorValueInput = {\n canExercise?: InputMaybe<Scalars['Boolean']['input']>;\n canExtend?: InputMaybe<Scalars['Boolean']['input']>;\n canMint?: InputMaybe<Scalars['Boolean']['input']>;\n canTransfer?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n operator_id?: InputMaybe<Scalars['String']['input']>;\n spendingApproval?: InputMaybe<Scalars['numeric']['input']>;\n user_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorSumOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorVarPopOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorVarSampOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"UserMarketOperator\" */\nexport type UserMarketOperatorVarianceOrderBy = {\n spendingApproval?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"UserOption\" */\nexport type UserOption = {\n __typename: 'UserOption';\n createdAt: Scalars['numeric']['output'];\n entryPrice: Scalars['numeric']['output'];\n expiresAt: Scalars['numeric']['output'];\n fullyExercised: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n liquiditiesAtOpen: Array<Scalars['String']['output']>;\n liquiditiesCurrent: Array<Scalars['String']['output']>;\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n optionId: Scalars['numeric']['output'];\n optionType: Scalars['optiontype']['output'];\n /** An object relationship */\n owner?: Maybe<TimelockMarketUser>;\n owner_id: Scalars['String']['output'];\n positionSizeAtOpen: Scalars['numeric']['output'];\n positionSizeCurrent: Scalars['numeric']['output'];\n premium: Scalars['numeric']['output'];\n protocolFee: Scalars['numeric']['output'];\n realizedPayout: Scalars['numeric']['output'];\n startTick: Scalars['Int']['output'];\n strikePrice: Scalars['numeric']['output'];\n strikeTick: Scalars['Int']['output'];\n};\n\n/** order by aggregate values of table \"UserOption\" */\nexport type UserOptionAggregateOrderBy = {\n avg?: InputMaybe<UserOptionAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<UserOptionMaxOrderBy>;\n min?: InputMaybe<UserOptionMinOrderBy>;\n stddev?: InputMaybe<UserOptionStddevOrderBy>;\n stddev_pop?: InputMaybe<UserOptionStddevPopOrderBy>;\n stddev_samp?: InputMaybe<UserOptionStddevSampOrderBy>;\n sum?: InputMaybe<UserOptionSumOrderBy>;\n var_pop?: InputMaybe<UserOptionVarPopOrderBy>;\n var_samp?: InputMaybe<UserOptionVarSampOrderBy>;\n variance?: InputMaybe<UserOptionVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"UserOption\" */\nexport type UserOptionAvgOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"UserOption\". All fields are combined with a logical 'AND'. */\nexport type UserOptionBoolExp = {\n _and?: InputMaybe<Array<UserOptionBoolExp>>;\n _not?: InputMaybe<UserOptionBoolExp>;\n _or?: InputMaybe<Array<UserOptionBoolExp>>;\n createdAt?: InputMaybe<NumericComparisonExp>;\n entryPrice?: InputMaybe<NumericComparisonExp>;\n expiresAt?: InputMaybe<NumericComparisonExp>;\n fullyExercised?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquiditiesAtOpen?: InputMaybe<StringArrayComparisonExp>;\n liquiditiesCurrent?: InputMaybe<StringArrayComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n optionId?: InputMaybe<NumericComparisonExp>;\n optionType?: InputMaybe<OptiontypeComparisonExp>;\n owner?: InputMaybe<TimelockMarketUserBoolExp>;\n owner_id?: InputMaybe<StringComparisonExp>;\n positionSizeAtOpen?: InputMaybe<NumericComparisonExp>;\n positionSizeCurrent?: InputMaybe<NumericComparisonExp>;\n premium?: InputMaybe<NumericComparisonExp>;\n protocolFee?: InputMaybe<NumericComparisonExp>;\n realizedPayout?: InputMaybe<NumericComparisonExp>;\n startTick?: InputMaybe<IntComparisonExp>;\n strikePrice?: InputMaybe<NumericComparisonExp>;\n strikeTick?: InputMaybe<IntComparisonExp>;\n};\n\n/** order by max() on columns of table \"UserOption\" */\nexport type UserOptionMaxOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"UserOption\" */\nexport type UserOptionMinOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"UserOption\". */\nexport type UserOptionOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n fullyExercised?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner?: InputMaybe<TimelockMarketUserOrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"UserOption\" */\nexport type UserOptionSelectColumn =\n /** column name */\n | 'createdAt'\n /** column name */\n | 'entryPrice'\n /** column name */\n | 'expiresAt'\n /** column name */\n | 'fullyExercised'\n /** column name */\n | 'id'\n /** column name */\n | 'liquiditiesAtOpen'\n /** column name */\n | 'liquiditiesCurrent'\n /** column name */\n | 'market_id'\n /** column name */\n | 'optionId'\n /** column name */\n | 'optionType'\n /** column name */\n | 'owner_id'\n /** column name */\n | 'positionSizeAtOpen'\n /** column name */\n | 'positionSizeCurrent'\n /** column name */\n | 'premium'\n /** column name */\n | 'protocolFee'\n /** column name */\n | 'realizedPayout'\n /** column name */\n | 'startTick'\n /** column name */\n | 'strikePrice'\n /** column name */\n | 'strikeTick';\n\n/** order by stddev() on columns of table \"UserOption\" */\nexport type UserOptionStddevOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"UserOption\" */\nexport type UserOptionStddevPopOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"UserOption\" */\nexport type UserOptionStddevSampOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"UserOption\" */\nexport type UserOptionStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: UserOptionStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type UserOptionStreamCursorValueInput = {\n createdAt?: InputMaybe<Scalars['numeric']['input']>;\n entryPrice?: InputMaybe<Scalars['numeric']['input']>;\n expiresAt?: InputMaybe<Scalars['numeric']['input']>;\n fullyExercised?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquiditiesAtOpen?: InputMaybe<Array<Scalars['String']['input']>>;\n liquiditiesCurrent?: InputMaybe<Array<Scalars['String']['input']>>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n optionId?: InputMaybe<Scalars['numeric']['input']>;\n optionType?: InputMaybe<Scalars['optiontype']['input']>;\n owner_id?: InputMaybe<Scalars['String']['input']>;\n positionSizeAtOpen?: InputMaybe<Scalars['numeric']['input']>;\n positionSizeCurrent?: InputMaybe<Scalars['numeric']['input']>;\n premium?: InputMaybe<Scalars['numeric']['input']>;\n protocolFee?: InputMaybe<Scalars['numeric']['input']>;\n realizedPayout?: InputMaybe<Scalars['numeric']['input']>;\n startTick?: InputMaybe<Scalars['Int']['input']>;\n strikePrice?: InputMaybe<Scalars['numeric']['input']>;\n strikeTick?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** order by sum() on columns of table \"UserOption\" */\nexport type UserOptionSumOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"UserOption\" */\nexport type UserOptionVarPopOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"UserOption\" */\nexport type UserOptionVarSampOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"UserOption\" */\nexport type UserOptionVarianceOrderBy = {\n createdAt?: InputMaybe<OrderBy>;\n entryPrice?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n optionId?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premium?: InputMaybe<OrderBy>;\n protocolFee?: InputMaybe<OrderBy>;\n realizedPayout?: InputMaybe<OrderBy>;\n startTick?: InputMaybe<OrderBy>;\n strikePrice?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"_meta\" */\nexport type Meta = {\n __typename: '_meta';\n bufferBlock?: Maybe<Scalars['Int']['output']>;\n chainId?: Maybe<Scalars['Int']['output']>;\n endBlock?: Maybe<Scalars['Int']['output']>;\n eventsProcessed?: Maybe<Scalars['Int']['output']>;\n firstEventBlock?: Maybe<Scalars['Int']['output']>;\n isReady?: Maybe<Scalars['Boolean']['output']>;\n progressBlock?: Maybe<Scalars['Int']['output']>;\n readyAt?: Maybe<Scalars['timestamptz']['output']>;\n sourceBlock?: Maybe<Scalars['Int']['output']>;\n startBlock?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Boolean expression to filter rows from the table \"_meta\". All fields are combined with a logical 'AND'. */\nexport type MetaBoolExp = {\n _and?: InputMaybe<Array<MetaBoolExp>>;\n _not?: InputMaybe<MetaBoolExp>;\n _or?: InputMaybe<Array<MetaBoolExp>>;\n bufferBlock?: InputMaybe<IntComparisonExp>;\n chainId?: InputMaybe<IntComparisonExp>;\n endBlock?: InputMaybe<IntComparisonExp>;\n eventsProcessed?: InputMaybe<IntComparisonExp>;\n firstEventBlock?: InputMaybe<IntComparisonExp>;\n isReady?: InputMaybe<BooleanComparisonExp>;\n progressBlock?: InputMaybe<IntComparisonExp>;\n readyAt?: InputMaybe<TimestamptzComparisonExp>;\n sourceBlock?: InputMaybe<IntComparisonExp>;\n startBlock?: InputMaybe<IntComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"_meta\". */\nexport type MetaOrderBy = {\n bufferBlock?: InputMaybe<OrderBy>;\n chainId?: InputMaybe<OrderBy>;\n endBlock?: InputMaybe<OrderBy>;\n eventsProcessed?: InputMaybe<OrderBy>;\n firstEventBlock?: InputMaybe<OrderBy>;\n isReady?: InputMaybe<OrderBy>;\n progressBlock?: InputMaybe<OrderBy>;\n readyAt?: InputMaybe<OrderBy>;\n sourceBlock?: InputMaybe<OrderBy>;\n startBlock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"_meta\" */\nexport type MetaSelectColumn =\n /** column name */\n | 'bufferBlock'\n /** column name */\n | 'chainId'\n /** column name */\n | 'endBlock'\n /** column name */\n | 'eventsProcessed'\n /** column name */\n | 'firstEventBlock'\n /** column name */\n | 'isReady'\n /** column name */\n | 'progressBlock'\n /** column name */\n | 'readyAt'\n /** column name */\n | 'sourceBlock'\n /** column name */\n | 'startBlock';\n\n/** Streaming cursor of the table \"_meta\" */\nexport type MetaStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MetaStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MetaStreamCursorValueInput = {\n bufferBlock?: InputMaybe<Scalars['Int']['input']>;\n chainId?: InputMaybe<Scalars['Int']['input']>;\n endBlock?: InputMaybe<Scalars['Int']['input']>;\n eventsProcessed?: InputMaybe<Scalars['Int']['input']>;\n firstEventBlock?: InputMaybe<Scalars['Int']['input']>;\n isReady?: InputMaybe<Scalars['Boolean']['input']>;\n progressBlock?: InputMaybe<Scalars['Int']['input']>;\n readyAt?: InputMaybe<Scalars['timestamptz']['input']>;\n sourceBlock?: InputMaybe<Scalars['Int']['input']>;\n startBlock?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** columns and relationships of \"chain_metadata\" */\nexport type ChainMetadata = {\n __typename: 'chain_metadata';\n block_height?: Maybe<Scalars['Int']['output']>;\n chain_id?: Maybe<Scalars['Int']['output']>;\n end_block?: Maybe<Scalars['Int']['output']>;\n first_event_block_number?: Maybe<Scalars['Int']['output']>;\n is_hyper_sync?: Maybe<Scalars['Boolean']['output']>;\n latest_fetched_block_number?: Maybe<Scalars['Int']['output']>;\n latest_processed_block?: Maybe<Scalars['Int']['output']>;\n num_batches_fetched?: Maybe<Scalars['Int']['output']>;\n num_events_processed?: Maybe<Scalars['Int']['output']>;\n start_block?: Maybe<Scalars['Int']['output']>;\n timestamp_caught_up_to_head_or_endblock?: Maybe<\n Scalars['timestamptz']['output']\n >;\n};\n\n/** Boolean expression to filter rows from the table \"chain_metadata\". All fields are combined with a logical 'AND'. */\nexport type ChainMetadataBoolExp = {\n _and?: InputMaybe<Array<ChainMetadataBoolExp>>;\n _not?: InputMaybe<ChainMetadataBoolExp>;\n _or?: InputMaybe<Array<ChainMetadataBoolExp>>;\n block_height?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n end_block?: InputMaybe<IntComparisonExp>;\n first_event_block_number?: InputMaybe<IntComparisonExp>;\n is_hyper_sync?: InputMaybe<BooleanComparisonExp>;\n latest_fetched_block_number?: InputMaybe<IntComparisonExp>;\n latest_processed_block?: InputMaybe<IntComparisonExp>;\n num_batches_fetched?: InputMaybe<IntComparisonExp>;\n num_events_processed?: InputMaybe<IntComparisonExp>;\n start_block?: InputMaybe<IntComparisonExp>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<TimestamptzComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"chain_metadata\". */\nexport type ChainMetadataOrderBy = {\n block_height?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n end_block?: InputMaybe<OrderBy>;\n first_event_block_number?: InputMaybe<OrderBy>;\n is_hyper_sync?: InputMaybe<OrderBy>;\n latest_fetched_block_number?: InputMaybe<OrderBy>;\n latest_processed_block?: InputMaybe<OrderBy>;\n num_batches_fetched?: InputMaybe<OrderBy>;\n num_events_processed?: InputMaybe<OrderBy>;\n start_block?: InputMaybe<OrderBy>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"chain_metadata\" */\nexport type ChainMetadataSelectColumn =\n /** column name */\n | 'block_height'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'end_block'\n /** column name */\n | 'first_event_block_number'\n /** column name */\n | 'is_hyper_sync'\n /** column name */\n | 'latest_fetched_block_number'\n /** column name */\n | 'latest_processed_block'\n /** column name */\n | 'num_batches_fetched'\n /** column name */\n | 'num_events_processed'\n /** column name */\n | 'start_block'\n /** column name */\n | 'timestamp_caught_up_to_head_or_endblock';\n\n/** Streaming cursor of the table \"chain_metadata\" */\nexport type ChainMetadataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ChainMetadataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ChainMetadataStreamCursorValueInput = {\n block_height?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n end_block?: InputMaybe<Scalars['Int']['input']>;\n first_event_block_number?: InputMaybe<Scalars['Int']['input']>;\n is_hyper_sync?: InputMaybe<Scalars['Boolean']['input']>;\n latest_fetched_block_number?: InputMaybe<Scalars['Int']['input']>;\n latest_processed_block?: InputMaybe<Scalars['Int']['input']>;\n num_batches_fetched?: InputMaybe<Scalars['Int']['input']>;\n num_events_processed?: InputMaybe<Scalars['Int']['input']>;\n start_block?: InputMaybe<Scalars['Int']['input']>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<\n Scalars['timestamptz']['input']\n >;\n};\n\n/** ordering argument of a cursor */\nexport type CursorOrdering =\n /** ascending ordering of the cursor */\n | 'ASC'\n /** descending ordering of the cursor */\n | 'DESC';\n\nexport type JsonbCastExp = {\n String?: InputMaybe<StringComparisonExp>;\n};\n\n/** Boolean expression to compare columns of type \"jsonb\". All fields are combined with logical 'AND'. */\nexport type JsonbComparisonExp = {\n _cast?: InputMaybe<JsonbCastExp>;\n /** is the column contained in the given json value */\n _contained_in?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the column contain the given json value at the top level */\n _contains?: InputMaybe<Scalars['jsonb']['input']>;\n _eq?: InputMaybe<Scalars['jsonb']['input']>;\n _gt?: InputMaybe<Scalars['jsonb']['input']>;\n _gte?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the string exist as a top-level key in the column */\n _has_key?: InputMaybe<Scalars['String']['input']>;\n /** do all of these strings exist as top-level keys in the column */\n _has_keys_all?: InputMaybe<Array<Scalars['String']['input']>>;\n /** do any of these strings exist as top-level keys in the column */\n _has_keys_any?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['jsonb']['input']>;\n _lte?: InputMaybe<Scalars['jsonb']['input']>;\n _neq?: InputMaybe<Scalars['jsonb']['input']>;\n _nin?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n};\n\n/** Boolean expression to compare columns of type \"numeric\". All fields are combined with logical 'AND'. */\nexport type NumericComparisonExp = {\n _eq?: InputMaybe<Scalars['numeric']['input']>;\n _gt?: InputMaybe<Scalars['numeric']['input']>;\n _gte?: InputMaybe<Scalars['numeric']['input']>;\n _in?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['numeric']['input']>;\n _lte?: InputMaybe<Scalars['numeric']['input']>;\n _neq?: InputMaybe<Scalars['numeric']['input']>;\n _nin?: InputMaybe<Array<Scalars['numeric']['input']>>;\n};\n\n/** Boolean expression to compare columns of type \"optiontype\". All fields are combined with logical 'AND'. */\nexport type OptiontypeComparisonExp = {\n _eq?: InputMaybe<Scalars['optiontype']['input']>;\n _gt?: InputMaybe<Scalars['optiontype']['input']>;\n _gte?: InputMaybe<Scalars['optiontype']['input']>;\n _in?: InputMaybe<Array<Scalars['optiontype']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['optiontype']['input']>;\n _lte?: InputMaybe<Scalars['optiontype']['input']>;\n _neq?: InputMaybe<Scalars['optiontype']['input']>;\n _nin?: InputMaybe<Array<Scalars['optiontype']['input']>>;\n};\n\n/** column ordering options */\nexport type OrderBy =\n /** in ascending order, nulls last */\n | 'asc'\n /** in ascending order, nulls first */\n | 'asc_nulls_first'\n /** in ascending order, nulls last */\n | 'asc_nulls_last'\n /** in descending order, nulls first */\n | 'desc'\n /** in descending order, nulls first */\n | 'desc_nulls_first'\n /** in descending order, nulls last */\n | 'desc_nulls_last';\n\nexport type QueryRoot = {\n __typename: 'query_root';\n /** fetch data from the table: \"BorrowEvent\" */\n BorrowEvent: Array<BorrowEvent>;\n /** fetch data from the table: \"BorrowEvent\" using primary key columns */\n BorrowEvent_by_pk?: Maybe<BorrowEvent>;\n /** fetch data from the table: \"BurnEvent\" */\n BurnEvent: Array<BurnEvent>;\n /** fetch data from the table: \"BurnEvent\" using primary key columns */\n BurnEvent_by_pk?: Maybe<BurnEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" */\n ExerciseOptionEvent: Array<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" using primary key columns */\n ExerciseOptionEvent_by_pk?: Maybe<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" */\n ExtendOptionEvent: Array<ExtendOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" using primary key columns */\n ExtendOptionEvent_by_pk?: Maybe<ExtendOptionEvent>;\n /** fetch data from the table: \"MarketDailyData\" */\n MarketDailyData: Array<MarketDailyData>;\n /** fetch data from the table: \"MarketDailyData\" using primary key columns */\n MarketDailyData_by_pk?: Maybe<MarketDailyData>;\n /** fetch data from the table: \"MarketOperator\" */\n MarketOperator: Array<MarketOperator>;\n /** fetch data from the table: \"MarketOperator\" using primary key columns */\n MarketOperator_by_pk?: Maybe<MarketOperator>;\n /** fetch data from the table: \"MintEvent\" */\n MintEvent: Array<MintEvent>;\n /** fetch data from the table: \"MintEvent\" using primary key columns */\n MintEvent_by_pk?: Maybe<MintEvent>;\n /** fetch data from the table: \"MintOptionEvent\" */\n MintOptionEvent: Array<MintOptionEvent>;\n /** fetch data from the table: \"MintOptionEvent\" using primary key columns */\n MintOptionEvent_by_pk?: Maybe<MintOptionEvent>;\n /** fetch data from the table: \"RepayEvent\" */\n RepayEvent: Array<RepayEvent>;\n /** fetch data from the table: \"RepayEvent\" using primary key columns */\n RepayEvent_by_pk?: Maybe<RepayEvent>;\n /** fetch data from the table: \"TimelockMarket\" */\n TimelockMarket: Array<TimelockMarket>;\n /** fetch data from the table: \"TimelockMarketUser\" */\n TimelockMarketUser: Array<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarketUser\" using primary key columns */\n TimelockMarketUser_by_pk?: Maybe<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarket\" using primary key columns */\n TimelockMarket_by_pk?: Maybe<TimelockMarket>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" */\n UpdateOperatorPermsEvent: Array<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" using primary key columns */\n UpdateOperatorPermsEvent_by_pk?: Maybe<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UserMarketOperator\" */\n UserMarketOperator: Array<UserMarketOperator>;\n /** fetch data from the table: \"UserMarketOperator\" using primary key columns */\n UserMarketOperator_by_pk?: Maybe<UserMarketOperator>;\n /** fetch data from the table: \"UserOption\" */\n UserOption: Array<UserOption>;\n /** fetch data from the table: \"UserOption\" using primary key columns */\n UserOption_by_pk?: Maybe<UserOption>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n};\n\nexport type QueryRootBorrowEventArgs = {\n distinct_on?: InputMaybe<Array<BorrowEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BorrowEventOrderBy>>;\n where?: InputMaybe<BorrowEventBoolExp>;\n};\n\nexport type QueryRootBorrowEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootBurnEventArgs = {\n distinct_on?: InputMaybe<Array<BurnEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BurnEventOrderBy>>;\n where?: InputMaybe<BurnEventBoolExp>;\n};\n\nexport type QueryRootBurnEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootExerciseOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExerciseOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExerciseOptionEventOrderBy>>;\n where?: InputMaybe<ExerciseOptionEventBoolExp>;\n};\n\nexport type QueryRootExerciseOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootExtendOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExtendOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExtendOptionEventOrderBy>>;\n where?: InputMaybe<ExtendOptionEventBoolExp>;\n};\n\nexport type QueryRootExtendOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMarketDailyDataArgs = {\n distinct_on?: InputMaybe<Array<MarketDailyDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketDailyDataOrderBy>>;\n where?: InputMaybe<MarketDailyDataBoolExp>;\n};\n\nexport type QueryRootMarketDailyDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<MarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketOperatorOrderBy>>;\n where?: InputMaybe<MarketOperatorBoolExp>;\n};\n\nexport type QueryRootMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMintEventArgs = {\n distinct_on?: InputMaybe<Array<MintEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintEventOrderBy>>;\n where?: InputMaybe<MintEventBoolExp>;\n};\n\nexport type QueryRootMintEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMintOptionEventArgs = {\n distinct_on?: InputMaybe<Array<MintOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintOptionEventOrderBy>>;\n where?: InputMaybe<MintOptionEventBoolExp>;\n};\n\nexport type QueryRootMintOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootRepayEventArgs = {\n distinct_on?: InputMaybe<Array<RepayEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RepayEventOrderBy>>;\n where?: InputMaybe<RepayEventBoolExp>;\n};\n\nexport type QueryRootRepayEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTimelockMarketArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketOrderBy>>;\n where?: InputMaybe<TimelockMarketBoolExp>;\n};\n\nexport type QueryRootTimelockMarketUserArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketUserOrderBy>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\nexport type QueryRootTimelockMarketUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTimelockMarketByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootUpdateOperatorPermsEventArgs = {\n distinct_on?: InputMaybe<Array<UpdateOperatorPermsEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UpdateOperatorPermsEventOrderBy>>;\n where?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n};\n\nexport type QueryRootUpdateOperatorPermsEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootUserMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\nexport type QueryRootUserMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootUserOptionArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\nexport type QueryRootUserOptionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type QueryRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type QueryRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type QueryRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEvents = {\n __typename: 'raw_events';\n block_fields: Scalars['jsonb']['output'];\n block_hash: Scalars['String']['output'];\n block_number: Scalars['Int']['output'];\n block_timestamp: Scalars['Int']['output'];\n chain_id: Scalars['Int']['output'];\n contract_name: Scalars['String']['output'];\n event_id: Scalars['numeric']['output'];\n event_name: Scalars['String']['output'];\n log_index: Scalars['Int']['output'];\n params: Scalars['jsonb']['output'];\n serial: Scalars['Int']['output'];\n src_address: Scalars['String']['output'];\n transaction_fields: Scalars['jsonb']['output'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsBlockFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsParamsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsTransactionFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to filter rows from the table \"raw_events\". All fields are combined with a logical 'AND'. */\nexport type RawEventsBoolExp = {\n _and?: InputMaybe<Array<RawEventsBoolExp>>;\n _not?: InputMaybe<RawEventsBoolExp>;\n _or?: InputMaybe<Array<RawEventsBoolExp>>;\n block_fields?: InputMaybe<JsonbComparisonExp>;\n block_hash?: InputMaybe<StringComparisonExp>;\n block_number?: InputMaybe<IntComparisonExp>;\n block_timestamp?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n contract_name?: InputMaybe<StringComparisonExp>;\n event_id?: InputMaybe<NumericComparisonExp>;\n event_name?: InputMaybe<StringComparisonExp>;\n log_index?: InputMaybe<IntComparisonExp>;\n params?: InputMaybe<JsonbComparisonExp>;\n serial?: InputMaybe<IntComparisonExp>;\n src_address?: InputMaybe<StringComparisonExp>;\n transaction_fields?: InputMaybe<JsonbComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"raw_events\". */\nexport type RawEventsOrderBy = {\n block_fields?: InputMaybe<OrderBy>;\n block_hash?: InputMaybe<OrderBy>;\n block_number?: InputMaybe<OrderBy>;\n block_timestamp?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n contract_name?: InputMaybe<OrderBy>;\n event_id?: InputMaybe<OrderBy>;\n event_name?: InputMaybe<OrderBy>;\n log_index?: InputMaybe<OrderBy>;\n params?: InputMaybe<OrderBy>;\n serial?: InputMaybe<OrderBy>;\n src_address?: InputMaybe<OrderBy>;\n transaction_fields?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"raw_events\" */\nexport type RawEventsSelectColumn =\n /** column name */\n | 'block_fields'\n /** column name */\n | 'block_hash'\n /** column name */\n | 'block_number'\n /** column name */\n | 'block_timestamp'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'contract_name'\n /** column name */\n | 'event_id'\n /** column name */\n | 'event_name'\n /** column name */\n | 'log_index'\n /** column name */\n | 'params'\n /** column name */\n | 'serial'\n /** column name */\n | 'src_address'\n /** column name */\n | 'transaction_fields';\n\n/** Streaming cursor of the table \"raw_events\" */\nexport type RawEventsStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: RawEventsStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type RawEventsStreamCursorValueInput = {\n block_fields?: InputMaybe<Scalars['jsonb']['input']>;\n block_hash?: InputMaybe<Scalars['String']['input']>;\n block_number?: InputMaybe<Scalars['Int']['input']>;\n block_timestamp?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n contract_name?: InputMaybe<Scalars['String']['input']>;\n event_id?: InputMaybe<Scalars['numeric']['input']>;\n event_name?: InputMaybe<Scalars['String']['input']>;\n log_index?: InputMaybe<Scalars['Int']['input']>;\n params?: InputMaybe<Scalars['jsonb']['input']>;\n serial?: InputMaybe<Scalars['Int']['input']>;\n src_address?: InputMaybe<Scalars['String']['input']>;\n transaction_fields?: InputMaybe<Scalars['jsonb']['input']>;\n};\n\nexport type SubscriptionRoot = {\n __typename: 'subscription_root';\n /** fetch data from the table: \"BorrowEvent\" */\n BorrowEvent: Array<BorrowEvent>;\n /** fetch data from the table: \"BorrowEvent\" using primary key columns */\n BorrowEvent_by_pk?: Maybe<BorrowEvent>;\n /** fetch data from the table in a streaming manner: \"BorrowEvent\" */\n BorrowEvent_stream: Array<BorrowEvent>;\n /** fetch data from the table: \"BurnEvent\" */\n BurnEvent: Array<BurnEvent>;\n /** fetch data from the table: \"BurnEvent\" using primary key columns */\n BurnEvent_by_pk?: Maybe<BurnEvent>;\n /** fetch data from the table in a streaming manner: \"BurnEvent\" */\n BurnEvent_stream: Array<BurnEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" */\n ExerciseOptionEvent: Array<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExerciseOptionEvent\" using primary key columns */\n ExerciseOptionEvent_by_pk?: Maybe<ExerciseOptionEvent>;\n /** fetch data from the table in a streaming manner: \"ExerciseOptionEvent\" */\n ExerciseOptionEvent_stream: Array<ExerciseOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" */\n ExtendOptionEvent: Array<ExtendOptionEvent>;\n /** fetch data from the table: \"ExtendOptionEvent\" using primary key columns */\n ExtendOptionEvent_by_pk?: Maybe<ExtendOptionEvent>;\n /** fetch data from the table in a streaming manner: \"ExtendOptionEvent\" */\n ExtendOptionEvent_stream: Array<ExtendOptionEvent>;\n /** fetch data from the table: \"MarketDailyData\" */\n MarketDailyData: Array<MarketDailyData>;\n /** fetch data from the table: \"MarketDailyData\" using primary key columns */\n MarketDailyData_by_pk?: Maybe<MarketDailyData>;\n /** fetch data from the table in a streaming manner: \"MarketDailyData\" */\n MarketDailyData_stream: Array<MarketDailyData>;\n /** fetch data from the table: \"MarketOperator\" */\n MarketOperator: Array<MarketOperator>;\n /** fetch data from the table: \"MarketOperator\" using primary key columns */\n MarketOperator_by_pk?: Maybe<MarketOperator>;\n /** fetch data from the table in a streaming manner: \"MarketOperator\" */\n MarketOperator_stream: Array<MarketOperator>;\n /** fetch data from the table: \"MintEvent\" */\n MintEvent: Array<MintEvent>;\n /** fetch data from the table: \"MintEvent\" using primary key columns */\n MintEvent_by_pk?: Maybe<MintEvent>;\n /** fetch data from the table in a streaming manner: \"MintEvent\" */\n MintEvent_stream: Array<MintEvent>;\n /** fetch data from the table: \"MintOptionEvent\" */\n MintOptionEvent: Array<MintOptionEvent>;\n /** fetch data from the table: \"MintOptionEvent\" using primary key columns */\n MintOptionEvent_by_pk?: Maybe<MintOptionEvent>;\n /** fetch data from the table in a streaming manner: \"MintOptionEvent\" */\n MintOptionEvent_stream: Array<MintOptionEvent>;\n /** fetch data from the table: \"RepayEvent\" */\n RepayEvent: Array<RepayEvent>;\n /** fetch data from the table: \"RepayEvent\" using primary key columns */\n RepayEvent_by_pk?: Maybe<RepayEvent>;\n /** fetch data from the table in a streaming manner: \"RepayEvent\" */\n RepayEvent_stream: Array<RepayEvent>;\n /** fetch data from the table: \"TimelockMarket\" */\n TimelockMarket: Array<TimelockMarket>;\n /** fetch data from the table: \"TimelockMarketUser\" */\n TimelockMarketUser: Array<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarketUser\" using primary key columns */\n TimelockMarketUser_by_pk?: Maybe<TimelockMarketUser>;\n /** fetch data from the table in a streaming manner: \"TimelockMarketUser\" */\n TimelockMarketUser_stream: Array<TimelockMarketUser>;\n /** fetch data from the table: \"TimelockMarket\" using primary key columns */\n TimelockMarket_by_pk?: Maybe<TimelockMarket>;\n /** fetch data from the table in a streaming manner: \"TimelockMarket\" */\n TimelockMarket_stream: Array<TimelockMarket>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" */\n UpdateOperatorPermsEvent: Array<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UpdateOperatorPermsEvent\" using primary key columns */\n UpdateOperatorPermsEvent_by_pk?: Maybe<UpdateOperatorPermsEvent>;\n /** fetch data from the table in a streaming manner: \"UpdateOperatorPermsEvent\" */\n UpdateOperatorPermsEvent_stream: Array<UpdateOperatorPermsEvent>;\n /** fetch data from the table: \"UserMarketOperator\" */\n UserMarketOperator: Array<UserMarketOperator>;\n /** fetch data from the table: \"UserMarketOperator\" using primary key columns */\n UserMarketOperator_by_pk?: Maybe<UserMarketOperator>;\n /** fetch data from the table in a streaming manner: \"UserMarketOperator\" */\n UserMarketOperator_stream: Array<UserMarketOperator>;\n /** fetch data from the table: \"UserOption\" */\n UserOption: Array<UserOption>;\n /** fetch data from the table: \"UserOption\" using primary key columns */\n UserOption_by_pk?: Maybe<UserOption>;\n /** fetch data from the table in a streaming manner: \"UserOption\" */\n UserOption_stream: Array<UserOption>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table in a streaming manner: \"_meta\" */\n _meta_stream: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table in a streaming manner: \"chain_metadata\" */\n chain_metadata_stream: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n /** fetch data from the table in a streaming manner: \"raw_events\" */\n raw_events_stream: Array<RawEvents>;\n};\n\nexport type SubscriptionRootBorrowEventArgs = {\n distinct_on?: InputMaybe<Array<BorrowEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BorrowEventOrderBy>>;\n where?: InputMaybe<BorrowEventBoolExp>;\n};\n\nexport type SubscriptionRootBorrowEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootBorrowEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<BorrowEventStreamCursorInput>>;\n where?: InputMaybe<BorrowEventBoolExp>;\n};\n\nexport type SubscriptionRootBurnEventArgs = {\n distinct_on?: InputMaybe<Array<BurnEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<BurnEventOrderBy>>;\n where?: InputMaybe<BurnEventBoolExp>;\n};\n\nexport type SubscriptionRootBurnEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootBurnEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<BurnEventStreamCursorInput>>;\n where?: InputMaybe<BurnEventBoolExp>;\n};\n\nexport type SubscriptionRootExerciseOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExerciseOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExerciseOptionEventOrderBy>>;\n where?: InputMaybe<ExerciseOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootExerciseOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootExerciseOptionEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ExerciseOptionEventStreamCursorInput>>;\n where?: InputMaybe<ExerciseOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootExtendOptionEventArgs = {\n distinct_on?: InputMaybe<Array<ExtendOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ExtendOptionEventOrderBy>>;\n where?: InputMaybe<ExtendOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootExtendOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootExtendOptionEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ExtendOptionEventStreamCursorInput>>;\n where?: InputMaybe<ExtendOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootMarketDailyDataArgs = {\n distinct_on?: InputMaybe<Array<MarketDailyDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketDailyDataOrderBy>>;\n where?: InputMaybe<MarketDailyDataBoolExp>;\n};\n\nexport type SubscriptionRootMarketDailyDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMarketDailyDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MarketDailyDataStreamCursorInput>>;\n where?: InputMaybe<MarketDailyDataBoolExp>;\n};\n\nexport type SubscriptionRootMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<MarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MarketOperatorOrderBy>>;\n where?: InputMaybe<MarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMarketOperatorStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MarketOperatorStreamCursorInput>>;\n where?: InputMaybe<MarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootMintEventArgs = {\n distinct_on?: InputMaybe<Array<MintEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintEventOrderBy>>;\n where?: InputMaybe<MintEventBoolExp>;\n};\n\nexport type SubscriptionRootMintEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMintEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MintEventStreamCursorInput>>;\n where?: InputMaybe<MintEventBoolExp>;\n};\n\nexport type SubscriptionRootMintOptionEventArgs = {\n distinct_on?: InputMaybe<Array<MintOptionEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MintOptionEventOrderBy>>;\n where?: InputMaybe<MintOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootMintOptionEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootMintOptionEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MintOptionEventStreamCursorInput>>;\n where?: InputMaybe<MintOptionEventBoolExp>;\n};\n\nexport type SubscriptionRootRepayEventArgs = {\n distinct_on?: InputMaybe<Array<RepayEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RepayEventOrderBy>>;\n where?: InputMaybe<RepayEventBoolExp>;\n};\n\nexport type SubscriptionRootRepayEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootRepayEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<RepayEventStreamCursorInput>>;\n where?: InputMaybe<RepayEventBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketOrderBy>>;\n where?: InputMaybe<TimelockMarketBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketUserArgs = {\n distinct_on?: InputMaybe<Array<TimelockMarketUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TimelockMarketUserOrderBy>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTimelockMarketUserStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TimelockMarketUserStreamCursorInput>>;\n where?: InputMaybe<TimelockMarketUserBoolExp>;\n};\n\nexport type SubscriptionRootTimelockMarketByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTimelockMarketStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TimelockMarketStreamCursorInput>>;\n where?: InputMaybe<TimelockMarketBoolExp>;\n};\n\nexport type SubscriptionRootUpdateOperatorPermsEventArgs = {\n distinct_on?: InputMaybe<Array<UpdateOperatorPermsEventSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UpdateOperatorPermsEventOrderBy>>;\n where?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n};\n\nexport type SubscriptionRootUpdateOperatorPermsEventByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootUpdateOperatorPermsEventStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<UpdateOperatorPermsEventStreamCursorInput>>;\n where?: InputMaybe<UpdateOperatorPermsEventBoolExp>;\n};\n\nexport type SubscriptionRootUserMarketOperatorArgs = {\n distinct_on?: InputMaybe<Array<UserMarketOperatorSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserMarketOperatorOrderBy>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootUserMarketOperatorByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootUserMarketOperatorStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<UserMarketOperatorStreamCursorInput>>;\n where?: InputMaybe<UserMarketOperatorBoolExp>;\n};\n\nexport type SubscriptionRootUserOptionArgs = {\n distinct_on?: InputMaybe<Array<UserOptionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<UserOptionOrderBy>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\nexport type SubscriptionRootUserOptionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootUserOptionStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<UserOptionStreamCursorInput>>;\n where?: InputMaybe<UserOptionBoolExp>;\n};\n\nexport type SubscriptionRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootMetaStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MetaStreamCursorInput>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ChainMetadataStreamCursorInput>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\nexport type SubscriptionRootRawEventsStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<RawEventsStreamCursorInput>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\n/** Boolean expression to compare columns of type \"timestamptz\". All fields are combined with logical 'AND'. */\nexport type TimestamptzComparisonExp = {\n _eq?: InputMaybe<Scalars['timestamptz']['input']>;\n _gt?: InputMaybe<Scalars['timestamptz']['input']>;\n _gte?: InputMaybe<Scalars['timestamptz']['input']>;\n _in?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['timestamptz']['input']>;\n _lte?: InputMaybe<Scalars['timestamptz']['input']>;\n _neq?: InputMaybe<Scalars['timestamptz']['input']>;\n _nin?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n};\n\nexport type UserOptionFieldsFragment = {\n __typename: 'UserOption';\n id: string;\n optionId: any;\n optionType: any;\n strikeTick: number;\n startTick: number;\n strikePrice: any;\n entryPrice: any;\n expiresAt: any;\n createdAt: any;\n premium: any;\n protocolFee: any;\n realizedPayout: any;\n liquiditiesAtOpen: Array<string>;\n liquiditiesCurrent: Array<string>;\n positionSizeAtOpen: any;\n positionSizeCurrent: any;\n fullyExercised: boolean;\n owner?: {__typename: 'TimelockMarketUser'; address: string} | null;\n market?: {__typename: 'TimelockMarket'; address: string} | null;\n};\n\nexport type GetActiveUserOptionsQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetActiveUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetActiveUserOptionsByMarketQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetActiveUserOptionsByMarketQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetClosedUserOptionsQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetClosedUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetClosedUserOptionsByMarketQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetClosedUserOptionsByMarketQuery = {\n __typename: 'query_root';\n UserOption: Array<{__typename: 'UserOption'} & UserOptionFieldsFragment>;\n};\n\nexport type GetMarketDataQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketDataQuery = {\n __typename: 'query_root';\n TimelockMarket: Array<{\n __typename: 'TimelockMarket';\n id: string;\n address: string;\n vault: string;\n tickSpacing: number;\n optionAssetIsToken0: boolean;\n optionAsset: string;\n payoutAsset: string;\n optionAssetDecimals: number;\n payoutAssetDecimals: number;\n optionAssetSymbol: string;\n payoutAssetSymbol: string;\n optionAssetName: string;\n payoutAssetName: string;\n poolManager: string;\n currency0: string;\n currency1: string;\n fee: number;\n hooks: string;\n }>;\n};\n\nexport type GetMarketVolumeQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketVolumeQuery = {\n __typename: 'query_root';\n TimelockMarket: Array<{\n __typename: 'TimelockMarket';\n id: string;\n address: string;\n optionsCount: any;\n tradersCount: any;\n totalVolume: any;\n totalPremium: any;\n totalPayout: any;\n totalProtocolFee: any;\n }>;\n};\n\nexport type GetMarketDailyVolumeQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketDailyVolumeQuery = {\n __typename: 'query_root';\n MarketDailyData: Array<{\n __typename: 'MarketDailyData';\n id: string;\n date: any;\n totalVolume: any;\n totalPremium: any;\n totalPayout: any;\n totalProtocolFee: any;\n }>;\n};\n\nexport type GetMarketUserVolumeQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetMarketUserVolumeQuery = {\n __typename: 'query_root';\n TimelockMarketUser: Array<{\n __typename: 'TimelockMarketUser';\n address: string;\n totalVolume: any;\n totalPayout: any;\n totalPremium: any;\n totalProtocolFee: any;\n optionsCount: any;\n }>;\n};\n\nexport type GetUserMarketOperatorsQueryVariables = Exact<{\n userAddr: Scalars['String']['input'];\n marketAddr: Scalars['String']['input'];\n}>;\n\nexport type GetUserMarketOperatorsQuery = {\n __typename: 'query_root';\n UserMarketOperator: Array<{\n __typename: 'UserMarketOperator';\n id: string;\n canExtend: boolean;\n canExercise: boolean;\n canTransfer: boolean;\n canMint: boolean;\n spendingApproval: any;\n operator?: {__typename: 'MarketOperator'; address: string} | null;\n }>;\n};\n\nexport type GetOptionEventsQueryVariables = Exact<{\n marketAddr: Scalars['String']['input'];\n optionId: Scalars['numeric']['input'];\n}>;\n\nexport type GetOptionEventsQuery = {\n __typename: 'query_root';\n MintOptionEvent: Array<{\n __typename: 'MintOptionEvent';\n id: string;\n optionType: number;\n strikeTick: number;\n price: any;\n expiresAt: any;\n premium: any;\n protocolFee: any;\n liquidities: Array<string>;\n timestamp: any;\n blockNumber: any;\n transactionHash: string;\n }>;\n ExerciseOptionEvent: Array<{\n __typename: 'ExerciseOptionEvent';\n id: string;\n liquidities: Array<string>;\n payout: any;\n timestamp: any;\n blockNumber: any;\n transactionHash: string;\n }>;\n ExtendOptionEvent: Array<{\n __typename: 'ExtendOptionEvent';\n id: string;\n premium: any;\n protocolFee: any;\n price: any;\n addedDuration: any;\n timestamp: any;\n blockNumber: any;\n transactionHash: string;\n }>;\n};\n\nexport const UserOptionFieldsFragmentDoc = gql`\n fragment UserOptionFields on UserOption {\n id\n optionId\n owner {\n address\n }\n market {\n address\n }\n optionType\n strikeTick\n startTick\n strikePrice\n entryPrice\n expiresAt\n createdAt\n premium\n protocolFee\n realizedPayout\n liquiditiesAtOpen\n liquiditiesCurrent\n positionSizeAtOpen\n positionSizeCurrent\n fullyExercised\n }\n`;\nexport const GetActiveUserOptionsDocument = gql`\n query GetActiveUserOptions($userAddr: String!) {\n UserOption(\n where: {owner: {address: {_eq: $userAddr}}, fullyExercised: {_eq: false}}\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetActiveUserOptionsByMarketDocument = gql`\n query GetActiveUserOptionsByMarket($userAddr: String!, $marketAddr: String!) {\n UserOption(\n where: {\n owner: {address: {_eq: $userAddr}}\n fullyExercised: {_eq: false}\n market: {address: {_eq: $marketAddr}}\n }\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetClosedUserOptionsDocument = gql`\n query GetClosedUserOptions($userAddr: String!) {\n UserOption(\n where: {owner: {address: {_eq: $userAddr}}, fullyExercised: {_eq: true}}\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetClosedUserOptionsByMarketDocument = gql`\n query GetClosedUserOptionsByMarket($userAddr: String!, $marketAddr: String!) {\n UserOption(\n where: {\n owner: {address: {_eq: $userAddr}}\n fullyExercised: {_eq: true}\n market: {address: {_eq: $marketAddr}}\n }\n limit: 1000\n ) {\n ...UserOptionFields\n }\n }\n ${UserOptionFieldsFragmentDoc}\n`;\nexport const GetMarketDataDocument = gql`\n query GetMarketData($marketAddr: String!) {\n TimelockMarket(where: {address: {_eq: $marketAddr}}, limit: 1) {\n id\n address\n vault\n tickSpacing\n optionAssetIsToken0\n optionAsset\n payoutAsset\n optionAssetDecimals\n payoutAssetDecimals\n optionAssetSymbol\n payoutAssetSymbol\n optionAssetName\n payoutAssetName\n poolManager\n currency0\n currency1\n fee\n hooks\n tickSpacing\n }\n }\n`;\nexport const GetMarketVolumeDocument = gql`\n query GetMarketVolume($marketAddr: String!) {\n TimelockMarket(where: {address: {_eq: $marketAddr}}, limit: 1) {\n id\n address\n optionsCount\n tradersCount\n totalVolume\n totalPremium\n totalPayout\n totalProtocolFee\n }\n }\n`;\nexport const GetMarketDailyVolumeDocument = gql`\n query GetMarketDailyVolume($marketAddr: String!) {\n MarketDailyData(\n where: {market: {address: {_eq: $marketAddr}}}\n order_by: {date: asc}\n ) {\n id\n date\n totalVolume\n totalPremium\n totalPayout\n totalProtocolFee\n }\n }\n`;\nexport const GetMarketUserVolumeDocument = gql`\n query GetMarketUserVolume($marketAddr: String!, $userAddr: String!) {\n TimelockMarketUser(\n where: {address: {_eq: $userAddr}, market: {address: {_eq: $marketAddr}}}\n limit: 1\n ) {\n address\n totalVolume\n totalPayout\n totalPremium\n totalProtocolFee\n optionsCount\n }\n }\n`;\nexport const GetUserMarketOperatorsDocument = gql`\n query GetUserMarketOperators($userAddr: String!, $marketAddr: String!) {\n UserMarketOperator(\n where: {\n user: {address: {_eq: $userAddr}}\n market: {address: {_eq: $marketAddr}}\n }\n limit: 1000\n ) {\n id\n operator {\n address\n }\n canExtend\n canExercise\n canTransfer\n canMint\n spendingApproval\n }\n }\n`;\nexport const GetOptionEventsDocument = gql`\n query GetOptionEvents($marketAddr: String!, $optionId: numeric!) {\n MintOptionEvent(\n where: {\n option: {\n optionId: {_eq: $optionId}\n market: {address: {_eq: $marketAddr}}\n }\n }\n limit: 1000\n ) {\n id\n optionType\n strikeTick\n price\n expiresAt\n premium\n protocolFee\n liquidities\n timestamp\n blockNumber\n transactionHash\n }\n ExerciseOptionEvent(\n where: {\n option: {\n market: {address: {_eq: $marketAddr}}\n optionId: {_eq: $optionId}\n }\n }\n limit: 1000\n ) {\n id\n liquidities\n payout\n timestamp\n blockNumber\n transactionHash\n }\n ExtendOptionEvent(\n where: {\n option: {\n market: {address: {_eq: $marketAddr}}\n optionId: {_eq: $optionId}\n }\n }\n limit: 1000\n ) {\n id\n premium\n protocolFee\n price\n addedDuration\n timestamp\n blockNumber\n transactionHash\n }\n }\n`;\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n GetActiveUserOptions(\n variables: GetActiveUserOptionsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetActiveUserOptionsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetActiveUserOptionsQuery>({\n document: GetActiveUserOptionsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetActiveUserOptions',\n 'query',\n variables,\n );\n },\n GetActiveUserOptionsByMarket(\n variables: GetActiveUserOptionsByMarketQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetActiveUserOptionsByMarketQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetActiveUserOptionsByMarketQuery>({\n document: GetActiveUserOptionsByMarketDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetActiveUserOptionsByMarket',\n 'query',\n variables,\n );\n },\n GetClosedUserOptions(\n variables: GetClosedUserOptionsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetClosedUserOptionsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetClosedUserOptionsQuery>({\n document: GetClosedUserOptionsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetClosedUserOptions',\n 'query',\n variables,\n );\n },\n GetClosedUserOptionsByMarket(\n variables: GetClosedUserOptionsByMarketQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetClosedUserOptionsByMarketQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetClosedUserOptionsByMarketQuery>({\n document: GetClosedUserOptionsByMarketDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetClosedUserOptionsByMarket',\n 'query',\n variables,\n );\n },\n GetMarketData(\n variables: GetMarketDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketDataQuery>({\n document: GetMarketDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketData',\n 'query',\n variables,\n );\n },\n GetMarketVolume(\n variables: GetMarketVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketVolumeQuery>({\n document: GetMarketVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketVolume',\n 'query',\n variables,\n );\n },\n GetMarketDailyVolume(\n variables: GetMarketDailyVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketDailyVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketDailyVolumeQuery>({\n document: GetMarketDailyVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketDailyVolume',\n 'query',\n variables,\n );\n },\n GetMarketUserVolume(\n variables: GetMarketUserVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetMarketUserVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetMarketUserVolumeQuery>({\n document: GetMarketUserVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetMarketUserVolume',\n 'query',\n variables,\n );\n },\n GetUserMarketOperators(\n variables: GetUserMarketOperatorsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetUserMarketOperatorsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetUserMarketOperatorsQuery>({\n document: GetUserMarketOperatorsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetUserMarketOperators',\n 'query',\n variables,\n );\n },\n GetOptionEvents(\n variables: GetOptionEventsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetOptionEventsQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetOptionEventsQuery>({\n document: GetOptionEventsDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetOptionEvents',\n 'query',\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","import {GraphQLClient, RequestOptions} from 'graphql-request';\nimport gql from 'graphql-tag';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends {[key: string]: unknown}> = {[K in keyof T]: T[K]};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<T extends {[key: string]: unknown}, K extends keyof T> = {\n [_ in K]?: never;\n};\nexport type Incremental<T> =\n | T\n | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never};\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: {input: string; output: string};\n String: {input: string; output: string};\n Boolean: {input: boolean; output: boolean};\n Int: {input: number; output: number};\n Float: {input: number; output: number};\n jsonb: {input: any; output: any};\n numeric: {input: any; output: any};\n timestamptz: {input: any; output: any};\n};\n\n/** Boolean expression to compare columns of type \"Boolean\". All fields are combined with logical 'AND'. */\nexport type BooleanComparisonExp = {\n _eq?: InputMaybe<Scalars['Boolean']['input']>;\n _gt?: InputMaybe<Scalars['Boolean']['input']>;\n _gte?: InputMaybe<Scalars['Boolean']['input']>;\n _in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Boolean']['input']>;\n _lte?: InputMaybe<Scalars['Boolean']['input']>;\n _neq?: InputMaybe<Scalars['Boolean']['input']>;\n _nin?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n};\n\n/** columns and relationships of \"HookStats\" */\nexport type HookStats = {\n __typename: 'HookStats';\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n firstPoolCreatedAt: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n poolCount: Scalars['numeric']['output'];\n swapCount: Scalars['numeric']['output'];\n tvl0: Scalars['numeric']['output'];\n tvl1: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"HookStats\". All fields are combined with a logical 'AND'. */\nexport type HookStatsBoolExp = {\n _and?: InputMaybe<Array<HookStatsBoolExp>>;\n _not?: InputMaybe<HookStatsBoolExp>;\n _or?: InputMaybe<Array<HookStatsBoolExp>>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n firstPoolCreatedAt?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n poolCount?: InputMaybe<NumericComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tvl0?: InputMaybe<NumericComparisonExp>;\n tvl1?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"HookStats\". */\nexport type HookStatsOrderBy = {\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n firstPoolCreatedAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n poolCount?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tvl0?: InputMaybe<OrderBy>;\n tvl1?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"HookStats\" */\nexport type HookStatsSelectColumn =\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'firstPoolCreatedAt'\n /** column name */\n | 'id'\n /** column name */\n | 'poolCount'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tvl0'\n /** column name */\n | 'tvl1'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** Streaming cursor of the table \"HookStats\" */\nexport type HookStatsStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: HookStatsStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type HookStatsStreamCursorValueInput = {\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n firstPoolCreatedAt?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n poolCount?: InputMaybe<Scalars['numeric']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tvl0?: InputMaybe<Scalars['numeric']['input']>;\n tvl1?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** Boolean expression to compare columns of type \"Int\". All fields are combined with logical 'AND'. */\nexport type IntComparisonExp = {\n _eq?: InputMaybe<Scalars['Int']['input']>;\n _gt?: InputMaybe<Scalars['Int']['input']>;\n _gte?: InputMaybe<Scalars['Int']['input']>;\n _in?: InputMaybe<Array<Scalars['Int']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['Int']['input']>;\n _lte?: InputMaybe<Scalars['Int']['input']>;\n _neq?: InputMaybe<Scalars['Int']['input']>;\n _nin?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\n/** columns and relationships of \"LiquidityProvider\" */\nexport type LiquidityProvider = {\n __typename: 'LiquidityProvider';\n address: Scalars['String']['output'];\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n deposited0: Scalars['numeric']['output'];\n deposited1: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n positionCount: Scalars['numeric']['output'];\n /** An array relationship */\n positions: Array<Position>;\n withdrawn0: Scalars['numeric']['output'];\n withdrawn1: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"LiquidityProvider\" */\nexport type LiquidityProviderPositionsArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\n/** Boolean expression to filter rows from the table \"LiquidityProvider\". All fields are combined with a logical 'AND'. */\nexport type LiquidityProviderBoolExp = {\n _and?: InputMaybe<Array<LiquidityProviderBoolExp>>;\n _not?: InputMaybe<LiquidityProviderBoolExp>;\n _or?: InputMaybe<Array<LiquidityProviderBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n deposited0?: InputMaybe<NumericComparisonExp>;\n deposited1?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n positions?: InputMaybe<PositionBoolExp>;\n withdrawn0?: InputMaybe<NumericComparisonExp>;\n withdrawn1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"LiquidityProvider\". */\nexport type LiquidityProviderOrderBy = {\n address?: InputMaybe<OrderBy>;\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n positions_aggregate?: InputMaybe<PositionAggregateOrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"LiquidityProvider\" */\nexport type LiquidityProviderSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'deposited0'\n /** column name */\n | 'deposited1'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'withdrawn0'\n /** column name */\n | 'withdrawn1';\n\n/** Streaming cursor of the table \"LiquidityProvider\" */\nexport type LiquidityProviderStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: LiquidityProviderStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type LiquidityProviderStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n deposited0?: InputMaybe<Scalars['numeric']['input']>;\n deposited1?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n withdrawn0?: InputMaybe<Scalars['numeric']['input']>;\n withdrawn1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"ModifyLiquidity\" */\nexport type ModifyLiquidity = {\n __typename: 'ModifyLiquidity';\n amount: Scalars['numeric']['output'];\n amount0: Scalars['numeric']['output'];\n amount1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n logIndex: Scalars['numeric']['output'];\n origin: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sender: Scalars['String']['output'];\n tickLower: Scalars['numeric']['output'];\n tickUpper: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n /** An object relationship */\n transaction?: Maybe<Transaction>;\n transaction_id: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityAggregateOrderBy = {\n avg?: InputMaybe<ModifyLiquidityAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<ModifyLiquidityMaxOrderBy>;\n min?: InputMaybe<ModifyLiquidityMinOrderBy>;\n stddev?: InputMaybe<ModifyLiquidityStddevOrderBy>;\n stddev_pop?: InputMaybe<ModifyLiquidityStddevPopOrderBy>;\n stddev_samp?: InputMaybe<ModifyLiquidityStddevSampOrderBy>;\n sum?: InputMaybe<ModifyLiquiditySumOrderBy>;\n var_pop?: InputMaybe<ModifyLiquidityVarPopOrderBy>;\n var_samp?: InputMaybe<ModifyLiquidityVarSampOrderBy>;\n variance?: InputMaybe<ModifyLiquidityVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityAvgOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"ModifyLiquidity\". All fields are combined with a logical 'AND'. */\nexport type ModifyLiquidityBoolExp = {\n _and?: InputMaybe<Array<ModifyLiquidityBoolExp>>;\n _not?: InputMaybe<ModifyLiquidityBoolExp>;\n _or?: InputMaybe<Array<ModifyLiquidityBoolExp>>;\n amount?: InputMaybe<NumericComparisonExp>;\n amount0?: InputMaybe<NumericComparisonExp>;\n amount1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n logIndex?: InputMaybe<NumericComparisonExp>;\n origin?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sender?: InputMaybe<StringComparisonExp>;\n tickLower?: InputMaybe<NumericComparisonExp>;\n tickUpper?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n transaction?: InputMaybe<TransactionBoolExp>;\n transaction_id?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityMaxOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityMinOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"ModifyLiquidity\". */\nexport type ModifyLiquidityOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction?: InputMaybe<TransactionOrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquiditySelectColumn =\n /** column name */\n | 'amount'\n /** column name */\n | 'amount0'\n /** column name */\n | 'amount1'\n /** column name */\n | 'id'\n /** column name */\n | 'logIndex'\n /** column name */\n | 'origin'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sender'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'transaction_id';\n\n/** order by stddev() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStddevOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStddevPopOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStddevSampOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"ModifyLiquidity\" */\nexport type ModifyLiquidityStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ModifyLiquidityStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ModifyLiquidityStreamCursorValueInput = {\n amount?: InputMaybe<Scalars['numeric']['input']>;\n amount0?: InputMaybe<Scalars['numeric']['input']>;\n amount1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n logIndex?: InputMaybe<Scalars['numeric']['input']>;\n origin?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sender?: InputMaybe<Scalars['String']['input']>;\n tickLower?: InputMaybe<Scalars['numeric']['input']>;\n tickUpper?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n transaction_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquiditySumOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityVarPopOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityVarSampOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"ModifyLiquidity\" */\nexport type ModifyLiquidityVarianceOrderBy = {\n amount?: InputMaybe<OrderBy>;\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type Pool = {\n __typename: 'Pool';\n activePositionCount: Scalars['numeric']['output'];\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n feeGrowthGlobal0X128: Scalars['numeric']['output'];\n feeGrowthGlobal1X128: Scalars['numeric']['output'];\n feeTier: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n hooks: Scalars['String']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n lpCount: Scalars['numeric']['output'];\n /** An array relationship */\n modifyLiquidities: Array<ModifyLiquidity>;\n modifyLiquidityCount: Scalars['numeric']['output'];\n name: Scalars['String']['output'];\n observationIndex: Scalars['numeric']['output'];\n /** An array relationship */\n pool5MinuteData: Array<Pool5MinuteData>;\n /** An array relationship */\n poolDayData: Array<PoolDayData>;\n /** An array relationship */\n poolHourData: Array<PoolHourData>;\n poolId: Scalars['String']['output'];\n positionCount: Scalars['numeric']['output'];\n /** An array relationship */\n positions: Array<Position>;\n sqrtPrice: Scalars['numeric']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n swapCount: Scalars['numeric']['output'];\n /** An array relationship */\n swaps: Array<Swap>;\n tick: Scalars['numeric']['output'];\n tickSpacing: Scalars['numeric']['output'];\n /** An array relationship */\n ticks: Array<Tick>;\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n tvl0: Scalars['numeric']['output'];\n tvl1: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolModifyLiquiditiesArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPool5MinuteDataArgs = {\n distinct_on?: InputMaybe<Array<Pool5MinuteDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<Pool5MinuteDataOrderBy>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPoolDayDataArgs = {\n distinct_on?: InputMaybe<Array<PoolDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolDayDataOrderBy>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPoolHourDataArgs = {\n distinct_on?: InputMaybe<Array<PoolHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolHourDataOrderBy>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolPositionsArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolSwapsArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\n/** columns and relationships of \"Pool\" */\nexport type PoolTicksArgs = {\n distinct_on?: InputMaybe<Array<TickSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TickOrderBy>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\n/** columns and relationships of \"Pool5MinuteData\" */\nexport type Pool5MinuteData = {\n __typename: 'Pool5MinuteData';\n close: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n high: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n low: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n open_: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataAggregateOrderBy = {\n avg?: InputMaybe<Pool5MinuteDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<Pool5MinuteDataMaxOrderBy>;\n min?: InputMaybe<Pool5MinuteDataMinOrderBy>;\n stddev?: InputMaybe<Pool5MinuteDataStddevOrderBy>;\n stddev_pop?: InputMaybe<Pool5MinuteDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<Pool5MinuteDataStddevSampOrderBy>;\n sum?: InputMaybe<Pool5MinuteDataSumOrderBy>;\n var_pop?: InputMaybe<Pool5MinuteDataVarPopOrderBy>;\n var_samp?: InputMaybe<Pool5MinuteDataVarSampOrderBy>;\n variance?: InputMaybe<Pool5MinuteDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataAvgOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Pool5MinuteData\". All fields are combined with a logical 'AND'. */\nexport type Pool5MinuteDataBoolExp = {\n _and?: InputMaybe<Array<Pool5MinuteDataBoolExp>>;\n _not?: InputMaybe<Pool5MinuteDataBoolExp>;\n _or?: InputMaybe<Array<Pool5MinuteDataBoolExp>>;\n close?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n high?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n low?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n open_?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataMaxOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataMinOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Pool5MinuteData\". */\nexport type Pool5MinuteDataOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataSelectColumn =\n /** column name */\n | 'close'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'high'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'low'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'open_'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** order by stddev() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStddevOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStddevPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStddevSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: Pool5MinuteDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type Pool5MinuteDataStreamCursorValueInput = {\n close?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n high?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n low?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n open_?: InputMaybe<Scalars['numeric']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataSumOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataVarPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataVarSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Pool5MinuteData\" */\nexport type Pool5MinuteDataVarianceOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"PoolDayData\" */\nexport type PoolDayData = {\n __typename: 'PoolDayData';\n close: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n high: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n low: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n open_: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"PoolDayData\" */\nexport type PoolDayDataAggregateOrderBy = {\n avg?: InputMaybe<PoolDayDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<PoolDayDataMaxOrderBy>;\n min?: InputMaybe<PoolDayDataMinOrderBy>;\n stddev?: InputMaybe<PoolDayDataStddevOrderBy>;\n stddev_pop?: InputMaybe<PoolDayDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<PoolDayDataStddevSampOrderBy>;\n sum?: InputMaybe<PoolDayDataSumOrderBy>;\n var_pop?: InputMaybe<PoolDayDataVarPopOrderBy>;\n var_samp?: InputMaybe<PoolDayDataVarSampOrderBy>;\n variance?: InputMaybe<PoolDayDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"PoolDayData\" */\nexport type PoolDayDataAvgOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"PoolDayData\". All fields are combined with a logical 'AND'. */\nexport type PoolDayDataBoolExp = {\n _and?: InputMaybe<Array<PoolDayDataBoolExp>>;\n _not?: InputMaybe<PoolDayDataBoolExp>;\n _or?: InputMaybe<Array<PoolDayDataBoolExp>>;\n close?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n high?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n low?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n open_?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"PoolDayData\" */\nexport type PoolDayDataMaxOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"PoolDayData\" */\nexport type PoolDayDataMinOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"PoolDayData\". */\nexport type PoolDayDataOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"PoolDayData\" */\nexport type PoolDayDataSelectColumn =\n /** column name */\n | 'close'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'high'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'low'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'open_'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** order by stddev() on columns of table \"PoolDayData\" */\nexport type PoolDayDataStddevOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"PoolDayData\" */\nexport type PoolDayDataStddevPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"PoolDayData\" */\nexport type PoolDayDataStddevSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"PoolDayData\" */\nexport type PoolDayDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolDayDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolDayDataStreamCursorValueInput = {\n close?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n high?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n low?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n open_?: InputMaybe<Scalars['numeric']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"PoolDayData\" */\nexport type PoolDayDataSumOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"PoolDayData\" */\nexport type PoolDayDataVarPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"PoolDayData\" */\nexport type PoolDayDataVarSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"PoolDayData\" */\nexport type PoolDayDataVarianceOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"PoolHourData\" */\nexport type PoolHourData = {\n __typename: 'PoolHourData';\n close: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n high: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n low: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n open_: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"PoolHourData\" */\nexport type PoolHourDataAggregateOrderBy = {\n avg?: InputMaybe<PoolHourDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<PoolHourDataMaxOrderBy>;\n min?: InputMaybe<PoolHourDataMinOrderBy>;\n stddev?: InputMaybe<PoolHourDataStddevOrderBy>;\n stddev_pop?: InputMaybe<PoolHourDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<PoolHourDataStddevSampOrderBy>;\n sum?: InputMaybe<PoolHourDataSumOrderBy>;\n var_pop?: InputMaybe<PoolHourDataVarPopOrderBy>;\n var_samp?: InputMaybe<PoolHourDataVarSampOrderBy>;\n variance?: InputMaybe<PoolHourDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"PoolHourData\" */\nexport type PoolHourDataAvgOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"PoolHourData\". All fields are combined with a logical 'AND'. */\nexport type PoolHourDataBoolExp = {\n _and?: InputMaybe<Array<PoolHourDataBoolExp>>;\n _not?: InputMaybe<PoolHourDataBoolExp>;\n _or?: InputMaybe<Array<PoolHourDataBoolExp>>;\n close?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n high?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n low?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n open_?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"PoolHourData\" */\nexport type PoolHourDataMaxOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"PoolHourData\" */\nexport type PoolHourDataMinOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"PoolHourData\". */\nexport type PoolHourDataOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"PoolHourData\" */\nexport type PoolHourDataSelectColumn =\n /** column name */\n | 'close'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'high'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'low'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'open_'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** order by stddev() on columns of table \"PoolHourData\" */\nexport type PoolHourDataStddevOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"PoolHourData\" */\nexport type PoolHourDataStddevPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"PoolHourData\" */\nexport type PoolHourDataStddevSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"PoolHourData\" */\nexport type PoolHourDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolHourDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolHourDataStreamCursorValueInput = {\n close?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n high?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n low?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n open_?: InputMaybe<Scalars['numeric']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"PoolHourData\" */\nexport type PoolHourDataSumOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"PoolHourData\" */\nexport type PoolHourDataVarPopOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"PoolHourData\" */\nexport type PoolHourDataVarSampOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"PoolHourData\" */\nexport type PoolHourDataVarianceOrderBy = {\n close?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n high?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n low?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n open_?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"PoolUser\" */\nexport type PoolUser = {\n __typename: 'PoolUser';\n address: Scalars['String']['output'];\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n swapCount: Scalars['numeric']['output'];\n volume0: Scalars['numeric']['output'];\n volume1: Scalars['numeric']['output'];\n};\n\n/** Boolean expression to filter rows from the table \"PoolUser\". All fields are combined with a logical 'AND'. */\nexport type PoolUserBoolExp = {\n _and?: InputMaybe<Array<PoolUserBoolExp>>;\n _not?: InputMaybe<PoolUserBoolExp>;\n _or?: InputMaybe<Array<PoolUserBoolExp>>;\n address?: InputMaybe<StringComparisonExp>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"PoolUser\". */\nexport type PoolUserOrderBy = {\n address?: InputMaybe<OrderBy>;\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"PoolUser\" */\nexport type PoolUserSelectColumn =\n /** column name */\n | 'address'\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'id'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** Streaming cursor of the table \"PoolUser\" */\nexport type PoolUserStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolUserStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolUserStreamCursorValueInput = {\n address?: InputMaybe<Scalars['String']['input']>;\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** Boolean expression to filter rows from the table \"Pool\". All fields are combined with a logical 'AND'. */\nexport type PoolBoolExp = {\n _and?: InputMaybe<Array<PoolBoolExp>>;\n _not?: InputMaybe<PoolBoolExp>;\n _or?: InputMaybe<Array<PoolBoolExp>>;\n activePositionCount?: InputMaybe<NumericComparisonExp>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n feeGrowthGlobal0X128?: InputMaybe<NumericComparisonExp>;\n feeGrowthGlobal1X128?: InputMaybe<NumericComparisonExp>;\n feeTier?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n hooks?: InputMaybe<StringComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n lpCount?: InputMaybe<NumericComparisonExp>;\n modifyLiquidities?: InputMaybe<ModifyLiquidityBoolExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n name?: InputMaybe<StringComparisonExp>;\n observationIndex?: InputMaybe<NumericComparisonExp>;\n pool5MinuteData?: InputMaybe<Pool5MinuteDataBoolExp>;\n poolDayData?: InputMaybe<PoolDayDataBoolExp>;\n poolHourData?: InputMaybe<PoolHourDataBoolExp>;\n poolId?: InputMaybe<StringComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n positions?: InputMaybe<PositionBoolExp>;\n sqrtPrice?: InputMaybe<NumericComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n swaps?: InputMaybe<SwapBoolExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n tickSpacing?: InputMaybe<NumericComparisonExp>;\n ticks?: InputMaybe<TickBoolExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n tvl0?: InputMaybe<NumericComparisonExp>;\n tvl1?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume0?: InputMaybe<NumericComparisonExp>;\n volume1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"Pool\". */\nexport type PoolOrderBy = {\n activePositionCount?: InputMaybe<OrderBy>;\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthGlobal0X128?: InputMaybe<OrderBy>;\n feeGrowthGlobal1X128?: InputMaybe<OrderBy>;\n feeTier?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n hooks?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n lpCount?: InputMaybe<OrderBy>;\n modifyLiquidities_aggregate?: InputMaybe<ModifyLiquidityAggregateOrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n name?: InputMaybe<OrderBy>;\n observationIndex?: InputMaybe<OrderBy>;\n pool5MinuteData_aggregate?: InputMaybe<Pool5MinuteDataAggregateOrderBy>;\n poolDayData_aggregate?: InputMaybe<PoolDayDataAggregateOrderBy>;\n poolHourData_aggregate?: InputMaybe<PoolHourDataAggregateOrderBy>;\n poolId?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n positions_aggregate?: InputMaybe<PositionAggregateOrderBy>;\n sqrtPrice?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n swaps_aggregate?: InputMaybe<SwapAggregateOrderBy>;\n tick?: InputMaybe<OrderBy>;\n tickSpacing?: InputMaybe<OrderBy>;\n ticks_aggregate?: InputMaybe<TickAggregateOrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n tvl0?: InputMaybe<OrderBy>;\n tvl1?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume0?: InputMaybe<OrderBy>;\n volume1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Pool\" */\nexport type PoolSelectColumn =\n /** column name */\n | 'activePositionCount'\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'feeGrowthGlobal0X128'\n /** column name */\n | 'feeGrowthGlobal1X128'\n /** column name */\n | 'feeTier'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'hooks'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'lpCount'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'name'\n /** column name */\n | 'observationIndex'\n /** column name */\n | 'poolId'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'sqrtPrice'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'tick'\n /** column name */\n | 'tickSpacing'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'tvl0'\n /** column name */\n | 'tvl1'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume0'\n /** column name */\n | 'volume1';\n\n/** Streaming cursor of the table \"Pool\" */\nexport type PoolStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PoolStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PoolStreamCursorValueInput = {\n activePositionCount?: InputMaybe<Scalars['numeric']['input']>;\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthGlobal0X128?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthGlobal1X128?: InputMaybe<Scalars['numeric']['input']>;\n feeTier?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n hooks?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n lpCount?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n observationIndex?: InputMaybe<Scalars['numeric']['input']>;\n poolId?: InputMaybe<Scalars['String']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n sqrtPrice?: InputMaybe<Scalars['numeric']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n tickSpacing?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n tvl0?: InputMaybe<Scalars['numeric']['input']>;\n tvl1?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume0?: InputMaybe<Scalars['numeric']['input']>;\n volume1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"Position\" */\nexport type Position = {\n __typename: 'Position';\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n deposited0: Scalars['numeric']['output'];\n deposited1: Scalars['numeric']['output'];\n feeGrowthInside0LastX128: Scalars['numeric']['output'];\n feeGrowthInside1LastX128: Scalars['numeric']['output'];\n fees0: Scalars['numeric']['output'];\n fees1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidity: Scalars['numeric']['output'];\n /** An object relationship */\n liquidityProvider?: Maybe<LiquidityProvider>;\n liquidityProvider_id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n owner: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n tickLower: Scalars['numeric']['output'];\n tickUpper: Scalars['numeric']['output'];\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n /** An object relationship */\n transaction?: Maybe<Transaction>;\n transaction_id: Scalars['String']['output'];\n withdrawn0: Scalars['numeric']['output'];\n withdrawn1: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"Position\" */\nexport type PositionAggregateOrderBy = {\n avg?: InputMaybe<PositionAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<PositionMaxOrderBy>;\n min?: InputMaybe<PositionMinOrderBy>;\n stddev?: InputMaybe<PositionStddevOrderBy>;\n stddev_pop?: InputMaybe<PositionStddevPopOrderBy>;\n stddev_samp?: InputMaybe<PositionStddevSampOrderBy>;\n sum?: InputMaybe<PositionSumOrderBy>;\n var_pop?: InputMaybe<PositionVarPopOrderBy>;\n var_samp?: InputMaybe<PositionVarSampOrderBy>;\n variance?: InputMaybe<PositionVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Position\" */\nexport type PositionAvgOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Position\". All fields are combined with a logical 'AND'. */\nexport type PositionBoolExp = {\n _and?: InputMaybe<Array<PositionBoolExp>>;\n _not?: InputMaybe<PositionBoolExp>;\n _or?: InputMaybe<Array<PositionBoolExp>>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n deposited0?: InputMaybe<NumericComparisonExp>;\n deposited1?: InputMaybe<NumericComparisonExp>;\n feeGrowthInside0LastX128?: InputMaybe<NumericComparisonExp>;\n feeGrowthInside1LastX128?: InputMaybe<NumericComparisonExp>;\n fees0?: InputMaybe<NumericComparisonExp>;\n fees1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidity?: InputMaybe<NumericComparisonExp>;\n liquidityProvider?: InputMaybe<LiquidityProviderBoolExp>;\n liquidityProvider_id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n owner?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n tickLower?: InputMaybe<NumericComparisonExp>;\n tickUpper?: InputMaybe<NumericComparisonExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n transaction?: InputMaybe<TransactionBoolExp>;\n transaction_id?: InputMaybe<StringComparisonExp>;\n withdrawn0?: InputMaybe<NumericComparisonExp>;\n withdrawn1?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"Position\" */\nexport type PositionMaxOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n liquidityProvider_id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Position\" */\nexport type PositionMinOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n liquidityProvider_id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Position\". */\nexport type PositionOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n liquidityProvider?: InputMaybe<LiquidityProviderOrderBy>;\n liquidityProvider_id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction?: InputMaybe<TransactionOrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Position\" */\nexport type PositionSelectColumn =\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'deposited0'\n /** column name */\n | 'deposited1'\n /** column name */\n | 'feeGrowthInside0LastX128'\n /** column name */\n | 'feeGrowthInside1LastX128'\n /** column name */\n | 'fees0'\n /** column name */\n | 'fees1'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidity'\n /** column name */\n | 'liquidityProvider_id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'owner'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'tickLower'\n /** column name */\n | 'tickUpper'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'transaction_id'\n /** column name */\n | 'withdrawn0'\n /** column name */\n | 'withdrawn1';\n\n/** order by stddev() on columns of table \"Position\" */\nexport type PositionStddevOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Position\" */\nexport type PositionStddevPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Position\" */\nexport type PositionStddevSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Position\" */\nexport type PositionStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: PositionStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type PositionStreamCursorValueInput = {\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n deposited0?: InputMaybe<Scalars['numeric']['input']>;\n deposited1?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthInside0LastX128?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthInside1LastX128?: InputMaybe<Scalars['numeric']['input']>;\n fees0?: InputMaybe<Scalars['numeric']['input']>;\n fees1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidity?: InputMaybe<Scalars['numeric']['input']>;\n liquidityProvider_id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n owner?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n tickLower?: InputMaybe<Scalars['numeric']['input']>;\n tickUpper?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n transaction_id?: InputMaybe<Scalars['String']['input']>;\n withdrawn0?: InputMaybe<Scalars['numeric']['input']>;\n withdrawn1?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"Position\" */\nexport type PositionSumOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Position\" */\nexport type PositionVarPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Position\" */\nexport type PositionVarSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Position\" */\nexport type PositionVarianceOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n deposited0?: InputMaybe<OrderBy>;\n deposited1?: InputMaybe<OrderBy>;\n feeGrowthInside0LastX128?: InputMaybe<OrderBy>;\n feeGrowthInside1LastX128?: InputMaybe<OrderBy>;\n fees0?: InputMaybe<OrderBy>;\n fees1?: InputMaybe<OrderBy>;\n liquidity?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n tickLower?: InputMaybe<OrderBy>;\n tickUpper?: InputMaybe<OrderBy>;\n withdrawn0?: InputMaybe<OrderBy>;\n withdrawn1?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringArrayComparisonExp = {\n /** is the array contained in the given array value */\n _contained_in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the array contain the given value */\n _contains?: InputMaybe<Array<Scalars['String']['input']>>;\n _eq?: InputMaybe<Array<Scalars['String']['input']>>;\n _gt?: InputMaybe<Array<Scalars['String']['input']>>;\n _gte?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Array<Scalars['String']['input']>>;\n _lte?: InputMaybe<Array<Scalars['String']['input']>>;\n _neq?: InputMaybe<Array<Scalars['String']['input']>>;\n _nin?: InputMaybe<Array<Array<Scalars['String']['input']>>>;\n};\n\n/** Boolean expression to compare columns of type \"String\". All fields are combined with logical 'AND'. */\nexport type StringComparisonExp = {\n _eq?: InputMaybe<Scalars['String']['input']>;\n _gt?: InputMaybe<Scalars['String']['input']>;\n _gte?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given case-insensitive pattern */\n _ilike?: InputMaybe<Scalars['String']['input']>;\n _in?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column match the given POSIX regular expression, case insensitive */\n _iregex?: InputMaybe<Scalars['String']['input']>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n /** does the column match the given pattern */\n _like?: InputMaybe<Scalars['String']['input']>;\n _lt?: InputMaybe<Scalars['String']['input']>;\n _lte?: InputMaybe<Scalars['String']['input']>;\n _neq?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given case-insensitive pattern */\n _nilike?: InputMaybe<Scalars['String']['input']>;\n _nin?: InputMaybe<Array<Scalars['String']['input']>>;\n /** does the column NOT match the given POSIX regular expression, case insensitive */\n _niregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given pattern */\n _nlike?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given POSIX regular expression, case sensitive */\n _nregex?: InputMaybe<Scalars['String']['input']>;\n /** does the column NOT match the given SQL regular expression */\n _nsimilar?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given POSIX regular expression, case sensitive */\n _regex?: InputMaybe<Scalars['String']['input']>;\n /** does the column match the given SQL regular expression */\n _similar?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"Swap\" */\nexport type Swap = {\n __typename: 'Swap';\n amount0: Scalars['numeric']['output'];\n amount1: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n logIndex?: Maybe<Scalars['numeric']['output']>;\n origin: Scalars['String']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n pool_id: Scalars['String']['output'];\n recipient: Scalars['String']['output'];\n sender: Scalars['String']['output'];\n sqrtPriceX96: Scalars['numeric']['output'];\n tick: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n /** An object relationship */\n token0?: Maybe<Token>;\n token0_id: Scalars['String']['output'];\n /** An object relationship */\n token1?: Maybe<Token>;\n token1_id: Scalars['String']['output'];\n /** An object relationship */\n transaction?: Maybe<Transaction>;\n transaction_id: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"Swap\" */\nexport type SwapAggregateOrderBy = {\n avg?: InputMaybe<SwapAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<SwapMaxOrderBy>;\n min?: InputMaybe<SwapMinOrderBy>;\n stddev?: InputMaybe<SwapStddevOrderBy>;\n stddev_pop?: InputMaybe<SwapStddevPopOrderBy>;\n stddev_samp?: InputMaybe<SwapStddevSampOrderBy>;\n sum?: InputMaybe<SwapSumOrderBy>;\n var_pop?: InputMaybe<SwapVarPopOrderBy>;\n var_samp?: InputMaybe<SwapVarSampOrderBy>;\n variance?: InputMaybe<SwapVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Swap\" */\nexport type SwapAvgOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Swap\". All fields are combined with a logical 'AND'. */\nexport type SwapBoolExp = {\n _and?: InputMaybe<Array<SwapBoolExp>>;\n _not?: InputMaybe<SwapBoolExp>;\n _or?: InputMaybe<Array<SwapBoolExp>>;\n amount0?: InputMaybe<NumericComparisonExp>;\n amount1?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n logIndex?: InputMaybe<NumericComparisonExp>;\n origin?: InputMaybe<StringComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n recipient?: InputMaybe<StringComparisonExp>;\n sender?: InputMaybe<StringComparisonExp>;\n sqrtPriceX96?: InputMaybe<NumericComparisonExp>;\n tick?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n token0?: InputMaybe<TokenBoolExp>;\n token0_id?: InputMaybe<StringComparisonExp>;\n token1?: InputMaybe<TokenBoolExp>;\n token1_id?: InputMaybe<StringComparisonExp>;\n transaction?: InputMaybe<TransactionBoolExp>;\n transaction_id?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"Swap\" */\nexport type SwapMaxOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n recipient?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Swap\" */\nexport type SwapMinOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n recipient?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Swap\". */\nexport type SwapOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n origin?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n recipient?: InputMaybe<OrderBy>;\n sender?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n token0?: InputMaybe<TokenOrderBy>;\n token0_id?: InputMaybe<OrderBy>;\n token1?: InputMaybe<TokenOrderBy>;\n token1_id?: InputMaybe<OrderBy>;\n transaction?: InputMaybe<TransactionOrderBy>;\n transaction_id?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Swap\" */\nexport type SwapSelectColumn =\n /** column name */\n | 'amount0'\n /** column name */\n | 'amount1'\n /** column name */\n | 'id'\n /** column name */\n | 'logIndex'\n /** column name */\n | 'origin'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'recipient'\n /** column name */\n | 'sender'\n /** column name */\n | 'sqrtPriceX96'\n /** column name */\n | 'tick'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'token0_id'\n /** column name */\n | 'token1_id'\n /** column name */\n | 'transaction_id';\n\n/** order by stddev() on columns of table \"Swap\" */\nexport type SwapStddevOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Swap\" */\nexport type SwapStddevPopOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Swap\" */\nexport type SwapStddevSampOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Swap\" */\nexport type SwapStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: SwapStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type SwapStreamCursorValueInput = {\n amount0?: InputMaybe<Scalars['numeric']['input']>;\n amount1?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n logIndex?: InputMaybe<Scalars['numeric']['input']>;\n origin?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n recipient?: InputMaybe<Scalars['String']['input']>;\n sender?: InputMaybe<Scalars['String']['input']>;\n sqrtPriceX96?: InputMaybe<Scalars['numeric']['input']>;\n tick?: InputMaybe<Scalars['numeric']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n token0_id?: InputMaybe<Scalars['String']['input']>;\n token1_id?: InputMaybe<Scalars['String']['input']>;\n transaction_id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"Swap\" */\nexport type SwapSumOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Swap\" */\nexport type SwapVarPopOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Swap\" */\nexport type SwapVarSampOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Swap\" */\nexport type SwapVarianceOrderBy = {\n amount0?: InputMaybe<OrderBy>;\n amount1?: InputMaybe<OrderBy>;\n logIndex?: InputMaybe<OrderBy>;\n sqrtPriceX96?: InputMaybe<OrderBy>;\n tick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"Tick\" */\nexport type Tick = {\n __typename: 'Tick';\n createdAtBlockNumber: Scalars['numeric']['output'];\n createdAtTimestamp: Scalars['numeric']['output'];\n feeGrowthOutside0X128: Scalars['numeric']['output'];\n feeGrowthOutside1X128: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidityGross: Scalars['numeric']['output'];\n liquidityNet: Scalars['numeric']['output'];\n /** An object relationship */\n pool?: Maybe<Pool>;\n poolId?: Maybe<Scalars['String']['output']>;\n pool_id: Scalars['String']['output'];\n positionCount: Scalars['numeric']['output'];\n price0: Scalars['numeric']['output'];\n price1: Scalars['numeric']['output'];\n tickIdx: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"Tick\" */\nexport type TickAggregateOrderBy = {\n avg?: InputMaybe<TickAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TickMaxOrderBy>;\n min?: InputMaybe<TickMinOrderBy>;\n stddev?: InputMaybe<TickStddevOrderBy>;\n stddev_pop?: InputMaybe<TickStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TickStddevSampOrderBy>;\n sum?: InputMaybe<TickSumOrderBy>;\n var_pop?: InputMaybe<TickVarPopOrderBy>;\n var_samp?: InputMaybe<TickVarSampOrderBy>;\n variance?: InputMaybe<TickVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"Tick\" */\nexport type TickAvgOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Tick\". All fields are combined with a logical 'AND'. */\nexport type TickBoolExp = {\n _and?: InputMaybe<Array<TickBoolExp>>;\n _not?: InputMaybe<TickBoolExp>;\n _or?: InputMaybe<Array<TickBoolExp>>;\n createdAtBlockNumber?: InputMaybe<NumericComparisonExp>;\n createdAtTimestamp?: InputMaybe<NumericComparisonExp>;\n feeGrowthOutside0X128?: InputMaybe<NumericComparisonExp>;\n feeGrowthOutside1X128?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidityGross?: InputMaybe<NumericComparisonExp>;\n liquidityNet?: InputMaybe<NumericComparisonExp>;\n pool?: InputMaybe<PoolBoolExp>;\n poolId?: InputMaybe<StringComparisonExp>;\n pool_id?: InputMaybe<StringComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n price0?: InputMaybe<NumericComparisonExp>;\n price1?: InputMaybe<NumericComparisonExp>;\n tickIdx?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"Tick\" */\nexport type TickMaxOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n poolId?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"Tick\" */\nexport type TickMinOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n poolId?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"Tick\". */\nexport type TickOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n pool?: InputMaybe<PoolOrderBy>;\n poolId?: InputMaybe<OrderBy>;\n pool_id?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Tick\" */\nexport type TickSelectColumn =\n /** column name */\n | 'createdAtBlockNumber'\n /** column name */\n | 'createdAtTimestamp'\n /** column name */\n | 'feeGrowthOutside0X128'\n /** column name */\n | 'feeGrowthOutside1X128'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidityGross'\n /** column name */\n | 'liquidityNet'\n /** column name */\n | 'poolId'\n /** column name */\n | 'pool_id'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'price0'\n /** column name */\n | 'price1'\n /** column name */\n | 'tickIdx';\n\n/** order by stddev() on columns of table \"Tick\" */\nexport type TickStddevOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"Tick\" */\nexport type TickStddevPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"Tick\" */\nexport type TickStddevSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"Tick\" */\nexport type TickStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TickStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TickStreamCursorValueInput = {\n createdAtBlockNumber?: InputMaybe<Scalars['numeric']['input']>;\n createdAtTimestamp?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthOutside0X128?: InputMaybe<Scalars['numeric']['input']>;\n feeGrowthOutside1X128?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidityGross?: InputMaybe<Scalars['numeric']['input']>;\n liquidityNet?: InputMaybe<Scalars['numeric']['input']>;\n poolId?: InputMaybe<Scalars['String']['input']>;\n pool_id?: InputMaybe<Scalars['String']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n price0?: InputMaybe<Scalars['numeric']['input']>;\n price1?: InputMaybe<Scalars['numeric']['input']>;\n tickIdx?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"Tick\" */\nexport type TickSumOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"Tick\" */\nexport type TickVarPopOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"Tick\" */\nexport type TickVarSampOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"Tick\" */\nexport type TickVarianceOrderBy = {\n createdAtBlockNumber?: InputMaybe<OrderBy>;\n createdAtTimestamp?: InputMaybe<OrderBy>;\n feeGrowthOutside0X128?: InputMaybe<OrderBy>;\n feeGrowthOutside1X128?: InputMaybe<OrderBy>;\n liquidityGross?: InputMaybe<OrderBy>;\n liquidityNet?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n price0?: InputMaybe<OrderBy>;\n price1?: InputMaybe<OrderBy>;\n tickIdx?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"Token\" */\nexport type Token = {\n __typename: 'Token';\n decimals: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n lpCount: Scalars['numeric']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n name: Scalars['String']['output'];\n poolCount: Scalars['numeric']['output'];\n positionCount: Scalars['numeric']['output'];\n swapCount: Scalars['numeric']['output'];\n symbol: Scalars['String']['output'];\n /** An array relationship */\n tokenDayData: Array<TokenDayData>;\n /** An array relationship */\n tokenHourData: Array<TokenHourData>;\n totalSupply: Scalars['numeric']['output'];\n tvl: Scalars['numeric']['output'];\n txCount: Scalars['numeric']['output'];\n volume: Scalars['numeric']['output'];\n whitelistPools: Array<Scalars['String']['output']>;\n};\n\n/** columns and relationships of \"Token\" */\nexport type TokenTokenDayDataArgs = {\n distinct_on?: InputMaybe<Array<TokenDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenDayDataOrderBy>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\n/** columns and relationships of \"Token\" */\nexport type TokenTokenHourDataArgs = {\n distinct_on?: InputMaybe<Array<TokenHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenHourDataOrderBy>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\n/** columns and relationships of \"TokenDayData\" */\nexport type TokenDayData = {\n __typename: 'TokenDayData';\n id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n /** An object relationship */\n token?: Maybe<Token>;\n token_id: Scalars['String']['output'];\n txCount: Scalars['numeric']['output'];\n volume: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"TokenDayData\" */\nexport type TokenDayDataAggregateOrderBy = {\n avg?: InputMaybe<TokenDayDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TokenDayDataMaxOrderBy>;\n min?: InputMaybe<TokenDayDataMinOrderBy>;\n stddev?: InputMaybe<TokenDayDataStddevOrderBy>;\n stddev_pop?: InputMaybe<TokenDayDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TokenDayDataStddevSampOrderBy>;\n sum?: InputMaybe<TokenDayDataSumOrderBy>;\n var_pop?: InputMaybe<TokenDayDataVarPopOrderBy>;\n var_samp?: InputMaybe<TokenDayDataVarSampOrderBy>;\n variance?: InputMaybe<TokenDayDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"TokenDayData\" */\nexport type TokenDayDataAvgOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TokenDayData\". All fields are combined with a logical 'AND'. */\nexport type TokenDayDataBoolExp = {\n _and?: InputMaybe<Array<TokenDayDataBoolExp>>;\n _not?: InputMaybe<TokenDayDataBoolExp>;\n _or?: InputMaybe<Array<TokenDayDataBoolExp>>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n token?: InputMaybe<TokenBoolExp>;\n token_id?: InputMaybe<StringComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"TokenDayData\" */\nexport type TokenDayDataMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TokenDayData\" */\nexport type TokenDayDataMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TokenDayData\". */\nexport type TokenDayDataOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token?: InputMaybe<TokenOrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TokenDayData\" */\nexport type TokenDayDataSelectColumn =\n /** column name */\n | 'id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'token_id'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume';\n\n/** order by stddev() on columns of table \"TokenDayData\" */\nexport type TokenDayDataStddevOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TokenDayData\" */\nexport type TokenDayDataStddevPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TokenDayData\" */\nexport type TokenDayDataStddevSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"TokenDayData\" */\nexport type TokenDayDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TokenDayDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TokenDayDataStreamCursorValueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n token_id?: InputMaybe<Scalars['String']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"TokenDayData\" */\nexport type TokenDayDataSumOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TokenDayData\" */\nexport type TokenDayDataVarPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TokenDayData\" */\nexport type TokenDayDataVarSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TokenDayData\" */\nexport type TokenDayDataVarianceOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** columns and relationships of \"TokenHourData\" */\nexport type TokenHourData = {\n __typename: 'TokenHourData';\n id: Scalars['String']['output'];\n modifyLiquidityCount: Scalars['numeric']['output'];\n startTimestamp: Scalars['Int']['output'];\n swapCount: Scalars['numeric']['output'];\n /** An object relationship */\n token?: Maybe<Token>;\n token_id: Scalars['String']['output'];\n txCount: Scalars['numeric']['output'];\n volume: Scalars['numeric']['output'];\n};\n\n/** order by aggregate values of table \"TokenHourData\" */\nexport type TokenHourDataAggregateOrderBy = {\n avg?: InputMaybe<TokenHourDataAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<TokenHourDataMaxOrderBy>;\n min?: InputMaybe<TokenHourDataMinOrderBy>;\n stddev?: InputMaybe<TokenHourDataStddevOrderBy>;\n stddev_pop?: InputMaybe<TokenHourDataStddevPopOrderBy>;\n stddev_samp?: InputMaybe<TokenHourDataStddevSampOrderBy>;\n sum?: InputMaybe<TokenHourDataSumOrderBy>;\n var_pop?: InputMaybe<TokenHourDataVarPopOrderBy>;\n var_samp?: InputMaybe<TokenHourDataVarSampOrderBy>;\n variance?: InputMaybe<TokenHourDataVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"TokenHourData\" */\nexport type TokenHourDataAvgOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"TokenHourData\". All fields are combined with a logical 'AND'. */\nexport type TokenHourDataBoolExp = {\n _and?: InputMaybe<Array<TokenHourDataBoolExp>>;\n _not?: InputMaybe<TokenHourDataBoolExp>;\n _or?: InputMaybe<Array<TokenHourDataBoolExp>>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n startTimestamp?: InputMaybe<IntComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n token?: InputMaybe<TokenBoolExp>;\n token_id?: InputMaybe<StringComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume?: InputMaybe<NumericComparisonExp>;\n};\n\n/** order by max() on columns of table \"TokenHourData\" */\nexport type TokenHourDataMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TokenHourData\" */\nexport type TokenHourDataMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TokenHourData\". */\nexport type TokenHourDataOrderBy = {\n id?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n token?: InputMaybe<TokenOrderBy>;\n token_id?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TokenHourData\" */\nexport type TokenHourDataSelectColumn =\n /** column name */\n | 'id'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'startTimestamp'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'token_id'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume';\n\n/** order by stddev() on columns of table \"TokenHourData\" */\nexport type TokenHourDataStddevOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TokenHourData\" */\nexport type TokenHourDataStddevPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TokenHourData\" */\nexport type TokenHourDataStddevSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Streaming cursor of the table \"TokenHourData\" */\nexport type TokenHourDataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TokenHourDataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TokenHourDataStreamCursorValueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n token_id?: InputMaybe<Scalars['String']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** order by sum() on columns of table \"TokenHourData\" */\nexport type TokenHourDataSumOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TokenHourData\" */\nexport type TokenHourDataVarPopOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TokenHourData\" */\nexport type TokenHourDataVarSampOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TokenHourData\" */\nexport type TokenHourDataVarianceOrderBy = {\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n startTimestamp?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n};\n\n/** Boolean expression to filter rows from the table \"Token\". All fields are combined with a logical 'AND'. */\nexport type TokenBoolExp = {\n _and?: InputMaybe<Array<TokenBoolExp>>;\n _not?: InputMaybe<TokenBoolExp>;\n _or?: InputMaybe<Array<TokenBoolExp>>;\n decimals?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n lpCount?: InputMaybe<NumericComparisonExp>;\n modifyLiquidityCount?: InputMaybe<NumericComparisonExp>;\n name?: InputMaybe<StringComparisonExp>;\n poolCount?: InputMaybe<NumericComparisonExp>;\n positionCount?: InputMaybe<NumericComparisonExp>;\n swapCount?: InputMaybe<NumericComparisonExp>;\n symbol?: InputMaybe<StringComparisonExp>;\n tokenDayData?: InputMaybe<TokenDayDataBoolExp>;\n tokenHourData?: InputMaybe<TokenHourDataBoolExp>;\n totalSupply?: InputMaybe<NumericComparisonExp>;\n tvl?: InputMaybe<NumericComparisonExp>;\n txCount?: InputMaybe<NumericComparisonExp>;\n volume?: InputMaybe<NumericComparisonExp>;\n whitelistPools?: InputMaybe<StringArrayComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"Token\". */\nexport type TokenOrderBy = {\n decimals?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n lpCount?: InputMaybe<OrderBy>;\n modifyLiquidityCount?: InputMaybe<OrderBy>;\n name?: InputMaybe<OrderBy>;\n poolCount?: InputMaybe<OrderBy>;\n positionCount?: InputMaybe<OrderBy>;\n swapCount?: InputMaybe<OrderBy>;\n symbol?: InputMaybe<OrderBy>;\n tokenDayData_aggregate?: InputMaybe<TokenDayDataAggregateOrderBy>;\n tokenHourData_aggregate?: InputMaybe<TokenHourDataAggregateOrderBy>;\n totalSupply?: InputMaybe<OrderBy>;\n tvl?: InputMaybe<OrderBy>;\n txCount?: InputMaybe<OrderBy>;\n volume?: InputMaybe<OrderBy>;\n whitelistPools?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Token\" */\nexport type TokenSelectColumn =\n /** column name */\n | 'decimals'\n /** column name */\n | 'id'\n /** column name */\n | 'lpCount'\n /** column name */\n | 'modifyLiquidityCount'\n /** column name */\n | 'name'\n /** column name */\n | 'poolCount'\n /** column name */\n | 'positionCount'\n /** column name */\n | 'swapCount'\n /** column name */\n | 'symbol'\n /** column name */\n | 'totalSupply'\n /** column name */\n | 'tvl'\n /** column name */\n | 'txCount'\n /** column name */\n | 'volume'\n /** column name */\n | 'whitelistPools';\n\n/** Streaming cursor of the table \"Token\" */\nexport type TokenStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TokenStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TokenStreamCursorValueInput = {\n decimals?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n lpCount?: InputMaybe<Scalars['numeric']['input']>;\n modifyLiquidityCount?: InputMaybe<Scalars['numeric']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n poolCount?: InputMaybe<Scalars['numeric']['input']>;\n positionCount?: InputMaybe<Scalars['numeric']['input']>;\n swapCount?: InputMaybe<Scalars['numeric']['input']>;\n symbol?: InputMaybe<Scalars['String']['input']>;\n totalSupply?: InputMaybe<Scalars['numeric']['input']>;\n tvl?: InputMaybe<Scalars['numeric']['input']>;\n txCount?: InputMaybe<Scalars['numeric']['input']>;\n volume?: InputMaybe<Scalars['numeric']['input']>;\n whitelistPools?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** columns and relationships of \"Transaction\" */\nexport type Transaction = {\n __typename: 'Transaction';\n blockNumber: Scalars['numeric']['output'];\n gasPrice: Scalars['numeric']['output'];\n gasUsed: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n /** An array relationship */\n modifyLiquidities: Array<ModifyLiquidity>;\n /** An array relationship */\n swaps: Array<Swap>;\n timestamp: Scalars['numeric']['output'];\n};\n\n/** columns and relationships of \"Transaction\" */\nexport type TransactionModifyLiquiditiesArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\n/** columns and relationships of \"Transaction\" */\nexport type TransactionSwapsArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\n/** Boolean expression to filter rows from the table \"Transaction\". All fields are combined with a logical 'AND'. */\nexport type TransactionBoolExp = {\n _and?: InputMaybe<Array<TransactionBoolExp>>;\n _not?: InputMaybe<TransactionBoolExp>;\n _or?: InputMaybe<Array<TransactionBoolExp>>;\n blockNumber?: InputMaybe<NumericComparisonExp>;\n gasPrice?: InputMaybe<NumericComparisonExp>;\n gasUsed?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n modifyLiquidities?: InputMaybe<ModifyLiquidityBoolExp>;\n swaps?: InputMaybe<SwapBoolExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"Transaction\". */\nexport type TransactionOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n gasPrice?: InputMaybe<OrderBy>;\n gasUsed?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n modifyLiquidities_aggregate?: InputMaybe<ModifyLiquidityAggregateOrderBy>;\n swaps_aggregate?: InputMaybe<SwapAggregateOrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"Transaction\" */\nexport type TransactionSelectColumn =\n /** column name */\n | 'blockNumber'\n /** column name */\n | 'gasPrice'\n /** column name */\n | 'gasUsed'\n /** column name */\n | 'id'\n /** column name */\n | 'timestamp';\n\n/** Streaming cursor of the table \"Transaction\" */\nexport type TransactionStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: TransactionStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type TransactionStreamCursorValueInput = {\n blockNumber?: InputMaybe<Scalars['numeric']['input']>;\n gasPrice?: InputMaybe<Scalars['numeric']['input']>;\n gasUsed?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n};\n\n/** columns and relationships of \"_meta\" */\nexport type Meta = {\n __typename: '_meta';\n bufferBlock?: Maybe<Scalars['Int']['output']>;\n chainId?: Maybe<Scalars['Int']['output']>;\n endBlock?: Maybe<Scalars['Int']['output']>;\n eventsProcessed?: Maybe<Scalars['Int']['output']>;\n firstEventBlock?: Maybe<Scalars['Int']['output']>;\n isReady?: Maybe<Scalars['Boolean']['output']>;\n progressBlock?: Maybe<Scalars['Int']['output']>;\n readyAt?: Maybe<Scalars['timestamptz']['output']>;\n sourceBlock?: Maybe<Scalars['Int']['output']>;\n startBlock?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Boolean expression to filter rows from the table \"_meta\". All fields are combined with a logical 'AND'. */\nexport type MetaBoolExp = {\n _and?: InputMaybe<Array<MetaBoolExp>>;\n _not?: InputMaybe<MetaBoolExp>;\n _or?: InputMaybe<Array<MetaBoolExp>>;\n bufferBlock?: InputMaybe<IntComparisonExp>;\n chainId?: InputMaybe<IntComparisonExp>;\n endBlock?: InputMaybe<IntComparisonExp>;\n eventsProcessed?: InputMaybe<IntComparisonExp>;\n firstEventBlock?: InputMaybe<IntComparisonExp>;\n isReady?: InputMaybe<BooleanComparisonExp>;\n progressBlock?: InputMaybe<IntComparisonExp>;\n readyAt?: InputMaybe<TimestamptzComparisonExp>;\n sourceBlock?: InputMaybe<IntComparisonExp>;\n startBlock?: InputMaybe<IntComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"_meta\". */\nexport type MetaOrderBy = {\n bufferBlock?: InputMaybe<OrderBy>;\n chainId?: InputMaybe<OrderBy>;\n endBlock?: InputMaybe<OrderBy>;\n eventsProcessed?: InputMaybe<OrderBy>;\n firstEventBlock?: InputMaybe<OrderBy>;\n isReady?: InputMaybe<OrderBy>;\n progressBlock?: InputMaybe<OrderBy>;\n readyAt?: InputMaybe<OrderBy>;\n sourceBlock?: InputMaybe<OrderBy>;\n startBlock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"_meta\" */\nexport type MetaSelectColumn =\n /** column name */\n | 'bufferBlock'\n /** column name */\n | 'chainId'\n /** column name */\n | 'endBlock'\n /** column name */\n | 'eventsProcessed'\n /** column name */\n | 'firstEventBlock'\n /** column name */\n | 'isReady'\n /** column name */\n | 'progressBlock'\n /** column name */\n | 'readyAt'\n /** column name */\n | 'sourceBlock'\n /** column name */\n | 'startBlock';\n\n/** Streaming cursor of the table \"_meta\" */\nexport type MetaStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: MetaStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type MetaStreamCursorValueInput = {\n bufferBlock?: InputMaybe<Scalars['Int']['input']>;\n chainId?: InputMaybe<Scalars['Int']['input']>;\n endBlock?: InputMaybe<Scalars['Int']['input']>;\n eventsProcessed?: InputMaybe<Scalars['Int']['input']>;\n firstEventBlock?: InputMaybe<Scalars['Int']['input']>;\n isReady?: InputMaybe<Scalars['Boolean']['input']>;\n progressBlock?: InputMaybe<Scalars['Int']['input']>;\n readyAt?: InputMaybe<Scalars['timestamptz']['input']>;\n sourceBlock?: InputMaybe<Scalars['Int']['input']>;\n startBlock?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** columns and relationships of \"chain_metadata\" */\nexport type ChainMetadata = {\n __typename: 'chain_metadata';\n block_height?: Maybe<Scalars['Int']['output']>;\n chain_id?: Maybe<Scalars['Int']['output']>;\n end_block?: Maybe<Scalars['Int']['output']>;\n first_event_block_number?: Maybe<Scalars['Int']['output']>;\n is_hyper_sync?: Maybe<Scalars['Boolean']['output']>;\n latest_fetched_block_number?: Maybe<Scalars['Int']['output']>;\n latest_processed_block?: Maybe<Scalars['Int']['output']>;\n num_batches_fetched?: Maybe<Scalars['Int']['output']>;\n num_events_processed?: Maybe<Scalars['Int']['output']>;\n start_block?: Maybe<Scalars['Int']['output']>;\n timestamp_caught_up_to_head_or_endblock?: Maybe<\n Scalars['timestamptz']['output']\n >;\n};\n\n/** Boolean expression to filter rows from the table \"chain_metadata\". All fields are combined with a logical 'AND'. */\nexport type ChainMetadataBoolExp = {\n _and?: InputMaybe<Array<ChainMetadataBoolExp>>;\n _not?: InputMaybe<ChainMetadataBoolExp>;\n _or?: InputMaybe<Array<ChainMetadataBoolExp>>;\n block_height?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n end_block?: InputMaybe<IntComparisonExp>;\n first_event_block_number?: InputMaybe<IntComparisonExp>;\n is_hyper_sync?: InputMaybe<BooleanComparisonExp>;\n latest_fetched_block_number?: InputMaybe<IntComparisonExp>;\n latest_processed_block?: InputMaybe<IntComparisonExp>;\n num_batches_fetched?: InputMaybe<IntComparisonExp>;\n num_events_processed?: InputMaybe<IntComparisonExp>;\n start_block?: InputMaybe<IntComparisonExp>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<TimestamptzComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"chain_metadata\". */\nexport type ChainMetadataOrderBy = {\n block_height?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n end_block?: InputMaybe<OrderBy>;\n first_event_block_number?: InputMaybe<OrderBy>;\n is_hyper_sync?: InputMaybe<OrderBy>;\n latest_fetched_block_number?: InputMaybe<OrderBy>;\n latest_processed_block?: InputMaybe<OrderBy>;\n num_batches_fetched?: InputMaybe<OrderBy>;\n num_events_processed?: InputMaybe<OrderBy>;\n start_block?: InputMaybe<OrderBy>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"chain_metadata\" */\nexport type ChainMetadataSelectColumn =\n /** column name */\n | 'block_height'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'end_block'\n /** column name */\n | 'first_event_block_number'\n /** column name */\n | 'is_hyper_sync'\n /** column name */\n | 'latest_fetched_block_number'\n /** column name */\n | 'latest_processed_block'\n /** column name */\n | 'num_batches_fetched'\n /** column name */\n | 'num_events_processed'\n /** column name */\n | 'start_block'\n /** column name */\n | 'timestamp_caught_up_to_head_or_endblock';\n\n/** Streaming cursor of the table \"chain_metadata\" */\nexport type ChainMetadataStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: ChainMetadataStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type ChainMetadataStreamCursorValueInput = {\n block_height?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n end_block?: InputMaybe<Scalars['Int']['input']>;\n first_event_block_number?: InputMaybe<Scalars['Int']['input']>;\n is_hyper_sync?: InputMaybe<Scalars['Boolean']['input']>;\n latest_fetched_block_number?: InputMaybe<Scalars['Int']['input']>;\n latest_processed_block?: InputMaybe<Scalars['Int']['input']>;\n num_batches_fetched?: InputMaybe<Scalars['Int']['input']>;\n num_events_processed?: InputMaybe<Scalars['Int']['input']>;\n start_block?: InputMaybe<Scalars['Int']['input']>;\n timestamp_caught_up_to_head_or_endblock?: InputMaybe<\n Scalars['timestamptz']['input']\n >;\n};\n\n/** ordering argument of a cursor */\nexport type CursorOrdering =\n /** ascending ordering of the cursor */\n | 'ASC'\n /** descending ordering of the cursor */\n | 'DESC';\n\nexport type JsonbCastExp = {\n String?: InputMaybe<StringComparisonExp>;\n};\n\n/** Boolean expression to compare columns of type \"jsonb\". All fields are combined with logical 'AND'. */\nexport type JsonbComparisonExp = {\n _cast?: InputMaybe<JsonbCastExp>;\n /** is the column contained in the given json value */\n _contained_in?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the column contain the given json value at the top level */\n _contains?: InputMaybe<Scalars['jsonb']['input']>;\n _eq?: InputMaybe<Scalars['jsonb']['input']>;\n _gt?: InputMaybe<Scalars['jsonb']['input']>;\n _gte?: InputMaybe<Scalars['jsonb']['input']>;\n /** does the string exist as a top-level key in the column */\n _has_key?: InputMaybe<Scalars['String']['input']>;\n /** do all of these strings exist as top-level keys in the column */\n _has_keys_all?: InputMaybe<Array<Scalars['String']['input']>>;\n /** do any of these strings exist as top-level keys in the column */\n _has_keys_any?: InputMaybe<Array<Scalars['String']['input']>>;\n _in?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['jsonb']['input']>;\n _lte?: InputMaybe<Scalars['jsonb']['input']>;\n _neq?: InputMaybe<Scalars['jsonb']['input']>;\n _nin?: InputMaybe<Array<Scalars['jsonb']['input']>>;\n};\n\n/** Boolean expression to compare columns of type \"numeric\". All fields are combined with logical 'AND'. */\nexport type NumericComparisonExp = {\n _eq?: InputMaybe<Scalars['numeric']['input']>;\n _gt?: InputMaybe<Scalars['numeric']['input']>;\n _gte?: InputMaybe<Scalars['numeric']['input']>;\n _in?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['numeric']['input']>;\n _lte?: InputMaybe<Scalars['numeric']['input']>;\n _neq?: InputMaybe<Scalars['numeric']['input']>;\n _nin?: InputMaybe<Array<Scalars['numeric']['input']>>;\n};\n\n/** column ordering options */\nexport type OrderBy =\n /** in ascending order, nulls last */\n | 'asc'\n /** in ascending order, nulls first */\n | 'asc_nulls_first'\n /** in ascending order, nulls last */\n | 'asc_nulls_last'\n /** in descending order, nulls first */\n | 'desc'\n /** in descending order, nulls first */\n | 'desc_nulls_first'\n /** in descending order, nulls last */\n | 'desc_nulls_last';\n\nexport type QueryRoot = {\n __typename: 'query_root';\n /** fetch data from the table: \"HookStats\" */\n HookStats: Array<HookStats>;\n /** fetch data from the table: \"HookStats\" using primary key columns */\n HookStats_by_pk?: Maybe<HookStats>;\n /** fetch data from the table: \"LiquidityProvider\" */\n LiquidityProvider: Array<LiquidityProvider>;\n /** fetch data from the table: \"LiquidityProvider\" using primary key columns */\n LiquidityProvider_by_pk?: Maybe<LiquidityProvider>;\n /** fetch data from the table: \"ModifyLiquidity\" */\n ModifyLiquidity: Array<ModifyLiquidity>;\n /** fetch data from the table: \"ModifyLiquidity\" using primary key columns */\n ModifyLiquidity_by_pk?: Maybe<ModifyLiquidity>;\n /** fetch data from the table: \"Pool\" */\n Pool: Array<Pool>;\n /** fetch data from the table: \"Pool5MinuteData\" */\n Pool5MinuteData: Array<Pool5MinuteData>;\n /** fetch data from the table: \"Pool5MinuteData\" using primary key columns */\n Pool5MinuteData_by_pk?: Maybe<Pool5MinuteData>;\n /** fetch data from the table: \"PoolDayData\" */\n PoolDayData: Array<PoolDayData>;\n /** fetch data from the table: \"PoolDayData\" using primary key columns */\n PoolDayData_by_pk?: Maybe<PoolDayData>;\n /** fetch data from the table: \"PoolHourData\" */\n PoolHourData: Array<PoolHourData>;\n /** fetch data from the table: \"PoolHourData\" using primary key columns */\n PoolHourData_by_pk?: Maybe<PoolHourData>;\n /** fetch data from the table: \"PoolUser\" */\n PoolUser: Array<PoolUser>;\n /** fetch data from the table: \"PoolUser\" using primary key columns */\n PoolUser_by_pk?: Maybe<PoolUser>;\n /** fetch data from the table: \"Pool\" using primary key columns */\n Pool_by_pk?: Maybe<Pool>;\n /** fetch data from the table: \"Position\" */\n Position: Array<Position>;\n /** fetch data from the table: \"Position\" using primary key columns */\n Position_by_pk?: Maybe<Position>;\n /** fetch data from the table: \"Swap\" */\n Swap: Array<Swap>;\n /** fetch data from the table: \"Swap\" using primary key columns */\n Swap_by_pk?: Maybe<Swap>;\n /** fetch data from the table: \"Tick\" */\n Tick: Array<Tick>;\n /** fetch data from the table: \"Tick\" using primary key columns */\n Tick_by_pk?: Maybe<Tick>;\n /** fetch data from the table: \"Token\" */\n Token: Array<Token>;\n /** fetch data from the table: \"TokenDayData\" */\n TokenDayData: Array<TokenDayData>;\n /** fetch data from the table: \"TokenDayData\" using primary key columns */\n TokenDayData_by_pk?: Maybe<TokenDayData>;\n /** fetch data from the table: \"TokenHourData\" */\n TokenHourData: Array<TokenHourData>;\n /** fetch data from the table: \"TokenHourData\" using primary key columns */\n TokenHourData_by_pk?: Maybe<TokenHourData>;\n /** fetch data from the table: \"Token\" using primary key columns */\n Token_by_pk?: Maybe<Token>;\n /** fetch data from the table: \"Transaction\" */\n Transaction: Array<Transaction>;\n /** fetch data from the table: \"Transaction\" using primary key columns */\n Transaction_by_pk?: Maybe<Transaction>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n};\n\nexport type QueryRootHookStatsArgs = {\n distinct_on?: InputMaybe<Array<HookStatsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<HookStatsOrderBy>>;\n where?: InputMaybe<HookStatsBoolExp>;\n};\n\nexport type QueryRootHookStatsByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootLiquidityProviderArgs = {\n distinct_on?: InputMaybe<Array<LiquidityProviderSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<LiquidityProviderOrderBy>>;\n where?: InputMaybe<LiquidityProviderBoolExp>;\n};\n\nexport type QueryRootLiquidityProviderByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootModifyLiquidityArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\nexport type QueryRootModifyLiquidityByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolArgs = {\n distinct_on?: InputMaybe<Array<PoolSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolOrderBy>>;\n where?: InputMaybe<PoolBoolExp>;\n};\n\nexport type QueryRootPool5MinuteDataArgs = {\n distinct_on?: InputMaybe<Array<Pool5MinuteDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<Pool5MinuteDataOrderBy>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\nexport type QueryRootPool5MinuteDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolDayDataArgs = {\n distinct_on?: InputMaybe<Array<PoolDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolDayDataOrderBy>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\nexport type QueryRootPoolDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolHourDataArgs = {\n distinct_on?: InputMaybe<Array<PoolHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolHourDataOrderBy>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\nexport type QueryRootPoolHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolUserArgs = {\n distinct_on?: InputMaybe<Array<PoolUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolUserOrderBy>>;\n where?: InputMaybe<PoolUserBoolExp>;\n};\n\nexport type QueryRootPoolUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPoolByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootPositionArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\nexport type QueryRootPositionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootSwapArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\nexport type QueryRootSwapByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTickArgs = {\n distinct_on?: InputMaybe<Array<TickSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TickOrderBy>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\nexport type QueryRootTickByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTokenArgs = {\n distinct_on?: InputMaybe<Array<TokenSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenOrderBy>>;\n where?: InputMaybe<TokenBoolExp>;\n};\n\nexport type QueryRootTokenDayDataArgs = {\n distinct_on?: InputMaybe<Array<TokenDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenDayDataOrderBy>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\nexport type QueryRootTokenDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTokenHourDataArgs = {\n distinct_on?: InputMaybe<Array<TokenHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenHourDataOrderBy>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\nexport type QueryRootTokenHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTokenByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootTransactionArgs = {\n distinct_on?: InputMaybe<Array<TransactionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TransactionOrderBy>>;\n where?: InputMaybe<TransactionBoolExp>;\n};\n\nexport type QueryRootTransactionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type QueryRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type QueryRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type QueryRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type QueryRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEvents = {\n __typename: 'raw_events';\n block_fields: Scalars['jsonb']['output'];\n block_hash: Scalars['String']['output'];\n block_number: Scalars['Int']['output'];\n block_timestamp: Scalars['Int']['output'];\n chain_id: Scalars['Int']['output'];\n contract_name: Scalars['String']['output'];\n event_id: Scalars['numeric']['output'];\n event_name: Scalars['String']['output'];\n log_index: Scalars['Int']['output'];\n params: Scalars['jsonb']['output'];\n serial: Scalars['Int']['output'];\n src_address: Scalars['String']['output'];\n transaction_fields: Scalars['jsonb']['output'];\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsBlockFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsParamsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"raw_events\" */\nexport type RawEventsTransactionFieldsArgs = {\n path?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Boolean expression to filter rows from the table \"raw_events\". All fields are combined with a logical 'AND'. */\nexport type RawEventsBoolExp = {\n _and?: InputMaybe<Array<RawEventsBoolExp>>;\n _not?: InputMaybe<RawEventsBoolExp>;\n _or?: InputMaybe<Array<RawEventsBoolExp>>;\n block_fields?: InputMaybe<JsonbComparisonExp>;\n block_hash?: InputMaybe<StringComparisonExp>;\n block_number?: InputMaybe<IntComparisonExp>;\n block_timestamp?: InputMaybe<IntComparisonExp>;\n chain_id?: InputMaybe<IntComparisonExp>;\n contract_name?: InputMaybe<StringComparisonExp>;\n event_id?: InputMaybe<NumericComparisonExp>;\n event_name?: InputMaybe<StringComparisonExp>;\n log_index?: InputMaybe<IntComparisonExp>;\n params?: InputMaybe<JsonbComparisonExp>;\n serial?: InputMaybe<IntComparisonExp>;\n src_address?: InputMaybe<StringComparisonExp>;\n transaction_fields?: InputMaybe<JsonbComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"raw_events\". */\nexport type RawEventsOrderBy = {\n block_fields?: InputMaybe<OrderBy>;\n block_hash?: InputMaybe<OrderBy>;\n block_number?: InputMaybe<OrderBy>;\n block_timestamp?: InputMaybe<OrderBy>;\n chain_id?: InputMaybe<OrderBy>;\n contract_name?: InputMaybe<OrderBy>;\n event_id?: InputMaybe<OrderBy>;\n event_name?: InputMaybe<OrderBy>;\n log_index?: InputMaybe<OrderBy>;\n params?: InputMaybe<OrderBy>;\n serial?: InputMaybe<OrderBy>;\n src_address?: InputMaybe<OrderBy>;\n transaction_fields?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"raw_events\" */\nexport type RawEventsSelectColumn =\n /** column name */\n | 'block_fields'\n /** column name */\n | 'block_hash'\n /** column name */\n | 'block_number'\n /** column name */\n | 'block_timestamp'\n /** column name */\n | 'chain_id'\n /** column name */\n | 'contract_name'\n /** column name */\n | 'event_id'\n /** column name */\n | 'event_name'\n /** column name */\n | 'log_index'\n /** column name */\n | 'params'\n /** column name */\n | 'serial'\n /** column name */\n | 'src_address'\n /** column name */\n | 'transaction_fields';\n\n/** Streaming cursor of the table \"raw_events\" */\nexport type RawEventsStreamCursorInput = {\n /** Stream column input with initial value */\n initial_value: RawEventsStreamCursorValueInput;\n /** cursor ordering */\n ordering?: InputMaybe<CursorOrdering>;\n};\n\n/** Initial value of the column from where the streaming should start */\nexport type RawEventsStreamCursorValueInput = {\n block_fields?: InputMaybe<Scalars['jsonb']['input']>;\n block_hash?: InputMaybe<Scalars['String']['input']>;\n block_number?: InputMaybe<Scalars['Int']['input']>;\n block_timestamp?: InputMaybe<Scalars['Int']['input']>;\n chain_id?: InputMaybe<Scalars['Int']['input']>;\n contract_name?: InputMaybe<Scalars['String']['input']>;\n event_id?: InputMaybe<Scalars['numeric']['input']>;\n event_name?: InputMaybe<Scalars['String']['input']>;\n log_index?: InputMaybe<Scalars['Int']['input']>;\n params?: InputMaybe<Scalars['jsonb']['input']>;\n serial?: InputMaybe<Scalars['Int']['input']>;\n src_address?: InputMaybe<Scalars['String']['input']>;\n transaction_fields?: InputMaybe<Scalars['jsonb']['input']>;\n};\n\nexport type SubscriptionRoot = {\n __typename: 'subscription_root';\n /** fetch data from the table: \"HookStats\" */\n HookStats: Array<HookStats>;\n /** fetch data from the table: \"HookStats\" using primary key columns */\n HookStats_by_pk?: Maybe<HookStats>;\n /** fetch data from the table in a streaming manner: \"HookStats\" */\n HookStats_stream: Array<HookStats>;\n /** fetch data from the table: \"LiquidityProvider\" */\n LiquidityProvider: Array<LiquidityProvider>;\n /** fetch data from the table: \"LiquidityProvider\" using primary key columns */\n LiquidityProvider_by_pk?: Maybe<LiquidityProvider>;\n /** fetch data from the table in a streaming manner: \"LiquidityProvider\" */\n LiquidityProvider_stream: Array<LiquidityProvider>;\n /** fetch data from the table: \"ModifyLiquidity\" */\n ModifyLiquidity: Array<ModifyLiquidity>;\n /** fetch data from the table: \"ModifyLiquidity\" using primary key columns */\n ModifyLiquidity_by_pk?: Maybe<ModifyLiquidity>;\n /** fetch data from the table in a streaming manner: \"ModifyLiquidity\" */\n ModifyLiquidity_stream: Array<ModifyLiquidity>;\n /** fetch data from the table: \"Pool\" */\n Pool: Array<Pool>;\n /** fetch data from the table: \"Pool5MinuteData\" */\n Pool5MinuteData: Array<Pool5MinuteData>;\n /** fetch data from the table: \"Pool5MinuteData\" using primary key columns */\n Pool5MinuteData_by_pk?: Maybe<Pool5MinuteData>;\n /** fetch data from the table in a streaming manner: \"Pool5MinuteData\" */\n Pool5MinuteData_stream: Array<Pool5MinuteData>;\n /** fetch data from the table: \"PoolDayData\" */\n PoolDayData: Array<PoolDayData>;\n /** fetch data from the table: \"PoolDayData\" using primary key columns */\n PoolDayData_by_pk?: Maybe<PoolDayData>;\n /** fetch data from the table in a streaming manner: \"PoolDayData\" */\n PoolDayData_stream: Array<PoolDayData>;\n /** fetch data from the table: \"PoolHourData\" */\n PoolHourData: Array<PoolHourData>;\n /** fetch data from the table: \"PoolHourData\" using primary key columns */\n PoolHourData_by_pk?: Maybe<PoolHourData>;\n /** fetch data from the table in a streaming manner: \"PoolHourData\" */\n PoolHourData_stream: Array<PoolHourData>;\n /** fetch data from the table: \"PoolUser\" */\n PoolUser: Array<PoolUser>;\n /** fetch data from the table: \"PoolUser\" using primary key columns */\n PoolUser_by_pk?: Maybe<PoolUser>;\n /** fetch data from the table in a streaming manner: \"PoolUser\" */\n PoolUser_stream: Array<PoolUser>;\n /** fetch data from the table: \"Pool\" using primary key columns */\n Pool_by_pk?: Maybe<Pool>;\n /** fetch data from the table in a streaming manner: \"Pool\" */\n Pool_stream: Array<Pool>;\n /** fetch data from the table: \"Position\" */\n Position: Array<Position>;\n /** fetch data from the table: \"Position\" using primary key columns */\n Position_by_pk?: Maybe<Position>;\n /** fetch data from the table in a streaming manner: \"Position\" */\n Position_stream: Array<Position>;\n /** fetch data from the table: \"Swap\" */\n Swap: Array<Swap>;\n /** fetch data from the table: \"Swap\" using primary key columns */\n Swap_by_pk?: Maybe<Swap>;\n /** fetch data from the table in a streaming manner: \"Swap\" */\n Swap_stream: Array<Swap>;\n /** fetch data from the table: \"Tick\" */\n Tick: Array<Tick>;\n /** fetch data from the table: \"Tick\" using primary key columns */\n Tick_by_pk?: Maybe<Tick>;\n /** fetch data from the table in a streaming manner: \"Tick\" */\n Tick_stream: Array<Tick>;\n /** fetch data from the table: \"Token\" */\n Token: Array<Token>;\n /** fetch data from the table: \"TokenDayData\" */\n TokenDayData: Array<TokenDayData>;\n /** fetch data from the table: \"TokenDayData\" using primary key columns */\n TokenDayData_by_pk?: Maybe<TokenDayData>;\n /** fetch data from the table in a streaming manner: \"TokenDayData\" */\n TokenDayData_stream: Array<TokenDayData>;\n /** fetch data from the table: \"TokenHourData\" */\n TokenHourData: Array<TokenHourData>;\n /** fetch data from the table: \"TokenHourData\" using primary key columns */\n TokenHourData_by_pk?: Maybe<TokenHourData>;\n /** fetch data from the table in a streaming manner: \"TokenHourData\" */\n TokenHourData_stream: Array<TokenHourData>;\n /** fetch data from the table: \"Token\" using primary key columns */\n Token_by_pk?: Maybe<Token>;\n /** fetch data from the table in a streaming manner: \"Token\" */\n Token_stream: Array<Token>;\n /** fetch data from the table: \"Transaction\" */\n Transaction: Array<Transaction>;\n /** fetch data from the table: \"Transaction\" using primary key columns */\n Transaction_by_pk?: Maybe<Transaction>;\n /** fetch data from the table in a streaming manner: \"Transaction\" */\n Transaction_stream: Array<Transaction>;\n /** fetch data from the table: \"_meta\" */\n _meta: Array<Meta>;\n /** fetch data from the table in a streaming manner: \"_meta\" */\n _meta_stream: Array<Meta>;\n /** fetch data from the table: \"chain_metadata\" */\n chain_metadata: Array<ChainMetadata>;\n /** fetch data from the table in a streaming manner: \"chain_metadata\" */\n chain_metadata_stream: Array<ChainMetadata>;\n /** fetch data from the table: \"raw_events\" */\n raw_events: Array<RawEvents>;\n /** fetch data from the table: \"raw_events\" using primary key columns */\n raw_events_by_pk?: Maybe<RawEvents>;\n /** fetch data from the table in a streaming manner: \"raw_events\" */\n raw_events_stream: Array<RawEvents>;\n};\n\nexport type SubscriptionRootHookStatsArgs = {\n distinct_on?: InputMaybe<Array<HookStatsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<HookStatsOrderBy>>;\n where?: InputMaybe<HookStatsBoolExp>;\n};\n\nexport type SubscriptionRootHookStatsByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootHookStatsStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<HookStatsStreamCursorInput>>;\n where?: InputMaybe<HookStatsBoolExp>;\n};\n\nexport type SubscriptionRootLiquidityProviderArgs = {\n distinct_on?: InputMaybe<Array<LiquidityProviderSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<LiquidityProviderOrderBy>>;\n where?: InputMaybe<LiquidityProviderBoolExp>;\n};\n\nexport type SubscriptionRootLiquidityProviderByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootLiquidityProviderStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<LiquidityProviderStreamCursorInput>>;\n where?: InputMaybe<LiquidityProviderBoolExp>;\n};\n\nexport type SubscriptionRootModifyLiquidityArgs = {\n distinct_on?: InputMaybe<Array<ModifyLiquiditySelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ModifyLiquidityOrderBy>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\nexport type SubscriptionRootModifyLiquidityByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootModifyLiquidityStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ModifyLiquidityStreamCursorInput>>;\n where?: InputMaybe<ModifyLiquidityBoolExp>;\n};\n\nexport type SubscriptionRootPoolArgs = {\n distinct_on?: InputMaybe<Array<PoolSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolOrderBy>>;\n where?: InputMaybe<PoolBoolExp>;\n};\n\nexport type SubscriptionRootPool5MinuteDataArgs = {\n distinct_on?: InputMaybe<Array<Pool5MinuteDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<Pool5MinuteDataOrderBy>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\nexport type SubscriptionRootPool5MinuteDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPool5MinuteDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<Pool5MinuteDataStreamCursorInput>>;\n where?: InputMaybe<Pool5MinuteDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolDayDataArgs = {\n distinct_on?: InputMaybe<Array<PoolDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolDayDataOrderBy>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolDayDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolDayDataStreamCursorInput>>;\n where?: InputMaybe<PoolDayDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolHourDataArgs = {\n distinct_on?: InputMaybe<Array<PoolHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolHourDataOrderBy>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolHourDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolHourDataStreamCursorInput>>;\n where?: InputMaybe<PoolHourDataBoolExp>;\n};\n\nexport type SubscriptionRootPoolUserArgs = {\n distinct_on?: InputMaybe<Array<PoolUserSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PoolUserOrderBy>>;\n where?: InputMaybe<PoolUserBoolExp>;\n};\n\nexport type SubscriptionRootPoolUserByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolUserStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolUserStreamCursorInput>>;\n where?: InputMaybe<PoolUserBoolExp>;\n};\n\nexport type SubscriptionRootPoolByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPoolStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PoolStreamCursorInput>>;\n where?: InputMaybe<PoolBoolExp>;\n};\n\nexport type SubscriptionRootPositionArgs = {\n distinct_on?: InputMaybe<Array<PositionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<PositionOrderBy>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\nexport type SubscriptionRootPositionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootPositionStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<PositionStreamCursorInput>>;\n where?: InputMaybe<PositionBoolExp>;\n};\n\nexport type SubscriptionRootSwapArgs = {\n distinct_on?: InputMaybe<Array<SwapSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<SwapOrderBy>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\nexport type SubscriptionRootSwapByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootSwapStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<SwapStreamCursorInput>>;\n where?: InputMaybe<SwapBoolExp>;\n};\n\nexport type SubscriptionRootTickArgs = {\n distinct_on?: InputMaybe<Array<TickSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TickOrderBy>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\nexport type SubscriptionRootTickByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTickStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TickStreamCursorInput>>;\n where?: InputMaybe<TickBoolExp>;\n};\n\nexport type SubscriptionRootTokenArgs = {\n distinct_on?: InputMaybe<Array<TokenSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenOrderBy>>;\n where?: InputMaybe<TokenBoolExp>;\n};\n\nexport type SubscriptionRootTokenDayDataArgs = {\n distinct_on?: InputMaybe<Array<TokenDayDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenDayDataOrderBy>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenDayDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTokenDayDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TokenDayDataStreamCursorInput>>;\n where?: InputMaybe<TokenDayDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenHourDataArgs = {\n distinct_on?: InputMaybe<Array<TokenHourDataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TokenHourDataOrderBy>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenHourDataByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTokenHourDataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TokenHourDataStreamCursorInput>>;\n where?: InputMaybe<TokenHourDataBoolExp>;\n};\n\nexport type SubscriptionRootTokenByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTokenStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TokenStreamCursorInput>>;\n where?: InputMaybe<TokenBoolExp>;\n};\n\nexport type SubscriptionRootTransactionArgs = {\n distinct_on?: InputMaybe<Array<TransactionSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<TransactionOrderBy>>;\n where?: InputMaybe<TransactionBoolExp>;\n};\n\nexport type SubscriptionRootTransactionByPkArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type SubscriptionRootTransactionStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<TransactionStreamCursorInput>>;\n where?: InputMaybe<TransactionBoolExp>;\n};\n\nexport type SubscriptionRootMetaArgs = {\n distinct_on?: InputMaybe<Array<MetaSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<MetaOrderBy>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootMetaStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<MetaStreamCursorInput>>;\n where?: InputMaybe<MetaBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataArgs = {\n distinct_on?: InputMaybe<Array<ChainMetadataSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<ChainMetadataOrderBy>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootChainMetadataStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<ChainMetadataStreamCursorInput>>;\n where?: InputMaybe<ChainMetadataBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsArgs = {\n distinct_on?: InputMaybe<Array<RawEventsSelectColumn>>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n order_by?: InputMaybe<Array<RawEventsOrderBy>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\nexport type SubscriptionRootRawEventsByPkArgs = {\n serial: Scalars['Int']['input'];\n};\n\nexport type SubscriptionRootRawEventsStreamArgs = {\n batch_size: Scalars['Int']['input'];\n cursor: Array<InputMaybe<RawEventsStreamCursorInput>>;\n where?: InputMaybe<RawEventsBoolExp>;\n};\n\n/** Boolean expression to compare columns of type \"timestamptz\". All fields are combined with logical 'AND'. */\nexport type TimestamptzComparisonExp = {\n _eq?: InputMaybe<Scalars['timestamptz']['input']>;\n _gt?: InputMaybe<Scalars['timestamptz']['input']>;\n _gte?: InputMaybe<Scalars['timestamptz']['input']>;\n _in?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Scalars['timestamptz']['input']>;\n _lte?: InputMaybe<Scalars['timestamptz']['input']>;\n _neq?: InputMaybe<Scalars['timestamptz']['input']>;\n _nin?: InputMaybe<Array<Scalars['timestamptz']['input']>>;\n};\n\nexport type GetPoolVolumeQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n}>;\n\nexport type GetPoolVolumeQuery = {\n __typename: 'query_root';\n Pool: Array<{\n __typename: 'Pool';\n id: string;\n volume0: any;\n volume1: any;\n fees0: any;\n fees1: any;\n txCount: any;\n swapCount: any;\n modifyLiquidityCount: any;\n positionCount: any;\n }>;\n};\n\nexport type GetPoolUserVolumeQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n userAddr: Scalars['String']['input'];\n}>;\n\nexport type GetPoolUserVolumeQuery = {\n __typename: 'query_root';\n PoolUser: Array<{\n __typename: 'PoolUser';\n address: string;\n volume0: any;\n volume1: any;\n fees0: any;\n fees1: any;\n swapCount: any;\n }>;\n};\n\nexport type GetLpFeesQueryVariables = Exact<{\n lpId: Scalars['String']['input'];\n}>;\n\nexport type GetLpFeesQuery = {\n __typename: 'query_root';\n LiquidityProvider: Array<{\n __typename: 'LiquidityProvider';\n id: string;\n fees0: any;\n fees1: any;\n }>;\n};\n\nexport type GetPoolDayDataQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n endTimestamp?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n}>;\n\nexport type GetPoolDayDataQuery = {\n __typename: 'query_root';\n PoolDayData: Array<{\n __typename: 'PoolDayData';\n startTimestamp: number;\n volume0: any;\n volume1: any;\n open_: any;\n high: any;\n low: any;\n close: any;\n sqrtPriceX96: any;\n }>;\n};\n\nexport type GetPoolHourDataQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n endTimestamp?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n}>;\n\nexport type GetPoolHourDataQuery = {\n __typename: 'query_root';\n PoolHourData: Array<{\n __typename: 'PoolHourData';\n startTimestamp: number;\n volume0: any;\n volume1: any;\n open_: any;\n high: any;\n low: any;\n close: any;\n sqrtPriceX96: any;\n }>;\n};\n\nexport type GetPool5MinuteDataQueryVariables = Exact<{\n poolId: Scalars['String']['input'];\n startTimestamp?: InputMaybe<Scalars['Int']['input']>;\n endTimestamp?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n}>;\n\nexport type GetPool5MinuteDataQuery = {\n __typename: 'query_root';\n Pool5MinuteData: Array<{\n __typename: 'Pool5MinuteData';\n startTimestamp: number;\n volume0: any;\n volume1: any;\n open_: any;\n high: any;\n low: any;\n close: any;\n sqrtPriceX96: any;\n }>;\n};\n\nexport const GetPoolVolumeDocument = gql`\n query GetPoolVolume($poolId: String!) {\n Pool(where: {id: {_eq: $poolId}}) {\n id\n volume0\n volume1\n fees0\n fees1\n txCount\n swapCount\n modifyLiquidityCount\n positionCount\n }\n }\n`;\nexport const GetPoolUserVolumeDocument = gql`\n query GetPoolUserVolume($poolId: String!, $userAddr: String!) {\n PoolUser(where: {pool: {id: {_eq: $poolId}}, address: {_eq: $userAddr}}) {\n address\n volume0\n volume1\n fees0\n fees1\n swapCount\n }\n }\n`;\nexport const GetLpFeesDocument = gql`\n query GetLPFees($lpId: String!) {\n LiquidityProvider(where: {id: {_eq: $lpId}}) {\n id\n fees0\n fees1\n }\n }\n`;\nexport const GetPoolDayDataDocument = gql`\n query GetPoolDayData(\n $poolId: String!\n $startTimestamp: Int\n $endTimestamp: Int\n $limit: Int\n $offset: Int\n ) {\n PoolDayData(\n where: {\n pool: {id: {_eq: $poolId}}\n startTimestamp: {_gte: $startTimestamp, _lte: $endTimestamp}\n }\n order_by: {startTimestamp: asc}\n limit: $limit\n offset: $offset\n ) {\n startTimestamp\n volume0\n volume1\n open_\n high\n low\n close\n sqrtPriceX96\n }\n }\n`;\nexport const GetPoolHourDataDocument = gql`\n query GetPoolHourData(\n $poolId: String!\n $startTimestamp: Int\n $endTimestamp: Int\n $limit: Int\n $offset: Int\n ) {\n PoolHourData(\n where: {\n pool: {id: {_eq: $poolId}}\n startTimestamp: {_gte: $startTimestamp, _lte: $endTimestamp}\n }\n order_by: {startTimestamp: asc}\n limit: $limit\n offset: $offset\n ) {\n startTimestamp\n volume0\n volume1\n open_\n high\n low\n close\n sqrtPriceX96\n }\n }\n`;\nexport const GetPool5MinuteDataDocument = gql`\n query GetPool5MinuteData(\n $poolId: String!\n $startTimestamp: Int\n $endTimestamp: Int\n $limit: Int\n $offset: Int\n ) {\n Pool5MinuteData(\n where: {\n pool: {id: {_eq: $poolId}}\n startTimestamp: {_gte: $startTimestamp, _lte: $endTimestamp}\n }\n order_by: {startTimestamp: asc}\n limit: $limit\n offset: $offset\n ) {\n startTimestamp\n volume0\n volume1\n open_\n high\n low\n close\n sqrtPriceX96\n }\n }\n`;\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n GetPoolVolume(\n variables: GetPoolVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolVolumeQuery>({\n document: GetPoolVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolVolume',\n 'query',\n variables,\n );\n },\n GetPoolUserVolume(\n variables: GetPoolUserVolumeQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolUserVolumeQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolUserVolumeQuery>({\n document: GetPoolUserVolumeDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolUserVolume',\n 'query',\n variables,\n );\n },\n GetLPFees(\n variables: GetLpFeesQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetLpFeesQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetLpFeesQuery>({\n document: GetLpFeesDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetLPFees',\n 'query',\n variables,\n );\n },\n GetPoolDayData(\n variables: GetPoolDayDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolDayDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolDayDataQuery>({\n document: GetPoolDayDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolDayData',\n 'query',\n variables,\n );\n },\n GetPoolHourData(\n variables: GetPoolHourDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPoolHourDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPoolHourDataQuery>({\n document: GetPoolHourDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPoolHourData',\n 'query',\n variables,\n );\n },\n GetPool5MinuteData(\n variables: GetPool5MinuteDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit['signal'],\n ): Promise<GetPool5MinuteDataQuery> {\n return withWrapper(\n wrappedRequestHeaders =>\n client.request<GetPool5MinuteDataQuery>({\n document: GetPool5MinuteDataDocument,\n variables,\n requestHeaders: {...requestHeaders, ...wrappedRequestHeaders},\n signal,\n }),\n 'GetPool5MinuteData',\n 'query',\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","import type {Address, Hex} from 'viem';\n\nexport type MintPerpBody = {\n marketAddr: Address;\n optionType: 'CALL' | 'PUT';\n amount: bigint;\n duration: number;\n strikeTick: number;\n};\n\nexport type ExercisePerpBody = {\n marketAddr: Address;\n optionId: bigint;\n liquidities: bigint[];\n};\n\nexport class PerpsOperator {\n #baseUrl: string;\n auth?: {message: string; signature: Hex};\n\n constructor(baseUrl: string) {\n this.#baseUrl = baseUrl;\n }\n\n #request = async <T>(path: string, body?: unknown) => {\n const url = new URL(path, this.#baseUrl);\n const res = await fetch(url, {\n method: body ? 'POST' : 'GET',\n headers: {\n Connection: 'keep-alive',\n 'Content-Type': 'application/json',\n 'Keep-Alive': 'timeout=120',\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n if (res.ok) {\n const {data} = (await res.json()) as {data: T};\n return data;\n }\n const resText = await res.text();\n\n try {\n const error = JSON.parse(resText) as {error: string};\n throw new Error(`${res.status} ${res.statusText}: ${error.error}`);\n } catch (error) {\n throw new Error(`${res.status} ${res.statusText}: ${resText}`);\n }\n };\n\n getOperatorAddr = async (): Promise<Address> => {\n const {address} = await this.#request<{address: Address}>(\n 'api/operator/address',\n );\n return address;\n };\n\n genAuthMessage = async (userAddr: Address): Promise<string> => {\n const {message} = await this.#request<{message: string}>('api/auth/gen', {\n userAddr,\n });\n return message;\n };\n\n validateAuthMessage = async (message: string, signature: Hex) => {\n const {address, createdAt, validUntil} = await this.#request<{\n address: Address;\n createdAt: number;\n validUntil: number;\n }>('api/auth/validate', {message, signature});\n return {address, createdAt, validUntil};\n };\n\n setAuth = (message: string, signature: Hex) => {\n this.auth = {message, signature};\n };\n\n getUserPerps = async (\n userAddr: Address,\n marketAddr?: Address,\n type?: 'active' | 'closed',\n offset = 0,\n limit = 1000,\n ) => {\n const params = new URLSearchParams({\n offset: offset.toString(),\n limit: limit.toString(),\n });\n if (type) params.append('type', type);\n if (marketAddr) params.append('marketAddr', marketAddr);\n\n const url = `api/positions/${userAddr}?${params.toString()}`;\n\n const data = await this.#request<\n {\n id: string;\n ownerAddr: Address;\n marketAddr: Address;\n optionId: string;\n perpDuration: number;\n expiresAt: number;\n closed: boolean;\n }[]\n >(url);\n\n return data.map(p => ({...p, optionId: BigInt(p.optionId)}));\n };\n\n mintPerp = async (body: MintPerpBody) => {\n if (!this.auth) {\n throw new Error(\n 'Authentication required. Call setAuth() with authMessage and signature before exercising perps.',\n );\n }\n const {txHash, optionId} = await this.#request<{\n txHash: Hex;\n optionId: string;\n }>('api/positions/mint', {\n ...body,\n amount: body.amount.toString(),\n auth: this.auth,\n });\n return {txHash, optionId: BigInt(optionId)};\n };\n\n exercisePerp = async (body: ExercisePerpBody) => {\n if (!this.auth) {\n throw new Error(\n 'Authentication required. Call setAuth() with authMessage and signature before exercising perps.',\n );\n }\n const {txHash, optionId} = await this.#request<{\n txHash: Hex;\n optionId: string;\n }>('api/positions/exercise', {\n ...body,\n optionId: body.optionId.toString(),\n liquidities: body.liquidities.map(l => l.toString()),\n auth: this.auth,\n });\n return {txHash, optionId: BigInt(optionId)};\n };\n}\n","'use client';\nimport type {Address} from 'viem';\nimport React, {createContext, useContext, useMemo, type ReactNode} from 'react';\nimport {GraphQLClient} from 'graphql-request';\n\nimport {getSdk as getTimelockGraphqlSdk} from '~/generated/timelock';\nimport {getSdk as getUniV4GraphqlSdk} from '~/generated/univ4';\n\nimport {type TimelockMarketData} from '~/lib/contracts';\nimport {PerpsOperator} from '~/lib/perpsOperator';\n\ntype TimelockContextValue = {\n marketData: Partial<TimelockMarketData>;\n lensAddr?: Address;\n uniswapMathLensAddr?: Address;\n timelockGraphqlUrl?: string;\n timelockGraphqlClient?: ReturnType<typeof getTimelockGraphqlSdk>;\n uniV4GraphqlClient?: ReturnType<typeof getUniV4GraphqlSdk>;\n perpsOperator?: PerpsOperator;\n perpsOperatorUrl?: string;\n};\n\nconst TimelockContext = createContext<TimelockContextValue | undefined>(\n undefined,\n);\n\nexport const TimelockProvider = ({\n children,\n marketData,\n timelockGraphqlUrl,\n uniV4GraphqlUrl,\n perpsOperatorUrl,\n}: {\n children: ReactNode;\n marketData?: Partial<TimelockMarketData>;\n timelockGraphqlUrl?: string;\n uniV4GraphqlUrl?: string;\n perpsOperatorUrl?: string;\n}) => {\n const timelockGraphqlClient = useMemo(() => {\n if (timelockGraphqlUrl) {\n return getTimelockGraphqlSdk(new GraphQLClient(timelockGraphqlUrl));\n }\n return undefined;\n }, [timelockGraphqlUrl]);\n\n const uniV4GraphqlClient = useMemo(() => {\n if (uniV4GraphqlUrl) {\n return getUniV4GraphqlSdk(new GraphQLClient(uniV4GraphqlUrl));\n }\n return undefined;\n }, [uniV4GraphqlUrl]);\n\n const perpsOperator = useMemo(() => {\n if (perpsOperatorUrl) {\n return new PerpsOperator(perpsOperatorUrl);\n }\n return undefined;\n }, [perpsOperatorUrl]);\n\n const contextValue = useMemo(\n () => ({\n marketData: marketData || {},\n timelockGraphqlUrl,\n uniV4GraphqlUrl,\n perpsOperator,\n uniV4GraphqlClient,\n timelockGraphqlClient,\n perpsOperatorUrl,\n }),\n [\n marketData,\n timelockGraphqlUrl,\n uniV4GraphqlUrl,\n perpsOperator,\n timelockGraphqlClient,\n uniV4GraphqlClient,\n perpsOperatorUrl,\n ],\n );\n\n return (\n <TimelockContext.Provider value={contextValue}>\n {children}\n </TimelockContext.Provider>\n );\n};\n\nexport const useCurrentMarket = () => {\n const context = useContext(TimelockContext);\n\n if (context === undefined) {\n throw new Error('useCurrentMarket must be used within a TimelockProvider');\n }\n return context.marketData;\n};\n\nexport const useTimelockConfig = () => {\n const context = useContext(TimelockContext);\n\n if (context === undefined) {\n throw new Error('useConfig must be used within a TimelockProvider');\n }\n return context;\n};\n","import {useQuery} from '@tanstack/react-query';\nimport {usePublicClient} from 'wagmi';\nimport {getTimelockLens, getStateView, getQuoter} from '~/lib/contracts';\n\nexport const useLens = (): {\n timelockLens: Awaited<ReturnType<typeof getTimelockLens>> | undefined;\n stateView: Awaited<ReturnType<typeof getStateView>> | undefined;\n quoter: Awaited<ReturnType<typeof getQuoter>> | undefined;\n} => {\n const client = usePublicClient();\n\n const {data: timelockLens} = useQuery({\n queryKey: ['timelockLens', client?.uid],\n queryFn: () => (client ? getTimelockLens(client) : undefined),\n enabled: !!client,\n });\n const {data: stateView} = useQuery({\n queryKey: ['stateView', client?.uid],\n queryFn: () => (client ? getStateView(client) : undefined),\n enabled: !!client,\n });\n const {data: quoter} = useQuery({\n queryKey: ['quoter', client?.uid],\n queryFn: () => (client ? getQuoter(client) : undefined),\n enabled: !!client,\n });\n return {timelockLens, stateView, quoter};\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {useReadContract, useReadContracts} from 'wagmi';\n\nimport {useLens} from '../useLens';\nimport type {getTimelockLens} from '~/lib/contracts';\nimport {lensAbi} from '~/abis/lens';\n\nexport type MarketData = Awaited<\n ReturnType<\n Awaited<ReturnType<typeof getTimelockLens>>['read']['getMarketData']\n >\n>;\n\nexport const useMarketData = (marketAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMarketData',\n args: marketAddr ? [marketAddr] : undefined,\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n\nexport const useMarketsData = (marketAddrs: Address[]) => {\n const {timelockLens} = useLens();\n\n // Get unique addresses and create index mapping\n const {uniqueAddrs, indexMap} = useMemo(() => {\n const seen = new Map<Address, number>();\n const unique: Address[] = [];\n const mapping: number[] = [];\n\n for (const addr of marketAddrs) {\n if (!seen.has(addr)) {\n seen.set(addr, unique.length);\n unique.push(addr);\n }\n mapping.push(seen.get(addr)!);\n }\n return {uniqueAddrs: unique, indexMap: mapping};\n }, [marketAddrs]);\n\n // Build contracts array for unique addresses only\n const contracts = useMemo(() => {\n if (!timelockLens) return undefined;\n\n return uniqueAddrs.map(addr => ({\n address: timelockLens.address,\n abi: lensAbi,\n functionName: 'getMarketData' as const,\n args: [addr] as const,\n }));\n }, [timelockLens, uniqueAddrs]);\n\n const result = useReadContracts({\n contracts,\n query: {\n enabled: !!timelockLens && marketAddrs.length > 0,\n staleTime: 30_000,\n },\n });\n\n // Map unique results back to original array order (with duplicates)\n const data = useMemo(() => {\n if (!result.data) return undefined;\n\n return indexMap.map(idx => {\n const marketData = result.data[idx]?.result;\n\n if (!marketData) {\n throw new Error(`Failed to fetch data for market at index ${idx}`);\n }\n return marketData;\n });\n }, [result.data, indexMap]);\n\n return {...result, data};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useMarketState = (marketAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMarketState',\n args: marketAddr ? [marketAddr] : undefined,\n });\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useMarketVolume = (marketAddr: Address | undefined) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: ['marketVolume', marketAddr?.toLowerCase() || '--'],\n queryFn: async () => {\n const result = await timelockGraphqlClient!.GetMarketVolume({\n marketAddr: marketAddr!.toLowerCase(),\n });\n return {\n ...result.TimelockMarket[0],\n address: result.TimelockMarket[0].address as Address,\n totalVolume: BigInt(result.TimelockMarket[0].totalVolume),\n totalPremium: BigInt(result.TimelockMarket[0].totalPremium),\n totalPayout: BigInt(result.TimelockMarket[0].totalPayout),\n optionsCount: BigInt(result.TimelockMarket[0].optionsCount),\n tradersCount: BigInt(result.TimelockMarket[0].tradersCount),\n };\n },\n enabled: !!marketAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useMarketUserVolume = (\n marketAddr: Address | undefined,\n userAddr?: Address | undefined,\n) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: [\n 'marketUserVolume',\n marketAddr?.toLowerCase() || '--',\n userAddr?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n const result = await timelockGraphqlClient!.GetMarketUserVolume({\n marketAddr: marketAddr!.toLowerCase(),\n userAddr: userAddr!.toLowerCase(),\n });\n return {\n address: result.TimelockMarketUser[0].address as Address,\n totalVolume: BigInt(result.TimelockMarketUser[0].totalVolume),\n totalPremium: BigInt(result.TimelockMarketUser[0].totalPremium),\n totalPayout: BigInt(result.TimelockMarketUser[0].totalPayout),\n optionsCount: BigInt(result.TimelockMarketUser[0].optionsCount),\n };\n },\n enabled: !!marketAddr && !!userAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useWriteContract} from 'wagmi';\nimport {useMarketState} from './useMarketState';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useUpdateMarketBounds = (marketAddr: Address | undefined) => {\n const {\n data: {minDuration, maxDuration, minPositionSize, maxPositionSize} = {},\n error,\n } = useMarketState(marketAddr);\n\n const {mutateAsync, ...rest} = useWriteContract();\n\n const updateBounds = ({\n minDuration: newMinDuration,\n maxDuration: newMaxDuration,\n minPositionSize: newMinPositionSize,\n maxPositionSize: newMaxPositionSize,\n }: {\n minDuration?: number;\n maxDuration?: number;\n minPositionSize?: bigint;\n maxPositionSize?: bigint;\n }) => {\n if (!marketAddr) {\n throw new Error('Market address not provided');\n }\n if (\n minDuration === undefined ||\n maxDuration === undefined ||\n minPositionSize === undefined ||\n maxPositionSize === undefined\n ) {\n throw new Error('Market state not loaded: ' + error?.message);\n }\n return mutateAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'updatePositionBounds',\n args: [\n newMinDuration || minDuration,\n newMaxDuration || maxDuration,\n newMinPositionSize || minPositionSize,\n newMaxPositionSize || maxPositionSize,\n ],\n });\n };\n\n return {updateBounds, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useMarketDailyVolume = (marketAddr: Address | undefined) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: ['marketDailyData', marketAddr?.toLowerCase() || '--'],\n queryFn: async () => {\n const result = await timelockGraphqlClient!.GetMarketDailyVolume({\n marketAddr: marketAddr!.toLowerCase(),\n });\n return result.MarketDailyData.map(data => ({\n id: data.id,\n date: BigInt(data.date),\n totalVolume: BigInt(data.totalVolume),\n totalPremium: BigInt(data.totalPremium),\n totalPayout: BigInt(data.totalPayout),\n totalProtocolFee: BigInt(data.totalProtocolFee),\n }));\n },\n enabled: !!marketAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\n\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useLens} from '~/hooks/useLens';\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useMaxPositionSize = (\n marketAddr: Address | undefined,\n strikeTick?: number,\n maxSteps = 100,\n) => {\n const {timelockLens} = useLens();\n const {optionAssetDecimals} = useMarketData(marketAddr);\n\n const {data, ...rest} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: strikeTick ? 'getMaxPositionSizes' : 'getMaxATMPositionSizes',\n args: marketAddr\n ? strikeTick\n ? [marketAddr, strikeTick, maxSteps]\n : [marketAddr, maxSteps]\n : undefined,\n query: {enabled: !!marketAddr && !!timelockLens},\n // @ts-ignore\n gas: 100_000_000n,\n });\n\n const maxCallSize =\n data && optionAssetDecimals\n ? wrapAmount(data[0], optionAssetDecimals)\n : undefined;\n const maxPutSize =\n data && optionAssetDecimals\n ? wrapAmount(data[1], optionAssetDecimals)\n : undefined;\n\n return {maxCallSize, maxPutSize, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useReadContract, useReadContracts} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {stateViewAbi} from '~/abis/stateView';\nimport type {PoolInput} from './usePoolData';\n\nexport const useCurrentTick = (poolManager?: Address, poolKey?: PoolKey) => {\n const {stateView} = useLens();\n\n return useReadContract({\n address: stateView?.address,\n abi: stateViewAbi,\n functionName: 'getSlot0',\n args: poolManager && poolKey ? [poolManager, poolKey] : undefined,\n query: {\n enabled: !!poolManager && !!poolKey,\n refetchInterval: 3000,\n select: raw => {\n const sqrtPriceX96 = raw[0];\n const currentTick = raw[1];\n return {currentTick, sqrtPriceX96};\n },\n },\n });\n};\n\nexport const useCurrentTicks = (pools: PoolInput[]) => {\n const {stateView} = useLens();\n\n // Get unique pools and create index mapping\n const {uniquePools, indexMap} = useMemo(() => {\n const seen = new Map<string, number>();\n const unique: PoolInput[] = [];\n const mapping: number[] = [];\n\n for (const pool of pools) {\n const key = [\n pool.poolManager,\n pool.poolKey.currency0,\n pool.poolKey.currency1,\n pool.poolKey.fee,\n pool.poolKey.tickSpacing,\n pool.poolKey.hooks,\n ].join('-');\n\n if (!seen.has(key)) {\n seen.set(key, unique.length);\n unique.push(pool);\n }\n mapping.push(seen.get(key)!);\n }\n\n return {uniquePools: unique, indexMap: mapping};\n }, [pools]);\n\n // Build contracts array for unique pools only\n const contracts = useMemo(() => {\n if (!stateView) return undefined;\n\n return uniquePools.map(({poolManager, poolKey}) => ({\n address: stateView.address,\n abi: stateViewAbi,\n functionName: 'getSlot0' as const,\n args: [poolManager, poolKey] as const,\n }));\n }, [stateView, uniquePools]);\n\n const result = useReadContracts({\n contracts,\n query: {\n enabled: !!stateView && pools.length > 0,\n refetchInterval: 3000,\n },\n });\n\n // Map unique results back to original array order (with duplicates)\n const data = useMemo(() => {\n if (!result.data) return undefined;\n\n return indexMap.map(idx => {\n const raw = result.data[idx]?.result;\n\n if (!raw) {\n throw new Error(`Failed to fetch data for pool at index ${idx}`);\n }\n const sqrtPriceX96 = raw[0];\n const currentTick = raw[1];\n\n return {currentTick, sqrtPriceX96};\n });\n }, [result.data, indexMap]);\n\n return {...result, data};\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useReadContract, useReadContracts} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {lensAbi} from '~/abis/lens';\n\nexport type UniswapPoolData = ReturnType<typeof usePoolData>;\n\nexport const usePoolData = (poolManager?: Address, poolKey?: PoolKey) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getPoolData',\n args: poolManager && poolKey ? [poolManager, poolKey] : undefined,\n query: {enabled: !!poolManager && !!poolKey},\n });\n const _default = useMemo(\n () => ({\n token0: poolKey?.currency0,\n token1: poolKey?.currency1,\n tickSpacing: poolKey?.tickSpacing,\n fee: poolKey?.fee,\n }),\n [poolKey],\n );\n return (data || _default) as Partial<NonUndefinedGuard<typeof data>>;\n};\n\nexport type PoolInput = {\n poolManager: Address;\n poolKey: PoolKey;\n};\n\nexport const usePoolsData = (pools: PoolInput[]) => {\n const {timelockLens} = useLens();\n\n // Get unique pools and create index mapping\n const {uniquePools, indexMap} = useMemo(() => {\n const seen = new Map<string, number>();\n const unique: PoolInput[] = [];\n const mapping: number[] = [];\n\n for (const pool of pools) {\n const key = [\n pool.poolManager,\n pool.poolKey.currency0,\n pool.poolKey.currency1,\n pool.poolKey.fee,\n pool.poolKey.tickSpacing,\n pool.poolKey.hooks,\n ].join('-');\n\n if (!seen.has(key)) {\n seen.set(key, unique.length);\n unique.push(pool);\n }\n mapping.push(seen.get(key)!);\n }\n\n return {uniquePools: unique, indexMap: mapping};\n }, [pools]);\n\n // Build contracts array for unique pools only\n const contracts = useMemo(() => {\n if (!timelockLens) return undefined;\n\n return uniquePools.map(({poolManager, poolKey}) => ({\n address: timelockLens.address,\n abi: lensAbi,\n functionName: 'getPoolData' as const,\n args: [poolManager, poolKey] as const,\n }));\n }, [timelockLens, uniquePools]);\n\n const result = useReadContracts({\n contracts,\n query: {\n enabled: !!timelockLens && pools.length > 0,\n staleTime: 30_000,\n },\n });\n\n // Map unique results back to original array order (with duplicates)\n const data = useMemo(() => {\n if (!result.data) return undefined;\n\n return indexMap.map(idx => {\n const poolData = result.data[idx]?.result;\n\n if (!poolData) {\n throw new Error(`Failed to fetch data for pool at index ${idx}`);\n }\n return poolData;\n });\n }, [result.data, indexMap]);\n\n return {...result, data};\n};\n","import {type Address, erc20Abi, maxUint256} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {getErc20} from '~/lib/contracts';\n\nexport const useApproval = () => {\n const client = useClient();\n const {address} = useConnection();\n const {mutateAsync, data: hash, ...rest} = useWriteContract();\n\n const askForApproval = async (\n tokenAddress: Address,\n spenderAddress: Address,\n amount: bigint,\n ) => {\n if (!client || !address) throw new Error('Wallet not connected');\n\n const tokenContract = getErc20(tokenAddress, client);\n\n const allowance = await tokenContract.read.allowance([\n address,\n spenderAddress,\n ]);\n\n if (allowance < amount) {\n const approvalHash = await mutateAsync({\n address: tokenAddress,\n abi: erc20Abi,\n functionName: 'approve',\n args: [spenderAddress, maxUint256],\n });\n await waitForTransactionReceipt(client, {hash: approvalHash});\n }\n };\n return {askForApproval, hash, ...rest};\n};\n","import {encodeAbiParameters, keccak256} from 'viem';\nimport type {PoolKey} from './liquidityUtils';\n\nexport const sleep = (ms: number) =>\n new Promise(resolve => setTimeout(resolve, ms));\n\nexport const getPoolId = (poolKey: PoolKey) => {\n return keccak256(\n encodeAbiParameters(\n [\n {type: 'address', name: 'currency0'},\n {type: 'address', name: 'currency1'},\n {type: 'uint24', name: 'fee'},\n {type: 'int24', name: 'tickSpacing'},\n {type: 'address', name: 'hooks'},\n ],\n [\n poolKey.currency0,\n poolKey.currency1,\n poolKey.fee,\n poolKey.tickSpacing,\n poolKey.hooks,\n ],\n ),\n );\n};\n","import type {Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {useLens} from '~/hooks/useLens';\n\nimport {getTimelockMarket} from '~/lib/contracts';\nimport {getNearestValidStrikeTick} from '~/lib/liquidityUtils';\nimport {sleep} from '~/lib/utils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useMintOption = (marketAddr: Address | undefined) => {\n const {payoutAsset, vault, poolManager, poolKey, optionAssetIsToken0} =\n useMarketData(marketAddr);\n\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n const {refetch: refetchCurrentTick} = useCurrentTick(poolManager, poolKey);\n\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n const {timelockLens} = useLens();\n\n const {askForApproval} = useApproval();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const mintOption = async ({\n optionType,\n amount,\n duration,\n strikeTick,\n maxSteps = 100,\n }: {\n optionType: 'CALL' | 'PUT';\n amount: bigint;\n duration: number;\n strikeTick?: number;\n maxSteps?: number;\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not available');\n if (!timelockLens) throw new Error('Timelock lens not available');\n if (!tickSpacing) throw new Error('Pool data not available');\n\n if (!vault || !payoutAsset || optionAssetIsToken0 === undefined) {\n throw new Error('Market data not available');\n }\n const {data: {currentTick} = {}} = await refetchCurrentTick();\n\n if (currentTick === undefined) {\n throw new Error('Could not fetch current tick');\n }\n strikeTick = getNearestValidStrikeTick(\n optionType,\n optionAssetIsToken0,\n tickSpacing,\n currentTick,\n strikeTick,\n );\n const market = getTimelockMarket(marketAddr, client);\n\n const [premium, protocolFee] = await market.read.getMintFees([\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n duration,\n '0x',\n ]);\n const maxPremium = ((premium + protocolFee) * 11n) / 10n;\n await askForApproval(payoutAsset, marketAddr, maxPremium);\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'mintOption',\n args: [\n address,\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n duration,\n maxPremium,\n maxSteps,\n await timelockLens.read.getRefTick([vault, strikeTick]),\n '0x',\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n\n return hash;\n };\n return useMutation({mutationFn: mintOption});\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {usePoolData, usePoolsData, type PoolInput} from './usePoolData';\nimport {useCurrentTicks} from './useCurrentTick';\n\nimport {\n type PoolKey,\n getPriceAtTick,\n getPriceAtSqrtPriceX96,\n} from '~/lib/liquidityUtils';\nimport {wrapPrice} from '~/lib/numberUtils';\n\nexport const usePriceAtTick = (\n poolManager?: Address,\n poolKey?: PoolKey,\n tick?: number,\n token0For1 = true,\n) => {\n const {token0Decimals, token1Decimals} = usePoolData(poolManager, poolKey);\n\n const priceBigInt = useMemo(\n () => (tick !== undefined ? getPriceAtTick(tick, token0For1) : undefined),\n [tick],\n );\n const price = useMemo(\n () =>\n priceBigInt && token0Decimals && token1Decimals\n ? wrapPrice(\n priceBigInt,\n token0For1 ? token0Decimals : token1Decimals,\n token0For1 ? token1Decimals : token0Decimals,\n )\n : undefined,\n [priceBigInt, token0Decimals, token1Decimals],\n );\n return price;\n};\n\nexport const usePriceAtSqrtPriceX96 = (\n poolManager?: Address,\n poolKey?: PoolKey,\n sqrtPriceX96?: bigint,\n token0For1 = true,\n) => {\n const {token0Decimals, token1Decimals} = usePoolData(poolManager, poolKey);\n\n const priceBigInt = useMemo(\n () =>\n sqrtPriceX96 !== undefined\n ? getPriceAtSqrtPriceX96(sqrtPriceX96, token0For1)\n : undefined,\n [sqrtPriceX96],\n );\n\n const price = useMemo(() => {\n if (priceBigInt === undefined || !token0Decimals || !token1Decimals) {\n return undefined;\n }\n return wrapPrice(\n priceBigInt,\n token0For1 ? token0Decimals : token1Decimals,\n token0For1 ? token1Decimals : token0Decimals,\n );\n }, [priceBigInt, token0Decimals, token1Decimals]);\n\n return price;\n};\n","import {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {usePriceAtSqrtPriceX96} from './usePriceAtTick';\nimport {useCurrentTick, useCurrentTicks} from './useCurrentTick';\nimport {usePoolsData, type PoolInput} from './usePoolData';\nimport {getPriceAtSqrtPriceX96, type PoolKey} from '~/lib/liquidityUtils';\nimport {wrapPrice} from '~/lib/numberUtils';\n\nexport const useCurrentPrice = (\n poolManager?: Address,\n poolKey?: PoolKey,\n token0For1 = true,\n) => {\n const {data: {sqrtPriceX96, currentTick} = {}} = useCurrentTick(\n poolManager,\n poolKey,\n );\n const currentPrice = usePriceAtSqrtPriceX96(\n poolManager,\n poolKey,\n sqrtPriceX96,\n token0For1,\n );\n\n return useMemo(\n () => ({currentPrice, sqrtPriceX96, currentTick}),\n [currentPrice, sqrtPriceX96, currentTick],\n );\n};\n\nexport const useCurrentPrices = (\n pools: (PoolInput & {token0For1: boolean})[],\n) => {\n const {data: ticksData, ...ticksResult} = useCurrentTicks(pools);\n const {data: poolsData} = usePoolsData(pools);\n\n const pricesBigInt = useMemo(() => {\n if (!ticksData) return undefined;\n\n return ticksData.map(({sqrtPriceX96}, index) =>\n getPriceAtSqrtPriceX96(sqrtPriceX96, pools[index].token0For1),\n );\n }, [ticksData, pools]);\n\n const data = useMemo(() => {\n if (!ticksData || !pricesBigInt || !poolsData) return undefined;\n\n return pricesBigInt.map((priceBigInt, index) => ({\n currentPrice: wrapPrice(\n priceBigInt,\n pools[index].token0For1\n ? poolsData[index]!.token0Decimals\n : poolsData[index]!.token1Decimals,\n pools[index].token0For1\n ? poolsData[index]!.token1Decimals\n : poolsData[index]!.token0Decimals,\n ),\n sqrtPriceX96: ticksData[index]!.sqrtPriceX96,\n currentTick: ticksData[index]!.currentTick,\n }));\n }, [ticksData, poolsData, pricesBigInt]);\n\n return {...ticksResult, data};\n};\n","import {encodeAbiParameters, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport type {OptionData} from './useUserOptions';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useCurrentPrice} from '~/hooks/pool/useCurrentPrice';\nimport {useLens} from '~/hooks/useLens';\n\nimport {sleep} from '~/lib/utils';\nimport {swappers} from '~/lib/contracts';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useExerciseOption = (marketAddr: Address | undefined) => {\n const {vault, poolManager, poolKey} = useMarketData(marketAddr);\n const {timelockLens} = useLens();\n\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const {sqrtPriceX96} = useCurrentPrice(poolManager, poolKey);\n\n const exerciseOption = async ({\n option,\n liquidities,\n }: {\n option: OptionData;\n liquidities: readonly bigint[];\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not available');\n if (!timelockLens) throw new Error('Timelock lens not available');\n if (!vault) throw new Error('Vault not available');\n if (!poolKey || !poolManager) throw new Error('Pool data not available');\n if (!sqrtPriceX96) throw new Error('Current price not available');\n\n const swapper = swappers[client.chain.id];\n if (!swapper) throw new Error('Swapper not available');\n\n const minSqrtPrice = (sqrtPriceX96 * 9n) / 10n;\n const maxSqrtPrice = (sqrtPriceX96 * 11n) / 10n;\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 60 * 10);\n\n const refTick = await timelockLens.read.getRefTick([\n vault,\n option.startTick,\n ]);\n const swapperData = encodeAbiParameters(\n [{type: 'uint160'}, {type: 'uint160'}, {type: 'uint256'}],\n [minSqrtPrice, maxSqrtPrice, deadline],\n );\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'exerciseOption',\n args: [option.optionId, liquidities, 0n, swapper, swapperData, refTick],\n });\n await waitForTransactionReceipt(client, {hash});\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n\n return hash;\n };\n return useMutation({mutationFn: exerciseOption});\n};\n","import {useMemo} from 'react';\nimport {\n useSimulateContract,\n useChainId,\n useReadContract,\n useConnection,\n} from 'wagmi';\nimport {encodeAbiParameters, maxUint160} from 'viem';\n\nimport type {OptionData} from './useUserOptions';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useCurrentPrice} from '~/hooks/pool/useCurrentPrice';\nimport {useLens} from '~/hooks/useLens';\nimport {\n token0ToToken1,\n token0ToToken1AtTick,\n token1ToToken0,\n token1ToToken0AtTick,\n} from '~/lib/liquidityUtils';\nimport {type Amount, wrapAmount} from '~/lib/numberUtils';\nimport {swappers} from '~/lib/contracts';\nimport {MAX_SQRT_RATIO, MIN_SQRT_RATIO} from '~/lib/uniswapUtils';\n\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\nimport {lensAbi} from '~/abis/lens';\n\nconst calculateDisplayPnl = (\n option: OptionData,\n poolPrice: bigint,\n optionAssetIsToken0: boolean,\n payoutAssetDecimals: number,\n): Amount => {\n const strikeSize = optionAssetIsToken0\n ? token0ToToken1AtTick(option.positionSizeCurrent, option.strikeTick)\n : token1ToToken0AtTick(option.positionSizeCurrent, option.strikeTick);\n\n const currentSize = optionAssetIsToken0\n ? token0ToToken1(option.positionSizeCurrent, poolPrice)\n : token1ToToken0(option.positionSizeCurrent, poolPrice);\n\n const delta = currentSize - strikeSize;\n const pnl = option.optionType === 'CALL' ? delta : -delta;\n\n return wrapAmount(pnl, payoutAssetDecimals);\n};\n\nconst swapperData = encodeAbiParameters(\n [{type: 'uint160'}, {type: 'uint160'}, {type: 'uint256'}],\n [\n MIN_SQRT_RATIO,\n MAX_SQRT_RATIO,\n BigInt(Math.floor(Date.now() / 1000) + 60 * 10),\n ],\n);\n\nexport const useOptionPnl = (option?: OptionData) => {\n const chainId = useChainId();\n const {address: account} = useConnection();\n const {timelockLens} = useLens();\n\n const {\n vault,\n poolManager,\n poolKey,\n optionAssetIsToken0,\n payoutAssetDecimals,\n } = useMarketData(option?.marketAddr);\n\n const {currentPrice: poolPrice} = useCurrentPrice(poolManager, poolKey);\n\n // Simple theoretical PnL (no slippage)\n const displayPnl = useMemo(() => {\n if (\n !option ||\n !poolPrice ||\n !payoutAssetDecimals ||\n optionAssetIsToken0 === undefined\n )\n return undefined;\n\n return calculateDisplayPnl(\n option,\n poolPrice.scaled,\n optionAssetIsToken0,\n payoutAssetDecimals,\n );\n }, [option, optionAssetIsToken0, poolPrice, payoutAssetDecimals]);\n\n const {data: refTick} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getRefTick',\n args: vault && option?.startTick ? [vault, option.startTick] : undefined,\n });\n\n const swapper = swappers[chainId];\n\n // Actual payout accounting for slippage via simulate call to exerciseOption\n const {data: unrealizedPayout, ...rest} = useSimulateContract({\n address: option?.marketAddr,\n abi: optionsMarketAbi,\n functionName: 'exerciseOption',\n account,\n args:\n option && refTick\n ? [\n option.optionId,\n option.liquiditiesCurrent,\n 0n,\n swapper,\n swapperData,\n refTick,\n ]\n : undefined,\n query: {\n enabled:\n !!option &&\n !!swapperData &&\n !!swapper &&\n refTick !== undefined &&\n !!account,\n staleTime: 10_000, // Cache for 10s to avoid excessive calls\n select: data => {\n if (!payoutAssetDecimals) return undefined;\n return wrapAmount(data.result, payoutAssetDecimals);\n },\n },\n });\n\n return {...rest, data: {displayPnl, unrealizedPayout}};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useMemo} from 'react';\n\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useMarketData} from '~/hooks/market/useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {roundTick} from '~/lib/liquidityUtils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useMintFees = (\n marketAddr: Address | undefined,\n optionType: 'CALL' | 'PUT',\n optionAmount?: bigint,\n duration?: number,\n strikeTick?: number,\n) => {\n const {poolManager, poolKey, payoutAssetDecimals, optionAssetIsToken0} =\n useMarketData(marketAddr);\n\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n\n const strikeTickRounded = useMemo(() => {\n if (!tickSpacing || currentTick === undefined) {\n return undefined;\n }\n let strikeTickRounded = roundTick(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTickRounded += tickSpacing;\n }\n return strikeTickRounded;\n }, [currentTick, tickSpacing, optionType, optionAssetIsToken0, strikeTick]);\n\n const {data: [premium, protocolFee] = []} = useReadContract({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'getMintFees',\n args:\n strikeTickRounded !== undefined &&\n optionAmount !== undefined &&\n duration !== undefined\n ? [\n optionType === 'CALL' ? 0 : 1,\n optionAmount,\n strikeTickRounded,\n duration,\n '0x',\n ]\n : undefined,\n });\n\n return useMemo(() => {\n if (\n premium === undefined ||\n protocolFee === undefined ||\n payoutAssetDecimals === undefined\n ) {\n return {};\n }\n return {\n premium: wrapAmount(premium, payoutAssetDecimals),\n protocolFee: wrapAmount(protocolFee, payoutAssetDecimals),\n totalPremium: wrapAmount(premium + protocolFee, payoutAssetDecimals),\n };\n }, [premium, protocolFee, payoutAssetDecimals]);\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useMemo} from 'react';\n\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useMarketData} from '~/hooks/market/useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {roundTick} from '~/lib/liquidityUtils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useExtensionFees = (\n marketAddr: Address | undefined,\n optionType: 'CALL' | 'PUT',\n optionAmount?: bigint,\n addedDuration?: number,\n remainingDuration?: number,\n strikeTick?: number,\n) => {\n const {poolManager, poolKey, payoutAssetDecimals, optionAssetIsToken0} =\n useMarketData(marketAddr);\n\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n\n const strikeTickRounded = useMemo(() => {\n if (!tickSpacing || currentTick === undefined) {\n return undefined;\n }\n let strikeTickRounded = roundTick(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTickRounded += tickSpacing;\n }\n return strikeTickRounded;\n }, [currentTick, tickSpacing, optionType, optionAssetIsToken0, strikeTick]);\n\n const {data: [premium, protocolFee] = []} = useReadContract({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'getExtendFees',\n args:\n strikeTickRounded !== undefined &&\n optionAmount !== undefined &&\n addedDuration !== undefined &&\n remainingDuration !== undefined\n ? [\n optionType === 'CALL' ? 0 : 1,\n optionAmount,\n strikeTickRounded,\n addedDuration,\n remainingDuration,\n '0x',\n ]\n : undefined,\n });\n\n return useMemo(() => {\n if (\n premium === undefined ||\n protocolFee === undefined ||\n payoutAssetDecimals === undefined\n ) {\n return {};\n }\n return {\n premium: wrapAmount(premium, payoutAssetDecimals),\n protocolFee: wrapAmount(protocolFee, payoutAssetDecimals),\n totalPremium: wrapAmount(premium + protocolFee, payoutAssetDecimals),\n };\n }, [premium, protocolFee, payoutAssetDecimals]);\n};\n","import type {Address} from 'viem';\nimport {useQuery, type NonUndefinedGuard} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport type OptionData = NonUndefinedGuard<\n ReturnType<typeof useUserOptions>['data']\n>[number];\n\nconst useUserOptions = (\n userAddr: Address | undefined,\n marketAddr: Address | '*' | undefined,\n active = false,\n) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n userAddr = userAddr?.toLowerCase() as Address | undefined;\n marketAddr = marketAddr?.toLowerCase() as Address | '*' | undefined;\n\n return useQuery({\n queryKey: ['userOptions', userAddr || '--', active],\n queryFn: async () => {\n if (!timelockGraphqlClient || !userAddr || !marketAddr) return [];\n\n const data = await (marketAddr === '*'\n ? active\n ? timelockGraphqlClient.GetActiveUserOptions({userAddr})\n : timelockGraphqlClient.GetClosedUserOptions({userAddr})\n : active\n ? timelockGraphqlClient.GetActiveUserOptionsByMarket({\n userAddr,\n marketAddr,\n })\n : timelockGraphqlClient.GetClosedUserOptionsByMarket({\n userAddr,\n marketAddr,\n }));\n\n return data.UserOption.map(option => ({\n ...option,\n optionId: BigInt(option.optionId),\n marketAddr: option.market!.address as Address,\n ownerAddr: option.owner!.address as Address,\n optionType: option.optionType as 'CALL' | 'PUT',\n createdAt: new Date(Number(option.createdAt) * 1000),\n expiresAt: new Date(Number(option.expiresAt) * 1000),\n premium: BigInt(option.premium),\n protocolFee: BigInt(option.protocolFee),\n realizedPayout: BigInt(option.realizedPayout),\n liquiditiesAtOpen: option.liquiditiesAtOpen.map(l => BigInt(l)),\n liquiditiesCurrent: option.liquiditiesCurrent.map(l => BigInt(l)),\n positionSizeAtOpen: BigInt(option.positionSizeAtOpen),\n positionSizeCurrent: BigInt(option.positionSizeCurrent),\n strikePrice: BigInt(option.strikePrice),\n entryPrice: BigInt(option.entryPrice),\n })).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\n },\n enabled: !!userAddr && !!marketAddr && !!timelockGraphqlClient,\n });\n};\n\nexport const useActiveUserOptions = (\n userAddr?: Address,\n marketAddr?: Address | '*',\n) => {\n return useUserOptions(userAddr, marketAddr, true);\n};\n\nexport const useClosedUserOptions = (\n userAddr?: Address,\n marketAddr?: Address | '*',\n) => {\n return useUserOptions(userAddr, marketAddr, false);\n};\n","import {maxUint256, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport type {OptionData} from './useUserOptions';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {getTimelockMarket} from '~/lib/contracts';\nimport {sleep} from '~/lib/utils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useExtendOption = (marketAddr: Address | undefined) => {\n const {payoutAsset} = useMarketData(marketAddr);\n\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n\n const {askForApproval} = useApproval();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const extendOption = async ({\n option,\n duration,\n }: {\n option: OptionData;\n duration: number;\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n\n if (!marketAddr || !payoutAsset) {\n throw new Error('Market address not available');\n }\n const market = getTimelockMarket(marketAddr, client);\n\n const remainingDuration = Math.max(\n 0,\n Math.floor((option.expiresAt.getTime() - Date.now()) / 1000),\n );\n const [premium, protocolFee] = await market.read.getExtendFees([\n option.optionType === 'CALL' ? 0 : 1,\n option.positionSizeCurrent,\n option.strikeTick,\n duration,\n remainingDuration,\n '0x',\n ]);\n const maxPremium = ((premium + protocolFee) * 11n) / 10n;\n await askForApproval(payoutAsset, marketAddr, maxPremium);\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'extendOption',\n args: [option.optionId, duration, maxUint256, '0x'],\n });\n await waitForTransactionReceipt(client, {hash});\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n\n return hash;\n };\n return useMutation({mutationFn: extendOption});\n};\n","import type {Address} from 'viem';\nimport {useQuery, type NonUndefinedGuard} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport type OptionEvent = NonUndefinedGuard<\n ReturnType<typeof useOptionTimeline>['data']\n>[number];\nexport type MintOptionEvent = Extract<OptionEvent, {type: 'mint'}>;\nexport type ExerciseOptionEvent = Extract<OptionEvent, {type: 'exercise'}>;\nexport type ExtendEvent = Extract<OptionEvent, {type: 'extend'}>;\n\nexport const useOptionTimeline = (\n marketAddr: Address | undefined,\n optionId: bigint | undefined,\n) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n marketAddr = marketAddr?.toLowerCase() as Address | undefined;\n\n return useQuery({\n queryKey: [\n 'optionTimeline',\n marketAddr || '--',\n optionId?.toString() || '--',\n ],\n queryFn: async () => {\n if (!timelockGraphqlClient || !marketAddr || optionId === undefined) {\n return [];\n }\n const result = await timelockGraphqlClient.GetOptionEvents({\n marketAddr: marketAddr,\n optionId: optionId.toString(),\n });\n\n const mintEvents = result.MintOptionEvent.map(event => ({\n id: event.id,\n optionType: event.optionType as 0 | 1,\n strikeTick: event.strikeTick,\n price: BigInt(event.price),\n premium: BigInt(event.premium),\n protocolFee: BigInt(event.protocolFee),\n liquidities: event.liquidities.map(l => BigInt(l)),\n timestamp: new Date(Number(event.timestamp) * 1000),\n expiresAt: new Date(Number(event.expiresAt) * 1000),\n blockNumber: BigInt(event.blockNumber),\n transactionHash: event.transactionHash,\n }));\n const exerciseEvents = result.ExerciseOptionEvent.map(event => ({\n id: event.id,\n payout: BigInt(event.payout),\n liquidities: event.liquidities.map(l => BigInt(l)),\n timestamp: new Date(Number(event.timestamp) * 1000),\n blockNumber: BigInt(event.blockNumber),\n transactionHash: event.transactionHash,\n }));\n const extendEvents = result.ExtendOptionEvent.map(event => ({\n id: event.id,\n premium: BigInt(event.premium),\n protocolFee: BigInt(event.protocolFee),\n price: BigInt(event.price),\n addedDuration: BigInt(event.addedDuration),\n timestamp: new Date(Number(event.timestamp) * 1000),\n blockNumber: BigInt(event.blockNumber),\n transactionHash: event.transactionHash,\n }));\n\n type MintEvent = {type: 'mint'; data: (typeof mintEvents)[number]};\n type ExerciseEvent = {\n type: 'exercise';\n data: (typeof exerciseEvents)[number];\n };\n type ExtendEvent = {type: 'extend'; data: (typeof extendEvents)[number]};\n type OptionEvent = MintEvent | ExerciseEvent | ExtendEvent;\n\n const events: OptionEvent[] = [\n ...mintEvents.map(data => ({type: 'mint', data}) as const),\n ...exerciseEvents.map(data => ({type: 'exercise', data}) as const),\n ...extendEvents.map(data => ({type: 'extend', data}) as const),\n ];\n return events.sort(\n (a, b) => a.data.timestamp.getTime() - b.data.timestamp.getTime(),\n );\n },\n enabled: !!marketAddr && optionId !== undefined && !!timelockGraphqlClient,\n });\n};\n","import type {Address, Hex} from 'viem';\nimport {useEffect} from 'react';\nimport {useConnection, useSignMessage} from 'wagmi';\nimport {useMutation, useQuery} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nconst isValidHex = (value: unknown): value is Hex => {\n return typeof value === 'string' && /^0x[a-fA-F0-9]+$/.test(value);\n};\n\nconst isValidSavedSignature = (\n data: unknown,\n): data is {signature: Hex; message: string} => {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'signature' in data &&\n 'message' in data &&\n isValidHex(data.signature) &&\n typeof data.message === 'string'\n );\n};\n\nconst getSavedSignature = (userAddr: Address) => {\n const key = `perps-auth-${userAddr.toLowerCase()}`;\n const raw = localStorage.getItem(key);\n if (!raw) return;\n\n try {\n const parsed = JSON.parse(raw);\n if (!isValidSavedSignature(parsed)) {\n clearSignature(userAddr);\n throw new Error('Invalid stored signature: ' + raw);\n }\n return parsed;\n } catch (error) {\n clearSignature(userAddr);\n throw new Error('Invalid stored signature: ' + raw);\n }\n};\n\nconst saveSignature = (userAddr: Address, message: string, signature: Hex) => {\n const key = `perps-auth-${userAddr.toLowerCase()}`;\n const data = JSON.stringify({message, signature});\n localStorage.setItem(key, data);\n};\n\nconst clearSignature = (userAddr: Address) => {\n const key = `perps-auth-${userAddr.toLowerCase()}`;\n localStorage.removeItem(key);\n};\n\nexport const usePerpsOperator = () => {\n const {address: userAddr} = useConnection();\n const {perpsOperatorUrl, perpsOperator: operator} = useTimelockConfig();\n const {mutateAsync: signMessageAsync} = useSignMessage();\n\n const {data: address} = useQuery({\n queryKey: ['perpsOperatorAddr', perpsOperatorUrl || '--'],\n queryFn: () => operator?.getOperatorAddr(),\n staleTime: 10000,\n refetchInterval: 10000,\n enabled: !!operator,\n });\n\n const validateAndSetAuth = async (message: string, signature: Hex) => {\n if (!operator || !userAddr) return;\n\n try {\n const {address, validUntil} = await operator.validateAuthMessage(\n message,\n signature,\n );\n if (validUntil < Date.now()) {\n throw new Error('Signature expired');\n }\n if (address.toLowerCase() !== userAddr.toLowerCase()) {\n throw new Error('Valid signature but different user address');\n }\n operator.setAuth(message, signature);\n } catch (error) {\n clearSignature(userAddr);\n console.error(error);\n }\n };\n\n useEffect(() => {\n if (!userAddr || !operator) return;\n\n const sig = getSavedSignature(userAddr);\n if (!sig) return;\n\n void validateAndSetAuth(sig.message, sig.signature);\n }, [userAddr, operator]);\n\n const signMessage = useMutation({\n mutationFn: async () => {\n if (!operator) throw new Error('Operator not initialized');\n if (!userAddr) throw new Error('Wallet not connected');\n\n const message = await operator.genAuthMessage(userAddr);\n const signature = await signMessageAsync({message});\n\n saveSignature(userAddr, message, signature);\n operator.setAuth(message, signature);\n },\n });\n\n return {operator, address, signMessage};\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\n\nexport const useUserOperators = (userAddr?: Address, marketAddr?: Address) => {\n const {timelockGraphqlClient} = useTimelockConfig();\n\n return useQuery({\n queryKey: [\n 'userOperators',\n userAddr?.toLowerCase() || '--',\n marketAddr?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n if (!userAddr || !marketAddr) return undefined;\n\n const result = await timelockGraphqlClient!.GetUserMarketOperators({\n userAddr: userAddr.toLowerCase(),\n marketAddr: marketAddr.toLowerCase(),\n });\n return result.UserMarketOperator.map(operator => ({\n ...operator,\n spendingApproval: BigInt(operator.spendingApproval),\n operatorAddr: operator.operator!.address.toLowerCase(),\n }));\n },\n enabled: !!userAddr && !!marketAddr && !!timelockGraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient, useConnection} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useSetOperatorPerms = (marketAddr: Address | undefined) => {\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const setOperatorPerms = async ({\n operator,\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n }: {\n operator: Address;\n canExtend: boolean;\n canExercise: boolean;\n canTransfer: boolean;\n canMint: boolean;\n spendingApproval: bigint;\n }) => {\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not available');\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'setOperatorPerms',\n args: [\n operator,\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n\n void queryClient.invalidateQueries({queryKey: ['userOperators']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n return hash;\n };\n return useMutation({mutationFn: setOperatorPerms});\n};\n","import {maxUint256, type Address} from 'viem';\nimport {useConnection, useClient} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {usePerpsOperator} from './usePerpsOperator';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {useUserOperators} from '~/hooks/operators/useUserOperators';\nimport {useSetOperatorPerms} from '~/hooks/operators/useSetOperatorPerms';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {getTimelockMarket} from '~/lib/contracts';\nimport {getNearestValidStrikeTick} from '~/lib/liquidityUtils';\nimport {sleep} from '~/lib/utils';\n\nexport const useMintPerp = (marketAddr: Address | undefined) => {\n const queryClient = useQueryClient();\n const client = useClient();\n const {address} = useConnection();\n\n const {\n operator,\n address: operatorAddr,\n signMessage: {mutateAsync: signMessage},\n } = usePerpsOperator();\n\n const {poolManager, poolKey, optionAssetIsToken0, payoutAsset} =\n useMarketData(marketAddr);\n const {tickSpacing} = usePoolData(poolManager, poolKey);\n\n const {askForApproval} = useApproval();\n const {mutateAsync: setOperatorPerms} = useSetOperatorPerms(marketAddr);\n\n const {refetch: refetchOperators} = useUserOperators(address, marketAddr);\n const {refetch: refetchCurrentTick} = useCurrentTick(poolManager, poolKey);\n\n const mintPerp = async (data: {\n optionType: 'CALL' | 'PUT';\n amount: bigint;\n duration: number;\n strikeTick?: number;\n }) => {\n const {optionType, amount, duration, strikeTick} = data;\n\n if (!client || !address) throw new Error('Wallet not connected');\n if (!marketAddr) throw new Error('Market address not found');\n if (!tickSpacing) throw new Error('Pool data not found');\n\n if (!operator || !operatorAddr) {\n throw new Error('Operator address not found');\n }\n if (optionAssetIsToken0 === undefined || !payoutAsset) {\n throw new Error('Market data not found');\n }\n if (!operator.auth) await signMessage();\n\n const market = getTimelockMarket(marketAddr, client);\n\n const {data: {currentTick} = {}} = await refetchCurrentTick();\n\n if (currentTick === undefined) {\n throw new Error('Could not fetch current tick');\n }\n const {data: operators = []} = await refetchOperators();\n\n const userPerms = operatorAddr\n ? operators.find(\n o => o.operatorAddr.toLowerCase() === operatorAddr.toLowerCase(),\n )\n : undefined;\n\n const validStrikeTick = getNearestValidStrikeTick(\n optionType,\n optionAssetIsToken0,\n tickSpacing,\n currentTick,\n strikeTick,\n );\n const [premium, protocolFee] = await market.read.getMintFees([\n optionType === 'CALL' ? 0 : 1,\n amount,\n validStrikeTick,\n duration,\n '0x',\n ]);\n const maxPremium = ((premium + protocolFee) * 11n) / 10n;\n\n const hasEnoughPerms =\n userPerms &&\n userPerms.canMint &&\n userPerms.canExtend &&\n userPerms.canExercise &&\n userPerms.spendingApproval > maxPremium;\n\n if (!hasEnoughPerms) {\n await setOperatorPerms({\n operator: operatorAddr,\n canMint: true,\n canExtend: true,\n canExercise: true,\n canTransfer: userPerms?.canTransfer || false,\n spendingApproval: maxUint256,\n });\n }\n await askForApproval(payoutAsset, marketAddr, maxPremium);\n\n await operator.mintPerp({\n marketAddr: marketAddr,\n amount: amount,\n optionType: optionType,\n duration: duration,\n strikeTick: validStrikeTick,\n });\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n };\n return useMutation({mutationFn: mintPerp});\n};\n","import {useMutation, useQueryClient} from '@tanstack/react-query';\nimport {usePerpsOperator} from './usePerpsOperator';\nimport type {ExercisePerpBody} from '~/lib/perpsOperator';\nimport {sleep} from '~/lib/utils';\n\nexport const useClosePerp = () => {\n const queryClient = useQueryClient();\n const {\n operator,\n signMessage: {mutateAsync: signMessage},\n } = usePerpsOperator();\n\n return useMutation({\n mutationFn: async (body: ExercisePerpBody) => {\n if (!operator) throw new Error('Operator not connected');\n if (!operator.auth) await signMessage();\n await operator.exercisePerp(body);\n\n await sleep(200);\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['userOptions']});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n },\n });\n};\n","import type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\nimport {usePerpsOperator} from './usePerpsOperator';\n\nexport const useUserPerps = (\n marketAddr: Address | undefined,\n userAddr: Address | undefined,\n type: 'active' | 'closed' | undefined,\n) => {\n const {operator} = usePerpsOperator();\n\n userAddr = userAddr?.toLowerCase() as Address;\n marketAddr = marketAddr?.toLowerCase() as Address;\n\n return useQuery({\n queryKey: ['userPerps', type, userAddr || '-', marketAddr || '-'],\n queryFn: () => operator?.getUserPerps(userAddr!, marketAddr, type),\n enabled: !!userAddr,\n staleTime: 10000,\n refetchInterval: 10000,\n });\n};\n\nexport const useActiveUserPerps = (\n marketAddr: Address | undefined,\n userAddr: Address | undefined,\n) => {\n return useUserPerps(marketAddr, userAddr, 'active');\n};\n\nexport const useClosedUserPerps = (\n marketAddr: Address | undefined,\n userAddr: Address | undefined,\n) => {\n return useUserPerps(marketAddr, userAddr, 'closed');\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useClient, useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type TokenData = ReturnType<typeof useTokenData>;\n\nexport const useTokenData = (tokenAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n const client = useClient();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getTokenData',\n args: tokenAddr ? [tokenAddr] : undefined,\n query: {enabled: !!tokenAddr && !!client},\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useMemo} from 'react';\nimport {useTokenData} from './useTokenData';\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {erc20Abi} from '~/abis/erc20';\n\nexport const useTokenBalance = (token?: Address, user?: Address) => {\n const {decimals} = useTokenData(token);\n\n const {data: raw, ...rest} = useReadContract({\n address: token,\n abi: erc20Abi,\n functionName: 'balanceOf',\n args: user ? [user] : undefined,\n query: {enabled: !!token && !!user},\n });\n const balance = useMemo(\n () =>\n raw !== undefined && decimals !== undefined\n ? wrapAmount(raw, decimals)\n : undefined,\n [raw, decimals],\n );\n\n return {data: balance, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useReadContract} from 'wagmi';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {useTokenBalance} from '~/hooks/tokens/useTokenBalance';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useOperatorPerms = (\n marketAddr?: Address,\n userAddr?: Address,\n operatorAddr?: Address,\n) => {\n const {payoutAsset} = useMarketData(marketAddr);\n const {data: payoutAssetBalance} = useTokenBalance(payoutAsset, userAddr);\n\n const {data, ...rest} = useReadContract({\n abi: optionsMarketAbi,\n address: marketAddr,\n functionName: 'operatorPerms',\n args: [userAddr!, operatorAddr!],\n query: {\n enabled: !!userAddr && !!operatorAddr,\n refetchInterval: 5000,\n },\n });\n const [canExtend, canExercise, canTransfer, canMint, spendingApproval] =\n data || [];\n\n const min = (a: bigint, b: bigint) => (a < b ? a : b);\n\n const effectiveApproval =\n spendingApproval && payoutAssetBalance\n ? min(spendingApproval, payoutAssetBalance.scaled)\n : 0n;\n\n const d = useMemo(\n () => ({\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n effectiveApproval,\n }),\n [\n canExtend,\n canExercise,\n canTransfer,\n canMint,\n spendingApproval,\n effectiveApproval,\n ],\n );\n return {data: d, ...rest};\n};\n","import {useQuery} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useChainId} from 'wagmi';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {getPriceHistory, type PriceResolution} from '~/lib/price';\n\nexport const usePriceHistory = (\n pool: Address | undefined,\n token: 0 | 1,\n resolution: PriceResolution,\n startTimestamp: Date,\n endTimestamp: Date,\n) => {\n const chainId = useChainId();\n\n return useQuery({\n queryKey: [\n 'priceHistory',\n pool,\n chainId,\n token,\n resolution,\n startTimestamp,\n endTimestamp,\n ],\n queryFn: () =>\n getPriceHistory(pool!, token, resolution, startTimestamp, endTimestamp),\n enabled: !!pool && startTimestamp < endTimestamp,\n staleTime: 60 * 1000, // Consider data stale after 1 minute\n gcTime: 5 * 60 * 1000, // Keep in cache for 5 minutes\n retry: 2,\n });\n};\n\nexport const useMarketPriceHistory = (\n marketAddr: Address | undefined,\n resolution: PriceResolution,\n startTimestamp: Date,\n endTimestamp: Date,\n) => {\n const {pool, optionAssetIsToken0} = useMarketData(marketAddr);\n\n return usePriceHistory(\n pool!,\n optionAssetIsToken0 ? 0 : 1,\n resolution,\n startTimestamp,\n endTimestamp,\n );\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {getPoolId} from '~/lib/utils';\n\nexport const usePoolVolume = (\n poolManager: Address | undefined,\n poolKey: PoolKey | undefined,\n) => {\n const {uniV4GraphqlClient} = useTimelockConfig();\n\n const poolId = useMemo(\n () => (poolKey ? getPoolId(poolKey) : undefined),\n [poolKey],\n );\n\n return useQuery({\n queryKey: [\n 'poolVolume',\n poolId?.toLowerCase() || '--',\n poolManager?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n const result = await uniV4GraphqlClient!.GetPoolVolume({\n poolId: poolId!,\n });\n return {\n ...result.Pool[0],\n volume0: BigInt(result.Pool[0].volume0),\n volume1: BigInt(result.Pool[0].volume1),\n fees0: BigInt(result.Pool[0].fees0),\n fees1: BigInt(result.Pool[0].fees1),\n txCount: BigInt(result.Pool[0].txCount),\n swapCount: BigInt(result.Pool[0].swapCount),\n modifyLiquidityCount: BigInt(result.Pool[0].modifyLiquidityCount),\n positionCount: BigInt(result.Pool[0].positionCount),\n };\n },\n enabled: !!poolId && !!uniV4GraphqlClient,\n });\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {useQuery} from '@tanstack/react-query';\n\nimport {useTimelockConfig} from '~/providers/TimelockProvider';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {getPoolId} from '~/lib/utils';\n\nexport const usePoolUserVolume = (\n poolManager: Address | undefined,\n poolKey: PoolKey | undefined,\n userAddr: Address | undefined,\n) => {\n const {uniV4GraphqlClient} = useTimelockConfig();\n\n const poolId = useMemo(\n () => (poolKey ? getPoolId(poolKey) : undefined),\n [poolKey],\n );\n\n return useQuery({\n queryKey: [\n 'poolUserVolume',\n poolManager?.toLowerCase() || '--',\n poolId?.toLowerCase() || '--',\n userAddr?.toLowerCase() || '--',\n ],\n queryFn: async () => {\n const result = await uniV4GraphqlClient!.GetPoolUserVolume({\n poolId: poolId!,\n userAddr: userAddr!,\n });\n return {\n address: result.PoolUser[0].address as Address,\n volume0: BigInt(result.PoolUser[0].volume0),\n volume1: BigInt(result.PoolUser[0].volume1),\n fees0: BigInt(result.PoolUser[0].fees0),\n fees1: BigInt(result.PoolUser[0].fees1),\n swapCount: BigInt(result.PoolUser[0].swapCount),\n };\n },\n enabled: !!poolId && !!userAddr && !!uniV4GraphqlClient,\n });\n};\n","import type {Address, Hex} from 'viem';\nimport {useSimulateContract} from 'wagmi';\nimport type {PoolKey} from '~/lib/liquidityUtils';\nimport {useLens} from '../useLens';\nimport {quoterAbi} from '~/abis/quoterV4';\n\nexport type QuoteExactSingleParams = {\n poolKey: PoolKey;\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData: Hex;\n};\n\nexport type PathKey = {\n intermediateCurrency: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n hookData: Hex;\n};\n\nexport type QuoteExactParams = {\n exactCurrency: Address;\n path: PathKey[];\n exactAmount: bigint;\n};\n\nexport type UseQuoteOptions = {\n enabled?: boolean;\n};\n\ntype QuoteResult = {\n quotedAmount: bigint;\n gasEstimate: bigint;\n};\n\nconst selectQuoteResult = (data: {\n result: readonly [bigint, bigint];\n}): QuoteResult => ({\n quotedAmount: data.result[0],\n gasEstimate: data.result[1],\n});\n\n/**\n * Hook to get a quote for an exact input single-hop swap\n */\nexport const useQuoteExactInputSingle = (\n poolManager: Address | undefined,\n params: QuoteExactSingleParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactInputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Hook to get a quote for an exact output single-hop swap\n */\nexport const useQuoteExactOutputSingle = (\n poolManager: Address | undefined,\n params: QuoteExactSingleParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Hook to get a quote for an exact input multi-hop swap\n */\nexport const useQuoteExactInput = (\n poolManager: Address | undefined,\n params: QuoteExactParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactInput',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Hook to get a quote for an exact output multi-hop swap\n */\nexport const useQuoteExactOutput = (\n poolManager: Address | undefined,\n params: QuoteExactParams | undefined,\n options: UseQuoteOptions = {},\n) => {\n const {quoter} = useLens();\n const {enabled = true} = options;\n\n return useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactOutput',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: enabled && !!quoter?.address && !!poolManager && !!params,\n select: selectQuoteResult,\n },\n });\n};\n\n/**\n * Convenience hook for simple single-hop swaps\n * Automatically builds the params from common inputs\n */\nexport const useQuote = (\n poolManager: Address | undefined,\n poolKey: PoolKey | undefined,\n {\n exactAmount,\n zeroForOne,\n exactInput = true,\n hookData = '0x' as Hex,\n enabled = true,\n }: {\n exactAmount: bigint | undefined;\n zeroForOne: boolean;\n exactInput?: boolean;\n hookData?: Hex;\n enabled?: boolean;\n },\n) => {\n const {quoter} = useLens();\n\n const params =\n poolKey && exactAmount !== undefined\n ? {\n poolKey,\n zeroForOne,\n exactAmount,\n hookData,\n }\n : undefined;\n\n const isEnabled = enabled && !!quoter?.address && !!poolManager && !!params;\n\n const inputResult = useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactInputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: isEnabled && exactInput,\n select: selectQuoteResult,\n },\n });\n\n const outputResult = useSimulateContract({\n address: quoter?.address,\n abi: quoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: poolManager && params ? [poolManager, params] : undefined,\n query: {\n enabled: isEnabled && !exactInput,\n select: selectQuoteResult,\n },\n });\n\n return exactInput ? inputResult : outputResult;\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {lensAbi} from '~/abis/lens';\nimport {useLens} from '../useLens';\n\nexport const useVaultData = (vaultAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getVaultData',\n args: vaultAddr ? [vaultAddr] : undefined,\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import {type Address, encodeFunctionData, maxUint256, minInt256} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useWaitForTransactionReceipt, useClient} from 'wagmi';\n\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {useVaultData} from './useVaultData';\nimport {useLens} from '../useLens';\n\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\ninterface BurnPosition {\n tickLower: number;\n tickUpper: number;\n liquidity: bigint;\n}\n\nexport const useBurnLiquidity = (vaultAddr: Address | undefined) => {\n const client = useClient();\n const {timelockLens} = useLens();\n const {poolManager, poolKey} = useVaultData(vaultAddr);\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n\n const {\n mutateAsync: writeContractAsync,\n data: hash,\n isPending,\n error,\n } = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const burn = async (\n tickLower: number,\n tickUpper: number,\n liquidity: bigint,\n ) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (!vaultAddr || !timelockLens) {\n throw new Error('Vault/lens not available');\n }\n const refTick = await timelockLens.read.getRefTick([vaultAddr, tickLower]);\n\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'burn',\n args: [\n tickLower,\n tickUpper,\n liquidity,\n refTick,\n minInt256,\n minInt256,\n maxUint256,\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n\n const burnMultiple = async (positions: BurnPosition[]) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (!currentTick) {\n throw new Error('Current tick not available');\n }\n if (positions.length === 0) {\n throw new Error('No positions to burn');\n }\n if (!timelockLens || !vaultAddr) {\n throw new Error('Vault/lens not available');\n }\n if (positions.length === 1) {\n await burn(\n positions[0].tickLower,\n positions[0].tickUpper,\n positions[0].liquidity,\n );\n } else {\n const refTick = await timelockLens.read.getRefTick([\n vaultAddr,\n Math.min(...positions.map(p => p.tickLower)),\n ]);\n const multicallData = positions.map(p =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'burn',\n args: [\n p.tickLower,\n p.tickUpper,\n p.liquidity,\n refTick,\n minInt256,\n minInt256,\n maxUint256,\n ],\n }),\n );\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'multicall',\n args: [multicallData],\n });\n await waitForTransactionReceipt(client, {hash});\n }\n };\n\n return {\n burnMultiple,\n burn,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\n };\n};\n","import {zeroAddress, type Address} from 'viem';\nimport {useReadContract} from 'wagmi';\n\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type LiquidityBlockData = ReturnType<\n typeof useLiquidityBlocks\n>['data'][0];\n\nexport const useLiquidityBlocks = (vaultAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data: blocks = [], ...rest} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getAllBlocks',\n args: [vaultAddr || zeroAddress],\n query: {enabled: !!vaultAddr},\n });\n return {data: blocks, ...rest};\n};\n","import {encodeFunctionData, maxInt256, maxUint256, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {useWriteContract, useClient} from 'wagmi';\nimport {useMutation, useQueryClient} from '@tanstack/react-query';\n\nimport {useVaultData} from './useVaultData';\nimport {useCurrentTick} from '~/hooks/pool/useCurrentTick';\nimport {usePoolData} from '~/hooks/pool/usePoolData';\nimport {useApproval} from '~/hooks/tokens/useApproval';\nimport {useLens} from '~/hooks/useLens';\n\nimport {getAmountsFromLiquidity} from '~/lib/liquidityUtils';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const batchGetAmountsFromLiquidity = (\n tickLowers: number[],\n tickUppers: number[],\n liquidities: bigint[],\n currentTick: number,\n) => {\n let totalAmount0 = 0n;\n let totalAmount1 = 0n;\n\n const amounts0: bigint[] = [];\n const amounts1: bigint[] = [];\n\n for (const [i, tickLower] of tickLowers.entries()) {\n const [amount0, amount1] = getAmountsFromLiquidity(\n tickLower,\n tickUppers[i],\n liquidities[i],\n currentTick,\n );\n totalAmount0 += amount0;\n totalAmount1 += amount1;\n amounts0.push(amount0);\n amounts1.push(amount1);\n }\n return {totalAmount0, totalAmount1, amounts0, amounts1};\n};\n\ninterface MintPositionParams {\n tickLower: number;\n tickUpper: number;\n liquidity: bigint;\n}\n\nexport const useMintLiquidity = (vaultAddr: Address | undefined) => {\n const queryClient = useQueryClient();\n const client = useClient();\n const {poolManager, poolKey} = useVaultData(vaultAddr);\n const {timelockLens} = useLens();\n\n const {data: {currentTick} = {}} = useCurrentTick(poolManager, poolKey);\n const {token0, token1} = usePoolData(poolManager, poolKey);\n\n const {askForApproval} = useApproval();\n const {mutateAsync: writeContractAsync} = useWriteContract();\n\n const processApproval = async (params: MintPositionParams[]) => {\n if (currentTick === undefined || !token0 || !token1 || !vaultAddr) {\n throw new Error('Current tick not available');\n }\n const {totalAmount0, totalAmount1} = batchGetAmountsFromLiquidity(\n params.map(p => p.tickLower),\n params.map(p => p.tickUpper),\n params.map(p => p.liquidity),\n currentTick,\n );\n await askForApproval(token0, vaultAddr, totalAmount0);\n await askForApproval(token1, vaultAddr, totalAmount1);\n };\n\n return useMutation({\n mutationFn: async (params: MintPositionParams | MintPositionParams[]) => {\n if (!client) {\n throw new Error('Wallet not connected');\n }\n if (currentTick === undefined) {\n throw new Error('Current tick not available');\n }\n if (!timelockLens || !vaultAddr) {\n throw new Error('Vault/lens not available');\n }\n if (!Array.isArray(params)) {\n params = [params];\n }\n if (params.length === 0) {\n throw new Error('No positions to mint');\n }\n await processApproval(params);\n\n const refTicks = await timelockLens.read.batchGetRefTick([\n vaultAddr,\n params.map(position => position.tickLower),\n ]);\n const multicallData = params.map((p, i) =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'mint',\n args: [\n p.tickLower,\n p.tickUpper,\n p.liquidity,\n refTicks[i],\n maxInt256,\n maxInt256,\n maxUint256,\n ],\n }),\n );\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'multicall',\n args: [multicallData],\n });\n await waitForTransactionReceipt(client, {hash});\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n },\n });\n};\n","import {useReadContract} from 'wagmi';\nimport type {Address} from 'viem';\n\nimport {useLens} from '../useLens';\nimport {useVaultData} from './useVaultData';\nimport {usePoolData} from '../pool/usePoolData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {lensAbi} from '~/abis/lens';\nimport {useMemo} from 'react';\n\nexport const useVaultTVL = (vaultAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {poolManager, poolKey} = useVaultData(vaultAddr);\n const {token0Decimals, token1Decimals} = usePoolData(poolManager, poolKey);\n\n const {data, refetch} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getVaultTVL',\n args: [vaultAddr!],\n query: {enabled: !!vaultAddr && !!timelockLens},\n });\n\n return useMemo(() => {\n if (!token0Decimals || !token1Decimals || !data) return {};\n\n const total0 = wrapAmount(data[0], token0Decimals);\n const total1 = wrapAmount(data[1], token1Decimals);\n const borrowed0 = wrapAmount(data[2], token0Decimals);\n const borrowed1 = wrapAmount(data[3], token1Decimals);\n const tvlAs0 = wrapAmount(data[4], token0Decimals);\n const tvlAs1 = wrapAmount(data[5], token1Decimals);\n const blocksCount = data[6];\n\n return {\n tvlAs0,\n tvlAs1,\n total0,\n total1,\n borrowed0,\n borrowed1,\n blocksCount,\n refetch,\n };\n }, [data, token0Decimals, token1Decimals, refetch]);\n};\n","import {zeroAddress, type Address} from 'viem';\nimport {useWriteContract} from 'wagmi';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const useWithdrawPremium = (vaultAddr: Address | undefined) => {\n const {mutateAsync, ...rest} = useWriteContract();\n\n const withdrawPremium = (\n assets: Address[],\n amounts: bigint[],\n recipient: Address,\n ) => {\n if (!vaultAddr) {\n throw new Error('Vault address not provided');\n }\n if (!assets.length || !amounts.length || assets.length !== amounts.length) {\n throw new Error('Invalid assets or amounts');\n }\n if (recipient === zeroAddress) {\n throw new Error('Invalid recipient address');\n }\n return mutateAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'withdrawTokens',\n args: [assets, amounts, recipient],\n });\n };\n return {withdrawPremium, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useTokenBalance} from '../tokens/useTokenBalance';\n\nexport const useCollectedPremium = (\n vault: Address | undefined,\n payoutAsset: Address | undefined,\n) => {\n return useTokenBalance(payoutAsset, vault);\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useGlobalGuardianState = (guardianAddr?: Address) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getGlobalGuardianState',\n args: guardianAddr ? [guardianAddr] : undefined,\n });\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {guardianAbi} from '~/abis/guardian';\n\nexport const useMarketGuardianState = (\n guardianAddr?: Address,\n marketAddr?: Address,\n) => {\n return useReadContract({\n address: guardianAddr,\n abi: guardianAbi,\n functionName: 'marketTradingPaused',\n args: marketAddr ? [marketAddr] : undefined,\n query: {\n select: data => ({paused: data[0], updatedAt: data[1]}),\n },\n });\n};\n","import type {Address} from 'viem';\nimport {usePublicClient, useWriteContract} from 'wagmi';\nimport {useGlobalGuardianState} from './useGlobalGuardianState';\nimport {guardianAbi} from '~/abis/guardian';\n\nexport const usePauseAllMarkets = (guardianAddr: Address | undefined) => {\n const {data: {globalBurnPaused, globalMintPaused} = {}, refetch} =\n useGlobalGuardianState(guardianAddr);\n\n const publicClient = usePublicClient();\n const {mutateAsync, ...rest} = useWriteContract();\n\n const pauseAllMarkets = async (paused: boolean) => {\n if (!guardianAddr) {\n throw new Error('Could not load guardian address');\n }\n if (!globalMintPaused || !globalBurnPaused) {\n throw new Error('Could not load global mint or burn paused state');\n }\n if (!publicClient) {\n throw new Error('Could not load public client');\n }\n const hash = await mutateAsync({\n address: guardianAddr,\n abi: guardianAbi,\n functionName: 'pauseGlobal',\n args: [globalMintPaused.paused, globalBurnPaused.paused, paused],\n });\n await publicClient.waitForTransactionReceipt({hash});\n void refetch();\n\n return hash;\n };\n return {pauseAllMarkets, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useWriteContract} from 'wagmi';\nimport {useMarketData} from '~/hooks/market/useMarketData';\nimport {guardianAbi} from '~/abis/guardian';\n\nexport const usePauseMarket = (marketAddr: Address | undefined) => {\n const {guardian} = useMarketData(marketAddr);\n const {mutateAsync, ...rest} = useWriteContract();\n\n const pauseMarket = async (paused: boolean) => {\n if (!marketAddr) {\n throw new Error('Market address is required');\n }\n if (!guardian) {\n throw new Error('Could not load guardian address');\n }\n return await mutateAsync({\n address: guardian,\n abi: guardianAbi,\n functionName: 'pauseMarket',\n args: [marketAddr, paused],\n });\n };\n return {pauseMarket, ...rest};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useFeeRates = (feeStrategy?: Address) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n args: feeStrategy ? [feeStrategy] : undefined,\n functionName: 'getFeeRates',\n });\n};\n","import {type Address, decodeEventLog} from 'viem';\nimport {useChainId, useWriteContract, usePublicClient} from 'wagmi';\nimport {useQueryClient} from '@tanstack/react-query';\nimport {useMarketState} from '~/hooks/market/useMarketState';\nimport {useFeeRates} from './useFeeRates';\nimport {timelockFactories} from '~/lib/contracts';\nimport {factoryAbi} from '~/abis/factory';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useUpdateMarketFees = (marketAddr: Address) => {\n const {mutateAsync: writeContractAsync, ...rest} = useWriteContract();\n const queryClient = useQueryClient();\n const publicClient = usePublicClient();\n const chainId = useChainId();\n\n const {\n data: {feeStrategy, optionPricing, priceFeed} = {},\n error: stateError,\n } = useMarketState(marketAddr);\n\n const {\n data: {\n openingFeeRate,\n extensionFeeRate,\n minOpeningFee,\n minExtensionFee,\n feeRecipient,\n } = {},\n } = useFeeRates(feeStrategy);\n\n const updateMarketFees = async (rates: {\n openingFeeRate?: number;\n extensionFeeRate?: number;\n minOpeningFee?: bigint;\n minExtensionFee?: bigint;\n feeRecipient?: Address;\n }) => {\n if (\n openingFeeRate === undefined ||\n extensionFeeRate === undefined ||\n minOpeningFee === undefined ||\n minExtensionFee === undefined ||\n feeRecipient === undefined\n ) {\n throw new Error('Missing current fee rates');\n }\n if (!optionPricing || !priceFeed) {\n throw new Error('Market state not available: ' + stateError?.message);\n }\n if (!publicClient) {\n throw new Error('Public client not available');\n }\n const factoryAddr = timelockFactories[chainId].toLowerCase() as Address;\n\n const hash = await writeContractAsync({\n address: factoryAddr,\n abi: factoryAbi,\n functionName: 'deployFeeStrategy',\n args: [\n rates.openingFeeRate ?? openingFeeRate,\n rates.extensionFeeRate ?? extensionFeeRate,\n rates.minOpeningFee ?? minOpeningFee,\n rates.minExtensionFee ?? minExtensionFee,\n rates.feeRecipient ?? feeRecipient,\n ],\n });\n const receipt = await publicClient.waitForTransactionReceipt({hash});\n\n const deployEvent = receipt.logs.find(\n log => log.address.toLowerCase() === factoryAddr,\n );\n if (!deployEvent) {\n throw new Error('DeployFeeStrategy event not found');\n }\n\n const decodedEvent = decodeEventLog({\n abi: factoryAbi,\n data: deployEvent.data,\n topics: deployEvent.topics,\n });\n if (decodedEvent.eventName !== 'DeployFeeStrategy') {\n throw new Error('Unexpected event');\n }\n const newFeeStrategy = decodedEvent.args.feeStrategy;\n\n const hash2 = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'updateAddresses',\n args: [optionPricing, newFeeStrategy, priceFeed],\n });\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n return {deployHash: hash, updateHash: hash2, newFeeStrategy};\n };\n\n return {updateMarketFees, ...rest};\n};\n","import {type Address, decodeAbiParameters, type Hex} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type StaticPricingParams = {\n model: 'static';\n openingRate: number;\n dailyFundingRate: number;\n minOpeningAmount: bigint;\n minFundingAmount: bigint;\n};\n\nexport type OptionPricingParams = {\n model: 'bsm';\n logicContract: Address;\n iv: number;\n riskFreeRate: number;\n minPremiumDailyRate: number;\n minPremiumAmount: bigint;\n};\nexport type PricingParams = StaticPricingParams | OptionPricingParams;\n\nexport const usePricingParams = (pricingAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n return useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getPricingParams',\n args: pricingAddr ? [pricingAddr] : undefined,\n query: {\n select: ([pricingModel, rawData]): PricingParams => {\n if (pricingModel === 0) {\n // OptionPricing: (uint8, address, uint32, uint32, uint32, uint256)\n const [\n logicContract,\n iv,\n riskFreeRate,\n minPremiumDailyRate,\n minPremiumAmount,\n ] = decodeAbiParameters(\n [\n {name: 'logicContract', type: 'address'},\n {name: 'iv', type: 'uint32'},\n {name: 'riskFreeRate', type: 'uint32'},\n {name: 'minPremiumDailyRate', type: 'uint32'},\n {name: 'minPremiumAmount', type: 'uint256'},\n ],\n rawData as Hex,\n );\n\n return {\n model: 'bsm',\n logicContract,\n iv,\n riskFreeRate,\n minPremiumDailyRate,\n minPremiumAmount,\n };\n } else if (pricingModel === 1) {\n const [\n openingRate,\n dailyFundingRate,\n minOpeningAmount,\n minFundingAmount,\n ] = decodeAbiParameters(\n [\n {name: 'openingRate', type: 'uint32'},\n {name: 'dailyFundingRate', type: 'uint32'},\n {name: 'minOpeningAmount', type: 'uint128'},\n {name: 'minFundingAmount', type: 'uint128'},\n ],\n rawData as Hex,\n );\n return {\n model: 'static',\n openingRate,\n dailyFundingRate,\n minOpeningAmount,\n minFundingAmount,\n };\n }\n throw new Error('Unknown pricing model');\n },\n },\n });\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useOptionPricingParams = (pricingAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n args: pricingAddr ? [pricingAddr] : undefined,\n functionName: 'getOptionPricingParams',\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import type {NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {useLens} from '~/hooks/useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useStaticPricingParams = (pricingAddr: Address | undefined) => {\n const {timelockLens} = useLens();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n args: pricingAddr ? [pricingAddr] : undefined,\n functionName: 'getStaticPricingParams',\n });\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import {type Address, decodeEventLog} from 'viem';\nimport {useChainId, useWriteContract, usePublicClient} from 'wagmi';\nimport {useQueryClient} from '@tanstack/react-query';\nimport {useMarketState} from '~/hooks/market/useMarketState';\nimport {\n usePricingParams,\n type OptionPricingParams,\n type StaticPricingParams,\n} from './usePricingParams';\nimport {timelockFactories} from '~/lib/contracts';\nimport {factoryAbi} from '~/abis/factory';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useUpdateMarketPricing = (marketAddr: Address | undefined) => {\n const {mutateAsync: writeContractAsync, ...rest} = useWriteContract();\n const queryClient = useQueryClient();\n const publicClient = usePublicClient();\n const chainId = useChainId();\n\n const {\n data: {feeStrategy, optionPricing, priceFeed} = {},\n error: stateError,\n } = useMarketState(marketAddr);\n\n const {data: pricingData, error: pricingError} =\n usePricingParams(optionPricing);\n\n const updateMarketPricing = async <T extends 'static' | 'bsm'>(\n data: T extends 'static'\n ? Partial<StaticPricingParams> & {model: 'static'}\n : Partial<OptionPricingParams> & {model: 'bsm'},\n ) => {\n if (!marketAddr) {\n throw new Error('Market address not found');\n }\n if (!pricingData) {\n throw new Error(\n 'Market pricing data not available: ' + pricingError?.message,\n );\n }\n if (!publicClient) {\n throw new Error('Public client not available');\n }\n if (!feeStrategy || !priceFeed) {\n throw new Error('Market state not available: ' + stateError?.message);\n }\n const factoryAddr = timelockFactories[chainId].toLowerCase() as Address;\n\n if (data.model === 'static' && pricingData.model === 'static') {\n data.openingRate ??= pricingData.openingRate;\n data.dailyFundingRate ??= pricingData.dailyFundingRate;\n data.minOpeningAmount ??= pricingData.minOpeningAmount;\n data.minFundingAmount ??= pricingData.minFundingAmount;\n }\n if (data.model === 'bsm' && pricingData.model === 'bsm') {\n data.logicContract ??= pricingData.logicContract;\n data.iv ??= pricingData.iv;\n data.riskFreeRate ??= pricingData.riskFreeRate;\n data.minPremiumDailyRate ??= pricingData.minPremiumDailyRate;\n data.minPremiumAmount ??= pricingData.minPremiumAmount;\n }\n if (data.model !== pricingData.model) {\n if (data.model === 'static') {\n if (data.openingRate === undefined) {\n throw new Error(\n 'openingRate is required when switching to static model',\n );\n }\n if (data.dailyFundingRate === undefined) {\n throw new Error(\n 'dailyFundingRate is required when switching to static model',\n );\n }\n if (data.minOpeningAmount === undefined) {\n throw new Error(\n 'minOpeningAmount is required when switching to static model',\n );\n }\n if (data.minFundingAmount === undefined) {\n throw new Error(\n 'minFundingAmount is required when switching to static model',\n );\n }\n } else {\n if (data.logicContract === undefined) {\n throw new Error(\n 'logicContract is required when switching to option model',\n );\n }\n if (data.iv === undefined) {\n throw new Error('iv is required when switching to option model');\n }\n if (data.riskFreeRate === undefined) {\n throw new Error(\n 'riskFreeRate is required when switching to option model',\n );\n }\n if (data.minPremiumDailyRate === undefined) {\n throw new Error(\n 'minPremiumDailyRate is required when switching to option model',\n );\n }\n if (data.minPremiumAmount === undefined) {\n throw new Error(\n 'minPremiumAmount is required when switching to option model',\n );\n }\n }\n }\n\n const hash =\n data.model === 'static'\n ? await writeContractAsync({\n address: factoryAddr,\n abi: factoryAbi,\n functionName: 'deployStaticPerpsPricing',\n args: [\n data.openingRate!,\n data.dailyFundingRate!,\n data.minOpeningAmount!,\n data.minFundingAmount!,\n ],\n })\n : await writeContractAsync({\n address: factoryAddr,\n abi: factoryAbi,\n functionName: 'deployOptionPricing',\n args: [\n data.logicContract!,\n data.iv!,\n data.riskFreeRate!,\n data.minPremiumDailyRate!,\n data.minPremiumAmount!,\n ],\n });\n const receipt = await publicClient.waitForTransactionReceipt({hash});\n\n const deployEvent = receipt.logs.find(\n log => log.address.toLowerCase() === factoryAddr,\n );\n if (!deployEvent) {\n throw new Error('DeployFeeStrategy event not found');\n }\n\n const decodedEvent = decodeEventLog({\n abi: factoryAbi,\n data: deployEvent.data,\n topics: deployEvent.topics,\n });\n\n if (\n decodedEvent.eventName !== 'DeployStaticPerpsPricing' &&\n decodedEvent.eventName !== 'DeployOptionPricing'\n ) {\n throw new Error('Unexpected event');\n }\n const pricingAddr = decodedEvent.args.pricing;\n\n const hash2 = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'updateAddresses',\n args: [pricingAddr, feeStrategy, priceFeed],\n });\n void queryClient.invalidateQueries({queryKey: ['readContract']});\n return {deployHash: hash, updateHash: hash2, newPricingAddr: pricingAddr};\n };\n\n return {updateMarketPricing, ...rest};\n};\n"],"mappings":"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"}
|