timelock-sdk 0.0.21 → 0.0.22
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 +4 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +111 -111
- package/dist/client.d.ts +111 -111
- package/dist/client.js +4 -1
- package/dist/client.js.map +1 -1
- package/dist/{index-B7b3c8cu.d.cts → index-Dej2kIqj.d.cts} +96 -96
- package/dist/{index-CRhFaRiq.d.ts → index-v8akdN5J.d.ts} +9 -9
- package/dist/package.d.cts +1 -1
- package/dist/package.d.ts +1 -1
- package/package.json +1 -1
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["defaultWrapper: SdkFunctionWrapper","data","hash","hash","displayPnl","hash","amounts0: bigint[]","amounts1: bigint[]","hash"],"sources":["../src/generated/graphql.ts","../src/providers/TimelockMarketProvider.tsx","../src/hooks/market/useMarketData.ts","../src/hooks/market/useExerciseOption.ts","../src/hooks/useLens.ts","../src/hooks/market/useMaxPositionSize.ts","../src/hooks/pool/usePoolData.ts","../src/hooks/pool/useCurrentTick.ts","../src/hooks/market/useMintOption.ts","../src/hooks/market/useOptionPnl.ts","../src/hooks/market/useOptionPremium.ts","../src/hooks/market/useUserOptions.ts","../src/hooks/pool/usePriceAtTick.ts","../src/hooks/pool/useCurrentPrice.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"],"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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: 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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: 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['numeric']['output']>;\n /** An object relationship */\n option?: Maybe<UserOption>;\n option_id: Scalars['String']['output'];\n owner: Scalars['String']['output'];\n payout: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventAggregateOrderBy = {\n avg?: InputMaybe<ExerciseOptionEventAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<ExerciseOptionEventMaxOrderBy>;\n min?: InputMaybe<ExerciseOptionEventMinOrderBy>;\n stddev?: InputMaybe<ExerciseOptionEventStddevOrderBy>;\n stddev_pop?: InputMaybe<ExerciseOptionEventStddevPopOrderBy>;\n stddev_samp?: InputMaybe<ExerciseOptionEventStddevSampOrderBy>;\n sum?: InputMaybe<ExerciseOptionEventSumOrderBy>;\n var_pop?: InputMaybe<ExerciseOptionEventVarPopOrderBy>;\n var_samp?: InputMaybe<ExerciseOptionEventVarSampOrderBy>;\n variance?: InputMaybe<ExerciseOptionEventVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventAvgOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\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<NumericArrayComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n owner?: InputMaybe<StringComparisonExp>;\n payout?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventMaxOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option_id?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventMinOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option_id?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\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 owner?: 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 | 'owner'\n /** column name */\n | 'payout'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** order by stddev() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStddevOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStddevPopOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStddevSampOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\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['numeric']['input']>>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n owner?: 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/** order by sum() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventSumOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventVarPopOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventVarSampOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventVarianceOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\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 \"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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"MintOptionEvent\" */\nexport type MintOptionEvent = {\n __typename: 'MintOptionEvent';\n blockNumber: Scalars['numeric']['output'];\n buyer: Scalars['String']['output'];\n currentTick: Scalars['Int']['output'];\n expiresAt: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidities: Array<Scalars['numeric']['output']>;\n optionType: Scalars['Int']['output'];\n strikeTick: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n totalPremium: 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 buyer?: InputMaybe<StringComparisonExp>;\n currentTick?: InputMaybe<IntComparisonExp>;\n expiresAt?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidities?: InputMaybe<NumericArrayComparisonExp>;\n optionType?: InputMaybe<IntComparisonExp>;\n strikeTick?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MintOptionEvent\". */\nexport type MintOptionEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n buyer?: InputMaybe<OrderBy>;\n currentTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n totalPremium?: 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 | 'buyer'\n /** column name */\n | 'currentTick'\n /** column name */\n | 'expiresAt'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidities'\n /** column name */\n | 'optionType'\n /** column name */\n | 'strikeTick'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'totalPremium'\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 buyer?: InputMaybe<Scalars['String']['input']>;\n currentTick?: InputMaybe<Scalars['Int']['input']>;\n expiresAt?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidities?: InputMaybe<Array<Scalars['numeric']['input']>>;\n optionType?: InputMaybe<Scalars['Int']['input']>;\n strikeTick?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: 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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: InputMaybe<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 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 pool: Scalars['String']['output'];\n tickSpacing: Scalars['Int']['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 id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An array relationship */\n options: Array<UserOption>;\n optionsCount: Scalars['numeric']['output'];\n userAddr: Scalars['String']['output'];\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};\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 id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n options?: InputMaybe<UserOptionBoolExp>;\n optionsCount?: InputMaybe<NumericComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TimelockMarketUser\". */\nexport type TimelockMarketUserOrderBy = {\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n options_aggregate?: InputMaybe<UserOptionAggregateOrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSelectColumn =\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'optionsCount'\n /** column name */\n | 'userAddr';\n\n/** order by stddev() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevSampOrderBy = {\n optionsCount?: 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 id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n optionsCount?: InputMaybe<Scalars['numeric']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSumOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarSampOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarianceOrderBy = {\n optionsCount?: 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 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 pool?: InputMaybe<StringComparisonExp>;\n tickSpacing?: InputMaybe<IntComparisonExp>;\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 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 pool?: InputMaybe<OrderBy>;\n tickSpacing?: 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 | '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 | 'pool'\n /** column name */\n | 'tickSpacing'\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 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 pool?: InputMaybe<Scalars['String']['input']>;\n tickSpacing?: InputMaybe<Scalars['Int']['input']>;\n tradersCount?: InputMaybe<Scalars['numeric']['input']>;\n vault?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"UserOption\" */\nexport type UserOption = {\n __typename: 'UserOption';\n createdAt: Scalars['Int']['output'];\n entryPrice: Scalars['numeric']['output'];\n entryTick: Scalars['Int']['output'];\n /** An array relationship */\n exerciseEvents: Array<ExerciseOptionEvent>;\n expiresAt: Scalars['Int']['output'];\n fullyExercised: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n liquiditiesAtOpen: Array<Scalars['numeric']['output']>;\n liquiditiesCurrent: Array<Scalars['numeric']['output']>;\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n marketAddr: Scalars['String']['output'];\n market_id: Scalars['String']['output'];\n /** An object relationship */\n mintEvent?: Maybe<MintOptionEvent>;\n mintEvent_id: Scalars['String']['output'];\n optionType: Scalars['optiontype']['output'];\n /** An object relationship */\n owner?: Maybe<TimelockMarketUser>;\n ownerAddr: Scalars['String']['output'];\n owner_id: Scalars['String']['output'];\n positionSizeAtOpen: Scalars['numeric']['output'];\n positionSizeCurrent: Scalars['numeric']['output'];\n premiumPaid: Scalars['numeric']['output'];\n realizedPayout: Scalars['numeric']['output'];\n strikePrice: Scalars['numeric']['output'];\n strikeTick: Scalars['Int']['output'];\n};\n\n/** columns and relationships of \"UserOption\" */\nexport type UserOptionExerciseEventsArgs = {\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\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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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<IntComparisonExp>;\n entryPrice?: InputMaybe<NumericComparisonExp>;\n entryTick?: InputMaybe<IntComparisonExp>;\n exerciseEvents?: InputMaybe<ExerciseOptionEventBoolExp>;\n expiresAt?: InputMaybe<IntComparisonExp>;\n fullyExercised?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquiditiesAtOpen?: InputMaybe<NumericArrayComparisonExp>;\n liquiditiesCurrent?: InputMaybe<NumericArrayComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n marketAddr?: InputMaybe<StringComparisonExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n mintEvent?: InputMaybe<MintOptionEventBoolExp>;\n mintEvent_id?: InputMaybe<StringComparisonExp>;\n optionType?: InputMaybe<OptiontypeComparisonExp>;\n owner?: InputMaybe<TimelockMarketUserBoolExp>;\n ownerAddr?: InputMaybe<StringComparisonExp>;\n owner_id?: InputMaybe<StringComparisonExp>;\n positionSizeAtOpen?: InputMaybe<NumericComparisonExp>;\n positionSizeCurrent?: InputMaybe<NumericComparisonExp>;\n premiumPaid?: InputMaybe<NumericComparisonExp>;\n realizedPayout?: InputMaybe<NumericComparisonExp>;\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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n marketAddr?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n mintEvent_id?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n ownerAddr?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n marketAddr?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n mintEvent_id?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n ownerAddr?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n exerciseEvents_aggregate?: InputMaybe<ExerciseOptionEventAggregateOrderBy>;\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 marketAddr?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n mintEvent?: InputMaybe<MintOptionEventOrderBy>;\n mintEvent_id?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner?: InputMaybe<TimelockMarketUserOrderBy>;\n ownerAddr?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 | 'entryTick'\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 | 'marketAddr'\n /** column name */\n | 'market_id'\n /** column name */\n | 'mintEvent_id'\n /** column name */\n | 'optionType'\n /** column name */\n | 'ownerAddr'\n /** column name */\n | 'owner_id'\n /** column name */\n | 'positionSizeAtOpen'\n /** column name */\n | 'positionSizeCurrent'\n /** column name */\n | 'premiumPaid'\n /** column name */\n | 'realizedPayout'\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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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['Int']['input']>;\n entryPrice?: InputMaybe<Scalars['numeric']['input']>;\n entryTick?: InputMaybe<Scalars['Int']['input']>;\n expiresAt?: InputMaybe<Scalars['Int']['input']>;\n fullyExercised?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquiditiesAtOpen?: InputMaybe<Array<Scalars['numeric']['input']>>;\n liquiditiesCurrent?: InputMaybe<Array<Scalars['numeric']['input']>>;\n marketAddr?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n mintEvent_id?: InputMaybe<Scalars['String']['input']>;\n optionType?: InputMaybe<Scalars['optiontype']['input']>;\n ownerAddr?: InputMaybe<Scalars['String']['input']>;\n owner_id?: InputMaybe<Scalars['String']['input']>;\n positionSizeAtOpen?: InputMaybe<Scalars['numeric']['input']>;\n positionSizeCurrent?: InputMaybe<Scalars['numeric']['input']>;\n premiumPaid?: InputMaybe<Scalars['numeric']['input']>;\n realizedPayout?: InputMaybe<Scalars['numeric']['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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 NumericArrayComparisonExp = {\n /** is the array contained in the given array value */\n _contained_in?: InputMaybe<Array<Scalars['numeric']['input']>>;\n /** does the array contain the given value */\n _contains?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _eq?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _gt?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _gte?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _in?: InputMaybe<Array<Array<Scalars['numeric']['input']>>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _lte?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _neq?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _nin?: InputMaybe<Array<Array<Scalars['numeric']['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: \"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: \"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 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 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: \"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: \"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 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 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 GetActiveUserOptionsQueryVariables = Exact<{\n user: Scalars['String']['input'];\n}>;\n\nexport type GetActiveUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{\n __typename: 'UserOption';\n id: string;\n ownerAddr: string;\n optionType: any;\n strikeTick: number;\n entryTick: number;\n strikePrice: any;\n entryPrice: any;\n expiresAt: number;\n createdAt: number;\n premiumPaid: any;\n realizedPayout: any;\n marketAddr: string;\n liquiditiesAtOpen: Array<any>;\n liquiditiesCurrent: Array<any>;\n positionSizeAtOpen: any;\n positionSizeCurrent: any;\n fullyExercised: boolean;\n exerciseEvents: Array<{\n __typename: 'ExerciseOptionEvent';\n transactionHash: string;\n }>;\n mintEvent?: {__typename: 'MintOptionEvent'; transactionHash: string} | null;\n }>;\n};\n\nexport type GetClosedUserOptionsQueryVariables = Exact<{\n user: Scalars['String']['input'];\n}>;\n\nexport type GetClosedUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{\n __typename: 'UserOption';\n id: string;\n ownerAddr: string;\n optionType: any;\n strikeTick: number;\n entryTick: number;\n strikePrice: any;\n entryPrice: any;\n expiresAt: number;\n createdAt: number;\n premiumPaid: any;\n realizedPayout: any;\n marketAddr: string;\n liquiditiesAtOpen: Array<any>;\n liquiditiesCurrent: Array<any>;\n positionSizeAtOpen: any;\n positionSizeCurrent: any;\n fullyExercised: boolean;\n exerciseEvents: Array<{\n __typename: 'ExerciseOptionEvent';\n transactionHash: string;\n }>;\n mintEvent?: {__typename: 'MintOptionEvent'; transactionHash: string} | null;\n }>;\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 optionsCount: any;\n tradersCount: any;\n vault: string;\n pool: 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 }>;\n};\n\nexport const GetActiveUserOptionsDocument = gql`\n query GetActiveUserOptions($user: String!) {\n UserOption(\n where: {ownerAddr: {_eq: $user}, fullyExercised: {_eq: false}}\n limit: 1000\n ) {\n id\n ownerAddr\n exerciseEvents {\n transactionHash\n }\n mintEvent {\n transactionHash\n }\n optionType\n strikeTick\n entryTick\n strikePrice\n entryPrice\n expiresAt\n createdAt\n premiumPaid\n realizedPayout\n marketAddr\n liquiditiesAtOpen\n liquiditiesCurrent\n positionSizeAtOpen\n positionSizeCurrent\n fullyExercised\n }\n }\n`;\nexport const GetClosedUserOptionsDocument = gql`\n query GetClosedUserOptions($user: String!) {\n UserOption(\n where: {ownerAddr: {_eq: $user}, fullyExercised: {_eq: true}}\n limit: 1000\n ) {\n id\n ownerAddr\n exerciseEvents {\n transactionHash\n }\n mintEvent {\n transactionHash\n }\n optionType\n strikeTick\n entryTick\n strikePrice\n entryPrice\n expiresAt\n createdAt\n premiumPaid\n realizedPayout\n marketAddr\n liquiditiesAtOpen\n liquiditiesCurrent\n positionSizeAtOpen\n positionSizeCurrent\n fullyExercised\n }\n }\n`;\nexport const GetMarketDataDocument = gql`\n query GetMarketData($marketAddr: String!) {\n TimelockMarket(where: {id: {_eq: $marketAddr}}, limit: 1) {\n id\n optionsCount\n tradersCount\n vault\n pool\n tickSpacing\n optionAssetIsToken0\n optionAsset\n payoutAsset\n optionAssetDecimals\n payoutAssetDecimals\n optionAssetSymbol\n payoutAssetSymbol\n optionAssetName\n payoutAssetName\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 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 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 };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","'use client';\nimport type {Address} from 'viem';\nimport React, {createContext, useContext, type ReactNode} from 'react';\nimport {useChainId} from 'wagmi';\nimport {GraphQLClient} from 'graphql-request';\n\nimport {\n type TimelockMarketData,\n timelockLenses,\n uniswapMathLenses,\n} from '~/lib/contracts';\nimport {getSdk} from '~/generated/graphql';\n\ntype TimelockMarketContextValue = {\n marketData: Partial<TimelockMarketData>;\n lensAddr?: Address;\n uniswapMathLensAddr?: Address;\n envioGraphqlUrl?: string;\n};\n\nconst TimelockMarketContext = createContext<\n TimelockMarketContextValue | undefined\n>(undefined);\n\nexport const TimelockMarketProvider = ({\n children,\n marketData,\n envioGraphqlUrl,\n}: {\n children: ReactNode;\n marketData?: Partial<TimelockMarketData>;\n envioGraphqlUrl?: string;\n}) => {\n const chainId = useChainId();\n\n const lensAddr = timelockLenses[chainId];\n const uniswapMathLensAddr = uniswapMathLenses[chainId];\n\n return (\n <TimelockMarketContext.Provider\n value={{\n marketData: marketData || {},\n lensAddr,\n uniswapMathLensAddr,\n envioGraphqlUrl,\n }}\n >\n {children}\n </TimelockMarketContext.Provider>\n );\n};\n\nexport const useCurrentMarket = () => {\n const context = useContext(TimelockMarketContext);\n\n if (context === undefined) {\n throw new Error(\n 'useCurrentMarket must be used within a TimelockMarketProvider',\n );\n }\n return context.marketData;\n};\n\nexport const useTimelockConfig = () => {\n const context = useContext(TimelockMarketContext);\n\n if (context === undefined) {\n throw new Error('useConfig must be used within a TimelockMarketProvider');\n }\n return {\n lensAddr: context.lensAddr,\n uniswapMathLensAddr: context.uniswapMathLensAddr,\n envioGraphqlUrl: context.envioGraphqlUrl,\n graphqlClient: context.envioGraphqlUrl\n ? getSdk(new GraphQLClient(context.envioGraphqlUrl))\n : undefined,\n };\n};\n","import {useQuery, type NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\n\nimport {useTimelockConfig} from '~/providers/TimelockMarketProvider';\n\nexport const useMarketData = (marketAddr?: Address) => {\n const {graphqlClient} = useTimelockConfig();\n\n const {data} = useQuery({\n queryKey: ['marketData', marketAddr || '--'],\n queryFn: () =>\n graphqlClient!.GetMarketData({marketAddr: marketAddr!.toLowerCase()}),\n select: data => ({\n ...data.TimelockMarket[0],\n pool: data.TimelockMarket[0].pool as Address,\n vault: data.TimelockMarket[0].vault as Address,\n optionAsset: data.TimelockMarket[0].optionAsset as Address,\n payoutAsset: data.TimelockMarket[0].payoutAsset as Address,\n optionsCount: BigInt(data.TimelockMarket[0].optionsCount),\n tradersCount: BigInt(data.TimelockMarket[0].tradersCount),\n }),\n enabled: !!marketAddr && !!graphqlClient,\n });\n\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import type {Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {\n useWriteContract,\n useWaitForTransactionReceipt,\n useReadContract,\n useClient,\n} from 'wagmi';\n\nimport {useMarketData} from './useMarketData';\n\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const useExerciseOption = (marketAddr?: Address) => {\n const {vault} = useMarketData(marketAddr);\n const client = useClient();\n\n const {data: lowestTick} = useReadContract({\n address: vault,\n abi: singleOwnerVaultAbi,\n functionName: 'lowestTick',\n });\n const {writeContractAsync, data: hash, isPending, error} = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const exerciseOption = async (\n optionId: bigint,\n liquidities: readonly bigint[],\n ) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (lowestTick === undefined || !marketAddr) {\n throw new Error('Lowest tick lower not available');\n }\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'exerciseOption',\n args: [optionId, liquidities, 0n, lowestTick],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n\n return {\n exerciseOption,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\n };\n};\n","import {useMemo} from 'react';\nimport {useClient} from 'wagmi';\nimport {getTimelockLens, getUniswapMathLens} from '../lib/contracts';\n\nexport const useLens = () => {\n const client = useClient();\n\n const timelockLens = useMemo(\n () => (client ? getTimelockLens(client) : undefined),\n [client],\n );\n const uniswapLens = useMemo(\n () => (client ? getUniswapMathLens(client) : undefined),\n [client],\n );\n return {uniswapLens, timelockLens};\n};\n","import {useMemo} from 'react';\nimport {useReadContract} from 'wagmi';\nimport type {Address} from 'viem';\n\nimport {useLens} from '../useLens';\nimport {useMarketData} from './useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useMaxPositionSize = (\n marketAddr: Address | undefined,\n strikeTick?: number,\n maxBorrowableRange = 100,\n) => {\n const {timelockLens} = useLens();\n const {optionAssetDecimals} = useMarketData(marketAddr);\n\n const {data: data0, refetch: refetch0} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMaxPositionSizeAtCurrentTick',\n args: [marketAddr!, maxBorrowableRange],\n query: {enabled: !!marketAddr && !!timelockLens},\n // @ts-ignore\n gas: 100_000_000n,\n });\n\n const {data: data1, refetch: refetch1} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMaxPositionSize',\n args: [marketAddr!, strikeTick!, maxBorrowableRange],\n query: {\n enabled: !!marketAddr && !!timelockLens && strikeTick !== undefined,\n },\n // @ts-ignore\n gas: 100_000_000n,\n });\n const data = strikeTick !== undefined ? data1 : data0;\n\n const {maxCallSize, maxPutSize} = useMemo(\n () =>\n data && optionAssetDecimals\n ? {\n maxCallSize: wrapAmount(data[0], optionAssetDecimals),\n maxPutSize: wrapAmount(data[1], optionAssetDecimals),\n }\n : {},\n [data, optionAssetDecimals],\n );\n\n const refetch = () => {\n void refetch0();\n void refetch1();\n };\n return {maxCallSize, maxPutSize, refetch};\n};\n","import type {Address} from 'viem';\nimport {useClient, useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type UniswapPoolData = ReturnType<typeof usePoolData>;\ntype NonUndefined<T> = T extends undefined ? never : T;\n\nexport const usePoolData = (poolAddr?: Address) => {\n const {timelockLens} = useLens();\n const client = useClient();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getPoolData',\n args: poolAddr ? [poolAddr] : undefined,\n query: {enabled: !!poolAddr && !!client},\n });\n return (data || {}) as Partial<NonUndefined<typeof data>>;\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {usePoolData} from './usePoolData';\nimport {uniswapV3PoolAbi} from '~/abis/uniswapV3Pool';\n\nexport const useCurrentTick = (poolAddr?: Address) => {\n const {tickSpacing} = usePoolData(poolAddr);\n\n const {data} = useReadContract({\n address: poolAddr,\n abi: uniswapV3PoolAbi,\n functionName: 'slot0',\n args: [],\n });\n const exact = data?.[1];\n\n const rounded =\n exact && tickSpacing\n ? Math.floor(exact / tickSpacing) * tickSpacing\n : undefined;\n\n return {exact, rounded};\n};\n","import {type Address, erc20Abi, maxUint256} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {\n useWriteContract,\n useClient,\n useWaitForTransactionReceipt,\n useAccount,\n} from 'wagmi';\n\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {usePoolData} from '../pool/usePoolData';\nimport {useMarketData} from './useMarketData';\nimport {useLens} from '../useLens';\n\nimport {getErc20, getTimelockMarket} from '../../lib/contracts';\nimport {roundTickDown} from '../../lib/liquidityUtils';\nimport {optionsMarketAbi} from '../../abis/optionsMarket';\n\nexport const useMintOption = (marketAddr?: Address) => {\n const {timelockLens} = useLens();\n const {payoutAsset, vault, pool, optionAssetIsToken0} =\n useMarketData(marketAddr);\n const {tickSpacing} = usePoolData(pool);\n const {exact: currentTick} = useCurrentTick(pool);\n\n const client = useClient();\n const {address} = useAccount();\n\n const {writeContractAsync, data: hash, isPending, error} = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const askForApproval = async (premiumAmount: bigint) => {\n if (!client || !address) throw new Error('Wallet not connected');\n\n if (!payoutAsset || !marketAddr) {\n throw new Error('Tokens not available');\n }\n const payoutContract = getErc20(payoutAsset, client);\n\n const allowance = await payoutContract.read.allowance([\n address,\n marketAddr,\n ]);\n if (allowance < premiumAmount) {\n const approvalHash = await writeContractAsync({\n address: payoutAsset,\n abi: erc20Abi,\n functionName: 'approve',\n args: [marketAddr, maxUint256],\n });\n await waitForTransactionReceipt(client, {hash: approvalHash});\n }\n };\n\n const mintOption = async (\n optionType: 'CALL' | 'PUT',\n amount: bigint,\n duration: number,\n strikeTick?: number,\n ) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (\n !timelockLens ||\n !vault ||\n !marketAddr ||\n !currentTick ||\n !tickSpacing\n ) {\n throw new Error('Lowest tick lower not available');\n }\n\n strikeTick = roundTickDown(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTick += tickSpacing;\n }\n const market = getTimelockMarket(marketAddr, client);\n\n const premium = await market.read.calculatePremium([\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n BigInt(duration),\n ]);\n await askForApproval(premium);\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'mintOption',\n args: [\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n BigInt(duration),\n BigInt(1e69),\n await timelockLens.read.getRefTick([vault, strikeTick]),\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n return {\n mintOption,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\n };\n};\n","import {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {useMarketData} from './useMarketData';\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {token0ToToken1, token1ToToken0} from '~/lib/liquidityUtils';\nimport {wrapAmount} from '~/lib/numberUtils';\n\nexport const useOptionPnl = (optionData: {\n marketAddr: Address;\n optionType: 'CALL' | 'PUT';\n positionSizeCurrent: bigint;\n entryTick: number;\n}) => {\n const {marketAddr, optionType, entryTick, positionSizeCurrent} = optionData;\n\n const {pool, optionAssetIsToken0, payoutAssetDecimals} =\n useMarketData(marketAddr);\n const {exact: currentTick} = useCurrentTick(pool);\n\n const {displayPnl, unrealizedPayout} = useMemo(() => {\n if (\n optionAssetIsToken0 === undefined ||\n currentTick === undefined ||\n !positionSizeCurrent ||\n !payoutAssetDecimals\n )\n return {};\n\n const delta = optionAssetIsToken0\n ? token0ToToken1(positionSizeCurrent, currentTick) -\n token0ToToken1(positionSizeCurrent, entryTick)\n : token1ToToken0(positionSizeCurrent, currentTick) -\n token1ToToken0(positionSizeCurrent, entryTick);\n\n const displayPnl = wrapAmount(\n optionType === 'CALL' ? delta : -delta,\n payoutAssetDecimals,\n );\n const unrealizedPayout = wrapAmount(\n displayPnl.scaled < 0 ? 0n : displayPnl.scaled,\n payoutAssetDecimals,\n );\n return {unrealizedPayout, displayPnl};\n }, [\n optionType,\n optionAssetIsToken0,\n entryTick,\n currentTick,\n positionSizeCurrent,\n payoutAssetDecimals,\n ]);\n\n return {displayPnl, unrealizedPayout};\n};\n","import {useReadContract} from 'wagmi';\nimport type {Address} from 'viem';\nimport {useMemo} from 'react';\n\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {usePoolData} from '../pool/usePoolData';\nimport {useMarketData} from './useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useOptionPremium = (\n marketAddr: Address | undefined,\n optionType: 'CALL' | 'PUT',\n optionAmount: bigint,\n duration: number,\n) => {\n const {pool, payoutAssetDecimals} = useMarketData(marketAddr);\n const {tickSpacing} = usePoolData(pool);\n const currentTick = useCurrentTick(pool);\n\n const strikeTick = useMemo(() => {\n if (currentTick.rounded === undefined || tickSpacing === undefined) {\n return undefined;\n }\n return optionType === 'CALL'\n ? currentTick.rounded + tickSpacing\n : currentTick.rounded;\n }, [currentTick.rounded, tickSpacing, optionType]);\n\n const {data: premiumData} = useReadContract({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'calculatePremium',\n args:\n strikeTick !== undefined\n ? [\n optionType === 'CALL' ? 0 : 1,\n optionAmount,\n strikeTick,\n BigInt(duration),\n ]\n : undefined,\n query: {\n enabled:\n currentTick.rounded !== undefined &&\n payoutAssetDecimals !== undefined &&\n tickSpacing !== undefined &&\n strikeTick !== undefined,\n },\n });\n\n const premium = useMemo(() => {\n if (premiumData === undefined || payoutAssetDecimals === undefined) {\n return undefined;\n }\n return wrapAmount(premiumData, payoutAssetDecimals);\n }, [premiumData, payoutAssetDecimals]);\n\n return premium;\n};\n","import {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockMarketProvider';\n\nexport type OptionData = ReturnType<typeof useUserOptions>['data'][0];\n\nconst useUserOptions = (user?: string, active = false) => {\n const {graphqlClient} = useTimelockConfig();\n\n const {data: options, ...rest} = useQuery({\n queryKey: ['userTrades', user || '--', active],\n queryFn: () =>\n active\n ? graphqlClient?.GetActiveUserOptions({user: user!.toLowerCase()})\n : graphqlClient?.GetClosedUserOptions({user: user!.toLowerCase()}),\n select: data =>\n data?.UserOption?.map(option => ({\n ...option,\n id: BigInt(option.id),\n marketAddr: option.marketAddr 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 premiumPaid: BigInt(option.premiumPaid),\n realizedPayout: BigInt(option.realizedPayout),\n liquiditiesAtOpen: option.liquiditiesAtOpen.map(liquidity =>\n BigInt(liquidity),\n ),\n liquiditiesCurrent: option.liquiditiesCurrent.map(liquidity =>\n BigInt(liquidity),\n ),\n positionSizeAtOpen: BigInt(option.positionSizeAtOpen),\n positionSizeCurrent: BigInt(option.positionSizeCurrent),\n strikePrice: BigInt(option.strikePrice),\n entryPrice: BigInt(option.entryPrice),\n })),\n enabled: !!user && !!graphqlClient,\n });\n\n const sorted = useMemo(\n () =>\n options?.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()) ||\n [],\n [options],\n );\n return {data: sorted, ...rest};\n};\n\nexport const useActiveUserOptions = (user?: string) => {\n return useUserOptions(user, true);\n};\n\nexport const useClosedUserOptions = (user?: string) => {\n return useUserOptions(user, false);\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {usePoolData} from './usePoolData';\n\nimport {getPriceAtTick} from '../../lib/liquidityUtils';\nimport {wrapPrice} from '../../lib/numberUtils';\n\nexport const usePriceAtTick = (tick?: number, poolAddr?: Address) => {\n const {token0Decimals, token1Decimals} = usePoolData(poolAddr);\n\n const priceBigInt = useMemo(\n () => (tick ? getPriceAtTick(tick) : undefined),\n [tick],\n );\n const price = useMemo(\n () =>\n priceBigInt && token0Decimals && token1Decimals\n ? wrapPrice(priceBigInt, token0Decimals, token1Decimals)\n : undefined,\n [priceBigInt, token0Decimals, token1Decimals],\n );\n return price;\n};\n","import type {Address} from 'viem';\nimport {useCurrentTick} from './useCurrentTick';\nimport {usePriceAtTick} from './usePriceAtTick';\n\nexport const useCurrentPrice = (poolAddr?: Address) => {\n const currentTick = useCurrentTick(poolAddr);\n const currentPrice = usePriceAtTick(currentTick.exact, poolAddr);\n\n return {currentPrice, currentTick};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {singleOwnerVaultAbi} from '../../abis/singleOwnerVault';\n\nexport const useVaultData = (vaultAddr?: Address) => {\n const {data} = useReadContract({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'pool',\n });\n return {pool: data};\n};\n","import {type Address, encodeFunctionData} 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) => {\n const client = useClient();\n const {timelockLens} = useLens();\n const {pool} = useVaultData(vaultAddr);\n const currentTick = useCurrentTick(pool);\n\n const {writeContractAsync, data: hash, isPending, error} = 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: [tickLower, tickUpper, liquidity, refTick],\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.exact) {\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 refTicks = await timelockLens.read.batchGetRefTick([\n vaultAddr,\n positions.map(position => position.tickLower),\n ]);\n const multicallData = positions.map((p, i) =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'burn',\n args: [p.tickLower, p.tickUpper, p.liquidity, refTicks[i]],\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 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) => {\n const {timelockLens} = useLens();\n\n const {data: blocks = [], ...rest} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getAllBlocks',\n args: [vaultAddr!],\n query: {enabled: !!vaultAddr && !!timelockLens},\n });\n return {data: blocks, ...rest};\n};\n","import {encodeFunctionData, erc20Abi, maxUint256, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {\n useWriteContract,\n useWaitForTransactionReceipt,\n useClient,\n useAccount,\n} from 'wagmi';\n\nimport {useVaultData} from './useVaultData';\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {usePoolData} from '../pool/usePoolData';\nimport {useLens} from '../useLens';\n\nimport {getErc20, type UniswapMathLens} from '~/lib/contracts';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const batchGetAmountsFromLiquidity = async (\n lens: UniswapMathLens,\n tickLower: number[],\n tickUpper: number[],\n liquidity: bigint[],\n currentTick: number,\n) => {\n const currentTicksArray = new Array(tickLower.length).fill(currentTick);\n\n const amounts = await lens.read.batchGetAmountsForLiquidityTicks([\n currentTicksArray,\n tickLower,\n tickUpper,\n liquidity,\n ]);\n\n let totalAmount0 = 0n;\n let totalAmount1 = 0n;\n\n const amounts0: bigint[] = [];\n const amounts1: bigint[] = [];\n\n for (const scaled of amounts[0]) {\n totalAmount0 += scaled;\n amounts0.push(scaled);\n }\n for (const scaled of amounts[1]) {\n totalAmount1 += scaled;\n amounts1.push(scaled);\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) => {\n const client = useClient();\n const {address} = useAccount();\n const {pool} = useVaultData(vaultAddr);\n const {timelockLens, uniswapLens} = useLens();\n\n const currentTick = useCurrentTick(pool);\n const {token0, token1} = usePoolData(pool);\n\n const {writeContractAsync, data: hash, isPending, error} = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const askForApproval = async (params: MintPositionParams[]) => {\n if (!address || !client) throw new Error('Wallet not connected');\n\n if (\n currentTick.exact === undefined ||\n !token0 ||\n !token1 ||\n !vaultAddr ||\n !uniswapLens\n ) {\n throw new Error('Current tick not available');\n }\n const {totalAmount0, totalAmount1} = await batchGetAmountsFromLiquidity(\n uniswapLens,\n params.map(p => p.tickLower),\n params.map(p => p.tickUpper),\n params.map(p => p.liquidity),\n currentTick.exact,\n );\n\n const [allowance0, allowance1] = await Promise.all([\n getErc20(token0, client).read.allowance([address, vaultAddr]),\n getErc20(token1, client).read.allowance([address, vaultAddr]),\n ]);\n const approvalPromises = [];\n\n if (allowance0 <= totalAmount0) {\n const approvalHash = await writeContractAsync({\n address: token0,\n abi: erc20Abi,\n functionName: 'approve',\n args: [vaultAddr, maxUint256],\n });\n approvalPromises.push(\n waitForTransactionReceipt(client, {hash: approvalHash}),\n );\n }\n if (allowance1 <= totalAmount1) {\n const approvalHash1 = await writeContractAsync({\n address: token1,\n abi: erc20Abi,\n functionName: 'approve',\n args: [vaultAddr, maxUint256],\n });\n approvalPromises.push(\n waitForTransactionReceipt(client, {hash: approvalHash1}),\n );\n }\n if (approvalPromises.length > 0) {\n await Promise.all(approvalPromises);\n }\n };\n\n const mint = 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 await askForApproval([{tickLower, tickUpper, liquidity}]);\n const refTick = await timelockLens.read.getRefTick([vaultAddr, tickLower]);\n\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'mint',\n args: [tickLower, tickUpper, liquidity, refTick],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n\n const mintMultiple = async (positions: MintPositionParams[]) => {\n if (!client) throw new Error('Wallet not connected');\n if (!currentTick.exact) {\n throw new Error('Current tick not available');\n }\n if (positions.length === 0) {\n throw new Error('No positions to mint');\n }\n if (!timelockLens || !vaultAddr) {\n throw new Error('Vault/lens not available');\n }\n if (positions.length === 1) {\n await mint(\n positions[0].tickLower,\n positions[0].tickUpper,\n positions[0].liquidity,\n );\n } else {\n await askForApproval(positions);\n\n const refTicks = await timelockLens.read.batchGetRefTick([\n vaultAddr,\n positions.map(position => position.tickLower),\n ]);\n const multicallData = positions.map((p, i) =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'mint',\n args: [p.tickLower, p.tickUpper, p.liquidity, refTicks[i]],\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 mintMultiple,\n mint,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\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';\n\nexport const useVaultTVL = (vaultAddr?: Address) => {\n const {timelockLens} = useLens();\n const {pool} = useVaultData(vaultAddr);\n const {token0Decimals, token1Decimals} = usePoolData(pool);\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 const totalAmount0 =\n data && token0Decimals ? wrapAmount(data[0], token0Decimals) : undefined;\n const totalAmount1 =\n data && token1Decimals ? wrapAmount(data[1], token1Decimals) : undefined;\n const borrowedAmount0 =\n data && token0Decimals ? wrapAmount(data[2], token0Decimals) : undefined;\n const borrowedAmount1 =\n data && token1Decimals ? wrapAmount(data[3], token1Decimals) : undefined;\n const tvl0 =\n data && token0Decimals ? wrapAmount(data[4], token0Decimals) : undefined;\n const tvl1 =\n data && token1Decimals ? wrapAmount(data[5], token1Decimals) : undefined;\n\n const blocksCount = data?.[6];\n\n return {\n tvl0,\n tvl1,\n totalAmount0,\n totalAmount1,\n borrowedAmount0,\n borrowedAmount1,\n blocksCount,\n refetch,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["defaultWrapper: SdkFunctionWrapper","data","hash","hash","displayPnl","hash","amounts0: bigint[]","amounts1: bigint[]","hash"],"sources":["../src/generated/graphql.ts","../src/providers/TimelockMarketProvider.tsx","../src/hooks/market/useMarketData.ts","../src/hooks/market/useExerciseOption.ts","../src/hooks/useLens.ts","../src/hooks/market/useMaxPositionSize.ts","../src/hooks/pool/usePoolData.ts","../src/hooks/pool/useCurrentTick.ts","../src/hooks/market/useMintOption.ts","../src/hooks/market/useOptionPnl.ts","../src/hooks/market/useOptionPremium.ts","../src/hooks/market/useUserOptions.ts","../src/hooks/pool/usePriceAtTick.ts","../src/hooks/pool/useCurrentPrice.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"],"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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: 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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: 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['numeric']['output']>;\n /** An object relationship */\n option?: Maybe<UserOption>;\n option_id: Scalars['String']['output'];\n owner: Scalars['String']['output'];\n payout: Scalars['numeric']['output'];\n timestamp: Scalars['numeric']['output'];\n transactionHash: Scalars['String']['output'];\n};\n\n/** order by aggregate values of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventAggregateOrderBy = {\n avg?: InputMaybe<ExerciseOptionEventAvgOrderBy>;\n count?: InputMaybe<OrderBy>;\n max?: InputMaybe<ExerciseOptionEventMaxOrderBy>;\n min?: InputMaybe<ExerciseOptionEventMinOrderBy>;\n stddev?: InputMaybe<ExerciseOptionEventStddevOrderBy>;\n stddev_pop?: InputMaybe<ExerciseOptionEventStddevPopOrderBy>;\n stddev_samp?: InputMaybe<ExerciseOptionEventStddevSampOrderBy>;\n sum?: InputMaybe<ExerciseOptionEventSumOrderBy>;\n var_pop?: InputMaybe<ExerciseOptionEventVarPopOrderBy>;\n var_samp?: InputMaybe<ExerciseOptionEventVarSampOrderBy>;\n variance?: InputMaybe<ExerciseOptionEventVarianceOrderBy>;\n};\n\n/** order by avg() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventAvgOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\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<NumericArrayComparisonExp>;\n option?: InputMaybe<UserOptionBoolExp>;\n option_id?: InputMaybe<StringComparisonExp>;\n owner?: InputMaybe<StringComparisonExp>;\n payout?: InputMaybe<NumericComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventMaxOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option_id?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventMinOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n option_id?: InputMaybe<OrderBy>;\n owner?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n transactionHash?: InputMaybe<OrderBy>;\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 owner?: 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 | 'owner'\n /** column name */\n | 'payout'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'transactionHash';\n\n/** order by stddev() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStddevOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStddevPopOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventStddevSampOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\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['numeric']['input']>>;\n option_id?: InputMaybe<Scalars['String']['input']>;\n owner?: 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/** order by sum() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventSumOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventVarPopOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventVarSampOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"ExerciseOptionEvent\" */\nexport type ExerciseOptionEventVarianceOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n payout?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\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 \"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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"MintOptionEvent\" */\nexport type MintOptionEvent = {\n __typename: 'MintOptionEvent';\n blockNumber: Scalars['numeric']['output'];\n buyer: Scalars['String']['output'];\n currentTick: Scalars['Int']['output'];\n expiresAt: Scalars['numeric']['output'];\n id: Scalars['String']['output'];\n liquidities: Array<Scalars['numeric']['output']>;\n optionType: Scalars['Int']['output'];\n strikeTick: Scalars['Int']['output'];\n timestamp: Scalars['numeric']['output'];\n totalPremium: 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 buyer?: InputMaybe<StringComparisonExp>;\n currentTick?: InputMaybe<IntComparisonExp>;\n expiresAt?: InputMaybe<NumericComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquidities?: InputMaybe<NumericArrayComparisonExp>;\n optionType?: InputMaybe<IntComparisonExp>;\n strikeTick?: InputMaybe<IntComparisonExp>;\n timestamp?: InputMaybe<NumericComparisonExp>;\n totalPremium?: InputMaybe<NumericComparisonExp>;\n transactionHash?: InputMaybe<StringComparisonExp>;\n};\n\n/** Ordering options when selecting data from \"MintOptionEvent\". */\nexport type MintOptionEventOrderBy = {\n blockNumber?: InputMaybe<OrderBy>;\n buyer?: InputMaybe<OrderBy>;\n currentTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquidities?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n strikeTick?: InputMaybe<OrderBy>;\n timestamp?: InputMaybe<OrderBy>;\n totalPremium?: 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 | 'buyer'\n /** column name */\n | 'currentTick'\n /** column name */\n | 'expiresAt'\n /** column name */\n | 'id'\n /** column name */\n | 'liquidities'\n /** column name */\n | 'optionType'\n /** column name */\n | 'strikeTick'\n /** column name */\n | 'timestamp'\n /** column name */\n | 'totalPremium'\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 buyer?: InputMaybe<Scalars['String']['input']>;\n currentTick?: InputMaybe<Scalars['Int']['input']>;\n expiresAt?: InputMaybe<Scalars['numeric']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquidities?: InputMaybe<Array<Scalars['numeric']['input']>>;\n optionType?: InputMaybe<Scalars['Int']['input']>;\n strikeTick?: InputMaybe<Scalars['Int']['input']>;\n timestamp?: InputMaybe<Scalars['numeric']['input']>;\n totalPremium?: 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 user: 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 user?: 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 user?: 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 | 'user';\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 user?: InputMaybe<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 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 pool: Scalars['String']['output'];\n tickSpacing: Scalars['Int']['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 id: Scalars['String']['output'];\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n market_id: Scalars['String']['output'];\n /** An array relationship */\n options: Array<UserOption>;\n optionsCount: Scalars['numeric']['output'];\n userAddr: Scalars['String']['output'];\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};\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 id?: InputMaybe<StringComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n options?: InputMaybe<UserOptionBoolExp>;\n optionsCount?: InputMaybe<NumericComparisonExp>;\n userAddr?: InputMaybe<StringComparisonExp>;\n};\n\n/** order by max() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMaxOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n};\n\n/** order by min() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserMinOrderBy = {\n id?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n};\n\n/** Ordering options when selecting data from \"TimelockMarketUser\". */\nexport type TimelockMarketUserOrderBy = {\n id?: InputMaybe<OrderBy>;\n market?: InputMaybe<TimelockMarketOrderBy>;\n market_id?: InputMaybe<OrderBy>;\n optionsCount?: InputMaybe<OrderBy>;\n options_aggregate?: InputMaybe<UserOptionAggregateOrderBy>;\n userAddr?: InputMaybe<OrderBy>;\n};\n\n/** select columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSelectColumn =\n /** column name */\n | 'id'\n /** column name */\n | 'market_id'\n /** column name */\n | 'optionsCount'\n /** column name */\n | 'userAddr';\n\n/** order by stddev() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by stddev_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserStddevSampOrderBy = {\n optionsCount?: 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 id?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n optionsCount?: InputMaybe<Scalars['numeric']['input']>;\n userAddr?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** order by sum() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserSumOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by var_pop() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarPopOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by var_samp() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarSampOrderBy = {\n optionsCount?: InputMaybe<OrderBy>;\n};\n\n/** order by variance() on columns of table \"TimelockMarketUser\" */\nexport type TimelockMarketUserVarianceOrderBy = {\n optionsCount?: 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 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 pool?: InputMaybe<StringComparisonExp>;\n tickSpacing?: InputMaybe<IntComparisonExp>;\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 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 pool?: InputMaybe<OrderBy>;\n tickSpacing?: 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 | '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 | 'pool'\n /** column name */\n | 'tickSpacing'\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 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 pool?: InputMaybe<Scalars['String']['input']>;\n tickSpacing?: InputMaybe<Scalars['Int']['input']>;\n tradersCount?: InputMaybe<Scalars['numeric']['input']>;\n vault?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** columns and relationships of \"UserOption\" */\nexport type UserOption = {\n __typename: 'UserOption';\n createdAt: Scalars['Int']['output'];\n entryPrice: Scalars['numeric']['output'];\n entryTick: Scalars['Int']['output'];\n /** An array relationship */\n exerciseEvents: Array<ExerciseOptionEvent>;\n expiresAt: Scalars['Int']['output'];\n fullyExercised: Scalars['Boolean']['output'];\n id: Scalars['String']['output'];\n liquiditiesAtOpen: Array<Scalars['numeric']['output']>;\n liquiditiesCurrent: Array<Scalars['numeric']['output']>;\n /** An object relationship */\n market?: Maybe<TimelockMarket>;\n marketAddr: Scalars['String']['output'];\n market_id: Scalars['String']['output'];\n /** An object relationship */\n mintEvent?: Maybe<MintOptionEvent>;\n mintEvent_id: Scalars['String']['output'];\n optionType: Scalars['optiontype']['output'];\n /** An object relationship */\n owner?: Maybe<TimelockMarketUser>;\n ownerAddr: Scalars['String']['output'];\n owner_id: Scalars['String']['output'];\n positionSizeAtOpen: Scalars['numeric']['output'];\n positionSizeCurrent: Scalars['numeric']['output'];\n premiumPaid: Scalars['numeric']['output'];\n realizedPayout: Scalars['numeric']['output'];\n strikePrice: Scalars['numeric']['output'];\n strikeTick: Scalars['Int']['output'];\n};\n\n/** columns and relationships of \"UserOption\" */\nexport type UserOptionExerciseEventsArgs = {\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\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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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<IntComparisonExp>;\n entryPrice?: InputMaybe<NumericComparisonExp>;\n entryTick?: InputMaybe<IntComparisonExp>;\n exerciseEvents?: InputMaybe<ExerciseOptionEventBoolExp>;\n expiresAt?: InputMaybe<IntComparisonExp>;\n fullyExercised?: InputMaybe<BooleanComparisonExp>;\n id?: InputMaybe<StringComparisonExp>;\n liquiditiesAtOpen?: InputMaybe<NumericArrayComparisonExp>;\n liquiditiesCurrent?: InputMaybe<NumericArrayComparisonExp>;\n market?: InputMaybe<TimelockMarketBoolExp>;\n marketAddr?: InputMaybe<StringComparisonExp>;\n market_id?: InputMaybe<StringComparisonExp>;\n mintEvent?: InputMaybe<MintOptionEventBoolExp>;\n mintEvent_id?: InputMaybe<StringComparisonExp>;\n optionType?: InputMaybe<OptiontypeComparisonExp>;\n owner?: InputMaybe<TimelockMarketUserBoolExp>;\n ownerAddr?: InputMaybe<StringComparisonExp>;\n owner_id?: InputMaybe<StringComparisonExp>;\n positionSizeAtOpen?: InputMaybe<NumericComparisonExp>;\n positionSizeCurrent?: InputMaybe<NumericComparisonExp>;\n premiumPaid?: InputMaybe<NumericComparisonExp>;\n realizedPayout?: InputMaybe<NumericComparisonExp>;\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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n marketAddr?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n mintEvent_id?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n ownerAddr?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n id?: InputMaybe<OrderBy>;\n liquiditiesAtOpen?: InputMaybe<OrderBy>;\n liquiditiesCurrent?: InputMaybe<OrderBy>;\n marketAddr?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n mintEvent_id?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n ownerAddr?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n exerciseEvents_aggregate?: InputMaybe<ExerciseOptionEventAggregateOrderBy>;\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 marketAddr?: InputMaybe<OrderBy>;\n market_id?: InputMaybe<OrderBy>;\n mintEvent?: InputMaybe<MintOptionEventOrderBy>;\n mintEvent_id?: InputMaybe<OrderBy>;\n optionType?: InputMaybe<OrderBy>;\n owner?: InputMaybe<TimelockMarketUserOrderBy>;\n ownerAddr?: InputMaybe<OrderBy>;\n owner_id?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 | 'entryTick'\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 | 'marketAddr'\n /** column name */\n | 'market_id'\n /** column name */\n | 'mintEvent_id'\n /** column name */\n | 'optionType'\n /** column name */\n | 'ownerAddr'\n /** column name */\n | 'owner_id'\n /** column name */\n | 'positionSizeAtOpen'\n /** column name */\n | 'positionSizeCurrent'\n /** column name */\n | 'premiumPaid'\n /** column name */\n | 'realizedPayout'\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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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['Int']['input']>;\n entryPrice?: InputMaybe<Scalars['numeric']['input']>;\n entryTick?: InputMaybe<Scalars['Int']['input']>;\n expiresAt?: InputMaybe<Scalars['Int']['input']>;\n fullyExercised?: InputMaybe<Scalars['Boolean']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n liquiditiesAtOpen?: InputMaybe<Array<Scalars['numeric']['input']>>;\n liquiditiesCurrent?: InputMaybe<Array<Scalars['numeric']['input']>>;\n marketAddr?: InputMaybe<Scalars['String']['input']>;\n market_id?: InputMaybe<Scalars['String']['input']>;\n mintEvent_id?: InputMaybe<Scalars['String']['input']>;\n optionType?: InputMaybe<Scalars['optiontype']['input']>;\n ownerAddr?: InputMaybe<Scalars['String']['input']>;\n owner_id?: InputMaybe<Scalars['String']['input']>;\n positionSizeAtOpen?: InputMaybe<Scalars['numeric']['input']>;\n positionSizeCurrent?: InputMaybe<Scalars['numeric']['input']>;\n premiumPaid?: InputMaybe<Scalars['numeric']['input']>;\n realizedPayout?: InputMaybe<Scalars['numeric']['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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 entryTick?: InputMaybe<OrderBy>;\n expiresAt?: InputMaybe<OrderBy>;\n positionSizeAtOpen?: InputMaybe<OrderBy>;\n positionSizeCurrent?: InputMaybe<OrderBy>;\n premiumPaid?: InputMaybe<OrderBy>;\n realizedPayout?: 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 NumericArrayComparisonExp = {\n /** is the array contained in the given array value */\n _contained_in?: InputMaybe<Array<Scalars['numeric']['input']>>;\n /** does the array contain the given value */\n _contains?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _eq?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _gt?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _gte?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _in?: InputMaybe<Array<Array<Scalars['numeric']['input']>>>;\n _is_null?: InputMaybe<Scalars['Boolean']['input']>;\n _lt?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _lte?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _neq?: InputMaybe<Array<Scalars['numeric']['input']>>;\n _nin?: InputMaybe<Array<Array<Scalars['numeric']['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: \"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: \"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 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 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: \"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: \"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 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 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 GetActiveUserOptionsQueryVariables = Exact<{\n user: Scalars['String']['input'];\n}>;\n\nexport type GetActiveUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{\n __typename: 'UserOption';\n id: string;\n ownerAddr: string;\n optionType: any;\n strikeTick: number;\n entryTick: number;\n strikePrice: any;\n entryPrice: any;\n expiresAt: number;\n createdAt: number;\n premiumPaid: any;\n realizedPayout: any;\n marketAddr: string;\n liquiditiesAtOpen: Array<any>;\n liquiditiesCurrent: Array<any>;\n positionSizeAtOpen: any;\n positionSizeCurrent: any;\n fullyExercised: boolean;\n exerciseEvents: Array<{\n __typename: 'ExerciseOptionEvent';\n transactionHash: string;\n }>;\n mintEvent?: {__typename: 'MintOptionEvent'; transactionHash: string} | null;\n }>;\n};\n\nexport type GetClosedUserOptionsQueryVariables = Exact<{\n user: Scalars['String']['input'];\n}>;\n\nexport type GetClosedUserOptionsQuery = {\n __typename: 'query_root';\n UserOption: Array<{\n __typename: 'UserOption';\n id: string;\n ownerAddr: string;\n optionType: any;\n strikeTick: number;\n entryTick: number;\n strikePrice: any;\n entryPrice: any;\n expiresAt: number;\n createdAt: number;\n premiumPaid: any;\n realizedPayout: any;\n marketAddr: string;\n liquiditiesAtOpen: Array<any>;\n liquiditiesCurrent: Array<any>;\n positionSizeAtOpen: any;\n positionSizeCurrent: any;\n fullyExercised: boolean;\n exerciseEvents: Array<{\n __typename: 'ExerciseOptionEvent';\n transactionHash: string;\n }>;\n mintEvent?: {__typename: 'MintOptionEvent'; transactionHash: string} | null;\n }>;\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 optionsCount: any;\n tradersCount: any;\n vault: string;\n pool: 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 }>;\n};\n\nexport const GetActiveUserOptionsDocument = gql`\n query GetActiveUserOptions($user: String!) {\n UserOption(\n where: {ownerAddr: {_eq: $user}, fullyExercised: {_eq: false}}\n limit: 1000\n ) {\n id\n ownerAddr\n exerciseEvents {\n transactionHash\n }\n mintEvent {\n transactionHash\n }\n optionType\n strikeTick\n entryTick\n strikePrice\n entryPrice\n expiresAt\n createdAt\n premiumPaid\n realizedPayout\n marketAddr\n liquiditiesAtOpen\n liquiditiesCurrent\n positionSizeAtOpen\n positionSizeCurrent\n fullyExercised\n }\n }\n`;\nexport const GetClosedUserOptionsDocument = gql`\n query GetClosedUserOptions($user: String!) {\n UserOption(\n where: {ownerAddr: {_eq: $user}, fullyExercised: {_eq: true}}\n limit: 1000\n ) {\n id\n ownerAddr\n exerciseEvents {\n transactionHash\n }\n mintEvent {\n transactionHash\n }\n optionType\n strikeTick\n entryTick\n strikePrice\n entryPrice\n expiresAt\n createdAt\n premiumPaid\n realizedPayout\n marketAddr\n liquiditiesAtOpen\n liquiditiesCurrent\n positionSizeAtOpen\n positionSizeCurrent\n fullyExercised\n }\n }\n`;\nexport const GetMarketDataDocument = gql`\n query GetMarketData($marketAddr: String!) {\n TimelockMarket(where: {id: {_eq: $marketAddr}}, limit: 1) {\n id\n optionsCount\n tradersCount\n vault\n pool\n tickSpacing\n optionAssetIsToken0\n optionAsset\n payoutAsset\n optionAssetDecimals\n payoutAssetDecimals\n optionAssetSymbol\n payoutAssetSymbol\n optionAssetName\n payoutAssetName\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 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 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 };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","'use client';\nimport type {Address} from 'viem';\nimport React, {createContext, useContext, useMemo, type ReactNode} from 'react';\nimport {useChainId} from 'wagmi';\nimport {GraphQLClient} from 'graphql-request';\n\nimport {\n type TimelockMarketData,\n timelockLenses,\n uniswapMathLenses,\n} from '~/lib/contracts';\nimport {getSdk} from '~/generated/graphql';\n\ntype TimelockMarketContextValue = {\n marketData: Partial<TimelockMarketData>;\n lensAddr?: Address;\n uniswapMathLensAddr?: Address;\n envioGraphqlUrl?: string;\n};\n\nconst TimelockMarketContext = createContext<\n TimelockMarketContextValue | undefined\n>(undefined);\n\nexport const TimelockMarketProvider = ({\n children,\n marketData,\n envioGraphqlUrl,\n}: {\n children: ReactNode;\n marketData?: Partial<TimelockMarketData>;\n envioGraphqlUrl?: string;\n}) => {\n const chainId = useChainId();\n\n const lensAddr = timelockLenses[chainId];\n const uniswapMathLensAddr = uniswapMathLenses[chainId];\n\n return (\n <TimelockMarketContext.Provider\n value={{\n marketData: marketData || {},\n lensAddr,\n uniswapMathLensAddr,\n envioGraphqlUrl,\n }}\n >\n {children}\n </TimelockMarketContext.Provider>\n );\n};\n\nexport const useCurrentMarket = () => {\n const context = useContext(TimelockMarketContext);\n\n if (context === undefined) {\n throw new Error(\n 'useCurrentMarket must be used within a TimelockMarketProvider',\n );\n }\n return context.marketData;\n};\n\nexport const useTimelockConfig = () => {\n const context = useContext(TimelockMarketContext);\n\n if (context === undefined) {\n throw new Error('useConfig must be used within a TimelockMarketProvider');\n }\n const graphqlClient = useMemo(() => {\n if (context.envioGraphqlUrl) {\n return getSdk(new GraphQLClient(context.envioGraphqlUrl));\n }\n return undefined;\n }, [context.envioGraphqlUrl]);\n\n return {\n lensAddr: context.lensAddr,\n uniswapMathLensAddr: context.uniswapMathLensAddr,\n envioGraphqlUrl: context.envioGraphqlUrl,\n graphqlClient,\n };\n};\n","import {useQuery, type NonUndefinedGuard} from '@tanstack/react-query';\nimport type {Address} from 'viem';\n\nimport {useTimelockConfig} from '~/providers/TimelockMarketProvider';\n\nexport const useMarketData = (marketAddr?: Address) => {\n const {graphqlClient} = useTimelockConfig();\n\n const {data} = useQuery({\n queryKey: ['marketData', marketAddr || '--'],\n queryFn: () =>\n graphqlClient!.GetMarketData({marketAddr: marketAddr!.toLowerCase()}),\n select: data => ({\n ...data.TimelockMarket[0],\n pool: data.TimelockMarket[0].pool as Address,\n vault: data.TimelockMarket[0].vault as Address,\n optionAsset: data.TimelockMarket[0].optionAsset as Address,\n payoutAsset: data.TimelockMarket[0].payoutAsset as Address,\n optionsCount: BigInt(data.TimelockMarket[0].optionsCount),\n tradersCount: BigInt(data.TimelockMarket[0].tradersCount),\n }),\n enabled: !!marketAddr && !!graphqlClient,\n });\n\n return (data || {}) as Partial<NonUndefinedGuard<typeof data>>;\n};\n","import type {Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {\n useWriteContract,\n useWaitForTransactionReceipt,\n useReadContract,\n useClient,\n} from 'wagmi';\n\nimport {useMarketData} from './useMarketData';\n\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const useExerciseOption = (marketAddr?: Address) => {\n const {vault} = useMarketData(marketAddr);\n const client = useClient();\n\n const {data: lowestTick} = useReadContract({\n address: vault,\n abi: singleOwnerVaultAbi,\n functionName: 'lowestTick',\n });\n const {writeContractAsync, data: hash, isPending, error} = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const exerciseOption = async (\n optionId: bigint,\n liquidities: readonly bigint[],\n ) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (lowestTick === undefined || !marketAddr) {\n throw new Error('Lowest tick lower not available');\n }\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'exerciseOption',\n args: [optionId, liquidities, 0n, lowestTick],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n\n return {\n exerciseOption,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\n };\n};\n","import {useMemo} from 'react';\nimport {useClient} from 'wagmi';\nimport {getTimelockLens, getUniswapMathLens} from '../lib/contracts';\n\nexport const useLens = () => {\n const client = useClient();\n\n const timelockLens = useMemo(\n () => (client ? getTimelockLens(client) : undefined),\n [client],\n );\n const uniswapLens = useMemo(\n () => (client ? getUniswapMathLens(client) : undefined),\n [client],\n );\n return {uniswapLens, timelockLens};\n};\n","import {useMemo} from 'react';\nimport {useReadContract} from 'wagmi';\nimport type {Address} from 'viem';\n\nimport {useLens} from '../useLens';\nimport {useMarketData} from './useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {lensAbi} from '~/abis/lens';\n\nexport const useMaxPositionSize = (\n marketAddr: Address | undefined,\n strikeTick?: number,\n maxBorrowableRange = 100,\n) => {\n const {timelockLens} = useLens();\n const {optionAssetDecimals} = useMarketData(marketAddr);\n\n const {data: data0, refetch: refetch0} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMaxPositionSizeAtCurrentTick',\n args: [marketAddr!, maxBorrowableRange],\n query: {enabled: !!marketAddr && !!timelockLens},\n // @ts-ignore\n gas: 100_000_000n,\n });\n\n const {data: data1, refetch: refetch1} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getMaxPositionSize',\n args: [marketAddr!, strikeTick!, maxBorrowableRange],\n query: {\n enabled: !!marketAddr && !!timelockLens && strikeTick !== undefined,\n },\n // @ts-ignore\n gas: 100_000_000n,\n });\n const data = strikeTick !== undefined ? data1 : data0;\n\n const {maxCallSize, maxPutSize} = useMemo(\n () =>\n data && optionAssetDecimals\n ? {\n maxCallSize: wrapAmount(data[0], optionAssetDecimals),\n maxPutSize: wrapAmount(data[1], optionAssetDecimals),\n }\n : {},\n [data, optionAssetDecimals],\n );\n\n const refetch = () => {\n void refetch0();\n void refetch1();\n };\n return {maxCallSize, maxPutSize, refetch};\n};\n","import type {Address} from 'viem';\nimport {useClient, useReadContract} from 'wagmi';\nimport {useLens} from '../useLens';\nimport {lensAbi} from '~/abis/lens';\n\nexport type UniswapPoolData = ReturnType<typeof usePoolData>;\ntype NonUndefined<T> = T extends undefined ? never : T;\n\nexport const usePoolData = (poolAddr?: Address) => {\n const {timelockLens} = useLens();\n const client = useClient();\n\n const {data} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getPoolData',\n args: poolAddr ? [poolAddr] : undefined,\n query: {enabled: !!poolAddr && !!client},\n });\n return (data || {}) as Partial<NonUndefined<typeof data>>;\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {usePoolData} from './usePoolData';\nimport {uniswapV3PoolAbi} from '~/abis/uniswapV3Pool';\n\nexport const useCurrentTick = (poolAddr?: Address) => {\n const {tickSpacing} = usePoolData(poolAddr);\n\n const {data} = useReadContract({\n address: poolAddr,\n abi: uniswapV3PoolAbi,\n functionName: 'slot0',\n args: [],\n });\n const exact = data?.[1];\n\n const rounded =\n exact && tickSpacing\n ? Math.floor(exact / tickSpacing) * tickSpacing\n : undefined;\n\n return {exact, rounded};\n};\n","import {type Address, erc20Abi, maxUint256} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {\n useWriteContract,\n useClient,\n useWaitForTransactionReceipt,\n useAccount,\n} from 'wagmi';\n\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {usePoolData} from '../pool/usePoolData';\nimport {useMarketData} from './useMarketData';\nimport {useLens} from '../useLens';\n\nimport {getErc20, getTimelockMarket} from '../../lib/contracts';\nimport {roundTickDown} from '../../lib/liquidityUtils';\nimport {optionsMarketAbi} from '../../abis/optionsMarket';\n\nexport const useMintOption = (marketAddr?: Address) => {\n const {timelockLens} = useLens();\n const {payoutAsset, vault, pool, optionAssetIsToken0} =\n useMarketData(marketAddr);\n const {tickSpacing} = usePoolData(pool);\n const {exact: currentTick} = useCurrentTick(pool);\n\n const client = useClient();\n const {address} = useAccount();\n\n const {writeContractAsync, data: hash, isPending, error} = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const askForApproval = async (premiumAmount: bigint) => {\n if (!client || !address) throw new Error('Wallet not connected');\n\n if (!payoutAsset || !marketAddr) {\n throw new Error('Tokens not available');\n }\n const payoutContract = getErc20(payoutAsset, client);\n\n const allowance = await payoutContract.read.allowance([\n address,\n marketAddr,\n ]);\n if (allowance < premiumAmount) {\n const approvalHash = await writeContractAsync({\n address: payoutAsset,\n abi: erc20Abi,\n functionName: 'approve',\n args: [marketAddr, maxUint256],\n });\n await waitForTransactionReceipt(client, {hash: approvalHash});\n }\n };\n\n const mintOption = async (\n optionType: 'CALL' | 'PUT',\n amount: bigint,\n duration: number,\n strikeTick?: number,\n ) => {\n if (!client) throw new Error('Wallet not connected');\n\n if (\n !timelockLens ||\n !vault ||\n !marketAddr ||\n !currentTick ||\n !tickSpacing\n ) {\n throw new Error('Lowest tick lower not available');\n }\n\n strikeTick = roundTickDown(strikeTick ?? currentTick, tickSpacing);\n\n if (\n (optionType === 'CALL' && optionAssetIsToken0) ||\n (optionType === 'PUT' && !optionAssetIsToken0)\n ) {\n strikeTick += tickSpacing;\n }\n const market = getTimelockMarket(marketAddr, client);\n\n const premium = await market.read.calculatePremium([\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n BigInt(duration),\n ]);\n await askForApproval(premium);\n\n const hash = await writeContractAsync({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'mintOption',\n args: [\n optionType === 'CALL' ? 0 : 1,\n amount,\n strikeTick,\n BigInt(duration),\n BigInt(1e69),\n await timelockLens.read.getRefTick([vault, strikeTick]),\n ],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n return {\n mintOption,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\n };\n};\n","import {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {useMarketData} from './useMarketData';\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {token0ToToken1, token1ToToken0} from '~/lib/liquidityUtils';\nimport {wrapAmount} from '~/lib/numberUtils';\n\nexport const useOptionPnl = (optionData: {\n marketAddr: Address;\n optionType: 'CALL' | 'PUT';\n positionSizeCurrent: bigint;\n entryTick: number;\n}) => {\n const {marketAddr, optionType, entryTick, positionSizeCurrent} = optionData;\n\n const {pool, optionAssetIsToken0, payoutAssetDecimals} =\n useMarketData(marketAddr);\n const {exact: currentTick} = useCurrentTick(pool);\n\n const {displayPnl, unrealizedPayout} = useMemo(() => {\n if (\n optionAssetIsToken0 === undefined ||\n currentTick === undefined ||\n !positionSizeCurrent ||\n !payoutAssetDecimals\n )\n return {};\n\n const delta = optionAssetIsToken0\n ? token0ToToken1(positionSizeCurrent, currentTick) -\n token0ToToken1(positionSizeCurrent, entryTick)\n : token1ToToken0(positionSizeCurrent, currentTick) -\n token1ToToken0(positionSizeCurrent, entryTick);\n\n const displayPnl = wrapAmount(\n optionType === 'CALL' ? delta : -delta,\n payoutAssetDecimals,\n );\n const unrealizedPayout = wrapAmount(\n displayPnl.scaled < 0 ? 0n : displayPnl.scaled,\n payoutAssetDecimals,\n );\n return {unrealizedPayout, displayPnl};\n }, [\n optionType,\n optionAssetIsToken0,\n entryTick,\n currentTick,\n positionSizeCurrent,\n payoutAssetDecimals,\n ]);\n\n return {displayPnl, unrealizedPayout};\n};\n","import {useReadContract} from 'wagmi';\nimport type {Address} from 'viem';\nimport {useMemo} from 'react';\n\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {usePoolData} from '../pool/usePoolData';\nimport {useMarketData} from './useMarketData';\n\nimport {wrapAmount} from '~/lib/numberUtils';\nimport {optionsMarketAbi} from '~/abis/optionsMarket';\n\nexport const useOptionPremium = (\n marketAddr: Address | undefined,\n optionType: 'CALL' | 'PUT',\n optionAmount: bigint,\n duration: number,\n) => {\n const {pool, payoutAssetDecimals} = useMarketData(marketAddr);\n const {tickSpacing} = usePoolData(pool);\n const currentTick = useCurrentTick(pool);\n\n const strikeTick = useMemo(() => {\n if (currentTick.rounded === undefined || tickSpacing === undefined) {\n return undefined;\n }\n return optionType === 'CALL'\n ? currentTick.rounded + tickSpacing\n : currentTick.rounded;\n }, [currentTick.rounded, tickSpacing, optionType]);\n\n const {data: premiumData} = useReadContract({\n address: marketAddr,\n abi: optionsMarketAbi,\n functionName: 'calculatePremium',\n args:\n strikeTick !== undefined\n ? [\n optionType === 'CALL' ? 0 : 1,\n optionAmount,\n strikeTick,\n BigInt(duration),\n ]\n : undefined,\n query: {\n enabled:\n currentTick.rounded !== undefined &&\n payoutAssetDecimals !== undefined &&\n tickSpacing !== undefined &&\n strikeTick !== undefined,\n },\n });\n\n const premium = useMemo(() => {\n if (premiumData === undefined || payoutAssetDecimals === undefined) {\n return undefined;\n }\n return wrapAmount(premiumData, payoutAssetDecimals);\n }, [premiumData, payoutAssetDecimals]);\n\n return premium;\n};\n","import {useMemo} from 'react';\nimport type {Address} from 'viem';\nimport {useQuery} from '@tanstack/react-query';\nimport {useTimelockConfig} from '~/providers/TimelockMarketProvider';\n\nexport type OptionData = ReturnType<typeof useUserOptions>['data'][0];\n\nconst useUserOptions = (user?: string, active = false) => {\n const {graphqlClient} = useTimelockConfig();\n\n const {data: options, ...rest} = useQuery({\n queryKey: ['userTrades', user || '--', active],\n queryFn: () =>\n active\n ? graphqlClient?.GetActiveUserOptions({user: user!.toLowerCase()})\n : graphqlClient?.GetClosedUserOptions({user: user!.toLowerCase()}),\n select: data =>\n data?.UserOption?.map(option => ({\n ...option,\n id: BigInt(option.id),\n marketAddr: option.marketAddr 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 premiumPaid: BigInt(option.premiumPaid),\n realizedPayout: BigInt(option.realizedPayout),\n liquiditiesAtOpen: option.liquiditiesAtOpen.map(liquidity =>\n BigInt(liquidity),\n ),\n liquiditiesCurrent: option.liquiditiesCurrent.map(liquidity =>\n BigInt(liquidity),\n ),\n positionSizeAtOpen: BigInt(option.positionSizeAtOpen),\n positionSizeCurrent: BigInt(option.positionSizeCurrent),\n strikePrice: BigInt(option.strikePrice),\n entryPrice: BigInt(option.entryPrice),\n })),\n enabled: !!user && !!graphqlClient,\n });\n\n const sorted = useMemo(\n () =>\n options?.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()) ||\n [],\n [options],\n );\n return {data: sorted, ...rest};\n};\n\nexport const useActiveUserOptions = (user?: string) => {\n return useUserOptions(user, true);\n};\n\nexport const useClosedUserOptions = (user?: string) => {\n return useUserOptions(user, false);\n};\n","import type {Address} from 'viem';\nimport {useMemo} from 'react';\nimport {usePoolData} from './usePoolData';\n\nimport {getPriceAtTick} from '../../lib/liquidityUtils';\nimport {wrapPrice} from '../../lib/numberUtils';\n\nexport const usePriceAtTick = (tick?: number, poolAddr?: Address) => {\n const {token0Decimals, token1Decimals} = usePoolData(poolAddr);\n\n const priceBigInt = useMemo(\n () => (tick ? getPriceAtTick(tick) : undefined),\n [tick],\n );\n const price = useMemo(\n () =>\n priceBigInt && token0Decimals && token1Decimals\n ? wrapPrice(priceBigInt, token0Decimals, token1Decimals)\n : undefined,\n [priceBigInt, token0Decimals, token1Decimals],\n );\n return price;\n};\n","import type {Address} from 'viem';\nimport {useCurrentTick} from './useCurrentTick';\nimport {usePriceAtTick} from './usePriceAtTick';\n\nexport const useCurrentPrice = (poolAddr?: Address) => {\n const currentTick = useCurrentTick(poolAddr);\n const currentPrice = usePriceAtTick(currentTick.exact, poolAddr);\n\n return {currentPrice, currentTick};\n};\n","import type {Address} from 'viem';\nimport {useReadContract} from 'wagmi';\nimport {singleOwnerVaultAbi} from '../../abis/singleOwnerVault';\n\nexport const useVaultData = (vaultAddr?: Address) => {\n const {data} = useReadContract({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'pool',\n });\n return {pool: data};\n};\n","import {type Address, encodeFunctionData} 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) => {\n const client = useClient();\n const {timelockLens} = useLens();\n const {pool} = useVaultData(vaultAddr);\n const currentTick = useCurrentTick(pool);\n\n const {writeContractAsync, data: hash, isPending, error} = 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: [tickLower, tickUpper, liquidity, refTick],\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.exact) {\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 refTicks = await timelockLens.read.batchGetRefTick([\n vaultAddr,\n positions.map(position => position.tickLower),\n ]);\n const multicallData = positions.map((p, i) =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'burn',\n args: [p.tickLower, p.tickUpper, p.liquidity, refTicks[i]],\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 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) => {\n const {timelockLens} = useLens();\n\n const {data: blocks = [], ...rest} = useReadContract({\n address: timelockLens?.address,\n abi: lensAbi,\n functionName: 'getAllBlocks',\n args: [vaultAddr!],\n query: {enabled: !!vaultAddr && !!timelockLens},\n });\n return {data: blocks, ...rest};\n};\n","import {encodeFunctionData, erc20Abi, maxUint256, type Address} from 'viem';\nimport {waitForTransactionReceipt} from 'viem/actions';\nimport {\n useWriteContract,\n useWaitForTransactionReceipt,\n useClient,\n useAccount,\n} from 'wagmi';\n\nimport {useVaultData} from './useVaultData';\nimport {useCurrentTick} from '../pool/useCurrentTick';\nimport {usePoolData} from '../pool/usePoolData';\nimport {useLens} from '../useLens';\n\nimport {getErc20, type UniswapMathLens} from '~/lib/contracts';\nimport {singleOwnerVaultAbi} from '~/abis/singleOwnerVault';\n\nexport const batchGetAmountsFromLiquidity = async (\n lens: UniswapMathLens,\n tickLower: number[],\n tickUpper: number[],\n liquidity: bigint[],\n currentTick: number,\n) => {\n const currentTicksArray = new Array(tickLower.length).fill(currentTick);\n\n const amounts = await lens.read.batchGetAmountsForLiquidityTicks([\n currentTicksArray,\n tickLower,\n tickUpper,\n liquidity,\n ]);\n\n let totalAmount0 = 0n;\n let totalAmount1 = 0n;\n\n const amounts0: bigint[] = [];\n const amounts1: bigint[] = [];\n\n for (const scaled of amounts[0]) {\n totalAmount0 += scaled;\n amounts0.push(scaled);\n }\n for (const scaled of amounts[1]) {\n totalAmount1 += scaled;\n amounts1.push(scaled);\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) => {\n const client = useClient();\n const {address} = useAccount();\n const {pool} = useVaultData(vaultAddr);\n const {timelockLens, uniswapLens} = useLens();\n\n const currentTick = useCurrentTick(pool);\n const {token0, token1} = usePoolData(pool);\n\n const {writeContractAsync, data: hash, isPending, error} = useWriteContract();\n\n const {isLoading: isConfirming, isSuccess} = useWaitForTransactionReceipt({\n hash,\n });\n\n const askForApproval = async (params: MintPositionParams[]) => {\n if (!address || !client) throw new Error('Wallet not connected');\n\n if (\n currentTick.exact === undefined ||\n !token0 ||\n !token1 ||\n !vaultAddr ||\n !uniswapLens\n ) {\n throw new Error('Current tick not available');\n }\n const {totalAmount0, totalAmount1} = await batchGetAmountsFromLiquidity(\n uniswapLens,\n params.map(p => p.tickLower),\n params.map(p => p.tickUpper),\n params.map(p => p.liquidity),\n currentTick.exact,\n );\n\n const [allowance0, allowance1] = await Promise.all([\n getErc20(token0, client).read.allowance([address, vaultAddr]),\n getErc20(token1, client).read.allowance([address, vaultAddr]),\n ]);\n const approvalPromises = [];\n\n if (allowance0 <= totalAmount0) {\n const approvalHash = await writeContractAsync({\n address: token0,\n abi: erc20Abi,\n functionName: 'approve',\n args: [vaultAddr, maxUint256],\n });\n approvalPromises.push(\n waitForTransactionReceipt(client, {hash: approvalHash}),\n );\n }\n if (allowance1 <= totalAmount1) {\n const approvalHash1 = await writeContractAsync({\n address: token1,\n abi: erc20Abi,\n functionName: 'approve',\n args: [vaultAddr, maxUint256],\n });\n approvalPromises.push(\n waitForTransactionReceipt(client, {hash: approvalHash1}),\n );\n }\n if (approvalPromises.length > 0) {\n await Promise.all(approvalPromises);\n }\n };\n\n const mint = 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 await askForApproval([{tickLower, tickUpper, liquidity}]);\n const refTick = await timelockLens.read.getRefTick([vaultAddr, tickLower]);\n\n const hash = await writeContractAsync({\n address: vaultAddr,\n abi: singleOwnerVaultAbi,\n functionName: 'mint',\n args: [tickLower, tickUpper, liquidity, refTick],\n });\n await waitForTransactionReceipt(client, {hash});\n return hash;\n };\n\n const mintMultiple = async (positions: MintPositionParams[]) => {\n if (!client) throw new Error('Wallet not connected');\n if (!currentTick.exact) {\n throw new Error('Current tick not available');\n }\n if (positions.length === 0) {\n throw new Error('No positions to mint');\n }\n if (!timelockLens || !vaultAddr) {\n throw new Error('Vault/lens not available');\n }\n if (positions.length === 1) {\n await mint(\n positions[0].tickLower,\n positions[0].tickUpper,\n positions[0].liquidity,\n );\n } else {\n await askForApproval(positions);\n\n const refTicks = await timelockLens.read.batchGetRefTick([\n vaultAddr,\n positions.map(position => position.tickLower),\n ]);\n const multicallData = positions.map((p, i) =>\n encodeFunctionData({\n abi: singleOwnerVaultAbi,\n functionName: 'mint',\n args: [p.tickLower, p.tickUpper, p.liquidity, refTicks[i]],\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 mintMultiple,\n mint,\n hash,\n isPending,\n isConfirming,\n isSuccess,\n error,\n isLoading: isPending || isConfirming,\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';\n\nexport const useVaultTVL = (vaultAddr?: Address) => {\n const {timelockLens} = useLens();\n const {pool} = useVaultData(vaultAddr);\n const {token0Decimals, token1Decimals} = usePoolData(pool);\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 const totalAmount0 =\n data && token0Decimals ? wrapAmount(data[0], token0Decimals) : undefined;\n const totalAmount1 =\n data && token1Decimals ? wrapAmount(data[1], token1Decimals) : undefined;\n const borrowedAmount0 =\n data && token0Decimals ? wrapAmount(data[2], token0Decimals) : undefined;\n const borrowedAmount1 =\n data && token1Decimals ? wrapAmount(data[3], token1Decimals) : undefined;\n const tvl0 =\n data && token0Decimals ? wrapAmount(data[4], token0Decimals) : undefined;\n const tvl1 =\n data && token1Decimals ? wrapAmount(data[5], token1Decimals) : undefined;\n\n const blocksCount = data?.[6];\n\n return {\n tvl0,\n tvl1,\n totalAmount0,\n totalAmount1,\n borrowedAmount0,\n borrowedAmount1,\n blocksCount,\n refetch,\n };\n};\n"],"mappings":"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"}
|