From 1ddf7e7dffef89eb001bd3f1fb645025bd296ef0 Mon Sep 17 00:00:00 2001 From: Matt Fikowski Date: Fri, 12 Sep 2025 14:20:58 -0700 Subject: [PATCH 1/4] Handle null results when generating network configs --- src/scripts/generateNetworkConfigs.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/scripts/generateNetworkConfigs.ts b/src/scripts/generateNetworkConfigs.ts index a700982..c4fdc21 100644 --- a/src/scripts/generateNetworkConfigs.ts +++ b/src/scripts/generateNetworkConfigs.ts @@ -196,17 +196,21 @@ async function main() { // Create a map of address:networkId -> name const tokenNameMap = new Map( - tokenData.filterTokens.results.map((result) => [ - result.token.id, - result.token.name, - ]), + tokenData.filterTokens.results + .filter((result) => result !== null) + .map((result) => [ + result.token.id, + result.token.name, + ]), ); // Create a map of address:networkId -> decimals const tokenDecimalsMap = new Map( - tokenData.filterTokens.results.map((result) => [ - result.token.id, - result.token.decimals, - ]), + tokenData.filterTokens.results + .filter((result) => result !== null) + .map((result) => [ + result.token.id, + result.token.decimals, + ]), ); // Add baseTokenName to each network config From 6b669c838c1253be169d166474c91390e362e08c Mon Sep 17 00:00:00 2001 From: Matt Fikowski Date: Fri, 12 Sep 2025 14:25:33 -0700 Subject: [PATCH 2/4] resolve gql version so it's not mismatched between subgraphs --- bun.lockb | Bin 327330 -> 319226 bytes package.json | 3 +++ 2 files changed, 3 insertions(+) diff --git a/bun.lockb b/bun.lockb index 8b7a440bb3dad140414715bddd0b34b6aa85f350..98d0df90e34c7ce1450088f82af3fbe6621d429f 100755 GIT binary patch literal 319226 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 Date: Fri, 12 Sep 2025 14:27:12 -0700 Subject: [PATCH 3/4] build properly --- src/resources/graphql.schema.json | 612 ++++++++++++++++++++++++-- src/resources/graphql.ts | 101 ++++- src/resources/schema.graphql | 14 +- src/scripts/generateGraphql.ts | 5 +- src/scripts/generateNetworkConfigs.ts | 10 +- src/sdk/generated/fragment-masking.ts | 27 +- src/sdk/generated/gql.ts | 99 ++++- src/sdk/generated/graphql.ts | 103 ++++- 8 files changed, 895 insertions(+), 76 deletions(-) diff --git a/src/resources/graphql.schema.json b/src/resources/graphql.schema.json index 61169f2..9df7612 100644 --- a/src/resources/graphql.schema.json +++ b/src/resources/graphql.schema.json @@ -1,13 +1,16 @@ { "__schema": { "queryType": { - "name": "Query" + "name": "Query", + "kind": "OBJECT" }, "mutationType": { - "name": "Mutation" + "name": "Mutation", + "kind": "OBJECT" }, "subscriptionType": { - "name": "Subscription" + "name": "Subscription", + "kind": "OBJECT" }, "types": [ { @@ -2976,7 +2979,7 @@ }, { "name": "expiresIn", - "description": "Number of seconds until the token expires, defaults to 1 hour (3600)", + "description": "Number of milliseconds until the token expires, defaults to 1 hour (3600000)", "type": { "kind": "SCALAR", "name": "Int", @@ -11944,6 +11947,12 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "ClankerV4", + "description": "Protocol name for Clanker V4.", + "isDeprecated": false, + "deprecationReason": null + }, { "name": "EgoTech", "description": "Protocol name for EgoTech.", @@ -30548,7 +30557,7 @@ }, { "name": "launchpadName", - "description": "The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", + "description": "The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", "type": { "kind": "SCALAR", "name": "String", @@ -30560,7 +30569,7 @@ }, { "name": "launchpadNames", - "description": "A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", + "description": "A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", "type": { "kind": "LIST", "name": null, @@ -30660,7 +30669,7 @@ }, { "name": "launchpadName", - "description": "The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", + "description": "The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", "type": { "kind": "SCALAR", "name": "String", @@ -30672,7 +30681,7 @@ }, { "name": "launchpadNames", - "description": "A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", + "description": "A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", "type": { "kind": "LIST", "name": null, @@ -30854,32 +30863,24 @@ "description": "The contract address for the pair.", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "pairs are no longer used for pricing" }, { "name": "pairId", "description": "The ID for the pair (`pairAddress`:`networkId`).", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "pairs are no longer used for pricing" }, { "name": "quoteToken", @@ -30890,8 +30891,8 @@ "name": "QuoteToken", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "pairs are no longer used for pricing" }, { "name": "statsType", @@ -33745,6 +33746,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "priceNonQuoteToken", + "description": "The non-quote token price in USD.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "quoteToken", "description": "The token of interest within the pair. Can be `token0` or `token1`.", @@ -42604,6 +42621,143 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "getTokenBars", + "description": "Returns bar chart data to track price changes over time.", + "args": [ + { + "name": "countback", + "description": "Guarantees number of bars returned is at most this number. Use `countback: 1500` with `from: 0` for maximum results.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currencyCode", + "description": "The currency to use for the response. Can be `USD` or `TOKEN`. Default is `USD`. Use `currencyCode: TOKEN` for native token pricing.", + "type": { + "kind": "ENUM", + "name": "QuoteCurrency", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "from", + "description": "The unix timestamp for the start of the requested range.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "removeEmptyBars", + "description": "Whether to remove empty bars from the response. This is useful for eliminating gaps in low-activity tokens. Default is `false`.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "removeLeadingNullValues", + "description": "Whether to remove leading null values from the response. Default is `false`. To fetch a token's entire history, set resolution to `1D`, `from` value to `0` and `removeLeadingNullValues` to `true`.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resolution", + "description": "The time frame for each candle. Available options are `1S`, `5S`, `15S`, `30S`, `1`, `5`, `15`, `30`, `60`, `240`, `720`, `1D`, `7D`. Resolutions lower than 1 minute are only updated for the last 24 hours due to the volume of data produced.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statsType", + "description": "The token of interest within the token's top pair. Can be `token0` or `token1`. If omitted, the base token is inferred automatically. You can invert the pair by quoting the other token.", + "type": { + "kind": "ENUM", + "name": "TokenPairStatisticsType", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "symbol", + "description": "The ID of the pair or token (`pairAddress:networkId` or `tokenAddress:networkId`). If a token contract address is provided, the token's top pair is used. For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1` returns WETH's top pair on Ethereum.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": "The unix timestamp for the end of the requested range.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenBarsResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "getTokenEvents", "description": "Returns transactions for a pair.", @@ -46003,7 +46157,7 @@ }, { "name": "onEventsCreated", - "description": "Live-streamed transactions for a token.", + "description": "Live-streamed transactions for a pair.", "args": [ { "name": "address", @@ -48346,6 +48500,366 @@ ], "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "TokenBarsResponse", + "description": "Bar chart data to track price changes over time.", + "isOneOf": null, + "fields": [ + { + "name": "buyVolume", + "description": "The buy volume in USD", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "buyers", + "description": "The number of unique buyers", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "buys", + "description": "The number of buys", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "c", + "description": "The closing price.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "h", + "description": "The high price.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "l", + "description": "The low price.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "liquidity", + "description": "Liquidity in USD", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "o", + "description": "The opening price.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "s", + "description": "The status code for the batch: `ok` for successful data retrieval and `no_data` for empty responses signaling the end of server data.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sellVolume", + "description": "The sell volume in USD", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sellers", + "description": "The number of unique sellers", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sells", + "description": "The number of sells", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "t", + "description": "The timestamp for the bar.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "The token that is being returned", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EnhancedToken", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "traders", + "description": "The number of traders", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactions", + "description": "The number of transactions", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "volume", + "description": "The volume with higher precision.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "volumeNativeToken", + "description": "The volume in the native token for the network", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "TokenBurnEventData", @@ -49971,7 +50485,7 @@ }, { "name": "launchpadName", - "description": "A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", + "description": "A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults.", "type": { "kind": "LIST", "name": null, @@ -53894,7 +54408,7 @@ }, { "name": "tokenBalance", - "description": "The current token balance", + "description": "The token balance in the wallet. This value does not update with every transfer and can be slightly stale. Use tokenBalanceLive for live data.", "args": [], "type": { "kind": "NON_NULL", @@ -53907,6 +54421,30 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "tokenBalanceLive", + "description": "The current token balance in the wallet.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenBalanceLiveUsd", + "description": "The current USD value of the token balance.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -55174,6 +55712,18 @@ "description": null, "isOneOf": null, "fields": [ + { + "name": "isToken0NetworkToken", + "description": "Whether the token is the network token for the Uniswap V4 pool.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "type", "description": null, diff --git a/src/resources/graphql.ts b/src/resources/graphql.ts index 5fb2af8..6880b2c 100644 --- a/src/resources/graphql.ts +++ b/src/resources/graphql.ts @@ -481,7 +481,7 @@ export enum ContractType { export type CreateApiTokensInput = { /** Number of tokens to create, default is 1 */ count?: InputMaybe; - /** Number of seconds until the token expires, defaults to 1 hour (3600) */ + /** Number of milliseconds until the token expires, defaults to 1 hour (3600000) */ expiresIn?: InputMaybe; /** Number of requests allowed per token, represented as a string, default is 5000 */ requestLimit?: InputMaybe; @@ -2017,6 +2017,8 @@ export enum LaunchpadTokenProtocol { BoopFun = 'BoopFun', /** Protocol name for Clanker. */ Clanker = 'Clanker', + /** Protocol name for Clanker V4. */ + ClankerV4 = 'ClankerV4', /** Protocol name for EgoTech. */ EgoTech = 'EgoTech', /** Protocol name for Four.meme. */ @@ -5161,9 +5163,9 @@ export type OnEventsCreatedByMakerInput = { export type OnLaunchpadTokenEventBatchInput = { /** The type of event. */ eventType?: InputMaybe; - /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadName?: InputMaybe; - /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadNames?: InputMaybe>; /** The network ID that the token is deployed on. */ networkId?: InputMaybe; @@ -5179,9 +5181,9 @@ export type OnLaunchpadTokenEventInput = { address?: InputMaybe; /** The type of event. */ eventType?: InputMaybe; - /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadName?: InputMaybe; - /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadNames?: InputMaybe>; /** The network ID that the token is deployed on. */ networkId?: InputMaybe; @@ -5206,11 +5208,20 @@ export type OnTokenBarsUpdatedResponse = { eventSortKey: Scalars['String']['output']; /** The network ID the pair is deployed on. */ networkId: Scalars['Int']['output']; - /** The contract address for the pair. */ - pairAddress: Scalars['String']['output']; - /** The ID for the pair (`pairAddress`:`networkId`). */ - pairId: Scalars['String']['output']; - /** The quote token within the pair. */ + /** + * The contract address for the pair. + * @deprecated pairs are no longer used for pricing + */ + pairAddress?: Maybe; + /** + * The ID for the pair (`pairAddress`:`networkId`). + * @deprecated pairs are no longer used for pricing + */ + pairId?: Maybe; + /** + * The quote token within the pair. + * @deprecated pairs are no longer used for pricing + */ quoteToken?: Maybe; /** The type of statistics used. Can be `Filtered` or `Unfiltered`. */ statsType: TokenPairStatisticsType; @@ -5695,6 +5706,8 @@ export type PairMetadata = { priceChange12?: Maybe; /** The percent price change in the past 24 hours. Decimal format. */ priceChange24?: Maybe; + /** The non-quote token price in USD. */ + priceNonQuoteToken: Scalars['String']['output']; /** The token of interest within the pair. Can be `token0` or `token1`. */ quoteToken?: Maybe; /** The type of statistics returned. Can be `FILTERED` or `UNFILTERED` */ @@ -6780,6 +6793,8 @@ export type Query = { getPrimePools?: Maybe; /** Returns charting metadata for a given pair. Used for implementing a Trading View datafeed. */ getSymbol?: Maybe; + /** Returns bar chart data to track price changes over time. */ + getTokenBars?: Maybe; /** Returns transactions for a pair. */ getTokenEvents?: Maybe; /** Returns a list of token events for a given maker across all pairs. */ @@ -7193,6 +7208,19 @@ export type QueryGetSymbolArgs = { }; +export type QueryGetTokenBarsArgs = { + countback?: InputMaybe; + currencyCode?: InputMaybe; + from: Scalars['Int']['input']; + removeEmptyBars?: InputMaybe; + removeLeadingNullValues?: InputMaybe; + resolution: Scalars['String']['input']; + statsType?: InputMaybe; + symbol: Scalars['String']['input']; + to: Scalars['Int']['input']; +}; + + export type QueryGetTokenEventsArgs = { cursor?: InputMaybe; direction?: InputMaybe; @@ -7655,7 +7683,7 @@ export type Subscription = { onDetailedStatsUpdated?: Maybe; /** Live-streamed event labels for a token. */ onEventLabelCreated?: Maybe; - /** Live-streamed transactions for a token. */ + /** Live-streamed transactions for a pair. */ onEventsCreated?: Maybe; /** Live-streamed transactions for a maker. */ onEventsCreatedByMaker?: Maybe; @@ -8047,6 +8075,47 @@ export enum SymbolType { Token = 'TOKEN' } +/** Bar chart data to track price changes over time. */ +export type TokenBarsResponse = { + __typename?: 'TokenBarsResponse'; + /** The buy volume in USD */ + buyVolume: Array>; + /** The number of unique buyers */ + buyers: Array>; + /** The number of buys */ + buys: Array>; + /** The closing price. */ + c: Array>; + /** The high price. */ + h: Array>; + /** The low price. */ + l: Array>; + /** Liquidity in USD */ + liquidity: Array>; + /** The opening price. */ + o: Array>; + /** The status code for the batch: `ok` for successful data retrieval and `no_data` for empty responses signaling the end of server data. */ + s: Scalars['String']['output']; + /** The sell volume in USD */ + sellVolume: Array>; + /** The number of unique sellers */ + sellers: Array>; + /** The number of sells */ + sells: Array>; + /** The timestamp for the bar. */ + t: Array; + /** The token that is being returned */ + token: EnhancedToken; + /** The number of traders */ + traders: Array>; + /** The number of transactions */ + transactions: Array>; + /** The volume with higher precision. */ + volume?: Maybe>>; + /** The volume in the native token for the network */ + volumeNativeToken?: Maybe>>; +}; + /** Token burn event data. */ export type TokenBurnEventData = { __typename?: 'TokenBurnEventData'; @@ -8324,7 +8393,7 @@ export type TokenFilters = { launchpadMigrated?: InputMaybe; /** The timestamp when the launchpad was migrated */ launchpadMigratedAt?: InputMaybe; - /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadName?: InputMaybe>; /** A list of launchpad protocols. */ launchpadProtocol?: InputMaybe>; @@ -8955,8 +9024,12 @@ export type TokenWalletFilterResult = { tokenAmountSoldAll1y: Scalars['String']['output']; /** Token amount sold all in the past 30 days */ tokenAmountSoldAll30d: Scalars['String']['output']; - /** The current token balance */ + /** The token balance in the wallet. This value does not update with every transfer and can be slightly stale. Use tokenBalanceLive for live data. */ tokenBalance: Scalars['String']['output']; + /** The current token balance in the wallet. */ + tokenBalanceLive?: Maybe; + /** The current USD value of the token balance. */ + tokenBalanceLiveUsd?: Maybe; }; /** A token with metadata. */ @@ -9167,6 +9240,8 @@ export type UnconfirmedSwapEventData = { export type UniswapV4Data = { __typename?: 'UniswapV4Data'; + /** Whether the token is the network token for the Uniswap V4 pool. */ + isToken0NetworkToken?: Maybe; type: Scalars['String']['output']; /** The address of the hook contract for Uniswap V4 pools. */ uniswapV4HookAddress?: Maybe; diff --git a/src/resources/schema.graphql b/src/resources/schema.graphql index 2d3f1e8..97af3f5 100644 --- a/src/resources/schema.graphql +++ b/src/resources/schema.graphql @@ -760,7 +760,7 @@ type Subscription { """The networkId to use when getting all bars per network""" networkId: Int ): OnTokenBarsUpdatedResponse - """Live-streamed transactions for a token.""" + """Live-streamed transactions for a pair.""" onEventsCreated( """The pair contract address.""" address: String @@ -1299,7 +1299,7 @@ input CreateApiTokensInput { count: Int """Number of requests allowed per token, represented as a string, default is 5000""" requestLimit: String - """Number of seconds until the token expires, defaults to 1 hour (3600)""" + """Number of milliseconds until the token expires, defaults to 1 hour (3600000)""" expiresIn: Int } @@ -6195,6 +6195,8 @@ type PairMetadata { statsType: TokenPairStatisticsType! """The quote token price in USD.""" price: String! + """The non-quote token price in USD.""" + priceNonQuoteToken: String! """The percent price change in the past 5 minutes. Decimal format.""" priceChange5m: Float """The percent price change in the past hour. Decimal format.""" @@ -8612,8 +8614,12 @@ type TokenWalletFilterResult { purchasedTokenBalance: String! """The token acquisition cost in USD""" tokenAcquisitionCostUsd: String! - """The current token balance""" + """The token balance in the wallet. This value does not update with every transfer and can be slightly stale. Use tokenBalanceLive for live data.""" tokenBalance: String! + """The current token balance in the wallet.""" + tokenBalanceLive: String + """The current USD value of the token balance.""" + tokenBalanceLiveUsd: String """The token metadata""" token: EnhancedToken! """The scammer score for the wallet.""" @@ -8827,6 +8833,8 @@ type UnconfirmedSwapEventData { type UniswapV4Data { """The address of the hook contract for Uniswap V4 pools.""" uniswapV4HookAddress: String + """Whether the token is the network token for the Uniswap V4 pool.""" + isToken0NetworkToken: Boolean type: String! } diff --git a/src/scripts/generateGraphql.ts b/src/scripts/generateGraphql.ts index 80bb9ce..1dc773f 100644 --- a/src/scripts/generateGraphql.ts +++ b/src/scripts/generateGraphql.ts @@ -50,8 +50,9 @@ export const getLeafType = ( if (type.kind === "UNION") { // Find all the possible types - const possibleTypes = allTypes.find((t) => t.name === type.name) - ?.possibleTypes; + const possibleTypes = allTypes.find( + (t) => t.name === type.name, + )?.possibleTypes; // For each of the possible types, treat it as a sub object with a set of fields const possibleTypeLeaves = possibleTypes diff --git a/src/scripts/generateNetworkConfigs.ts b/src/scripts/generateNetworkConfigs.ts index c4fdc21..750eabb 100644 --- a/src/scripts/generateNetworkConfigs.ts +++ b/src/scripts/generateNetworkConfigs.ts @@ -198,19 +198,13 @@ async function main() { const tokenNameMap = new Map( tokenData.filterTokens.results .filter((result) => result !== null) - .map((result) => [ - result.token.id, - result.token.name, - ]), + .map((result) => [result.token.id, result.token.name]), ); // Create a map of address:networkId -> decimals const tokenDecimalsMap = new Map( tokenData.filterTokens.results .filter((result) => result !== null) - .map((result) => [ - result.token.id, - result.token.decimals, - ]), + .map((result) => [result.token.id, result.token.decimals]), ); // Add baseTokenName to each network config diff --git a/src/sdk/generated/fragment-masking.ts b/src/sdk/generated/fragment-masking.ts index 2ba06f1..aca71b1 100644 --- a/src/sdk/generated/fragment-masking.ts +++ b/src/sdk/generated/fragment-masking.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core'; import { FragmentDefinitionNode } from 'graphql'; import { Incremental } from './graphql'; @@ -19,25 +20,45 @@ export function useFragment( _documentNode: DocumentTypeDecoration, fragmentType: FragmentType> ): TType; +// return nullable if `fragmentType` is undefined +export function useFragment( + _documentNode: DocumentTypeDecoration, + fragmentType: FragmentType> | undefined +): TType | undefined; // return nullable if `fragmentType` is nullable +export function useFragment( + _documentNode: DocumentTypeDecoration, + fragmentType: FragmentType> | null +): TType | null; +// return nullable if `fragmentType` is nullable or undefined export function useFragment( _documentNode: DocumentTypeDecoration, fragmentType: FragmentType> | null | undefined ): TType | null | undefined; // return array of non-nullable if `fragmentType` is array of non-nullable +export function useFragment( + _documentNode: DocumentTypeDecoration, + fragmentType: Array>> +): Array; +// return array of nullable if `fragmentType` is array of nullable +export function useFragment( + _documentNode: DocumentTypeDecoration, + fragmentType: Array>> | null | undefined +): Array | null | undefined; +// return readonly array of non-nullable if `fragmentType` is array of non-nullable export function useFragment( _documentNode: DocumentTypeDecoration, fragmentType: ReadonlyArray>> ): ReadonlyArray; -// return array of nullable if `fragmentType` is array of nullable +// return readonly array of nullable if `fragmentType` is array of nullable export function useFragment( _documentNode: DocumentTypeDecoration, fragmentType: ReadonlyArray>> | null | undefined ): ReadonlyArray | null | undefined; export function useFragment( _documentNode: DocumentTypeDecoration, - fragmentType: FragmentType> | ReadonlyArray>> | null | undefined -): TType | ReadonlyArray | null | undefined { + fragmentType: FragmentType> | Array>> | ReadonlyArray>> | null | undefined +): TType | Array | ReadonlyArray | null | undefined { return fragmentType as any; } diff --git a/src/sdk/generated/gql.ts b/src/sdk/generated/gql.ts index f3954e6..c3afc0d 100644 --- a/src/sdk/generated/gql.ts +++ b/src/sdk/generated/gql.ts @@ -11,8 +11,103 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/ * 3. It does not support dead code elimination, so it will add unused operations. * * Therefore it is highly recommended to use the babel or swc plugin for production. - */ -const documents = { + * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size + */ +type Documents = { + "mutation BackfillWalletAggregates($input: WalletAggregateBackfillInput!) {\n backfillWalletAggregates(input: $input) {\n status\n walletAddress\n }\n}": typeof types.BackfillWalletAggregatesDocument, + "mutation CreateApiTokens($input: CreateApiTokensInput!) {\n createApiTokens(input: $input) {\n expiresTimeString\n id\n remaining\n requestLimit\n token\n }\n}": typeof types.CreateApiTokensDocument, + "mutation CreateWebhooks($input: CreateWebhooksInput!) {\n createWebhooks(input: $input) {\n nftEventWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n nftTokenAddress: tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n priceWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n nftTokenAddress: tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n rawTransactionWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceEventNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceEventTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n tokenPairEventWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceEventNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceEventTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n }\n}": typeof types.CreateWebhooksDocument, + "mutation DeleteApiToken($id: String!) {\n deleteApiToken(id: $id)\n}": typeof types.DeleteApiTokenDocument, + "mutation DeleteWebhooks($input: DeleteWebhooksInput!) {\n deleteWebhooks(input: $input) {\n deletedIds\n }\n}": typeof types.DeleteWebhooksDocument, + "query ApiToken($token: String!) {\n apiToken(token: $token) {\n expiresTimeString\n id\n remaining\n requestLimit\n token\n }\n}": typeof types.ApiTokenDocument, + "query ApiTokens {\n apiTokens {\n expiresTimeString\n id\n remaining\n requestLimit\n token\n }\n}": typeof types.ApiTokensDocument, + "query Balances($input: BalancesInput!) {\n balances(input: $input) {\n cursor\n items {\n address\n balance\n balanceUsd\n firstHeldTimestamp\n networkId\n shiftedBalance\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n tokenAddress\n tokenId\n tokenPriceUsd\n walletId\n }\n }\n}": typeof types.BalancesDocument, + "query ChartUrls($input: ChartInput!) {\n chartUrls(input: $input) {\n pair {\n url\n }\n }\n}": typeof types.ChartUrlsDocument, + "query DetailedWalletStats($input: DetailedWalletStatsInput!) {\n detailedWalletStats(input: $input) {\n botScore\n labels\n lastTransactionAt\n networkBreakdown {\n nativeTokenBalance\n networkId\n statsDay1 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n statsDay30 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n statsWeek1 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n statsYear1 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n }\n scammerScore\n statsDay1 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n statsDay30 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n statsWeek1 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n statsYear1 {\n end\n lastTransactionAt\n networkId\n start\n statsNonCurrency {\n losses\n swaps\n uniqueTokens\n wins\n }\n statsUsd {\n averageProfitUsdPerTrade\n averageSwapAmountUsd\n heldTokenAcquisitionCostUsd\n realizedProfitPercentage\n realizedProfitUsd\n soldTokenAcquisitionCostUsd\n volumeUsd\n volumeUsdAll\n }\n walletAddress\n }\n walletAddress\n }\n}": typeof types.DetailedWalletStatsDocument, + "query FilterExchanges($filters: ExchangeFilters, $limit: Int, $offset: Int, $phrase: String, $rankings: [ExchangeRanking]) {\n filterExchanges(\n filters: $filters\n limit: $limit\n offset: $offset\n phrase: $phrase\n rankings: $rankings\n ) {\n count\n offset\n results {\n dailyActiveUsers\n exchange {\n address\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n monthlyActiveUsers\n txnCount1\n txnCount4\n txnCount12\n txnCount24\n volumeNBT1\n volumeNBT4\n volumeNBT12\n volumeNBT24\n volumeUSD1\n volumeUSD4\n volumeUSD12\n volumeUSD24\n }\n }\n}": typeof types.FilterExchangesDocument, + "query FilterNftCollections($collections: [String], $filters: NftCollectionFilters, $limit: Int, $offset: Int, $phrase: String, $rankings: [NftCollectionRanking]) {\n filterNftCollections(\n collections: $collections\n filters: $filters\n limit: $limit\n offset: $offset\n phrase: $phrase\n rankings: $rankings\n ) {\n count\n offset\n results {\n address\n ercType\n grouping\n id\n imageUrl\n lastEventTimestamp\n name\n networkId\n stats1h {\n endTime\n networkBaseToken {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n nonCurrency {\n mints {\n change\n current\n previous\n }\n sales {\n change\n current\n previous\n }\n tokensSold {\n change\n current\n previous\n }\n transfers {\n change\n current\n previous\n }\n uniqueBuyers {\n change\n current\n previous\n }\n uniqueMinters {\n change\n current\n previous\n }\n uniqueSalesWallets {\n change\n current\n previous\n }\n uniqueSellers {\n change\n current\n previous\n }\n }\n startTime\n usd {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n }\n stats4h {\n endTime\n networkBaseToken {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n nonCurrency {\n mints {\n change\n current\n previous\n }\n sales {\n change\n current\n previous\n }\n tokensSold {\n change\n current\n previous\n }\n transfers {\n change\n current\n previous\n }\n uniqueBuyers {\n change\n current\n previous\n }\n uniqueMinters {\n change\n current\n previous\n }\n uniqueSalesWallets {\n change\n current\n previous\n }\n uniqueSellers {\n change\n current\n previous\n }\n }\n startTime\n usd {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n }\n stats12h {\n endTime\n networkBaseToken {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n nonCurrency {\n mints {\n change\n current\n previous\n }\n sales {\n change\n current\n previous\n }\n tokensSold {\n change\n current\n previous\n }\n transfers {\n change\n current\n previous\n }\n uniqueBuyers {\n change\n current\n previous\n }\n uniqueMinters {\n change\n current\n previous\n }\n uniqueSalesWallets {\n change\n current\n previous\n }\n uniqueSellers {\n change\n current\n previous\n }\n }\n startTime\n usd {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n }\n stats24h {\n endTime\n networkBaseToken {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n nonCurrency {\n mints {\n change\n current\n previous\n }\n sales {\n change\n current\n previous\n }\n tokensSold {\n change\n current\n previous\n }\n transfers {\n change\n current\n previous\n }\n uniqueBuyers {\n change\n current\n previous\n }\n uniqueMinters {\n change\n current\n previous\n }\n uniqueSalesWallets {\n change\n current\n previous\n }\n uniqueSellers {\n change\n current\n previous\n }\n }\n startTime\n usd {\n average {\n change\n current\n previous\n }\n close {\n change\n current\n previous\n }\n highestSale {\n change\n current\n previous\n }\n lowestSale {\n change\n current\n previous\n }\n open {\n change\n current\n previous\n }\n volume {\n change\n current\n previous\n }\n volumeByFillsource {\n change\n current\n fillsource\n previous\n }\n volumePercentByFillsource {\n change\n current\n fillsource\n previous\n }\n }\n }\n symbol\n timestamp\n totalSupply\n }\n }\n}": typeof types.FilterNftCollectionsDocument, + "query FilterNftParallelAssets($filters: ParallelAssetFilters, $limit: Int, $match: ParallelAssetMatchers, $offset: Int, $phrase: String, $rankings: [ParallelAssetRanking]) {\n filterNftParallelAssets(\n filters: $filters\n limit: $limit\n match: $match\n offset: $offset\n phrase: $phrase\n rankings: $rankings\n ) {\n count\n offset\n results {\n address\n description\n gameData {\n attack\n cardType\n cost\n functionText\n health\n parallel\n passiveAbility\n rarity\n subtype\n }\n id\n lastPriceNetworkBaseToken\n lastPriceUsd\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n metadata {\n artist\n class\n expansion\n flavourText\n parallelId\n paraset\n supply\n }\n name\n networkId\n originalImage\n parallelId\n timestamp\n tokenId\n uri\n }\n }\n}": typeof types.FilterNftParallelAssetsDocument, + "query FilterNftPoolCollections($filters: NftPoolCollectionFilters, $limit: Int, $offset: Int, $phrase: String, $rankings: [NftPoolCollectionRanking]) {\n filterNftPoolCollections(\n filters: $filters\n limit: $limit\n offset: $offset\n phrase: $phrase\n rankings: $rankings\n ) {\n count\n page\n results {\n balanceNBT\n balanceUSD\n collectionAddress\n ercType\n exchangeAddress\n expenseNBT24\n expenseNBTAll\n expenseUSD24\n expenseUSDAll\n floorNBT\n floorUSD\n highPriceNBT24\n highPriceNBTAll\n highPriceUSD24\n highPriceUSDAll\n id\n imageUrl\n lowPriceNBT24\n lowPriceNBTAll\n lowPriceUSD24\n lowPriceUSDAll\n name\n networkId\n nftBalanceV2\n nftVolume24V2\n nftVolumeAllV2\n nftsBought24V2\n nftsBoughtAllV2\n nftsSold24V2\n nftsSoldAllV2\n offerNBT\n offerUSD\n poolFeesNBT24\n poolFeesNBTAll\n poolFeesUSD24\n poolFeesUSDAll\n protocolFeesNBT24\n protocolFeesNBTAll\n protocolFeesUSD24\n protocolFeesUSDAll\n revenueNBT24\n revenueNBTAll\n revenueUSD24\n revenueUSDAll\n symbol\n timestamp\n totalSupplyV2\n volumeNBT24\n volumeNBTAll\n volumeUSD24\n volumeUSDAll\n }\n }\n}": typeof types.FilterNftPoolCollectionsDocument, + "query FilterNftPools($filters: NftPoolFilters, $limit: Int, $offset: Int, $phrase: String, $rankings: [NftPoolRanking]) {\n filterNftPools(\n filters: $filters\n limit: $limit\n offset: $offset\n phrase: $phrase\n rankings: $rankings\n ) {\n count\n page\n results {\n acceptedNftTokenIds\n assetRecipientAddress\n balanceNBT\n balanceT\n balanceUSD\n bondingCurveAddress\n collectionAddress\n collectionName\n collectionSymbol\n delta\n exchangeAddress\n expenseNBT24\n expenseNBTAll\n expenseT24\n expenseTAll\n expenseUSD24\n expenseUSDAll\n feeAmount\n id\n networkId\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftBalanceV2\n nftVolume24V2\n nftVolumeAllV2\n nftsBought24V2\n nftsBoughtAllV2\n nftsSold24V2\n nftsSoldAllV2\n offerNBT\n offerT\n offerUSD\n ownerAddress\n poolAddress\n poolFeesNBT24\n poolFeesNBTAll\n poolFeesT24\n poolFeesTAll\n poolFeesUSD24\n poolFeesUSDAll\n poolNftType\n poolType\n poolVariant\n propertyChecker\n protocolFeesNBT24\n protocolFeesNBTAll\n protocolFeesT24\n protocolFeesTAll\n protocolFeesUSD24\n protocolFeesUSDAll\n revenueNBT24\n revenueNBTAll\n revenueT24\n revenueTAll\n revenueUSD24\n revenueUSDAll\n royalties {\n percent\n recipient\n }\n sellNBT\n sellT\n sellUSD\n spotNBT\n spotT\n timestamp\n tokenAddress\n version\n volumeNBT24\n volumeNBTAll\n volumeT24\n volumeTAll\n volumeUSD24\n volumeUSDAll\n }\n }\n}": typeof types.FilterNftPoolsDocument, + "query FilterPairs($filters: PairFilters, $limit: Int, $matchTokens: PairFilterMatchTokens, $offset: Int, $pairs: [String], $phrase: String, $rankings: [PairRanking], $statsType: TokenPairStatisticsType) {\n filterPairs(\n filters: $filters\n limit: $limit\n matchTokens: $matchTokens\n offset: $offset\n pairs: $pairs\n phrase: $phrase\n rankings: $rankings\n statsType: $statsType\n ) {\n count\n offset\n results {\n buyCount1\n buyCount4\n buyCount12\n buyCount24\n buyVolumeUSD1\n buyVolumeUSD4\n buyVolumeUSD12\n buyVolumeUSD24\n createdAt\n exchange {\n address\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n highPrice1\n highPrice4\n highPrice12\n highPrice24\n lastTransaction\n liquidity\n liquidityToken\n lockedLiquidityPercentage\n lowPrice1\n lowPrice4\n lowPrice12\n lowPrice24\n marketCap\n pair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n price\n priceChange1\n priceChange4\n priceChange12\n priceChange24\n priceScale\n quoteToken\n sellCount1\n sellCount4\n sellCount12\n sellCount24\n sellVolumeUSD1\n sellVolumeUSD4\n sellVolumeUSD12\n sellVolumeUSD24\n swapPct1dOldWallet\n swapPct7dOldWallet\n token0 {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1 {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n txnCount1\n txnCount4\n txnCount12\n txnCount24\n uniqueBuys1\n uniqueBuys4\n uniqueBuys12\n uniqueBuys24\n uniqueSells1\n uniqueSells4\n uniqueSells12\n uniqueSells24\n uniqueTransactions1\n uniqueTransactions4\n uniqueTransactions12\n uniqueTransactions24\n volumeChange1\n volumeChange4\n volumeChange12\n volumeChange24\n volumeUSD1\n volumeUSD4\n volumeUSD12\n volumeUSD24\n walletAgeAvg\n walletAgeStd\n }\n }\n}": typeof types.FilterPairsDocument, + "query FilterTokenWallets($input: FilterTokenWalletsInput!) {\n filterTokenWallets(input: $input) {\n count\n offset\n results {\n address\n amountBoughtUsd1d\n amountBoughtUsd1w\n amountBoughtUsd1y\n amountBoughtUsd30d\n amountSoldUsd1d\n amountSoldUsd1w\n amountSoldUsd1y\n amountSoldUsd30d\n amountSoldUsdAll1d\n amountSoldUsdAll1w\n amountSoldUsdAll1y\n amountSoldUsdAll30d\n backfillState\n botScore\n buys1d\n buys1w\n buys1y\n buys30d\n firstTransactionAt\n labels\n lastTransactionAt\n networkId\n purchasedTokenBalance\n realizedProfitPercentage1d\n realizedProfitPercentage1w\n realizedProfitPercentage1y\n realizedProfitPercentage30d\n realizedProfitUsd1d\n realizedProfitUsd1w\n realizedProfitUsd1y\n realizedProfitUsd30d\n scammerScore\n sells1d\n sells1w\n sells1y\n sells30d\n sellsAll1d\n sellsAll1w\n sellsAll1y\n sellsAll30d\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n tokenAcquisitionCostUsd\n tokenAddress\n tokenAmountBought1d\n tokenAmountBought1w\n tokenAmountBought1y\n tokenAmountBought30d\n tokenAmountSold1d\n tokenAmountSold1w\n tokenAmountSold1y\n tokenAmountSold30d\n tokenAmountSoldAll1d\n tokenAmountSoldAll1w\n tokenAmountSoldAll1y\n tokenAmountSoldAll30d\n tokenBalance\n }\n }\n}": typeof types.FilterTokenWalletsDocument, + "query FilterTokens($excludeTokens: [String], $filters: TokenFilters, $limit: Int, $offset: Int, $phrase: String, $rankings: [TokenRanking], $statsType: TokenPairStatisticsType, $tokens: [String]) {\n filterTokens(\n excludeTokens: $excludeTokens\n filters: $filters\n limit: $limit\n offset: $offset\n phrase: $phrase\n rankings: $rankings\n statsType: $statsType\n tokens: $tokens\n ) {\n count\n page\n results {\n buyCount1\n buyCount4\n buyCount5m\n buyCount12\n buyCount24\n buyVolume1\n buyVolume4\n buyVolume5m\n buyVolume12\n buyVolume24\n change1\n change4\n change5m\n change12\n change24\n circulatingMarketCap\n createdAt\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n high1\n high4\n high5m\n high12\n high24\n holders\n isScam\n lastTransaction\n liquidPair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n liquidPairLiquidity\n liquidity\n low1\n low4\n low5m\n low12\n low24\n marketCap\n pair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n priceUSD\n quoteToken\n sellCount1\n sellCount4\n sellCount5m\n sellCount12\n sellCount24\n sellVolume1\n sellVolume4\n sellVolume5m\n sellVolume12\n sellVolume24\n swapPct1dOldWallet\n swapPct7dOldWallet\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n txnCount1\n txnCount4\n txnCount5m\n txnCount12\n txnCount24\n uniqueBuys1\n uniqueBuys4\n uniqueBuys5m\n uniqueBuys12\n uniqueBuys24\n uniqueSells1\n uniqueSells4\n uniqueSells5m\n uniqueSells12\n uniqueSells24\n uniqueTransactions1\n uniqueTransactions4\n uniqueTransactions5m\n uniqueTransactions12\n uniqueTransactions24\n volume1\n volume4\n volume5m\n volume12\n volume24\n volumeChange1\n volumeChange4\n volumeChange5m\n volumeChange12\n volumeChange24\n walletAgeAvg\n walletAgeStd\n }\n }\n}": typeof types.FilterTokensDocument, + "query FilterWallets($input: FilterWalletsInput!) {\n filterWallets(input: $input) {\n count\n offset\n results {\n address\n averageProfitUsdPerTrade1d\n averageProfitUsdPerTrade1w\n averageProfitUsdPerTrade1y\n averageProfitUsdPerTrade30d\n averageSwapAmountUsd1d\n averageSwapAmountUsd1w\n averageSwapAmountUsd1y\n averageSwapAmountUsd30d\n backfillState\n botScore\n firstTransactionAt\n labels\n lastTransactionAt\n nativeTokenBalance\n networkId\n realizedProfitPercentage1d\n realizedProfitPercentage1w\n realizedProfitPercentage1y\n realizedProfitPercentage30d\n realizedProfitUsd1d\n realizedProfitUsd1w\n realizedProfitUsd1y\n realizedProfitUsd30d\n scammerScore\n swaps1d\n swaps1w\n swaps1y\n swaps30d\n swapsAll1d\n swapsAll1w\n swapsAll1y\n swapsAll30d\n uniqueTokens1d\n uniqueTokens1w\n uniqueTokens1y\n uniqueTokens30d\n volumeUsd1d\n volumeUsd1w\n volumeUsd1y\n volumeUsd30d\n volumeUsdAll1d\n volumeUsdAll1w\n volumeUsdAll1y\n volumeUsdAll30d\n winRate1d\n winRate1w\n winRate1y\n winRate30d\n }\n }\n}": typeof types.FilterWalletsDocument, + "query GetBars($countback: Int, $currencyCode: String, $from: Int!, $quoteToken: QuoteToken, $removeEmptyBars: Boolean, $removeLeadingNullValues: Boolean, $resolution: String!, $statsType: TokenPairStatisticsType, $symbol: String!, $symbolType: SymbolType, $to: Int!) {\n getBars(\n countback: $countback\n currencyCode: $currencyCode\n from: $from\n quoteToken: $quoteToken\n removeEmptyBars: $removeEmptyBars\n removeLeadingNullValues: $removeLeadingNullValues\n resolution: $resolution\n statsType: $statsType\n symbol: $symbol\n symbolType: $symbolType\n to: $to\n ) {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n pair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n s\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n volume\n volumeNativeToken\n }\n}": typeof types.GetBarsDocument, + "query GetCommunityNotes($input: CommunityNotesInput) {\n getCommunityNotes(input: $input) {\n count\n cursor\n items {\n address\n contractType\n currentContract {\n ... on EnhancedNftContract {\n address\n description\n ercType\n id\n image\n labels {\n createdAt\n subType\n type\n }\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n totalSupply\n }\n ... on EnhancedToken {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n currentData\n id\n moderatedAt\n networkId\n previousData\n proposalData\n proposalNum\n proposalType\n proposedAt\n sortKey\n status\n }\n }\n}": typeof types.GetCommunityNotesDocument, + "query GetDetailedNftStats($bucketCount: Int, $collectionAddress: String!, $durations: [DetailedNftStatsDuration], $grouping: String, $networkId: Int!, $timestamp: Int) {\n getDetailedNftStats(\n bucketCount: $bucketCount\n collectionAddress: $collectionAddress\n durations: $durations\n grouping: $grouping\n networkId: $networkId\n timestamp: $timestamp\n ) {\n collectionAddress\n grouping\n networkId\n stats_day1 {\n duration\n end\n start\n statsNetworkBaseToken {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsNonCurrency {\n mints {\n buckets\n change\n currentValue\n previousValue\n }\n sales {\n buckets\n change\n currentValue\n previousValue\n }\n tokensSold {\n buckets\n change\n currentValue\n previousValue\n }\n transfers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueBuyers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueMinters {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSalesWallets {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSellers {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_day30 {\n duration\n end\n start\n statsNetworkBaseToken {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsNonCurrency {\n mints {\n buckets\n change\n currentValue\n previousValue\n }\n sales {\n buckets\n change\n currentValue\n previousValue\n }\n tokensSold {\n buckets\n change\n currentValue\n previousValue\n }\n transfers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueBuyers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueMinters {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSalesWallets {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSellers {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour1 {\n duration\n end\n start\n statsNetworkBaseToken {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsNonCurrency {\n mints {\n buckets\n change\n currentValue\n previousValue\n }\n sales {\n buckets\n change\n currentValue\n previousValue\n }\n tokensSold {\n buckets\n change\n currentValue\n previousValue\n }\n transfers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueBuyers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueMinters {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSalesWallets {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSellers {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour4 {\n duration\n end\n start\n statsNetworkBaseToken {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsNonCurrency {\n mints {\n buckets\n change\n currentValue\n previousValue\n }\n sales {\n buckets\n change\n currentValue\n previousValue\n }\n tokensSold {\n buckets\n change\n currentValue\n previousValue\n }\n transfers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueBuyers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueMinters {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSalesWallets {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSellers {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour12 {\n duration\n end\n start\n statsNetworkBaseToken {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsNonCurrency {\n mints {\n buckets\n change\n currentValue\n previousValue\n }\n sales {\n buckets\n change\n currentValue\n previousValue\n }\n tokensSold {\n buckets\n change\n currentValue\n previousValue\n }\n transfers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueBuyers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueMinters {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSalesWallets {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSellers {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_week1 {\n duration\n end\n start\n statsNetworkBaseToken {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsNonCurrency {\n mints {\n buckets\n change\n currentValue\n previousValue\n }\n sales {\n buckets\n change\n currentValue\n previousValue\n }\n tokensSold {\n buckets\n change\n currentValue\n previousValue\n }\n transfers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueBuyers {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueMinters {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSalesWallets {\n buckets\n change\n currentValue\n previousValue\n }\n uniqueSellers {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n average {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highestSale {\n buckets\n change\n currentValue\n previousValue\n }\n lowestSale {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n }\n}": typeof types.GetDetailedNftStatsDocument, + "query GetDetailedPairStats($bucketCount: Int, $durations: [DetailedPairStatsDuration], $networkId: Int!, $pairAddress: String!, $statsType: TokenPairStatisticsType, $timestamp: Int, $tokenOfInterest: TokenOfInterest) {\n getDetailedPairStats(\n bucketCount: $bucketCount\n durations: $durations\n networkId: $networkId\n pairAddress: $pairAddress\n statsType: $statsType\n timestamp: $timestamp\n tokenOfInterest: $tokenOfInterest\n ) {\n bucketCount\n lastTransaction\n networkId\n pair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n pairAddress\n queryTimestamp\n statsType\n stats_day1 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_day30 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour1 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour4 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour12 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_min5 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_min15 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_week1 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n tokenOfInterest\n }\n}": typeof types.GetDetailedPairStatsDocument, + "query GetDetailedPairsStats($input: [GetDetailedPairsStatsInput!]!) {\n getDetailedPairsStats(input: $input) {\n bucketCount\n lastTransaction\n networkId\n pair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n pairAddress\n queryTimestamp\n statsType\n stats_day1 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_day30 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour1 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour4 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_hour12 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_min5 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_min15 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n stats_week1 {\n duration\n end\n start\n statsNonCurrency {\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n }\n statsUsd {\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n close {\n buckets\n change\n currentValue\n previousValue\n }\n highest {\n buckets\n change\n currentValue\n previousValue\n }\n liquidity {\n buckets\n change\n currentValue\n previousValue\n }\n lowest {\n buckets\n change\n currentValue\n previousValue\n }\n open {\n buckets\n change\n currentValue\n previousValue\n }\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n }\n timestamps {\n end\n start\n }\n }\n tokenOfInterest\n }\n}": typeof types.GetDetailedPairsStatsDocument, + "query GetEventLabels($cursor: String, $direction: RankingDirection, $id: String!, $limit: Int) {\n getEventLabels(cursor: $cursor, direction: $direction, id: $id, limit: $limit) {\n cursor\n items {\n data {\n ... on FrontRunLabelData {\n index\n token0DrainedAmountFrontRun: token0DrainedAmount\n token1DrainedAmountFrontRun: token1DrainedAmount\n }\n ... on SandwichedLabelData {\n token0DrainedAmount\n token1DrainedAmount\n }\n }\n id\n label\n logIndex\n networkId\n timestamp\n transactionHash\n transactionIndex\n }\n }\n}": typeof types.GetEventLabelsDocument, + "query GetExchanges($showNameless: Boolean) {\n getExchanges(showNameless: $showNameless) {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n}": typeof types.GetExchangesDocument, + "query GetNetworkStats($exchangeAddress: String, $networkId: Int!) {\n getNetworkStats(exchangeAddress: $exchangeAddress, networkId: $networkId) {\n liquidity\n transactions1\n transactions4\n transactions5m\n transactions12\n transactions24\n volume1\n volume4\n volume5m\n volume12\n volume24\n volumeChange1\n volumeChange4\n volumeChange5m\n volumeChange12\n volumeChange24\n }\n}": typeof types.GetNetworkStatsDocument, + "query GetNetworkStatus($networkIds: [Int!]!) {\n getNetworkStatus(networkIds: $networkIds) {\n lastProcessedBlock\n lastProcessedTimestamp\n networkId\n networkName\n }\n}": typeof types.GetNetworkStatusDocument, + "query GetNetworks {\n getNetworks {\n id\n name\n networkShortName\n }\n}": typeof types.GetNetworksDocument, + "query GetNftAssets($address: String!, $cursor: String, $fetchMissingAssets: Boolean, $limit: Int, $networkId: Int!, $tokenIds: [String]) {\n getNftAssets(\n address: $address\n cursor: $cursor\n fetchMissingAssets: $fetchMissingAssets\n limit: $limit\n networkId: $networkId\n tokenIds: $tokenIds\n ) {\n cursor\n itemErrors {\n address\n id\n message\n networkId\n status\n tokenId\n }\n items {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n }\n}": typeof types.GetNftAssetsDocument, + "query GetNftCollectionMetadata($address: String, $collectionId: String, $networkId: Int) {\n getNftCollectionMetadata(\n address: $address\n collectionId: $collectionId\n networkId: $networkId\n ) {\n contract {\n address\n description\n ercType\n id\n image\n name\n networkId\n symbol\n totalSupply\n }\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n stats {\n networkBaseTokenPriceStats {\n average\n averageChange\n ceiling\n ceilingChange\n floor\n floorChange\n volume\n volumeByFillsource {\n amount\n change\n fillsource\n }\n volumeChange\n volumePercentByFillsource {\n amount\n change\n fillsource\n }\n }\n tradeCount\n tradeCountChange\n usdPriceStats {\n average\n averageChange\n ceiling\n ceilingChange\n floor\n floorChange\n volume\n volumeByFillsource {\n amount\n change\n fillsource\n }\n volumeChange\n volumePercentByFillsource {\n amount\n change\n fillsource\n }\n }\n window\n }\n }\n}": typeof types.GetNftCollectionMetadataDocument, + "query GetNftContracts($contracts: [NftContractInput]) {\n getNftContracts(contracts: $contracts) {\n address\n description\n ercType\n id\n image\n labels {\n createdAt\n subType\n type\n }\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n totalSupply\n }\n}": typeof types.GetNftContractsDocument, + "query GetNftEvents($address: String, $cursor: String, $exchangeAddress: String, $includeTransfers: Boolean, $limit: Int, $networkId: Int!, $poolAddress: String, $timestamp: EventQueryTimestampInput, $tokenId: String) {\n getNftEvents(\n address: $address\n cursor: $cursor\n exchangeAddress: $exchangeAddress\n includeTransfers: $includeTransfers\n limit: $limit\n networkId: $networkId\n poolAddress: $poolAddress\n timestamp: $timestamp\n tokenId: $tokenId\n ) {\n cursor\n items {\n aggregatorAddress\n blockNumber\n contractAddress\n eventType\n exchangeAddress\n fillSource\n id\n individualPriceNetworkBaseToken\n individualPriceUsd\n individualTradePrice\n logIndex\n maker\n networkId\n numberOfTokens\n orderDirection\n paymentTokenAddress\n poolAddress\n priceError\n sortKey\n taker\n timestamp\n tokenId\n totalPriceNetworkBaseToken\n totalPriceUsd\n totalTradePrice\n tradeOffer {\n ... on NftEventNftTradeItem {\n address\n amount\n recipient\n tokenId\n type\n }\n ... on NftEventTokenTradeItem {\n address\n amount\n individualPriceNetworkBaseToken\n individualPriceUsd\n individualTradePrice\n isPrice\n priceError\n recipient\n totalPriceNetworkBaseToken\n totalPriceUsd\n totalTradePrice\n type\n }\n }\n tradeReceived {\n ... on NftEventNftTradeItem {\n address\n amount\n recipient\n tokenId\n type\n }\n ... on NftEventTokenTradeItem {\n address\n amount\n individualPriceNetworkBaseToken\n individualPriceUsd\n individualTradePrice\n isPrice\n priceError\n recipient\n totalPriceNetworkBaseToken\n totalPriceUsd\n totalTradePrice\n type\n }\n }\n transactionHash\n transactionIndex\n }\n }\n}": typeof types.GetNftEventsDocument, + "query GetNftPool($address: String!, $networkId: Int!) {\n getNftPool(address: $address, networkId: $networkId) {\n acceptedNftTokenIds\n assetRecipientAddress\n balanceNBT\n balanceT\n bondingCurveAddress\n bondingCurveType\n collectionAddress\n collectionName\n collectionSymbol\n delta\n exchangeAddress\n fee\n floorNBT\n floorT\n networkId\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftBalanceV2\n nftVolumeAllTimeV2\n offerNBT\n offerT\n owner\n poolAddress\n poolFeesAllTimeNBT\n poolFeesAllTimeT\n poolId\n poolNftType\n poolType\n poolVariant\n propertyChecker\n royalties {\n percent\n recipient\n }\n spotPriceNBT\n spotPriceT\n tokenAddress\n version\n volumeAllTimeNBT\n volumeAllTimeT\n }\n}": typeof types.GetNftPoolDocument, + "query GetNftPoolCollection($collectionAddress: String!, $exchangeAddress: String!, $networkId: Int!) {\n getNftPoolCollection(\n collectionAddress: $collectionAddress\n exchangeAddress: $exchangeAddress\n networkId: $networkId\n ) {\n balanceNBT\n collectionAddress\n collectionId\n collectionSymbol\n exchangeAddress\n exchangeId\n floorNBT\n image\n name\n networkId\n nftBalanceV2\n nftVolumeAllTimeV2\n offerNBT\n poolFeesNBTAll\n poolFeesUSDAll\n protocolFeesNBTAll\n protocolFeesUSDAll\n royaltiesNBTAllEstimate\n royaltiesUSDAllEstimate\n volumeAllTimeNBT\n volumeAllTimeUSD\n }\n}": typeof types.GetNftPoolCollectionDocument, + "query GetNftPoolCollectionsByExchange($cursor: String, $exchangeAddress: String!, $limit: Int, $networkId: Int!) {\n getNftPoolCollectionsByExchange(\n cursor: $cursor\n exchangeAddress: $exchangeAddress\n limit: $limit\n networkId: $networkId\n ) {\n cursor\n items {\n balanceNBT\n collectionAddress\n collectionId\n collectionSymbol\n exchangeAddress\n exchangeId\n floorNBT\n image\n name\n networkId\n nftBalanceV2\n nftVolumeAllTimeV2\n offerNBT\n poolFeesNBTAll\n poolFeesUSDAll\n protocolFeesNBTAll\n protocolFeesUSDAll\n royaltiesNBTAllEstimate\n royaltiesUSDAllEstimate\n volumeAllTimeNBT\n volumeAllTimeUSD\n }\n }\n}": typeof types.GetNftPoolCollectionsByExchangeDocument, + "query GetNftPoolEvents($collectionAddress: String, $cursor: String, $eventTypes: [NftPoolEventType!], $exchangeAddress: String, $limit: Int, $networkId: Int!, $poolAddress: String, $timestamp: EventQueryTimestampInput) {\n getNftPoolEvents(\n collectionAddress: $collectionAddress\n cursor: $cursor\n eventTypes: $eventTypes\n exchangeAddress: $exchangeAddress\n limit: $limit\n networkId: $networkId\n poolAddress: $poolAddress\n timestamp: $timestamp\n ) {\n cursor\n items {\n blockHash\n blockNumber\n collectionAddress\n collectionId\n data {\n ... on NewPoolEventData {\n assetRecipientAddress\n bondingCurveAddress\n bondingCurveType\n buyPriceT\n collectionAddress\n createdAt\n delta\n feeAmountT\n nbtRatio\n networkId\n nftTokenBalance\n ownerAddress\n poolAddress\n sellPriceT\n startPriceT\n tokenAddress\n tokenBalanceT\n type\n usdRatio\n }\n ... on NewPoolEventDataV2 {\n assetRecipientAddress\n bondingCurveAddress\n bondingCurveType\n buyPriceT\n collectionAddress\n createdAt\n delta\n feeAmountT\n nbtRatio\n networkId\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftTokenIds\n nftTokenQuantities\n ownerAddress\n poolAddress\n poolNftType\n propertyChecker\n royalties {\n percent\n recipient\n }\n sellPriceT\n startPriceT\n tokenAddress\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolAssetRecipientUpdateEventData {\n newAssetRecipient\n type\n }\n ... on NftPoolDeltaUpdateEventData {\n newDelta\n type\n }\n ... on NftPoolFeeUpdateEventData {\n nbtRatio\n newFeeT\n type\n usdRatio\n }\n ... on NftPoolNftDepositEventData {\n nftTokenBalance\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolNftDepositEventDataV2 {\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftTokenAmounts\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolNftWithdrawalEventData {\n nftTokenBalance\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolNftWithdrawalEventDataV2 {\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftTokenAmounts\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolOwnershipTransferredEventDataV2 {\n newOwner\n type\n }\n ... on NftPoolSpotPriceUpdateEventData {\n nbtRatio\n newBuyPriceT\n newSellPriceT\n newSpotPriceT\n type\n usdRatio\n }\n ... on NftPoolSpotPriceUpdateEventDataV2 {\n nbtRatio\n newBuyPriceT\n newSellPriceT\n newSpotPriceT\n type\n usdRatio\n }\n ... on NftPoolTokenDepositEventData {\n amountT\n nbtRatio\n nftTokenBalance\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolTokenDepositEventDataV2 {\n amountT\n nbtRatio\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolTokenWithdrawalEventData {\n amountT\n nbtRatio\n nftTokenBalance\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolTokenWithdrawalEventDataV2 {\n amountT\n nbtRatio\n tokenBalanceT\n type\n usdRatio\n }\n ... on SwapNftInPoolEventData {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftTokenBalance\n nftsTransfered {\n amountT\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n ... on SwapNftInPoolEventDataV2 {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftsTransfered {\n amountT\n nftQuantity\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n ... on SwapNftOutPoolEventData {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftTokenBalance\n nftsTransfered {\n amountT\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n ... on SwapNftOutPoolEventDataV2 {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftsTransfered {\n amountT\n nftQuantity\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n }\n eventType\n exchangeAddress\n id\n logIndex\n maker\n networkId\n poolAddress\n poolType\n timestamp\n tokenAddress\n transactionHash\n transactionIndex\n }\n }\n}": typeof types.GetNftPoolEventsDocument, + "query GetNftPoolStats($collectionAddress: String!, $endTime: Int!, $exchangeAddress: String!, $networkId: Int!, $poolAddress: String, $startTime: Int!) {\n getNftPoolStats(\n collectionAddress: $collectionAddress\n endTime: $endTime\n exchangeAddress: $exchangeAddress\n networkId: $networkId\n poolAddress: $poolAddress\n startTime: $startTime\n ) {\n closeBalanceNBT\n closeNftBalanceV2\n collectionAddress\n endTime\n exchangeAddress\n expenseNBT\n highFloorNBT\n highOfferNBT\n lowFloorNBT\n lowOfferNBT\n networkId\n nftVolumeV2\n nftsBoughtV2\n nftsSoldV2\n openBalanceNBT\n openNftBalanceV2\n poolAddress\n poolFeesNBT\n protocolFeesNBT\n revenueNBT\n startTime\n volumeNBT\n }\n}": typeof types.GetNftPoolStatsDocument, + "query GetNftPoolsByCollectionAndExchange($collectionAddress: String!, $cursor: String, $exchangeAddress: String!, $limit: Int, $networkId: Int!) {\n getNftPoolsByCollectionAndExchange(\n collectionAddress: $collectionAddress\n cursor: $cursor\n exchangeAddress: $exchangeAddress\n limit: $limit\n networkId: $networkId\n ) {\n cursor\n items {\n acceptedNftTokenIds\n assetRecipientAddress\n balanceNBT\n balanceT\n bondingCurveAddress\n bondingCurveType\n collectionAddress\n collectionName\n collectionSymbol\n delta\n exchangeAddress\n fee\n floorNBT\n floorT\n networkId\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftBalanceV2\n nftVolumeAllTimeV2\n offerNBT\n offerT\n owner\n poolAddress\n poolFeesAllTimeNBT\n poolFeesAllTimeT\n poolId\n poolNftType\n poolType\n poolVariant\n propertyChecker\n royalties {\n percent\n recipient\n }\n spotPriceNBT\n spotPriceT\n tokenAddress\n version\n volumeAllTimeNBT\n volumeAllTimeT\n }\n }\n}": typeof types.GetNftPoolsByCollectionAndExchangeDocument, + "query GetNftPoolsByOwner($cursor: String, $exchangeAddress: String, $limit: Int, $networkId: Int!, $ownerAddress: String!) {\n getNftPoolsByOwner(\n cursor: $cursor\n exchangeAddress: $exchangeAddress\n limit: $limit\n networkId: $networkId\n ownerAddress: $ownerAddress\n ) {\n cursor\n items {\n acceptedNftTokenIds\n assetRecipientAddress\n balanceNBT\n balanceT\n bondingCurveAddress\n bondingCurveType\n collectionAddress\n collectionName\n collectionSymbol\n delta\n exchangeAddress\n fee\n floorNBT\n floorT\n networkId\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftBalanceV2\n nftVolumeAllTimeV2\n offerNBT\n offerT\n owner\n poolAddress\n poolFeesAllTimeNBT\n poolFeesAllTimeT\n poolId\n poolNftType\n poolType\n poolVariant\n propertyChecker\n royalties {\n percent\n recipient\n }\n spotPriceNBT\n spotPriceT\n tokenAddress\n version\n volumeAllTimeNBT\n volumeAllTimeT\n }\n }\n}": typeof types.GetNftPoolsByOwnerDocument, + "query GetParallelCardChanges($cursor: String, $limit: Int, $timestamp: ParallelCardChangeQueryTimestampInput, $tokenId: String) {\n getParallelCardChanges(\n cursor: $cursor\n limit: $limit\n timestamp: $timestamp\n tokenId: $tokenId\n ) {\n cursor\n items {\n diff {\n new {\n artist\n attack\n cardType\n class\n cost\n expansion\n flavourText\n functionText\n health\n parallel\n parallelId\n paraset\n passiveAbility\n rarity\n subtype\n supply\n }\n old {\n artist\n attack\n cardType\n class\n cost\n expansion\n flavourText\n functionText\n health\n parallel\n parallelId\n paraset\n passiveAbility\n rarity\n subtype\n supply\n }\n }\n timestamp\n tokenId\n }\n }\n}": typeof types.GetParallelCardChangesDocument, + "query GetPrimePoolAssets($cursor: String, $limit: Int, $networkId: Int!, $poolContractAddress: String, $poolId: String, $walletAddress: String) {\n getPrimePoolAssets(\n cursor: $cursor\n limit: $limit\n networkId: $networkId\n poolContractAddress: $poolContractAddress\n poolId: $poolId\n walletAddress: $walletAddress\n ) {\n cursor\n items {\n amount\n ethRewardDebt\n from\n fromHashKey\n fromSortKey\n id\n networkId\n poolContractAddress\n poolId\n primeRewardDebt\n sortKey\n }\n }\n}": typeof types.GetPrimePoolAssetsDocument, + "query GetPrimePoolEvents($cursor: String, $eventTypes: [PrimePoolEventType], $limit: Int, $networkId: Int!, $poolContractAddress: String, $poolId: String, $walletAddress: String) {\n getPrimePoolEvents(\n cursor: $cursor\n eventTypes: $eventTypes\n limit: $limit\n networkId: $networkId\n poolContractAddress: $poolContractAddress\n poolId: $poolId\n walletAddress: $walletAddress\n ) {\n cursor\n items {\n blockHash\n blockNumber\n data {\n ... on PrimePoolCacheData {\n eventAmount\n totalSupply\n type\n user\n userCachedAmount\n userEthRewardDebt\n userPrimeRewardDebt\n }\n ... on PrimePoolCachingPausedData {\n cachingPaused\n type\n }\n ... on PrimePoolClaimEthData {\n currency\n ethClaimed\n eventAmount\n type\n user\n userEthRewardDebt\n }\n ... on PrimePoolClaimPrimeData {\n currency\n eventAmount\n type\n user\n userPrimeRewardDebt\n }\n ... on PrimePoolEmergencyWithdrawData {\n eventAmount\n totalSupply\n type\n user\n userCachedAmount\n userEthRewardDebt\n userPrimeRewardDebt\n }\n ... on PrimePoolEndTimestampUpdatedEthData {\n currency\n ethEndTimestamp\n ethPerSecond\n ethStartTimestamp\n type\n }\n ... on PrimePoolEndTimestampUpdatedPrimeData {\n currency\n primeEndTimestamp\n primePerSecond\n primeStartTimestamp\n type\n }\n ... on PrimePoolEthRewardsAddedData {\n amount\n totalRewards\n type\n }\n ... on PrimePoolEthRewardsSetData {\n amount\n totalRewards\n type\n }\n ... on PrimePoolLogPoolAdditionData {\n tokenIds\n type\n }\n ... on PrimePoolLogPoolSetAllocPointData {\n allocPoint\n currency\n totalAllocPoint\n type\n }\n ... on PrimePoolLogSetPerSecondData {\n amount\n currency\n endTimestamp\n ethAmountPerSecond\n primeAmountPerSecond\n startTimestamp\n type\n }\n ... on PrimePoolLogUpdatePoolData {\n accPerShare\n currency\n ethAmount\n lastRewardTimestamp\n primeAmount\n supply\n totalSupply\n type\n }\n ... on PrimePoolRewardDecreaseData {\n currency\n eventAmount\n type\n updatedAmount\n }\n ... on PrimePoolRewardIncreaseData {\n currency\n eventAmount\n type\n updatedAmount\n }\n ... on PrimePoolTimeCachePeriodUpdateData {\n currency\n timedCachePeriod\n type\n }\n ... on PrimePoolWithdrawData {\n eventAmount\n totalSupply\n type\n user\n userCachedAmount\n userEthRewardDebt\n userPrimeRewardDebt\n }\n }\n eventType\n from\n fromHashKey\n id\n logIndex\n networkId\n poolContractAddress\n poolId\n poolType\n sortKey\n timestamp\n transactionHash\n transactionIndex\n }\n }\n}": typeof types.GetPrimePoolEventsDocument, + "query GetPrimePools($address: String!, $cursor: String, $limit: Int, $networkId: Int!, $poolIds: [String]) {\n getPrimePools(\n address: $address\n cursor: $cursor\n limit: $limit\n networkId: $networkId\n poolIds: $poolIds\n ) {\n cursor\n items {\n calcData {\n poolAccumulatedEth\n poolAccumulatedPrime\n poolEthAmount\n poolEthPerDay\n poolEthPerSecond\n poolPrimeAmount\n poolPrimePerDay\n poolPrimePerSecond\n shareAccumulatedEth\n shareAccumulatedPrime\n shareEthPerDay\n shareEthPerSecond\n sharePrimePerDay\n sharePrimePerSecond\n }\n chainData {\n cachingPaused\n ethAllocPoint\n ethClaimed\n ethEndTimestamp\n ethLastRewardTimestamp\n ethReward\n ethStartTimestamp\n ethTimedCachePeriod\n ethTotalAllocPoint\n primeAllocPoint\n primeEndTimestamp\n primeLastRewardTimestamp\n primeStartTimestamp\n primeTotalAllocPoint\n }\n createdAt\n discoveryBlockNumber\n discoveryTransactionHash\n id\n networkId\n nftContractAddress\n poolContractAddress\n poolId\n poolType\n tokenIds\n totalSupply\n }\n }\n}": typeof types.GetPrimePoolsDocument, + "query GetSymbol($currencyCode: String, $symbol: String!) {\n getSymbol(currencyCode: $currencyCode, symbol: $symbol) {\n currency_code\n description\n name\n original_currency_code\n pricescale\n supported_resolutions\n ticker\n }\n}": typeof types.GetSymbolDocument, + "query GetTokenEvents($cursor: String, $direction: RankingDirection, $limit: Int, $query: EventsQueryInput!) {\n getTokenEvents(\n cursor: $cursor\n direction: $direction\n limit: $limit\n query: $query\n ) {\n cursor\n items {\n address\n baseTokenPrice\n blockHash\n blockNumber\n data {\n ... on BurnEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on MintEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on PoolBalanceChangedEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n liquidity0\n liquidity1\n protocolFeeAmount0\n protocolFeeAmount1\n sender\n token0\n token1\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n eventDisplayType\n eventType\n id\n labels {\n sandwich {\n label\n sandwichType\n token0DrainedAmount\n token1DrainedAmount\n }\n washtrade {\n label\n }\n }\n liquidityToken\n logIndex\n maker\n networkId\n quoteToken\n timestamp\n token0Address\n token0PoolValueUsd\n token0SwapValueUsd\n token0ValueBase\n token1Address\n token1PoolValueUsd\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n walletAge\n walletLabels\n }\n }\n}": typeof types.GetTokenEventsDocument, + "query GetTokenEventsForMaker($cursor: String, $direction: RankingDirection, $limit: Int, $query: MakerEventsQueryInput!) {\n getTokenEventsForMaker(\n cursor: $cursor\n direction: $direction\n limit: $limit\n query: $query\n ) {\n cursor\n items {\n address\n baseTokenPrice\n blockHash\n blockNumber\n data {\n ... on BurnEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on MintEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on PoolBalanceChangedEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n liquidity0\n liquidity1\n protocolFeeAmount0\n protocolFeeAmount1\n sender\n token0\n token1\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n eventDisplayType\n eventType\n id\n labels {\n sandwich {\n label\n sandwichType\n token0DrainedAmount\n token1DrainedAmount\n }\n washtrade {\n label\n }\n }\n liquidityToken\n logIndex\n maker\n networkId\n quoteToken\n timestamp\n token0Address\n token0PoolValueUsd\n token0SwapValueUsd\n token0ValueBase\n token1Address\n token1PoolValueUsd\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n walletAge\n walletLabels\n }\n }\n}": typeof types.GetTokenEventsForMakerDocument, + "query GetTokenPrices($inputs: [GetPriceInput]) {\n getTokenPrices(inputs: $inputs) {\n address\n confidence\n networkId\n poolAddress\n priceUsd\n timestamp\n }\n}": typeof types.GetTokenPricesDocument, + "query GetWebhooks($bucketId: String, $bucketSortkey: String, $cursor: String, $limit: Int, $webhookId: String) {\n getWebhooks(\n bucketId: $bucketId\n bucketSortkey: $bucketSortkey\n cursor: $cursor\n limit: $limit\n webhookId: $webhookId\n ) {\n cursor\n items {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n }\n}": typeof types.GetWebhooksDocument, + "query Holders($input: HoldersInput!) {\n holders(input: $input) {\n count\n cursor\n items {\n address\n balance\n balanceUsd\n firstHeldTimestamp\n networkId\n shiftedBalance\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n tokenAddress\n tokenId\n tokenPriceUsd\n walletId\n }\n status\n top10HoldersPercent\n }\n}": typeof types.HoldersDocument, + "query LiquidityLocks($cursor: String, $networkId: Int!, $pairAddress: String, $tokenAddress: String) {\n liquidityLocks(\n cursor: $cursor\n networkId: $networkId\n pairAddress: $pairAddress\n tokenAddress: $tokenAddress\n ) {\n cursor\n items {\n createdAt\n initialAmountToken0\n initialAmountToken1\n liquidityAmount\n liquidityNftData {\n nftPositionManagerAddress\n nftTokenId\n }\n liquidityProtocolV2\n lockProtocol\n lockerAddress\n networkId\n ownerAddress\n pairAddress\n unlockAt\n }\n }\n}": typeof types.LiquidityLocksDocument, + "query LiquidityMetadata($networkId: Int!, $pairAddress: String!) {\n liquidityMetadata(networkId: $networkId, pairAddress: $pairAddress) {\n liquidity {\n active\n inactive\n }\n lockedLiquidity {\n active\n inactive\n lockBreakdown {\n active\n inactive\n lockProtocol\n }\n }\n }\n}": typeof types.LiquidityMetadataDocument, + "query LiquidityMetadataByToken($networkId: Int!, $tokenAddress: String!) {\n liquidityMetadataByToken(networkId: $networkId, tokenAddress: $tokenAddress) {\n lockBreakdown {\n amountLockedTokens\n amountLockedTokensShifted\n amountLockedUsd\n lockProtocol\n }\n lockedLiquidityPercentage\n lockedLiquidityUsd\n lockedTokenLiquidity\n lockedTokenLiquidityShifted\n networkId\n tokenAddress\n totalLiquidityUsd\n totalTokenLiquidity\n totalTokenLiquidityShifted\n }\n}": typeof types.LiquidityMetadataByTokenDocument, + "query ListPairsForToken($limit: Int, $networkId: Int!, $tokenAddress: String!) {\n listPairsForToken(\n limit: $limit\n networkId: $networkId\n tokenAddress: $tokenAddress\n ) {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n}": typeof types.ListPairsForTokenDocument, + "query ListPairsWithMetadataForToken($limit: Int, $networkId: Int!, $tokenAddress: String!) {\n listPairsWithMetadataForToken(\n limit: $limit\n networkId: $networkId\n tokenAddress: $tokenAddress\n ) {\n results {\n backingToken {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n exchange {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n liquidity\n pair {\n address\n createdAt\n exchangeHash\n fee\n id\n networkId\n pooled {\n token0\n token1\n }\n protocolData {\n ... on ArenaTradeData {\n tokenId\n type\n }\n ... on UniswapV4Data {\n type\n uniswapV4HookAddress\n }\n }\n tickSpacing\n token0\n token0Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n token1\n token1Data {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n }\n quoteToken\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n volume\n }\n }\n}": typeof types.ListPairsWithMetadataForTokenDocument, + "query NftHolders($input: NftHoldersInput!) {\n nftHolders(input: $input) {\n count\n cursor\n items {\n balance\n collectionId\n walletAddress\n }\n status\n }\n}": typeof types.NftHoldersDocument, + "query PairMetadata($pairId: String!, $quoteToken: QuoteToken, $statsType: TokenPairStatisticsType) {\n pairMetadata(pairId: $pairId, quoteToken: $quoteToken, statsType: $statsType) {\n createdAt\n enhancedToken0 {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n enhancedToken1 {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n exchangeId\n fee\n highPrice1\n highPrice1w\n highPrice4\n highPrice5m\n highPrice12\n highPrice24\n id\n liquidity\n liquidityToken\n lowPrice1\n lowPrice1w\n lowPrice4\n lowPrice5m\n lowPrice12\n lowPrice24\n networkId\n nonLiquidityToken\n pairAddress\n price\n priceChange1\n priceChange1w\n priceChange4\n priceChange5m\n priceChange12\n priceChange24\n quoteToken\n statsType\n tickSpacing\n token0 {\n address\n decimals\n labels {\n createdAt\n subType\n type\n }\n name\n networkId\n pooled\n price\n symbol\n }\n token1 {\n address\n decimals\n labels {\n createdAt\n subType\n type\n }\n name\n networkId\n pooled\n price\n symbol\n }\n volume1\n volume1w\n volume4\n volume5m\n volume12\n volume24\n }\n}": typeof types.PairMetadataDocument, + "query PrimeHolders($cursor: String) {\n primeHolders(cursor: $cursor) {\n count\n cursor\n items {\n address\n balance\n balanceUsd\n firstHeldTimestamp\n networkId\n shiftedBalance\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n tokenAddress\n tokenId\n tokenPriceUsd\n walletId\n }\n }\n}": typeof types.PrimeHoldersDocument, + "query SearchNfts($filterWashTrading: Boolean, $include: [NftSearchable!], $limit: Int, $networkFilter: [Int!], $search: String, $window: String) {\n searchNfts(\n filterWashTrading: $filterWashTrading\n include: $include\n limit: $limit\n networkFilter: $networkFilter\n search: $search\n window: $window\n ) {\n hasMore\n items {\n address\n average\n ceiling\n floor\n id\n imageUrl\n name\n networkId\n symbol\n tradeCount\n tradeCountChange\n volume\n volumeChange\n window\n }\n }\n}": typeof types.SearchNftsDocument, + "query Token($input: TokenInput!) {\n token(input: $input) {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n}": typeof types.TokenDocument, + "query TokenLifecycleEvents($cursor: String, $limit: Int, $query: TokenLifecycleEventsQueryInput!) {\n tokenLifecycleEvents(cursor: $cursor, limit: $limit, query: $query) {\n cursor\n items {\n blockHash\n blockNumber\n data {\n ... on TokenBurnEventData {\n amount\n circulatingSupply\n totalSupply\n }\n ... on TokenMintEventData {\n amount\n circulatingSupply\n totalSupply\n }\n }\n eventType\n id\n logIndex\n maker\n networkId\n timestamp\n tokenAddress\n transactionHash\n transactionIndex\n }\n }\n}": typeof types.TokenLifecycleEventsDocument, + "query TokenSparklines($input: TokenSparklineInput!) {\n tokenSparklines(input: $input) {\n attribute\n id\n sparkline {\n timestamp\n value\n }\n }\n}": typeof types.TokenSparklinesDocument, + "query TokenTopTraders($input: TokenTopTradersInput!) {\n tokenTopTraders(input: $input) {\n items {\n amountBoughtUsd\n amountSoldUsd\n buys\n firstTransactionAt\n lastTransactionAt\n networkId\n realizedProfitPercentage\n realizedProfitUsd\n sells\n singleTokenAcquisitionCostUsd\n tokenAddress\n tokenAmountBought\n tokenAmountSold\n tokenBalance\n volumeUsd\n walletAddress\n }\n networkId\n offset\n tokenAddress\n tradingPeriod\n }\n}": typeof types.TokenTopTradersDocument, + "query Tokens($ids: [TokenInput!]) {\n tokens(ids: $ids) {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n}": typeof types.TokensDocument, + "query Top10HoldersPercent($tokenId: String!) {\n top10HoldersPercent(tokenId: $tokenId)\n}": typeof types.Top10HoldersPercentDocument, + "query WalletAggregateBackfillState($input: WalletAggregateBackfillStateInput!) {\n walletAggregateBackfillState(input: $input) {\n status\n walletAddress\n }\n}": typeof types.WalletAggregateBackfillStateDocument, + "query WalletChart($input: WalletChartInput!) {\n walletChart(input: $input) {\n backfillState\n data {\n realizedProfitUsd\n resolution\n swaps\n timestamp\n volumeUsd\n volumeUsdAll\n }\n networkId\n range {\n end\n start\n }\n resolution\n walletAddress\n }\n}": typeof types.WalletChartDocument, + "query WalletNftCollectionAssets($input: WalletNftCollectionAssetsInput!) {\n walletNftCollectionAssets(input: $input) {\n collectionId\n cursor\n items {\n quantity\n tokenId\n }\n walletAddress\n }\n}": typeof types.WalletNftCollectionAssetsDocument, + "query WalletNftCollections($input: WalletNftCollectionsInput!) {\n walletNftCollections(input: $input) {\n cursor\n items {\n collectionId\n quantity\n walletAddress\n }\n }\n}": typeof types.WalletNftCollectionsDocument, + "subscription OnBalanceUpdated($walletAddress: String!) {\n onBalanceUpdated(walletAddress: $walletAddress) {\n address\n balance\n balanceUsd\n firstHeldTimestamp\n networkId\n shiftedBalance\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n tokenAddress\n tokenId\n tokenPriceUsd\n walletId\n }\n}": typeof types.OnBalanceUpdatedDocument, + "subscription OnBarsUpdated($pairId: String, $quoteToken: QuoteToken) {\n onBarsUpdated(pairId: $pairId, quoteToken: $quoteToken) {\n aggregates {\n r1 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r1D {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r1S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r5 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r5S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r7D {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r15 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r15S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r30 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r30S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r60 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r240 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r720 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n }\n eventSortKey\n networkId\n pairAddress\n pairId\n quoteToken\n quoteTokenAddress\n statsType\n timestamp\n }\n}": typeof types.OnBarsUpdatedDocument, + "subscription OnDetailedStatsUpdated($pairId: String, $tokenOfInterest: TokenOfInterest) {\n onDetailedStatsUpdated(pairId: $pairId, tokenOfInterest: $tokenOfInterest) {\n bucketCount\n pairId\n queryTimestamp\n statsType\n stats_day1 {\n buckets {\n end\n start\n }\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n endTimestamp\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n timestamp\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n windowSize\n }\n stats_hour1 {\n buckets {\n end\n start\n }\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n endTimestamp\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n timestamp\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n windowSize\n }\n stats_hour4 {\n buckets {\n end\n start\n }\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n endTimestamp\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n timestamp\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n windowSize\n }\n stats_hour12 {\n buckets {\n end\n start\n }\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n endTimestamp\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n timestamp\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n windowSize\n }\n stats_min5 {\n buckets {\n end\n start\n }\n buyVolume {\n buckets\n change\n currentValue\n previousValue\n }\n buyers {\n buckets\n change\n currentValue\n previousValue\n }\n buys {\n buckets\n change\n currentValue\n previousValue\n }\n endTimestamp\n sellVolume {\n buckets\n change\n currentValue\n previousValue\n }\n sellers {\n buckets\n change\n currentValue\n previousValue\n }\n sells {\n buckets\n change\n currentValue\n previousValue\n }\n timestamp\n traders {\n buckets\n change\n currentValue\n previousValue\n }\n transactions {\n buckets\n change\n currentValue\n previousValue\n }\n volume {\n buckets\n change\n currentValue\n previousValue\n }\n windowSize\n }\n tokenOfInterest\n }\n}": typeof types.OnDetailedStatsUpdatedDocument, + "subscription OnEventLabelCreated($id: String) {\n onEventLabelCreated(id: $id) {\n data {\n ... on FrontRunLabelData {\n index\n token0DrainedAmount\n token1DrainedAmount\n }\n ... on SandwichedLabelData {\n token0DrainedAmountSandwich: token0DrainedAmount\n token1DrainedAmountSandwich: token1DrainedAmount\n }\n }\n id\n label\n logIndex\n networkId\n timestamp\n transactionHash\n transactionIndex\n }\n}": typeof types.OnEventLabelCreatedDocument, + "subscription OnEventsCreated($address: String, $id: String, $networkId: Int, $quoteToken: QuoteToken) {\n onEventsCreated(\n address: $address\n id: $id\n networkId: $networkId\n quoteToken: $quoteToken\n ) {\n address\n events {\n address\n baseTokenPrice\n blockHash\n blockNumber\n data {\n ... on BurnEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on MintEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on PoolBalanceChangedEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n liquidity0\n liquidity1\n protocolFeeAmount0\n protocolFeeAmount1\n sender\n token0\n token1\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n eventDisplayType\n eventType\n id\n labels {\n sandwich {\n label\n sandwichType\n token0DrainedAmount\n token1DrainedAmount\n }\n washtrade {\n label\n }\n }\n liquidityToken\n logIndex\n maker\n networkId\n quoteToken\n timestamp\n token0Address\n token0PoolValueUsd\n token0SwapValueUsd\n token0ValueBase\n token1Address\n token1PoolValueUsd\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n walletAge\n walletLabels\n }\n id\n networkId\n quoteToken\n }\n}": typeof types.OnEventsCreatedDocument, + "subscription OnEventsCreatedByMaker($input: OnEventsCreatedByMakerInput!) {\n onEventsCreatedByMaker(input: $input) {\n events {\n address\n baseTokenPrice\n blockHash\n blockNumber\n data {\n ... on BurnEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on MintEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on PoolBalanceChangedEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n liquidity0\n liquidity1\n protocolFeeAmount0\n protocolFeeAmount1\n sender\n token0\n token1\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n eventDisplayType\n eventType\n id\n labels {\n sandwich {\n label\n sandwichType\n token0DrainedAmount\n token1DrainedAmount\n }\n washtrade {\n label\n }\n }\n liquidityToken\n logIndex\n maker\n networkId\n quoteToken\n timestamp\n token0Address\n token0PoolValueUsd\n token0SwapValueUsd\n token0ValueBase\n token1Address\n token1PoolValueUsd\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n walletAge\n walletLabels\n }\n makerAddress\n }\n}": typeof types.OnEventsCreatedByMakerDocument, + "subscription OnHoldersUpdated($tokenId: String!) {\n onHoldersUpdated(tokenId: $tokenId) {\n balances {\n address\n balance\n balanceUsd\n firstHeldTimestamp\n networkId\n shiftedBalance\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n tokenAddress\n tokenId\n tokenPriceUsd\n walletId\n }\n holders\n networkId\n tokenAddress\n tokenId\n }\n}": typeof types.OnHoldersUpdatedDocument, + "subscription OnLatestPairUpdated($id: String, $networkId: Int) {\n onLatestPairUpdated(id: $id, networkId: $networkId) {\n address\n exchangeHash\n id\n initialPriceUsd\n liquidAt\n liquidity\n liquidityToken\n networkId\n newToken\n nonLiquidityToken\n oldToken\n priceChange\n priceUsd\n token0 {\n address\n currentPoolAmount\n decimals\n id\n initialPoolAmount\n name\n networkId\n pairId\n poolVariation\n symbol\n }\n token1 {\n address\n currentPoolAmount\n decimals\n id\n initialPoolAmount\n name\n networkId\n pairId\n poolVariation\n symbol\n }\n transactionHash\n }\n}": typeof types.OnLatestPairUpdatedDocument, + "subscription OnLatestTokens($id: String, $networkId: Int, $tokenAddress: String) {\n onLatestTokens(id: $id, networkId: $networkId, tokenAddress: $tokenAddress) {\n blockHash\n blockNumber\n creatorAddress\n creatorBalance\n decimals\n id\n networkId\n simulationResults {\n buyGasUsed\n buySuccess\n buyTax\n canRenounceOwnership\n canTransferOwnership\n isOwnerRenounced\n maxBuyAmount\n maxSellAmount\n openTradingCall\n sellGasUsed\n sellSuccess\n sellTax\n }\n timeCreated\n tokenAddress\n tokenName\n tokenSymbol\n totalSupply\n traceIndex\n transactionHash\n transactionIndex\n }\n}": typeof types.OnLatestTokensDocument, + "subscription OnLaunchpadTokenEvent($input: OnLaunchpadTokenEventInput) {\n onLaunchpadTokenEvent(input: $input) {\n address\n buyCount1\n eventType\n holders\n launchpadName\n liquidity\n marketCap\n networkId\n price\n protocol\n sellCount1\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n transactions1\n volume1\n }\n}": typeof types.OnLaunchpadTokenEventDocument, + "subscription OnLaunchpadTokenEventBatch($input: OnLaunchpadTokenEventBatchInput) {\n onLaunchpadTokenEventBatch(input: $input) {\n address\n buyCount1\n eventType\n holders\n marketCap\n networkId\n price\n protocol\n sellCount1\n launchpadName\n token {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n name\n launchpadName\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n transactions1\n volume1\n liquidity\n }\n}": typeof types.OnLaunchpadTokenEventBatchDocument, + "subscription OnNftAssetsCreated($address: String, $networkId: Int, $tokenId: String) {\n onNftAssetsCreated(address: $address, networkId: $networkId, tokenId: $tokenId) {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n}": typeof types.OnNftAssetsCreatedDocument, + "subscription OnNftEventsCreated($address: String, $networkId: Int) {\n onNftEventsCreated(address: $address, networkId: $networkId) {\n address\n events {\n aggregatorAddress\n blockNumber\n contractAddress\n eventType\n exchangeAddress\n fillSource\n id\n individualPriceNetworkBaseToken\n individualPriceUsd\n individualTradePrice\n logIndex\n maker\n networkId\n numberOfTokens\n orderDirection\n paymentTokenAddress\n poolAddress\n priceError\n sortKey\n taker\n timestamp\n tokenId\n totalPriceNetworkBaseToken\n totalPriceUsd\n totalTradePrice\n tradeOffer {\n ... on NftEventNftTradeItem {\n address\n amount\n recipient\n tokenId\n type\n }\n ... on NftEventTokenTradeItem {\n address\n amount\n individualPriceNetworkBaseToken\n individualPriceUsd\n individualTradePrice\n isPrice\n priceError\n recipient\n totalPriceNetworkBaseToken\n totalPriceUsd\n totalTradePrice\n type\n }\n }\n tradeReceived {\n ... on NftEventNftTradeItem {\n address\n amount\n recipient\n tokenId\n type\n }\n ... on NftEventTokenTradeItem {\n address\n amount\n individualPriceNetworkBaseToken\n individualPriceUsd\n individualTradePrice\n isPrice\n priceError\n recipient\n totalPriceNetworkBaseToken\n totalPriceUsd\n totalTradePrice\n type\n }\n }\n transactionHash\n transactionIndex\n }\n id\n networkId\n }\n}": typeof types.OnNftEventsCreatedDocument, + "subscription OnNftPoolEventsCreated($collectionAddress: String, $exchangeAddress: String, $networkId: Int, $poolAddress: String) {\n onNftPoolEventsCreated(\n collectionAddress: $collectionAddress\n exchangeAddress: $exchangeAddress\n networkId: $networkId\n poolAddress: $poolAddress\n ) {\n collectionAddress\n events {\n blockHash\n blockNumber\n collectionAddress\n collectionId\n data {\n ... on NewPoolEventData {\n assetRecipientAddress\n bondingCurveAddress\n bondingCurveType\n buyPriceT\n collectionAddress\n createdAt\n delta\n feeAmountT\n nbtRatio\n networkId\n nftTokenBalance\n ownerAddress\n poolAddress\n sellPriceT\n startPriceT\n tokenAddress\n tokenBalanceT\n type\n usdRatio\n }\n ... on NewPoolEventDataV2 {\n assetRecipientAddress\n bondingCurveAddress\n bondingCurveType\n buyPriceT\n collectionAddress\n createdAt\n delta\n feeAmountT\n nbtRatio\n networkId\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftTokenIds\n nftTokenQuantities\n ownerAddress\n poolAddress\n poolNftType\n propertyChecker\n royalties {\n percent\n recipient\n }\n sellPriceT\n startPriceT\n tokenAddress\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolAssetRecipientUpdateEventData {\n newAssetRecipient\n type\n }\n ... on NftPoolDeltaUpdateEventData {\n newDelta\n type\n }\n ... on NftPoolFeeUpdateEventData {\n nbtRatio\n newFeeT\n type\n usdRatio\n }\n ... on NftPoolNftDepositEventData {\n nftTokenBalance\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolNftDepositEventDataV2 {\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftTokenAmounts\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolNftWithdrawalEventData {\n nftTokenBalance\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolNftWithdrawalEventDataV2 {\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftTokenAmounts\n nftTokenIds\n tokenBalanceT\n type\n }\n ... on NftPoolOwnershipTransferredEventDataV2 {\n newOwner\n type\n }\n ... on NftPoolSpotPriceUpdateEventData {\n nbtRatio\n newBuyPriceT\n newSellPriceT\n newSpotPriceT\n type\n usdRatio\n }\n ... on NftPoolSpotPriceUpdateEventDataV2 {\n nbtRatio\n newBuyPriceT\n newSellPriceT\n newSpotPriceT\n type\n usdRatio\n }\n ... on NftPoolTokenDepositEventData {\n amountT\n nbtRatio\n nftTokenBalance\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolTokenDepositEventDataV2 {\n amountT\n nbtRatio\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolTokenWithdrawalEventData {\n amountT\n nbtRatio\n nftTokenBalance\n tokenBalanceT\n type\n usdRatio\n }\n ... on NftPoolTokenWithdrawalEventDataV2 {\n amountT\n nbtRatio\n tokenBalanceT\n type\n usdRatio\n }\n ... on SwapNftInPoolEventData {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftTokenBalance\n nftsTransfered {\n amountT\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n ... on SwapNftInPoolEventDataV2 {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftsTransfered {\n amountT\n nftQuantity\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n ... on SwapNftOutPoolEventData {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftTokenBalance\n nftsTransfered {\n amountT\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n ... on SwapNftOutPoolEventDataV2 {\n amountT\n nbtRatio\n newBuyPriceT\n newDelta\n newSellPriceT\n newSpotPriceT\n nftAssets {\n address\n attributes {\n class\n css\n displayType\n maxValue\n name\n value\n valueType\n }\n description\n id\n media {\n image\n processed\n thumbLg\n thumbSm\n }\n name\n networkId\n originalImage\n quantity\n rawAssetData {\n animationUrl\n externalUrl\n imageData\n imageUrl\n }\n tokenId\n uri\n }\n nftsTransfered {\n amountT\n nftQuantity\n nftTokenId\n }\n poolFeeT\n protocolFeeT\n tokenBalanceT\n tokenId\n type\n usdRatio\n }\n }\n eventType\n exchangeAddress\n id\n logIndex\n maker\n networkId\n poolAddress\n poolType\n timestamp\n tokenAddress\n transactionHash\n transactionIndex\n }\n exchangeAddress\n id\n networkId\n poolAddress\n }\n}": typeof types.OnNftPoolEventsCreatedDocument, + "subscription OnPairMetadataUpdated($id: String, $quoteToken: QuoteToken) {\n onPairMetadataUpdated(id: $id, quoteToken: $quoteToken) {\n createdAt\n enhancedToken0 {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n enhancedToken1 {\n address\n cmcId\n createBlockNumber\n createTransactionHash\n createdAt\n creatorAddress\n decimals\n exchanges {\n address\n color\n exchangeVersion\n iconUrl\n id\n name\n networkId\n tradeUrl\n }\n freezable\n id\n info {\n address\n circulatingSupply\n cmcId\n description\n id\n imageBannerUrl\n imageLargeUrl\n imageSmallUrl\n imageThumbHash\n imageThumbUrl\n isScam\n name\n networkId\n symbol\n totalSupply\n }\n isScam\n launchpad {\n completed\n completedAt\n completedSlot\n graduationPercent\n launchpadIconUrl\n launchpadName\n launchpadProtocol\n migrated\n migratedAt\n migratedPoolAddress\n migratedSlot\n poolAddress\n }\n mintable\n name\n networkId\n socialLinks {\n bitcointalk\n blog\n coingecko\n coinmarketcap\n discord\n email\n facebook\n github\n instagram\n linkedin\n reddit\n slack\n telegram\n twitch\n twitter\n website\n wechat\n whitepaper\n youtube\n }\n symbol\n }\n exchangeId\n fee\n highPrice1\n highPrice1w\n highPrice4\n highPrice5m\n highPrice12\n highPrice24\n id\n liquidity\n liquidityToken\n lowPrice1\n lowPrice1w\n lowPrice4\n lowPrice5m\n lowPrice12\n lowPrice24\n networkId\n nonLiquidityToken\n pairAddress\n price\n priceChange1\n priceChange1w\n priceChange4\n priceChange5m\n priceChange12\n priceChange24\n quoteToken\n statsType\n tickSpacing\n token0 {\n address\n decimals\n labels {\n createdAt\n subType\n type\n }\n name\n networkId\n pooled\n price\n symbol\n }\n token1 {\n address\n decimals\n labels {\n createdAt\n subType\n type\n }\n name\n networkId\n pooled\n price\n symbol\n }\n volume1\n volume1w\n volume4\n volume5m\n volume12\n volume24\n }\n}": typeof types.OnPairMetadataUpdatedDocument, + "subscription OnPriceUpdated($address: String, $networkId: Int, $sourcePairAddress: String) {\n onPriceUpdated(\n address: $address\n networkId: $networkId\n sourcePairAddress: $sourcePairAddress\n ) {\n address\n confidence\n networkId\n poolAddress\n priceUsd\n timestamp\n }\n}": typeof types.OnPriceUpdatedDocument, + "subscription OnPricesUpdated($input: [OnPricesUpdatedInput!]!) {\n onPricesUpdated(input: $input) {\n address\n confidence\n networkId\n poolAddress\n priceUsd\n timestamp\n }\n}": typeof types.OnPricesUpdatedDocument, + "subscription OnTokenBarsUpdated($networkId: Int, $tokenId: String) {\n onTokenBarsUpdated(networkId: $networkId, tokenId: $tokenId) {\n aggregates {\n r1 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r1D {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r1S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r5 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r5S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r7D {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r15 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r15S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r30 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r30S {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r60 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r240 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n r720 {\n t\n token {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n usd {\n buyVolume\n buyers\n buys\n c\n h\n l\n liquidity\n o\n sellVolume\n sellers\n sells\n t\n traders\n transactions\n v\n volume\n volumeNativeToken\n }\n }\n }\n eventSortKey\n networkId\n pairAddress\n pairId\n quoteToken\n statsType\n timestamp\n tokenAddress\n tokenId\n }\n}": typeof types.OnTokenBarsUpdatedDocument, + "subscription OnTokenEventsCreated($input: OnTokenEventsCreatedInput!) {\n onTokenEventsCreated(input: $input) {\n events {\n address\n baseTokenPrice\n blockHash\n blockNumber\n data {\n ... on BurnEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on MintEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on PoolBalanceChangedEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n liquidity0\n liquidity1\n protocolFeeAmount0\n protocolFeeAmount1\n sender\n token0\n token1\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n eventDisplayType\n eventType\n id\n labels {\n sandwich {\n label\n sandwichType\n token0DrainedAmount\n token1DrainedAmount\n }\n washtrade {\n label\n }\n }\n liquidityToken\n logIndex\n maker\n networkId\n quoteToken\n timestamp\n token0Address\n token0PoolValueUsd\n token0SwapValueUsd\n token0ValueBase\n token1Address\n token1PoolValueUsd\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n walletAge\n walletLabels\n }\n id\n }\n}": typeof types.OnTokenEventsCreatedDocument, + "subscription OnTokenLifecycleEventsCreated($address: String, $networkId: Int) {\n onTokenLifecycleEventsCreated(address: $address, networkId: $networkId) {\n events {\n blockHash\n blockNumber\n data {\n ... on TokenBurnEventData {\n amount\n circulatingSupply\n totalSupply\n }\n ... on TokenMintEventData {\n amount\n circulatingSupply\n totalSupply\n }\n }\n eventType\n id\n logIndex\n maker\n networkId\n timestamp\n tokenAddress\n transactionHash\n transactionIndex\n }\n id\n }\n}": typeof types.OnTokenLifecycleEventsCreatedDocument, + "subscription OnUnconfirmedBarsUpdated($pairId: String, $quoteToken: QuoteToken) {\n onUnconfirmedBarsUpdated(pairId: $pairId, quoteToken: $quoteToken) {\n aggregates {\n r1 {\n c\n h\n l\n o\n t\n v\n volume\n }\n r1S {\n c\n h\n l\n o\n t\n v\n volume\n }\n r5 {\n c\n h\n l\n o\n t\n v\n volume\n }\n r5S {\n c\n h\n l\n o\n t\n v\n volume\n }\n r15 {\n c\n h\n l\n o\n t\n v\n volume\n }\n r15S {\n c\n h\n l\n o\n t\n v\n volume\n }\n }\n eventSortKey\n networkId\n pairAddress\n pairId\n quoteToken\n quoteTokenAddress\n timestamp\n }\n}": typeof types.OnUnconfirmedBarsUpdatedDocument, + "subscription OnUnconfirmedEventsCreated($address: String, $id: String, $quoteToken: QuoteToken) {\n onUnconfirmedEventsCreated(address: $address, id: $id, quoteToken: $quoteToken) {\n address\n events {\n address\n blockHash\n blockNumber\n data {\n ... on UnconfirmedLiquidityChangeEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n type\n }\n ... on UnconfirmedSwapEventData {\n amountBaseToken\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n type\n }\n }\n eventDisplayType\n eventType\n id\n logIndex\n maker\n networkId\n quoteToken\n supplementalIndex\n timestamp\n transactionHash\n transactionIndex\n }\n id\n networkId\n quoteToken\n }\n}": typeof types.OnUnconfirmedEventsCreatedDocument, + "subscription OnUnconfirmedEventsCreatedByMaker($input: OnUnconfirmedEventsCreatedByMakerInput!) {\n onUnconfirmedEventsCreatedByMaker(input: $input) {\n events {\n address\n blockHash\n blockNumber\n data {\n ... on UnconfirmedLiquidityChangeEventData {\n amount0\n amount0Shifted\n amount1\n amount1Shifted\n type\n }\n ... on UnconfirmedSwapEventData {\n amountBaseToken\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n type\n }\n }\n eventDisplayType\n eventType\n id\n logIndex\n maker\n networkId\n quoteToken\n supplementalIndex\n timestamp\n transactionHash\n transactionIndex\n }\n makerAddress\n }\n}": typeof types.OnUnconfirmedEventsCreatedByMakerDocument, +}; +const documents: Documents = { "mutation BackfillWalletAggregates($input: WalletAggregateBackfillInput!) {\n backfillWalletAggregates(input: $input) {\n status\n walletAddress\n }\n}": types.BackfillWalletAggregatesDocument, "mutation CreateApiTokens($input: CreateApiTokensInput!) {\n createApiTokens(input: $input) {\n expiresTimeString\n id\n remaining\n requestLimit\n token\n }\n}": types.CreateApiTokensDocument, "mutation CreateWebhooks($input: CreateWebhooksInput!) {\n createWebhooks(input: $input) {\n nftEventWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n nftTokenAddress: tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n priceWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n nftTokenAddress: tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n rawTransactionWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceEventNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceEventTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n tokenPairEventWebhooks {\n alertRecurrence\n bucketId\n bucketSortkey\n callbackUrl\n conditions {\n ... on NftEventWebhookCondition {\n contractAddress {\n eq\n }\n eventType {\n eq\n }\n exchangeAddress {\n eq\n }\n fillSource {\n oneOf\n }\n ignoreTransfers\n individualBaseTokenPrice {\n eq\n gt\n gte\n lt\n lte\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n tokenAddress {\n eq\n }\n tokenId {\n eq\n }\n }\n ... on PriceEventWebhookCondition {\n priceEventNetworkId: networkId {\n eq\n }\n priceUsd {\n eq\n gt\n gte\n lt\n lte\n }\n priceEventTokenAddress: tokenAddress {\n eq\n }\n }\n ... on RawTransactionWebhookCondition {\n from {\n eq\n }\n ignoreNftEvents\n ignoreTokenPairEvents\n input {\n contains\n notContains\n }\n networkId {\n oneOf\n }\n to {\n eq\n }\n toOrFrom {\n eq\n }\n }\n ... on TokenPairEventWebhookCondition {\n eventType {\n oneOf\n }\n exchangeAddress {\n eq\n }\n maker {\n eq\n }\n networkId {\n oneOf\n }\n pairAddress {\n eq\n }\n swapValue {\n eq\n gt\n gte\n lt\n lte\n }\n tokenAddress {\n eq\n }\n }\n }\n created\n groupId\n id\n name\n publishingType\n retrySettings {\n maxRetries\n maxRetryDelay\n maxTimeElapsed\n minRetryDelay\n }\n status\n webhookType\n }\n }\n}": types.CreateWebhooksDocument, diff --git a/src/sdk/generated/graphql.ts b/src/sdk/generated/graphql.ts index a4ba80e..eeb41fd 100644 --- a/src/sdk/generated/graphql.ts +++ b/src/sdk/generated/graphql.ts @@ -483,7 +483,7 @@ export enum ContractType { export type CreateApiTokensInput = { /** Number of tokens to create, default is 1 */ count?: InputMaybe; - /** Number of seconds until the token expires, defaults to 1 hour (3600) */ + /** Number of milliseconds until the token expires, defaults to 1 hour (3600000) */ expiresIn?: InputMaybe; /** Number of requests allowed per token, represented as a string, default is 5000 */ requestLimit?: InputMaybe; @@ -2019,6 +2019,8 @@ export enum LaunchpadTokenProtocol { BoopFun = 'BoopFun', /** Protocol name for Clanker. */ Clanker = 'Clanker', + /** Protocol name for Clanker V4. */ + ClankerV4 = 'ClankerV4', /** Protocol name for EgoTech. */ EgoTech = 'EgoTech', /** Protocol name for Four.meme. */ @@ -5163,9 +5165,9 @@ export type OnEventsCreatedByMakerInput = { export type OnLaunchpadTokenEventBatchInput = { /** The type of event. */ eventType?: InputMaybe; - /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadName?: InputMaybe; - /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadNames?: InputMaybe>; /** The network ID that the token is deployed on. */ networkId?: InputMaybe; @@ -5181,9 +5183,9 @@ export type OnLaunchpadTokenEventInput = { address?: InputMaybe; /** The type of event. */ eventType?: InputMaybe; - /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** The name of the launchpad. One of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadName?: InputMaybe; - /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadNames?: InputMaybe>; /** The network ID that the token is deployed on. */ networkId?: InputMaybe; @@ -5208,11 +5210,20 @@ export type OnTokenBarsUpdatedResponse = { eventSortKey: Scalars['String']['output']; /** The network ID the pair is deployed on. */ networkId: Scalars['Int']['output']; - /** The contract address for the pair. */ - pairAddress: Scalars['String']['output']; - /** The ID for the pair (`pairAddress`:`networkId`). */ - pairId: Scalars['String']['output']; - /** The quote token within the pair. */ + /** + * The contract address for the pair. + * @deprecated pairs are no longer used for pricing + */ + pairAddress?: Maybe; + /** + * The ID for the pair (`pairAddress`:`networkId`). + * @deprecated pairs are no longer used for pricing + */ + pairId?: Maybe; + /** + * The quote token within the pair. + * @deprecated pairs are no longer used for pricing + */ quoteToken?: Maybe; /** The type of statistics used. Can be `Filtered` or `Unfiltered`. */ statsType: TokenPairStatisticsType; @@ -5697,6 +5708,8 @@ export type PairMetadata = { priceChange12?: Maybe; /** The percent price change in the past 24 hours. Decimal format. */ priceChange24?: Maybe; + /** The non-quote token price in USD. */ + priceNonQuoteToken: Scalars['String']['output']; /** The token of interest within the pair. Can be `token0` or `token1`. */ quoteToken?: Maybe; /** The type of statistics returned. Can be `FILTERED` or `UNFILTERED` */ @@ -6782,6 +6795,8 @@ export type Query = { getPrimePools?: Maybe; /** Returns charting metadata for a given pair. Used for implementing a Trading View datafeed. */ getSymbol?: Maybe; + /** Returns bar chart data to track price changes over time. */ + getTokenBars?: Maybe; /** Returns transactions for a pair. */ getTokenEvents?: Maybe; /** Returns a list of token events for a given maker across all pairs. */ @@ -7195,6 +7210,19 @@ export type QueryGetSymbolArgs = { }; +export type QueryGetTokenBarsArgs = { + countback?: InputMaybe; + currencyCode?: InputMaybe; + from: Scalars['Int']['input']; + removeEmptyBars?: InputMaybe; + removeLeadingNullValues?: InputMaybe; + resolution: Scalars['String']['input']; + statsType?: InputMaybe; + symbol: Scalars['String']['input']; + to: Scalars['Int']['input']; +}; + + export type QueryGetTokenEventsArgs = { cursor?: InputMaybe; direction?: InputMaybe; @@ -7657,7 +7685,7 @@ export type Subscription = { onDetailedStatsUpdated?: Maybe; /** Live-streamed event labels for a token. */ onEventLabelCreated?: Maybe; - /** Live-streamed transactions for a token. */ + /** Live-streamed transactions for a pair. */ onEventsCreated?: Maybe; /** Live-streamed transactions for a maker. */ onEventsCreatedByMaker?: Maybe; @@ -8049,6 +8077,47 @@ export enum SymbolType { Token = 'TOKEN' } +/** Bar chart data to track price changes over time. */ +export type TokenBarsResponse = { + __typename?: 'TokenBarsResponse'; + /** The buy volume in USD */ + buyVolume: Array>; + /** The number of unique buyers */ + buyers: Array>; + /** The number of buys */ + buys: Array>; + /** The closing price. */ + c: Array>; + /** The high price. */ + h: Array>; + /** The low price. */ + l: Array>; + /** Liquidity in USD */ + liquidity: Array>; + /** The opening price. */ + o: Array>; + /** The status code for the batch: `ok` for successful data retrieval and `no_data` for empty responses signaling the end of server data. */ + s: Scalars['String']['output']; + /** The sell volume in USD */ + sellVolume: Array>; + /** The number of unique sellers */ + sellers: Array>; + /** The number of sells */ + sells: Array>; + /** The timestamp for the bar. */ + t: Array; + /** The token that is being returned */ + token: EnhancedToken; + /** The number of traders */ + traders: Array>; + /** The number of transactions */ + transactions: Array>; + /** The volume with higher precision. */ + volume?: Maybe>>; + /** The volume in the native token for the network */ + volumeNativeToken?: Maybe>>; +}; + /** Token burn event data. */ export type TokenBurnEventData = { __typename?: 'TokenBurnEventData'; @@ -8326,7 +8395,7 @@ export type TokenFilters = { launchpadMigrated?: InputMaybe; /** The timestamp when the launchpad was migrated */ launchpadMigratedAt?: InputMaybe; - /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ + /** A list of launchpad names. Any of the following: Pump.fun, Bonk, Baseapp, Zora, Zora Creator, Four.meme, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Vertigo, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trend, shout.fun, xApple, Sendshot, DubDub, cults. */ launchpadName?: InputMaybe>; /** A list of launchpad protocols. */ launchpadProtocol?: InputMaybe>; @@ -8957,8 +9026,12 @@ export type TokenWalletFilterResult = { tokenAmountSoldAll1y: Scalars['String']['output']; /** Token amount sold all in the past 30 days */ tokenAmountSoldAll30d: Scalars['String']['output']; - /** The current token balance */ + /** The token balance in the wallet. This value does not update with every transfer and can be slightly stale. Use tokenBalanceLive for live data. */ tokenBalance: Scalars['String']['output']; + /** The current token balance in the wallet. */ + tokenBalanceLive?: Maybe; + /** The current USD value of the token balance. */ + tokenBalanceLiveUsd?: Maybe; }; /** A token with metadata. */ @@ -9169,6 +9242,8 @@ export type UnconfirmedSwapEventData = { export type UniswapV4Data = { __typename?: 'UniswapV4Data'; + /** Whether the token is the network token for the Uniswap V4 pool. */ + isToken0NetworkToken?: Maybe; type: Scalars['String']['output']; /** The address of the hook contract for Uniswap V4 pools. */ uniswapV4HookAddress?: Maybe; @@ -11121,7 +11196,7 @@ export type OnTokenBarsUpdatedSubscriptionVariables = Exact<{ }>; -export type OnTokenBarsUpdatedSubscription = { __typename?: 'Subscription', onTokenBarsUpdated?: { __typename?: 'OnTokenBarsUpdatedResponse', eventSortKey: string, networkId: number, pairAddress: string, pairId: string, quoteToken?: QuoteToken | null, statsType: TokenPairStatisticsType, timestamp: number, tokenAddress: string, tokenId: string, aggregates: { __typename?: 'ResolutionBarData', r1?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r1D?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r1S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r5?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r5S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r7D?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r15?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r15S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r30?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r30S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r60?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r240?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r720?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null } } | null }; +export type OnTokenBarsUpdatedSubscription = { __typename?: 'Subscription', onTokenBarsUpdated?: { __typename?: 'OnTokenBarsUpdatedResponse', eventSortKey: string, networkId: number, pairAddress?: string | null, pairId?: string | null, quoteToken?: QuoteToken | null, statsType: TokenPairStatisticsType, timestamp: number, tokenAddress: string, tokenId: string, aggregates: { __typename?: 'ResolutionBarData', r1?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r1D?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r1S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r5?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r5S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r7D?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r15?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r15S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r30?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r30S?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r60?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r240?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null, r720?: { __typename?: 'CurrencyBarData', t: number, token: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string }, usd: { __typename?: 'IndividualBarData', buyVolume: string, buyers: number, buys: number, c: number, h: number, l: number, liquidity: string, o: number, sellVolume: string, sellers: number, sells: number, t: number, traders: number, transactions: number, v?: number | null, volume: string, volumeNativeToken: string } } | null } } | null }; export type OnTokenEventsCreatedSubscriptionVariables = Exact<{ input: OnTokenEventsCreatedInput; From 2bda8ea039fe9a2eddab9e5685100ca53a0e6b34 Mon Sep 17 00:00:00 2001 From: Matt Fikowski Date: Fri, 12 Sep 2025 14:27:35 -0700 Subject: [PATCH 4/4] AND BUMP --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8982a31..2ad3105 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@codex-data/sdk", - "version": "1.0.30", + "version": "1.0.31", "engines": { "node": ">=17.5.0" },