@chainstream-io/sdk 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{index-D2eCYuwV.d.ts → index-8REU_oTW.d.ts} +3 -2
- package/dist/{index-QdKN_FKu.d.cts → index-Rg3zipzv.d.cts} +3 -2
- package/dist/index.cjs +30 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +29 -3
- package/dist/index.mjs.map +1 -1
- package/dist/stream/index.cjs +29 -2
- package/dist/stream/index.cjs.map +1 -1
- package/dist/stream/index.d.cts +1 -1
- package/dist/stream/index.d.ts +1 -1
- package/dist/stream/index.mjs +28 -2
- package/dist/stream/index.mjs.map +1 -1
- package/package.json +5 -3
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/stream/stream.ts","../src/stream/stream.fields.ts","../src/openapi/runtime.ts","../src/openapi/models/AddressExposure.ts","../src/openapi/models/AddressRiskResponseDTO.ts","../src/openapi/models/AlertDetail.ts","../src/openapi/models/OnChainActivity.ts","../src/openapi/models/AlteryaIdentification.ts","../src/openapi/models/BlockchainDTO.ts","../src/openapi/models/BlockchainLatestBlockDTO.ts","../src/openapi/models/BooleanResultDTO.ts","../src/openapi/models/CalculatePnlInput.ts","../src/openapi/models/Resolution.ts","../src/openapi/models/Candle.ts","../src/openapi/models/Chain.ts","../src/openapi/models/ChainalysisAddressIdentification.ts","../src/openapi/models/ClaimRedPacketInput.ts","../src/openapi/models/CreateEndpointInput.ts","../src/openapi/models/CreateRedPacketInput.ts","../src/openapi/models/CreateRedPacketReply.ts","../src/openapi/models/CreateTokenInput.ts","../src/openapi/models/CreateTokenReply.ts","../src/openapi/models/TokenMarketData.ts","../src/openapi/models/TokenExtraDTO.ts","../src/openapi/models/TokenCreatorsDTO.ts","../src/openapi/models/TokenSocialMediasDTO.ts","../src/openapi/models/TokenMetadata.ts","../src/openapi/models/TokenStat.ts","../src/openapi/models/DevTokenDTO.ts","../src/openapi/models/DexDTO.ts","../src/openapi/models/DexPage.ts","../src/openapi/models/DexPoolDTO.ts","../src/openapi/models/DirectExposureDetail.ts","../src/openapi/models/EndpointResponse.ts","../src/openapi/models/EndpointListResponse.ts","../src/openapi/models/EndpointOperationResponse.ts","../src/openapi/models/EndpointSecretResponse.ts","../src/openapi/models/EstimateGasLimitInput.ts","../src/openapi/models/EstimateGasLimitResponse.ts","../src/openapi/models/GainersAndLosersDTO.ts","../src/openapi/models/GainersAndLosersPage.ts","../src/openapi/models/GasPriceResponse.ts","../src/openapi/models/JobDTO.ts","../src/openapi/models/JobStreamingDTO.ts","../src/openapi/models/KYTRegisterTransferRequest.ts","../src/openapi/models/KYTRegisterWithdrawalRequest.ts","../src/openapi/models/KytAddressDTO.ts","../src/openapi/models/KytAddressPage.ts","../src/openapi/models/KytTransferDTO.ts","../src/openapi/models/KytTransferPage.ts","../src/openapi/models/KytWithdrawalDTO.ts","../src/openapi/models/KytWithdrawalPage.ts","../src/openapi/models/Link.ts","../src/openapi/models/MoonshotCreateTokenInput.ts","../src/openapi/models/MoonshotCreateTokenReply.ts","../src/openapi/models/MoonshotSubmitCreateToken200Response.ts","../src/openapi/models/MoonshotSubmitCreateTokenInput.ts","../src/openapi/models/NetworkIdentificationOrg.ts","../src/openapi/models/PumpCreateTokenInput.ts","../src/openapi/models/PumpCreateTokenReply.ts","../src/openapi/models/QuoteResponse.ts","../src/openapi/models/RedPacketClaimDTO.ts","../src/openapi/models/RedPacketClaimsPage.ts","../src/openapi/models/RedPacketDTO.ts","../src/openapi/models/RedPacketReply.ts","../src/openapi/models/RedPacketSendTxInput.ts","../src/openapi/models/RedPacketSendTxResponse.ts","../src/openapi/models/RedPacketsPage.ts","../src/openapi/models/RegisterAddressRequest.ts","../src/openapi/models/RegisterAddressResponseDTO.ts","../src/openapi/models/SendTxInput.ts","../src/openapi/models/SendTxResponse.ts","../src/openapi/models/SwapInput.ts","../src/openapi/models/SwapReply.ts","../src/openapi/models/SwapRouteInput.ts","../src/openapi/models/SwapRouteResponse.ts","../src/openapi/models/Token.ts","../src/openapi/models/TokenCreationDTO.ts","../src/openapi/models/TokenCreationPage.ts","../src/openapi/models/TokenHolder.ts","../src/openapi/models/TokenHolderPage.ts","../src/openapi/models/TokenListPage.ts","../src/openapi/models/TokenPage.ts","../src/openapi/models/TokenPriceDTO.ts","../src/openapi/models/TokenPricePage.ts","../src/openapi/models/TokenTrader.ts","../src/openapi/models/TopTradersDTO.ts","../src/openapi/models/TopTradersPage.ts","../src/openapi/models/TradeDetailDTO.ts","../src/openapi/models/TradePage.ts","../src/openapi/models/TransferAlertsResponseDTO.ts","../src/openapi/models/TransferBaseResponseDTO.ts","../src/openapi/models/TransferDirectExposureResponseDTO.ts","../src/openapi/models/TransferNetworkIdentificationsResponseDTO.ts","../src/openapi/models/UpdateEndpointInput.ts","../src/openapi/models/WalletBalanceDetailDTO.ts","../src/openapi/models/WalletBalancesDTO.ts","../src/openapi/models/WalletPnlDTO.ts","../src/openapi/models/WithdrawalAddressIdentificationsResponseDTO.ts","../src/openapi/models/WithdrawalBaseResponseDTO.ts","../src/openapi/models/WithdrawalFraudAssessmentResponseDTO.ts","../src/openapi/apis/BlockchainApi.ts","../src/openapi/apis/DefiSolanaMoonshotApi.ts","../src/openapi/apis/DefiSolanaPumpfunApi.ts","../src/openapi/apis/DexApi.ts","../src/openapi/apis/DexPoolApi.ts","../src/openapi/apis/EndpointApi.ts","../src/openapi/apis/IpfsApi.ts","../src/openapi/apis/JobsApi.ts","../src/openapi/apis/KYTApi.ts","../src/openapi/apis/RankingApi.ts","../src/openapi/apis/RedPacketApi.ts","../src/openapi/apis/TokenApi.ts","../src/openapi/apis/TradeApi.ts","../src/openapi/apis/TransactionApi.ts","../src/openapi/apis/WalletApi.ts","../src/openapi/apis/WatchlistApi.ts"],"sourcesContent":["import { StreamApi } from \"./stream\";\nimport {\n DexApi,\n Configuration,\n TransactionApi,\n DefiSolanaMoonshotApi,\n DefiSolanaPumpfunApi,\n DexPoolApi,\n TokenApi,\n RankingApi,\n TradeApi,\n WalletApi,\n RedPacketApi,\n IpfsApi,\n WatchlistApi,\n BlockchainApi,\n JobsApi,\n KYTApi,\n EndpointApi,\n Middleware,\n RequestContext,\n ResponseContext,\n} from \"./openapi\";\nimport { EventSourcePolyfill } from \"event-source-polyfill\";\n\nexport interface TokenProvider {\n getToken(): Promise<string> | string;\n}\n\nexport interface DexRequestContext {\n baseUrl: string;\n streamUrl: string;\n accessToken: string | TokenProvider;\n}\n\nexport interface DexAggregatorOptions {\n debug?: boolean;\n serverUrl?: string;\n streamUrl?: string;\n}\n\nexport const LIB_VERSION = \"0.1.19\";\n\nclass UserAgentMiddleware implements Middleware {\n public async pre(context: RequestContext): Promise<void> {\n if (!context.init.headers) {\n context.init.headers = {};\n }\n\n if (context.init.headers instanceof Headers) {\n context.init.headers.set(\"User-Agent\", `dex/${LIB_VERSION}/javascript`);\n } else {\n (context.init.headers as any)[\n \"User-Agent\"\n ] = `dex/${LIB_VERSION}/javascript`;\n }\n }\n\n public async post(context: ResponseContext): Promise<void> {}\n}\n\nexport class DexClient {\n public readonly requestCtx: DexRequestContext;\n public readonly _configuration: Configuration;\n public readonly dex: DexApi;\n public readonly dexpool: DexPoolApi;\n public readonly token: TokenApi;\n public readonly wallet: WalletApi;\n public readonly trade: TradeApi;\n public readonly ranking: RankingApi;\n public readonly transaction: TransactionApi;\n public readonly moonshot: DefiSolanaMoonshotApi;\n public readonly pumpfun: DefiSolanaPumpfunApi;\n public readonly stream: StreamApi;\n public readonly redPacket: RedPacketApi;\n public readonly ipfs: IpfsApi;\n public readonly blockchain: BlockchainApi;\n public readonly watchlist: WatchlistApi;\n public readonly jobs: JobsApi;\n public readonly kyt: KYTApi;\n public readonly endpoint: EndpointApi;\n public constructor(\n accessToken: string | TokenProvider,\n options: DexAggregatorOptions = {}\n ) {\n const baseUrl: string =\n options.serverUrl ?? \"https://api-dex.chainstream.io\";\n const streamUrl: string =\n options.streamUrl ??\n \"wss://realtime-dex.chainstream.io/connection/websocket\";\n\n const tokenProvider =\n typeof accessToken === \"string\"\n ? {\n getToken: () => accessToken,\n }\n : accessToken;\n\n this.requestCtx = { baseUrl, streamUrl, accessToken };\n\n const config = new Configuration({\n basePath: baseUrl,\n middleware: [new UserAgentMiddleware()],\n accessToken: async () => {\n return typeof accessToken === \"string\"\n ? accessToken\n : await accessToken.getToken();\n },\n headers: {\n \"User-Agent\": `dex/${LIB_VERSION}/javascript`,\n },\n });\n\n this._configuration = config;\n this.dex = new DexApi(config);\n this.dexpool = new DexPoolApi(config);\n this.token = new TokenApi(config);\n this.trade = new TradeApi(config);\n this.ranking = new RankingApi(config);\n this.transaction = new TransactionApi(config);\n this.moonshot = new DefiSolanaMoonshotApi(config);\n this.pumpfun = new DefiSolanaPumpfunApi(config);\n this.stream = new StreamApi(this.requestCtx);\n this.wallet = new WalletApi(config);\n this.redPacket = new RedPacketApi(config);\n this.ipfs = new IpfsApi(config);\n this.blockchain = new BlockchainApi(config);\n this.watchlist = new WatchlistApi(config);\n this.jobs = new JobsApi(config);\n this.kyt = new KYTApi(config);\n this.endpoint = new EndpointApi(config);\n this.stream.connect();\n }\n\n async waitForJob<T>(jobId: string, timeout = 60000): Promise<T> {\n const accessToken =\n typeof this.requestCtx.accessToken === \"string\"\n ? this.requestCtx.accessToken\n : await this.requestCtx.accessToken.getToken();\n\n return new Promise((resolve, reject) => {\n const sse = new EventSourcePolyfill(\n `${this.requestCtx.baseUrl}/jobs/${jobId}/streaming`,\n {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n }\n );\n\n const timeoutId = setTimeout(() => {\n sse.close();\n reject(new Error(`Job ${jobId} timed out after ${timeout}ms`));\n }, timeout);\n\n sse.onmessage = (event: any) => {\n try {\n console.log(\"event.data: \", event.data);\n const data = JSON.parse(event.data);\n\n if (data.status === \"error\") {\n sse.close();\n reject(new Error(`Error: ${data.message}`));\n } else if (data.status === \"completed\") {\n clearTimeout(timeoutId);\n sse.close();\n resolve(data as T);\n }\n } catch (e) {\n clearTimeout(timeoutId);\n sse.close();\n reject(new Error(\"Error parsing event data\"));\n }\n };\n\n sse.onopen = () => {\n console.log(\"SSE connection opened\");\n };\n\n sse.onerror = (error: any) => {\n if (error.message?.includes(\"No activity within\")) {\n console.log(\"SSE reconnecting due to inactivity...\");\n return;\n }\n\n clearTimeout(timeoutId);\n\n sse.close();\n reject(new Error(`Error in SSE connection: ${error}`));\n };\n });\n }\n}\n\nexport interface PostOptions {\n idempotencyKey?: string;\n}\n","import { Centrifuge, ConnectionTokenContext } from \"@chainstream-io/centrifuge\";\nimport { DexRequestContext } from \"..\";\nimport { Resolution } from \"../openapi\";\nimport {\n DexPoolBalance,\n NewToken,\n TokenMetadata,\n TokenHolder,\n TokenStat,\n TokenLiquidity,\n WalletBalance,\n TokenSupply,\n WalletPnl,\n ChannelType,\n TokenCandle,\n TradeActivity,\n WalletTokenPnl,\n RankingType,\n Dex,\n RankingTokenList,\n TokenBondingCurve,\n} from \"./stream.model\";\nimport { replaceFilterFields } from \"./stream.fields\";\n\nexport interface Unsubscrible {\n unsubscribe(): void;\n}\n\nexport class StreamApi {\n private realtimeClient: Centrifuge;\n private listenersMap: Map<string, Set<(data: any) => void>>;\n\n constructor(context: DexRequestContext) {\n const realtimeEndpoint = context.streamUrl;\n this.realtimeClient = new Centrifuge(realtimeEndpoint, {\n getToken: async (_ctx: ConnectionTokenContext) => {\n return typeof context.accessToken === \"string\"\n ? context.accessToken\n : await context.accessToken.getToken();\n },\n });\n\n this.realtimeClient\n .on(\"connected\", () => {\n console.log(\"[streaming] connected\");\n })\n .on(\"disconnected\", (err) => {\n console.warn(\"[streaming] disconnected\", err);\n })\n .on(\"error\", (err) => {\n console.error(\"[streaming] error: \", err);\n });\n\n this.listenersMap = new Map();\n }\n\n connect() {\n this.realtimeClient.connect();\n }\n\n /**\n * Start batching commands for efficient bulk operations\n * All subscription commands after this call will be batched until stopBatching is called\n */\n startBatching() {\n this.realtimeClient.startBatching();\n }\n\n /**\n * Stop batching and flush all collected commands to the server\n * This will send all batched subscription commands in a single network request\n */\n stopBatching() {\n this.realtimeClient.stopBatching();\n }\n\n /**\n * Batch subscribe method that accepts a function containing subscription calls\n * All subscription methods called within the function will be batched\n * @param batchFunction Function containing subscription method calls\n * @returns Array of unsubscribe functions\n */\n batchSubscribe(batchFunction: () => Unsubscrible[]): Unsubscrible[] {\n // Start batching commands\n this.startBatching();\n\n // Execute the batch function (all subscription calls will be batched)\n const unsubscribles = batchFunction();\n\n // Stop batching and flush all commands\n this.stopBatching();\n\n return unsubscribles;\n }\n\n /**\n * Batch unsubscribe method that accepts an array of unsubscribe functions\n * All unsubscribe calls will be executed at once\n * @param unsubscribles Array of unsubscribe functions to execute\n */\n batchUnsubscribe(unsubscribles: Unsubscrible[]): void {\n if (!unsubscribles || unsubscribles.length === 0) {\n return;\n }\n\n // Execute all unsubscribe calls\n unsubscribles.forEach((unsub) => {\n if (unsub && typeof unsub.unsubscribe === \"function\") {\n unsub.unsubscribe();\n }\n });\n }\n\n subscribe<T = any>(channel: string, fn: (data: T) => void, filter?: string, methodName?: string): Unsubscrible {\n let sub = this.realtimeClient.getSubscription(channel);\n let listeners = this.listenersMap.get(channel);\n\n if (!sub) {\n listeners = new Set();\n this.listenersMap.set(channel, listeners);\n\n console.log(\"[xrealtime] create new sub: \", channel);\n\n // Process filter expression with method-specific field mappings\n const processedFilter = filter && methodName ? replaceFilterFields(filter, methodName) : filter;\n\n sub = this.realtimeClient.newSubscription(channel, {\n delta: \"fossil\",\n ...(processedFilter && { filter: processedFilter }),\n });\n\n sub\n .on(\"subscribed\", () => {\n console.log(\"[xrealtime] subscribed\", channel);\n })\n .on(\"unsubscribed\", () => {\n console.log(\"[xrealtime] unsubscribed\", channel);\n })\n .on(\"publication\", (ctx) => {\n // console.log('[xrealtime] publication, ctx.data: ', ctx.data);\n listeners?.forEach((it) => it(ctx.data));\n })\n .subscribe();\n }\n\n listeners?.add(fn);\n\n return new StreamUnsubscrible<T>(this, channel, fn);\n }\n\n unsubscribe<T = any>(channel: string, fn: (data: T) => void) {\n const listeners = this.listenersMap.get(channel);\n if (!listeners) {\n return;\n }\n\n listeners.delete(fn);\n console.log(\"unsubscribe, remain listeners: \", listeners.size);\n\n if (listeners.size === 0) {\n console.log(\"unsubscribe channel: \", channel);\n\n const sub = this.realtimeClient.getSubscription(channel);\n if (sub) {\n sub.unsubscribe();\n this.realtimeClient.removeSubscription(sub);\n }\n\n this.listenersMap.delete(channel);\n }\n }\n\n private formatScientificNotation(value: any): string {\n if (value === null || value === undefined) {\n return \"0\";\n }\n\n const strValue = value.toString();\n if (strValue.includes(\"e-\") || strValue.includes(\"E-\")) {\n return Number(value)\n .toFixed(20)\n .replace(/\\.?0+$/, \"\");\n }\n\n return strValue;\n }\n\n subscribeTokenCandles({\n chain,\n tokenAddress,\n resolution,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n resolution: Resolution;\n callback: (data: TokenCandle) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-candle:${chain}_${tokenAddress}_${resolution}`;\n return this.subscribe(channel, (data: any) => {\n callback({\n open: data.o,\n close: data.c,\n high: data.h,\n low: data.l,\n volume: data.v,\n resolution: data.r,\n time: data.t,\n number: data.n,\n });\n }, filter, \"subscribeTokenCandles\");\n }\n\n subscribeTokenStats({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenStat) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-stats:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n address: data.a,\n timestamp: data.t,\n buys1m: data.b1m,\n sells1m: data.s1m,\n buyers1m: data.be1m,\n sellers1m: data.se1m,\n buyVolumeInUsd1m: this.formatScientificNotation(data.bviu1m),\n sellVolumeInUsd1m: this.formatScientificNotation(data.sviu1m),\n price1m: this.formatScientificNotation(data.p1m),\n openInUsd1m: this.formatScientificNotation(data.oiu1m),\n closeInUsd1m: this.formatScientificNotation(data.ciu1m),\n\n buys5m: data.b5m,\n sells5m: data.s5m,\n buyers5m: data.be5m,\n sellers5m: data.se5m,\n buyVolumeInUsd5m: this.formatScientificNotation(data.bviu5m),\n sellVolumeInUsd5m: this.formatScientificNotation(data.sviu5m),\n price5m: this.formatScientificNotation(data.p5m),\n openInUsd5m: this.formatScientificNotation(data.oiu5m),\n closeInUsd5m: this.formatScientificNotation(data.ciu5m),\n\n buys15m: data.b15m,\n sells15m: data.s15m,\n buyers15m: data.be15m,\n sellers15m: data.se15m,\n buyVolumeInUsd15m: this.formatScientificNotation(data.bviu15m),\n sellVolumeInUsd15m: this.formatScientificNotation(data.sviu15m),\n price15m: this.formatScientificNotation(data.p15m),\n openInUsd15m: this.formatScientificNotation(data.oiu15m),\n closeInUsd15m: this.formatScientificNotation(data.ciu15m),\n\n buys30m: data.b30m,\n sells30m: data.s30m,\n buyers30m: data.be30m,\n sellers30m: data.se30m,\n buyVolumeInUsd30m: this.formatScientificNotation(data.bviu30m),\n sellVolumeInUsd30m: this.formatScientificNotation(data.sviu30m),\n price30m: this.formatScientificNotation(data.p30m),\n openInUsd30m: this.formatScientificNotation(data.oiu30m),\n closeInUsd30m: this.formatScientificNotation(data.ciu30m),\n\n buys1h: data.b1h,\n sells1h: data.s1h,\n buyers1h: data.be1h,\n sellers1h: data.se1h,\n buyVolumeInUsd1h: this.formatScientificNotation(data.bviu1h),\n sellVolumeInUsd1h: this.formatScientificNotation(data.sviu1h),\n price1h: this.formatScientificNotation(data.p1h),\n openInUsd1h: this.formatScientificNotation(data.oiu1h),\n closeInUsd1h: this.formatScientificNotation(data.ciu1h),\n\n buys4h: data.b4h,\n sells4h: data.s4h,\n buyers4h: data.be4h,\n sellers4h: data.se4h,\n buyVolumeInUsd4h: this.formatScientificNotation(data.bviu4h),\n sellVolumeInUsd4h: this.formatScientificNotation(data.sviu4h),\n price4h: this.formatScientificNotation(data.p4h),\n openInUsd4h: this.formatScientificNotation(data.oiu4h),\n closeInUsd4h: this.formatScientificNotation(data.ciu4h),\n\n buys24h: data.b24h,\n sells24h: data.s24h,\n buyers24h: data.be24h,\n sellers24h: data.se24h,\n buyVolumeInUsd24h: this.formatScientificNotation(data.bviu24h),\n sellVolumeInUsd24h: this.formatScientificNotation(data.sviu24h),\n price24h: this.formatScientificNotation(data.p24h),\n openInUsd24h: this.formatScientificNotation(data.oiu24h),\n closeInUsd24h: this.formatScientificNotation(data.ciu24h),\n\n price: this.formatScientificNotation(data.p),\n }), filter, \"subscribeTokenStats\");\n }\n\n subscribeTokenHolders({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenHolder) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-holding:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n holders: data.h,\n top100HoldersAmount: this.formatScientificNotation(data.t100a),\n top50HoldersAmount: this.formatScientificNotation(data.t50a),\n top10HoldersAmount: this.formatScientificNotation(data.t10a),\n top100Holders: data.t100h,\n top50Holders: data.t50h,\n top10Holders: data.t10h,\n top100HoldersRatio: this.formatScientificNotation(data.t100r),\n top50HoldersRatio: this.formatScientificNotation(data.t50r),\n top10HoldersRatio: this.formatScientificNotation(data.t10r),\n creatorsHolders: data.ch,\n creatorsAmount: this.formatScientificNotation(data.ca),\n creatorsRatio: this.formatScientificNotation(data.cr),\n balanceTagFreshHolders: data.btfh,\n balanceTagFreshAmount: this.formatScientificNotation(data.btfa),\n balanceTagFreshRatio: this.formatScientificNotation(data.btfr),\n balanceTagSandwichHolders: data.btsh,\n balanceTagSandwichAmount: this.formatScientificNotation(data.btsa),\n balanceTagSandwichRatio: this.formatScientificNotation(data.btsr),\n balanceTagBundleHolders: data.btbh,\n balanceTagBundleAmount: this.formatScientificNotation(data.btba),\n balanceTagBundleRatio: this.formatScientificNotation(data.btbr),\n balanceTagSniperHolders: data.btsnh,\n balanceTagSniperAmount: this.formatScientificNotation(data.btsna),\n balanceTagSniperRatio: this.formatScientificNotation(data.btsnr),\n balanceTagDevHolders: data.btdh,\n balanceTagDevAmount: this.formatScientificNotation(data.btda),\n balanceTagDevRatio: this.formatScientificNotation(data.btdr),\n balanceTagProHolders: data.btph,\n balanceTagProAmount: this.formatScientificNotation(data.btpa),\n balanceTagProRatio: this.formatScientificNotation(data.btpr),\n balanceTagInsiderHolders: data.btih,\n balanceTagInsiderAmount: this.formatScientificNotation(data.btia),\n balanceTagInsiderRatio: this.formatScientificNotation(data.btir),\n balanceTagSmartHolders: data.btsmh,\n balanceTagSmartAmount: this.formatScientificNotation(data.btsma),\n balanceTagSmartRatio: this.formatScientificNotation(data.btsmr),\n balanceTagKolHolders: data.btkh,\n balanceTagKolAmount: this.formatScientificNotation(data.btka),\n balanceTagKolRatio: this.formatScientificNotation(data.btkr),\n balanceTagPhishingHolders: data.btphh,\n balanceTagPhishingAmount: this.formatScientificNotation(data.btpha),\n balanceTagPhishingRatio: this.formatScientificNotation(data.btphr),\n balanceTagBluechipHolders: data.btblh,\n balanceTagBluechipAmount: this.formatScientificNotation(data.btbla),\n balanceTagBluechipRatio: this.formatScientificNotation(data.btblr),\n balanceTagRatHolders: data.btrh,\n balanceTagRatAmount: this.formatScientificNotation(data.btra),\n balanceTagRatRatio: this.formatScientificNotation(data.btrr),\n timestamp: data.ts,\n }), filter, \"subscribeTokenHolders\");\n }\n\n subscribeNewToken({\n chain,\n callback,\n filter,\n }: {\n chain: string;\n callback: (data: NewToken) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-new-token:${chain}`;\n return this.subscribe(channel, (data: any) => {\n const result: any = {\n tokenAddress: data.a,\n name: data.n,\n symbol: data.s,\n createdAtMs: data.cts,\n };\n \n if (data.dec) {\n result.decimals = data.dec;\n }\n \n if (data.lf) {\n result.launchFrom = {};\n if (data.lf.pa) { result.launchFrom.programAddress = data.lf.pa }\n if (data.lf.pf) { result.launchFrom.protocolFamily = data.lf.pf }\n if (data.lf.pn) { result.launchFrom.protocolName = data.lf.pn }\n }\n \n callback(result);\n }, filter, \"subscribeNewToken\");\n }\n\n subscribeNewTokensMetadata({\n chain,\n callback,\n }: {\n chain: string;\n callback: (data: TokenMetadata[]) => void;\n }): Unsubscrible {\n const channel = `dex-new-tokens-metadata:${chain}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n name: it.n,\n symbol: it.s,\n imageUrl: it.iu,\n description: it.de,\n socialMedia: (() => {\n const socialMedia: any = {};\n if (it.sm?.tw) { socialMedia.twitter = it.sm.tw }\n if (it.sm?.tg) { socialMedia.telegram = it.sm.tg }\n if (it.sm?.w) { socialMedia.website = it.sm.w }\n if (it.sm?.tt) { socialMedia.tiktok = it.sm.tt }\n if (it.sm?.dc) { socialMedia.discord = it.sm.dc }\n if (it.sm?.fb) { socialMedia.facebook = it.sm.fb }\n if (it.sm?.gh) { socialMedia.github = it.sm.gh }\n if (it.sm?.ig) { socialMedia.instagram = it.sm.ig }\n if (it.sm?.li) { socialMedia.linkedin = it.sm.li }\n if (it.sm?.md) { socialMedia.medium = it.sm.md }\n if (it.sm?.rd) { socialMedia.reddit = it.sm.rd }\n if (it.sm?.yt) { socialMedia.youtube = it.sm.yt }\n if (it.sm?.bb) { socialMedia.bitbucket = it.sm.bb }\n return socialMedia;\n })(),\n createdAtMs: it.cts,\n })\n )\n )\n );\n }\n\n // subscribeNewTokens({\n // chain,\n // callback,\n // }: {\n // chain: string;\n // callback: (data: NewToken[]) => void;\n // }): Unsubscrible {\n // const channel = `dex-new-tokens:${chain}`;\n // return this.subscribe(channel, (data: any[]) =>\n // callback(\n // data.map(\n // (it: any) =>\n // ({\n // tokenAddress: it.a,\n // name: it.n,\n // symbol: it.s,\n // description: it.de,\n // createdAtMs: it.cts,\n // }) as NewToken\n // )\n // )\n // );\n // }\n\n subscribeTokenSupply({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenSupply) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-supply:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n supply: data.s,\n marketCapInUsd: data.mc,\n timestamp: data.ts,\n }), filter, \"subscribeTokenSupply\");\n }\n\n subscribeTokenLiquidity({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenLiquidity) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-general-stat-num:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n metricType: data.t,\n value: data.v,\n timestamp: data.ts,\n }), filter, \"subscribeTokenLiquidity\");\n }\n\n subscribeRankingTokensLiquidity({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenLiquidity[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-general_stat_num-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n metricType: it.t,\n value: it.v,\n timestamp: it.ts,\n }) as TokenLiquidity\n )\n )\n );\n }\n\n subscribeRankingTokensList({\n chain,\n ranking_type,\n dex,\n callback,\n }: {\n chain: string;\n ranking_type: RankingType;\n dex?: Dex;\n callback: (data: RankingTokenList[]) => void;\n }): Unsubscrible {\n const channel = dex\n ? `dex-ranking-list:${chain}_${ranking_type}_${dex}`\n : `dex-ranking-list:${chain}_${ranking_type}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map((item: any) => {\n const result: RankingTokenList = {} as RankingTokenList;\n\n // TokenMetadata (t)\n if (item.t) {\n result.metadata = {\n tokenAddress: item.t.a,\n };\n if (item.t.n) { result.metadata.name = item.t.n }\n if (item.t.s) { result.metadata.symbol = item.t.s }\n if (item.t.iu) { result.metadata.imageUrl = item.t.iu }\n if (item.t.de) { result.metadata.description = item.t.de }\n if (item.t.d) { result.metadata.decimals = item.t.dec }\n if (item.t.cts) { result.metadata.createdAtMs = item.t.cts }\n if (item.t.lf) {\n result.metadata.launchFrom = {};\n if (item.t.lf.pa) { result.metadata.launchFrom.programAddress = item.t.lf.pa }\n if (item.t.lf.pf) { result.metadata.launchFrom.protocolFamily = item.t.lf.pf }\n if (item.t.lf.pn) { result.metadata.launchFrom.protocolName = item.t.lf.pn }\n }\n if (item.t.mt) {\n result.metadata.migratedTo = {};\n if (item.t.mt.pa) { result.metadata.migratedTo.programAddress = item.t.mt.pa }\n if (item.t.mt.pf) { result.metadata.migratedTo.protocolFamily = item.t.mt.pf }\n if (item.t.mt.pn) { result.metadata.migratedTo.protocolName = item.t.mt.pn }\n }\n if (item.t.sm) {\n result.metadata.socialMedia = {};\n if (item.t.sm.tw) { result.metadata.socialMedia.twitter = item.t.sm.tw }\n if (item.t.sm.tg) { result.metadata.socialMedia.telegram = item.t.sm.tg }\n if (item.t.sm.w) { result.metadata.socialMedia.website = item.t.sm.w }\n if (item.t.sm.tt) { result.metadata.socialMedia.tiktok = item.t.sm.tt }\n if (item.t.sm.dc) { result.metadata.socialMedia.discord = item.t.sm.dc }\n if (item.t.sm.fb) { result.metadata.socialMedia.facebook = item.t.sm.fb }\n if (item.t.sm.gh) { result.metadata.socialMedia.github = item.t.sm.gh }\n if (item.t.sm.ig) { result.metadata.socialMedia.instagram = item.t.sm.ig }\n if (item.t.sm.li) { result.metadata.socialMedia.linkedin = item.t.sm.li }\n if (item.t.sm.md) { result.metadata.socialMedia.medium = item.t.sm.md }\n if (item.t.sm.rd) { result.metadata.socialMedia.reddit = item.t.sm.rd }\n if (item.t.sm.yt) { result.metadata.socialMedia.youtube = item.t.sm.yt }\n if (item.t.sm.bb) { result.metadata.socialMedia.bitbucket = item.t.sm.bb }\n }\n if (item.t.cts) { result.metadata.createdAtMs = item.t.cts }\n }\n\n // TokenBondingCurve (bc)\n if (item.bc) {\n result.bondingCurve = {};\n if (item.bc.pr) { result.bondingCurve.progressRatio = this.formatScientificNotation(item.bc.pr) }\n }\n\n // TokenHolder (h)\n if (item.h) {\n result.holder = {\n tokenAddress: item.h.a,\n timestamp: item.h.ts || 0,\n };\n if (item.h.h) { result.holder.holders = item.h.h }\n if (item.h.t100a) { result.holder.top100HoldersAmount = this.formatScientificNotation(item.h.t100a) }\n if (item.h.t50a) { result.holder.top50HoldersAmount = this.formatScientificNotation(item.h.t50a) }\n if (item.h.t10a) { result.holder.top10HoldersAmount = this.formatScientificNotation(item.h.t10a) }\n if (item.h.t100h) { result.holder.top100Holders = item.h.t100h }\n if (item.h.t50h) { result.holder.top50Holders = item.h.t50h }\n if (item.h.t10h) { result.holder.top10Holders = item.h.t10h }\n if (item.h.t100r) { result.holder.top100HoldersRatio = this.formatScientificNotation(item.h.t100r) }\n if (item.h.t50r) { result.holder.top50HoldersRatio = this.formatScientificNotation(item.h.t50r) }\n if (item.h.t10r) { result.holder.top10HoldersRatio = this.formatScientificNotation(item.h.t10r) }\n if (item.h.ch) { result.holder.creatorsHolders = item.h.ch }\n if (item.h.ca) { result.holder.creatorsAmount = this.formatScientificNotation(item.h.ca) }\n if (item.h.cr) { result.holder.creatorsRatio = this.formatScientificNotation(item.h.cr) }\n if (item.h.btfh) { result.holder.balanceTagFreshHolders = item.h.btfh }\n if (item.h.btfa) { result.holder.balanceTagFreshAmount = this.formatScientificNotation(item.h.btfa) }\n if (item.h.btfr) { result.holder.balanceTagFreshRatio = this.formatScientificNotation(item.h.btfr) }\n if (item.h.btsh) { result.holder.balanceTagSandwichHolders = item.h.btsh }\n if (item.h.btsa) { result.holder.balanceTagSandwichAmount = this.formatScientificNotation(item.h.btsa) }\n if (item.h.btsr) { result.holder.balanceTagSandwichRatio = this.formatScientificNotation(item.h.btsr) }\n if (item.h.btbh) { result.holder.balanceTagBundleHolders = item.h.btbh }\n if (item.h.btba) { result.holder.balanceTagBundleAmount = this.formatScientificNotation(item.h.btba) }\n if (item.h.btbr) { result.holder.balanceTagBundleRatio = this.formatScientificNotation(item.h.btbr) }\n if (item.h.btsnh) { result.holder.balanceTagSniperHolders = item.h.btsnh }\n if (item.h.btsna) { result.holder.balanceTagSniperAmount = this.formatScientificNotation(item.h.btsna) }\n if (item.h.btsnr) { result.holder.balanceTagSniperRatio = this.formatScientificNotation(item.h.btsnr) }\n if (item.h.btdh) { result.holder.balanceTagDevHolders = item.h.btdh }\n if (item.h.btda) { result.holder.balanceTagDevAmount = this.formatScientificNotation(item.h.btda) }\n if (item.h.btdr) { result.holder.balanceTagDevRatio = this.formatScientificNotation(item.h.btdr) }\n if (item.h.btph) { result.holder.balanceTagProHolders = item.h.btph }\n if (item.h.btpa) { result.holder.balanceTagProAmount = this.formatScientificNotation(item.h.btpa) }\n if (item.h.btpr) { result.holder.balanceTagProRatio = this.formatScientificNotation(item.h.btpr) }\n if (item.h.btih) { result.holder.balanceTagInsiderHolders = item.h.btih }\n if (item.h.btia) { result.holder.balanceTagInsiderAmount = this.formatScientificNotation(item.h.btia) }\n if (item.h.btir) { result.holder.balanceTagInsiderRatio = this.formatScientificNotation(item.h.btir) }\n if (item.h.btsmh) { result.holder.balanceTagSmartHolders = item.h.btsmh }\n if (item.h.btsma) { result.holder.balanceTagSmartAmount = this.formatScientificNotation(item.h.btsma) }\n if (item.h.btsmr) { result.holder.balanceTagSmartRatio = this.formatScientificNotation(item.h.btsmr) }\n if (item.h.btkh) { result.holder.balanceTagKolHolders = item.h.btkh }\n if (item.h.btka) { result.holder.balanceTagKolAmount = this.formatScientificNotation(item.h.btka) }\n if (item.h.btkr) { result.holder.balanceTagKolRatio = this.formatScientificNotation(item.h.btkr) }\n if (item.h.btphh) { result.holder.balanceTagPhishingHolders = item.h.btphh }\n if (item.h.btpha) { result.holder.balanceTagPhishingAmount = this.formatScientificNotation(item.h.btpha) }\n if (item.h.btphr) { result.holder.balanceTagPhishingRatio = this.formatScientificNotation(item.h.btphr) }\n if (item.h.btblh) { result.holder.balanceTagBluechipHolders = item.h.btblh }\n if (item.h.btbla) { result.holder.balanceTagBluechipAmount = this.formatScientificNotation(item.h.btbla) }\n if (item.h.btblr) { result.holder.balanceTagBluechipRatio = this.formatScientificNotation(item.h.btblr) }\n if (item.h.btrh) { result.holder.balanceTagRatHolders = item.h.btrh }\n if (item.h.btra) { result.holder.balanceTagRatAmount = this.formatScientificNotation(item.h.btra) }\n if (item.h.btrr) { result.holder.balanceTagRatRatio = this.formatScientificNotation(item.h.btrr) }\n }\n\n // TokenSupply (s)\n if (item.s) {\n result.supply = {\n tokenAddress: item.s.a,\n timestamp: item.s.ts || 0,\n };\n if (item.s.s) { result.supply.supply = item.s.s }\n if (item.s.mc) { result.supply.marketCapInUsd = item.s.mc }\n }\n\n // TokenStat (ts)\n if (item.ts) {\n result.stat = {\n address: item.ts.a,\n timestamp: item.ts.t || 0,\n };\n\n // 1m data\n if (item.ts.b1m) { result.stat.buys1m = item.ts.b1m }\n if (item.ts.s1m) { result.stat.sells1m = item.ts.s1m }\n if (item.ts.be1m) { result.stat.buyers1m = item.ts.be1m }\n if (item.ts.se1m) { result.stat.sellers1m = item.ts.se1m }\n if (item.ts.bviu1m) { result.stat.buyVolumeInUsd1m = this.formatScientificNotation(item.ts.bviu1m) }\n if (item.ts.sviu1m) { result.stat.sellVolumeInUsd1m = this.formatScientificNotation(item.ts.sviu1m) }\n if (item.ts.p1m) { result.stat.price1m = this.formatScientificNotation(item.ts.p1m) }\n if (item.ts.oiu1m) { result.stat.openInUsd1m = this.formatScientificNotation(item.ts.oiu1m) }\n if (item.ts.ciu1m) { result.stat.closeInUsd1m = this.formatScientificNotation(item.ts.ciu1m) }\n\n // 5m data\n if (item.ts.b5m) { result.stat.buys5m = item.ts.b5m }\n if (item.ts.s5m) { result.stat.sells5m = item.ts.s5m }\n if (item.ts.be5m) { result.stat.buyers5m = item.ts.be5m }\n if (item.ts.se5m) { result.stat.sellers5m = item.ts.se5m }\n if (item.ts.bviu5m) { result.stat.buyVolumeInUsd5m = this.formatScientificNotation(item.ts.bviu5m) }\n if (item.ts.sviu5m) { result.stat.sellVolumeInUsd5m = this.formatScientificNotation(item.ts.sviu5m) }\n if (item.ts.p5m) { result.stat.price5m = this.formatScientificNotation(item.ts.p5m) }\n if (item.ts.oiu5m) { result.stat.openInUsd5m = this.formatScientificNotation(item.ts.oiu5m) }\n if (item.ts.ciu5m) { result.stat.closeInUsd5m = this.formatScientificNotation(item.ts.ciu5m) }\n\n // 15m data\n if (item.ts.b15m) { result.stat.buys15m = item.ts.b15m }\n if (item.ts.s15m) { result.stat.sells15m = item.ts.s15m }\n if (item.ts.be15m) { result.stat.buyers15m = item.ts.be15m }\n if (item.ts.se15m) { result.stat.sellers15m = item.ts.se15m }\n if (item.ts.bviu15m) { result.stat.buyVolumeInUsd15m = this.formatScientificNotation(item.ts.bviu15m) }\n if (item.ts.sviu15m) { result.stat.sellVolumeInUsd15m = this.formatScientificNotation(item.ts.sviu15m) }\n if (item.ts.p15m) { result.stat.price15m = this.formatScientificNotation(item.ts.p15m) }\n if (item.ts.oiu15m) { result.stat.openInUsd15m = this.formatScientificNotation(item.ts.oiu15m) }\n if (item.ts.ciu15m) { result.stat.closeInUsd15m = this.formatScientificNotation(item.ts.ciu15m) }\n\n // 30m data\n if (item.ts.b30m) { result.stat.buys30m = item.ts.b30m }\n if (item.ts.s30m) { result.stat.sells30m = item.ts.s30m }\n if (item.ts.be30m) { result.stat.buyers30m = item.ts.be30m }\n if (item.ts.se30m) { result.stat.sellers30m = item.ts.se30m }\n if (item.ts.bviu30m) { result.stat.buyVolumeInUsd30m = this.formatScientificNotation(item.ts.bviu30m) }\n if (item.ts.sviu30m) { result.stat.sellVolumeInUsd30m = this.formatScientificNotation(item.ts.sviu30m) }\n if (item.ts.p30m) { result.stat.price30m = this.formatScientificNotation(item.ts.p30m) }\n if (item.ts.oiu30m) { result.stat.openInUsd30m = this.formatScientificNotation(item.ts.oiu30m) }\n if (item.ts.ciu30m) { result.stat.closeInUsd30m = this.formatScientificNotation(item.ts.ciu30m) }\n\n // 1h data\n if (item.ts.b1h) { result.stat.buys1h = item.ts.b1h }\n if (item.ts.s1h) { result.stat.sells1h = item.ts.s1h }\n if (item.ts.be1h) { result.stat.buyers1h = item.ts.be1h }\n if (item.ts.se1h) { result.stat.sellers1h = item.ts.se1h }\n if (item.ts.bviu1h) { result.stat.buyVolumeInUsd1h = this.formatScientificNotation(item.ts.bviu1h) }\n if (item.ts.sviu1h) { result.stat.sellVolumeInUsd1h = this.formatScientificNotation(item.ts.sviu1h) }\n if (item.ts.p1h) { result.stat.price1h = this.formatScientificNotation(item.ts.p1h) }\n if (item.ts.oiu1h) { result.stat.openInUsd1h = this.formatScientificNotation(item.ts.oiu1h) }\n if (item.ts.ciu1h) { result.stat.closeInUsd1h = this.formatScientificNotation(item.ts.ciu1h) }\n\n // 4h data\n if (item.ts.b4h) { result.stat.buys4h = item.ts.b4h }\n if (item.ts.s4h) { result.stat.sells4h = item.ts.s4h }\n if (item.ts.be4h) { result.stat.buyers4h = item.ts.be4h }\n if (item.ts.se4h) { result.stat.sellers4h = item.ts.se4h }\n if (item.ts.bviu4h) { result.stat.buyVolumeInUsd4h = this.formatScientificNotation(item.ts.bviu4h) }\n if (item.ts.sviu4h) { result.stat.sellVolumeInUsd4h = this.formatScientificNotation(item.ts.sviu4h) }\n if (item.ts.p4h) { result.stat.price4h = this.formatScientificNotation(item.ts.p4h) }\n if (item.ts.oiu4h) { result.stat.openInUsd4h = this.formatScientificNotation(item.ts.oiu4h) }\n if (item.ts.ciu4h) { result.stat.closeInUsd4h = this.formatScientificNotation(item.ts.ciu4h) }\n\n // 24h data\n if (item.ts.b24h) { result.stat.buys24h = item.ts.b24h }\n if (item.ts.s24h) { result.stat.sells24h = item.ts.s24h }\n if (item.ts.be24h) { result.stat.buyers24h = item.ts.be24h }\n if (item.ts.se24h) { result.stat.sellers24h = item.ts.se24h }\n if (item.ts.bviu24h) { result.stat.buyVolumeInUsd24h = this.formatScientificNotation(item.ts.bviu24h) }\n if (item.ts.sviu24h) { result.stat.sellVolumeInUsd24h = this.formatScientificNotation(item.ts.sviu24h) }\n if (item.ts.p24h) { result.stat.price24h = this.formatScientificNotation(item.ts.p24h) }\n if (item.ts.oiu24h) { result.stat.openInUsd24h = this.formatScientificNotation(item.ts.oiu24h) }\n if (item.ts.ciu24h) { result.stat.closeInUsd24h = this.formatScientificNotation(item.ts.ciu24h) }\n\n // Current price\n if (item.ts.p) { result.stat.price = this.formatScientificNotation(item.ts.p) }\n }\n\n return result;\n })\n )\n );\n }\n\n subscribeRankingTokensStats({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenStat[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-stats-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n address: it.a,\n timestamp: it.t,\n buys1m: it.b1m,\n sells1m: it.s1m,\n buyers1m: it.be1m,\n sellers1m: it.se1m,\n buyVolumeInUsd1m: this.formatScientificNotation(it.bviu1m),\n sellVolumeInUsd1m: this.formatScientificNotation(it.sviu1m),\n price1m: this.formatScientificNotation(it.p1m),\n openInUsd1m: this.formatScientificNotation(it.oiu1m),\n closeInUsd1m: this.formatScientificNotation(it.ciu1m),\n buys5m: it.b5m,\n sells5m: it.s5m,\n buyers5m: it.be5m,\n sellers5m: it.se5m,\n buyVolumeInUsd5m: this.formatScientificNotation(it.bviu5m),\n sellVolumeInUsd5m: this.formatScientificNotation(it.sviu5m),\n price5m: this.formatScientificNotation(it.p5m),\n openInUsd5m: this.formatScientificNotation(it.oiu5m),\n closeInUsd5m: this.formatScientificNotation(it.ciu5m),\n buys15m: it.b15m,\n sells15m: it.s15m,\n buyers15m: it.be15m,\n sellers15m: it.se15m,\n buyVolumeInUsd15m: this.formatScientificNotation(it.bviu15m),\n sellVolumeInUsd15m: this.formatScientificNotation(it.sviu15m),\n price15m: this.formatScientificNotation(it.p15m),\n openInUsd15m: this.formatScientificNotation(it.oiu15m),\n closeInUsd15m: this.formatScientificNotation(it.ciu15m),\n buys30m: it.b30m,\n sells30m: it.s30m,\n buyers30m: it.be30m,\n sellers30m: it.se30m,\n buyVolumeInUsd30m: this.formatScientificNotation(it.bviu30m),\n sellVolumeInUsd30m: this.formatScientificNotation(it.sviu30m),\n price30m: this.formatScientificNotation(it.p30m),\n openInUsd30m: this.formatScientificNotation(it.oiu30m),\n closeInUsd30m: this.formatScientificNotation(it.ciu30m),\n buys1h: it.b1h,\n sells1h: it.s1h,\n buyers1h: it.be1h,\n sellers1h: it.se1h,\n buyVolumeInUsd1h: this.formatScientificNotation(it.bviu1h),\n sellVolumeInUsd1h: this.formatScientificNotation(it.sviu1h),\n price1h: this.formatScientificNotation(it.p1h),\n openInUsd1h: this.formatScientificNotation(it.oiu1h),\n closeInUsd1h: this.formatScientificNotation(it.ciu1h),\n buys4h: it.b4h,\n sells4h: it.s4h,\n buyers4h: it.be4h,\n sellers4h: it.se4h,\n buyVolumeInUsd4h: this.formatScientificNotation(it.bviu4h),\n sellVolumeInUsd4h: this.formatScientificNotation(it.sviu4h),\n price4h: this.formatScientificNotation(it.p4h),\n openInUsd4h: this.formatScientificNotation(it.oiu4h),\n closeInUsd4h: this.formatScientificNotation(it.ciu4h),\n buys24h: it.b24h,\n sells24h: it.s24h,\n buyers24h: it.be24h,\n sellers24h: it.se24h,\n buyVolumeInUsd24h: this.formatScientificNotation(it.bviu24h),\n sellVolumeInUsd24h: this.formatScientificNotation(it.sviu24h),\n price24h: this.formatScientificNotation(it.p24h),\n price: this.formatScientificNotation(it.p),\n openInUsd24h: this.formatScientificNotation(it.oiu24h),\n closeInUsd24h: this.formatScientificNotation(it.ciu24h),\n }) as TokenStat\n )\n )\n );\n }\n\n subscribeRankingTokensHolders({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenHolder[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-holding-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n holders: it.h,\n top100HoldersAmount: this.formatScientificNotation(it.t100a),\n top50HoldersAmount: this.formatScientificNotation(it.t50a),\n top10HoldersAmount: this.formatScientificNotation(it.t10a),\n top100Holders: it.t100h,\n top50Holders: it.t50h,\n top10Holders: it.t10h,\n top100HoldersRatio: this.formatScientificNotation(it.t100r),\n top50HoldersRatio: this.formatScientificNotation(it.t50r),\n top10HoldersRatio: this.formatScientificNotation(it.t10r),\n creatorsHolders: it.ch,\n creatorsAmount: this.formatScientificNotation(it.ca),\n creatorsRatio: this.formatScientificNotation(it.cr),\n balanceTagFreshHolders: it.btfh,\n balanceTagFreshAmount: this.formatScientificNotation(it.btfa),\n balanceTagFreshRatio: this.formatScientificNotation(it.btfr),\n balanceTagSandwichHolders: it.btsh,\n balanceTagSandwichAmount: this.formatScientificNotation(it.btsa),\n balanceTagSandwichRatio: this.formatScientificNotation(it.btsr),\n balanceTagBundleHolders: it.btbh,\n balanceTagBundleAmount: this.formatScientificNotation(it.btba),\n balanceTagBundleRatio: this.formatScientificNotation(it.btbr),\n balanceTagSniperHolders: it.btsnh,\n balanceTagSniperAmount: this.formatScientificNotation(it.btsna),\n balanceTagSniperRatio: this.formatScientificNotation(it.btsnr),\n balanceTagDevHolders: it.btdh,\n balanceTagDevAmount: this.formatScientificNotation(it.btda),\n balanceTagDevRatio: this.formatScientificNotation(it.btdr),\n balanceTagProHolders: it.btph,\n balanceTagProAmount: this.formatScientificNotation(it.btpa),\n balanceTagProRatio: this.formatScientificNotation(it.btpr),\n balanceTagInsiderHolders: it.btih,\n balanceTagInsiderAmount: this.formatScientificNotation(it.btia),\n balanceTagInsiderRatio: this.formatScientificNotation(it.btir),\n balanceTagSmartHolders: it.btsmh,\n balanceTagSmartAmount: this.formatScientificNotation(it.btsma),\n balanceTagSmartRatio: this.formatScientificNotation(it.btsmr),\n balanceTagKolHolders: it.btkh,\n balanceTagKolAmount: this.formatScientificNotation(it.btka),\n balanceTagKolRatio: this.formatScientificNotation(it.btkr),\n balanceTagPhishingHolders: it.btphh,\n balanceTagPhishingAmount: this.formatScientificNotation(it.btpha),\n balanceTagPhishingRatio: this.formatScientificNotation(it.btphr),\n balanceTagBluechipHolders: it.btblh,\n balanceTagBluechipAmount: this.formatScientificNotation(it.btbla),\n balanceTagBluechipRatio: this.formatScientificNotation(it.btblr),\n balanceTagRatHolders: it.btrh,\n balanceTagRatAmount: this.formatScientificNotation(it.btra),\n balanceTagRatRatio: this.formatScientificNotation(it.btrr),\n timestamp: it.ts,\n }) as TokenHolder\n )\n )\n );\n }\n\n subscribeRankingTokensSupply({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenSupply[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-supply-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n supply: it.s,\n marketCapInUsd: it.mc,\n timestamp: it.ts,\n })\n )\n )\n );\n }\n\n subscribeRankingTokensBondingCurve({\n chain,\n callback,\n }: {\n chain: string;\n callback: (data: TokenBondingCurve[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-bounding-curve-list:${chain}_new`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n progressRatio: it.pr,\n })\n )\n )\n );\n }\n\n // subscribeTokenTrades({\n // chain,\n // tokenAddress,\n // callback,\n // }: {\n // chain: string;\n // tokenAddress: string;\n // callback: (data: TradeEvent[]) => void;\n // }): Unsubscrible {\n // const channel = `dex-trades:${chain}_${tokenAddress}`;\n // return this.subscribe(channel, (data: any[]) =>\n // callback(\n // data?.map(\n // (it: any) =>\n // ({\n // maker: it.bwa,\n // baseAmount: it.ba,\n // quoteAmount: it.sa,\n // // quoteSymbol: ,\n // quoteAddress: it.swa,\n // amountInUsd: it.baiu,\n // timestamp: it.t,\n // event: it.k,\n // txHash: it.h,\n // // priceInUsd: ,\n // // id: ,\n // // buyCostUsd: it.,\n // tokenAddress: it.a,\n // }) as TradeEvent\n // )\n // )\n // );\n // }\n\n subscribeWalletBalance({\n chain,\n walletAddress,\n callback,\n filter,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: WalletBalance[]) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-wallet-balance:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback([\n {\n walletAddress: data.a,\n tokenAddress: data.ta,\n tokenPriceInUsd: data.tpiu,\n balance: data.b,\n timestamp: data.t,\n },\n ]), filter, \"subscribeWalletBalance\");\n }\n\n subscribeWalletPnl({\n chain,\n walletAddress,\n callback,\n filter,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: WalletTokenPnl) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-wallet-token-pnl:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n walletAddress: data.a,\n tokenAddress: data.ta,\n tokenPriceInUsd: data.tpiu,\n timestamp: data.t,\n opentime: data.ot,\n lasttime: data.lt,\n closetime: data.ct,\n buyAmount: data.ba,\n buyAmountInUsd: data.baiu,\n buyCount: data.bs,\n buyCount30d: data.bs30d,\n buyCount7d: data.bs7d,\n sellAmount: data.sa,\n sellAmountInUsd: data.saiu,\n sellCount: data.ss,\n sellCount30d: data.ss30d,\n sellCount7d: data.ss7d,\n heldDurationTimestamp: data.hdts,\n averageBuyPriceInUsd: data.abpiu,\n averageSellPriceInUsd: data.aspiu,\n unrealizedProfitInUsd: data.upiu,\n unrealizedProfitRatio: data.upr,\n realizedProfitInUsd: data.rpiu,\n realizedProfitRatio: data.rpr,\n totalRealizedProfitInUsd: data.trpiu,\n totalRealizedProfitRatio: data.trr,\n }), filter, \"subscribeWalletPnl\");\n }\n\n subscribeWalletPnlList({\n chain,\n walletAddress,\n callback,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: WalletPnl[]) => void;\n }): Unsubscrible {\n const channel = `dex-wallet-pnl-list:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n walletAddress: it.a,\n buys: it.bs,\n buyAmount: it.ba,\n buyAmountInUsd: it.baiu,\n averageBuyPriceInUsd: it.abpiu,\n sellAmount: it.sa,\n sellAmountInUsd: it.saiu,\n sells: it.ss,\n wins: it.ws,\n winRatio: it.wr,\n pnlInUsd: it.piu,\n averagePnlInUsd: it.apiu,\n pnlRatio: it.pr,\n profitableDays: it.pd,\n losingDays: it.ld,\n tokens: it.ts,\n resolution: it.r,\n }) as WalletPnl\n )\n )\n );\n }\n\n subscribeTokenTrade({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TradeActivity) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-trade:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n timestamp: data.t,\n kind: data.k,\n buyAmount: data.ba,\n buyAmountInUsd: data.baiu,\n buyTokenAddress: data.btma,\n buyTokenName: data.btn,\n buyTokenSymbol: data.bts,\n buyWalletAddress: data.bwa,\n sellAmount: data.sa,\n sellAmountInUsd: data.saiu,\n sellTokenAddress: data.stma,\n sellTokenName: data.stn,\n sellTokenSymbol: data.sts,\n sellWalletAddress: data.swa,\n txHash: data.h,\n }), filter, \"subscribeTokenTrades\");\n }\n\n subscribeWalletTrade({\n chain,\n walletAddress,\n callback,\n filter,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: TradeActivity) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-wallet-trade:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n timestamp: data.t,\n kind: data.k,\n buyAmount: data.ba,\n buyAmountInUsd: data.baiu,\n buyTokenAddress: data.btma,\n buyTokenName: data.btn,\n buyTokenSymbol: data.bts,\n buyWalletAddress: data.bwa,\n sellAmount: data.sa,\n sellAmountInUsd: data.saiu,\n sellTokenAddress: data.stma,\n sellTokenName: data.stn,\n sellTokenSymbol: data.sts,\n sellWalletAddress: data.swa,\n txHash: data.h,\n }), filter, \"subscribeTokenTrades\");\n }\n\n subscribeDexPoolBalance({\n chain,\n poolAddress,\n callback,\n }: {\n chain: string;\n poolAddress: string;\n callback: (data: DexPoolBalance) => void;\n }): Unsubscrible {\n const channel = `dex-pool-balance:${chain}_${poolAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n poolAddress: data.a,\n tokenAAddress: data.taa,\n tokenALiquidityInUsd: data.taliu,\n tokenBAddress: data.tba,\n tokenBLiquidityInUsd: data.tbliu,\n })\n );\n }\n}\nclass StreamUnsubscrible<T> {\n constructor(\n private readonly streamApi: StreamApi,\n private readonly channel: string,\n private readonly fn: (data: T) => void\n ) { }\n\n unsubscribe() {\n this.streamApi.unsubscribe(this.channel, this.fn);\n }\n}","/**\n * Field mappings for CEL filter expressions\n * Maps human-readable field names to short field names used in the API\n * Organized by subscription method to handle field name conflicts\n */\n\nexport interface FieldMapping {\n readonly [key: string]: string;\n}\n\nexport interface MethodFieldMappings {\n readonly [methodName: string]: FieldMapping;\n}\n\n/**\n * Field mappings organized by subscription method\n * Each method can have its own field mappings to handle conflicts\n */\nexport const CEL_FIELD_MAPPINGS: MethodFieldMappings = {\n // Wallet balance subscription fields\n \"subscribeWalletBalance\": {\n \"walletAddress\": \"a\",\n \"tokenAddress\": \"ta\",\n \"tokenPriceInUsd\": \"tpiu\",\n \"balance\": \"b\",\n \"timestamp\": \"t\",\n },\n\n // Token candles subscription fields\n \"subscribeTokenCandles\": {\n \"open\": \"o\",\n \"close\": \"c\",\n \"high\": \"h\",\n \"low\": \"l\",\n \"volume\": \"v\",\n \"resolution\": \"r\",\n \"time\": \"t\",\n \"number\": \"n\",\n },\n\n // Token stats subscription fields\n \"subscribeTokenStats\": {\n \"address\": \"a\",\n \"timestamp\": \"t\",\n \"buys1m\": \"b1m\",\n \"sells1m\": \"s1m\",\n \"buyers1m\": \"be1m\",\n \"sellers1m\": \"se1m\",\n \"buyVolumeInUsd1m\": \"bviu1m\",\n \"sellVolumeInUsd1m\": \"sviu1m\",\n \"price1m\": \"p1m\",\n \"openInUsd1m\": \"oiu1m\",\n \"closeInUsd1m\": \"ciu1m\",\n \"buys5m\": \"b5m\",\n \"sells5m\": \"s5m\",\n \"buyers5m\": \"be5m\",\n \"sellers5m\": \"se5m\",\n \"buyVolumeInUsd5m\": \"bviu5m\",\n \"sellVolumeInUsd5m\": \"sviu5m\",\n \"price5m\": \"p5m\",\n \"openInUsd5m\": \"oiu5m\",\n \"closeInUsd5m\": \"ciu5m\",\n \"buys15m\": \"b15m\",\n \"sells15m\": \"s15m\",\n \"buyers15m\": \"be15m\",\n \"sellers15m\": \"se15m\",\n \"buyVolumeInUsd15m\": \"bviu15m\",\n \"sellVolumeInUsd15m\": \"sviu15m\",\n \"price15m\": \"p15m\",\n \"openInUsd15m\": \"oiu15m\",\n \"closeInUsd15m\": \"ciu15m\",\n \"buys30m\": \"b30m\",\n \"sells30m\": \"s30m\",\n \"buyers30m\": \"be30m\",\n \"sellers30m\": \"se30m\",\n \"buyVolumeInUsd30m\": \"bviu30m\",\n \"sellVolumeInUsd30m\": \"sviu30m\",\n \"price30m\": \"p30m\",\n \"openInUsd30m\": \"oiu30m\",\n \"closeInUsd30m\": \"ciu30m\",\n \"buys1h\": \"b1h\",\n \"sells1h\": \"s1h\",\n \"buyers1h\": \"be1h\",\n \"sellers1h\": \"se1h\",\n \"buyVolumeInUsd1h\": \"bviu1h\",\n \"sellVolumeInUsd1h\": \"sviu1h\",\n \"price1h\": \"p1h\",\n \"openInUsd1h\": \"oiu1h\",\n \"closeInUsd1h\": \"ciu1h\",\n \"buys4h\": \"b4h\",\n \"sells4h\": \"s4h\",\n \"buyers4h\": \"be4h\",\n \"sellers4h\": \"se4h\",\n \"buyVolumeInUsd4h\": \"bviu4h\",\n \"sellVolumeInUsd4h\": \"sviu4h\",\n \"price4h\": \"p4h\",\n \"openInUsd4h\": \"oiu4h\",\n \"closeInUsd4h\": \"ciu4h\",\n \"buys24h\": \"b24h\",\n \"sells24h\": \"s24h\",\n \"buyers24h\": \"be24h\",\n \"sellers24h\": \"se24h\",\n \"buyVolumeInUsd24h\": \"bviu24h\",\n \"sellVolumeInUsd24h\": \"sviu24h\",\n \"price24h\": \"p24h\",\n \"price\": \"p\",\n \"openInUsd24h\": \"oiu24h\",\n \"closeInUsd24h\": \"ciu24h\",\n },\n\n // Token holder subscription fields\n \"subscribeTokenHolders\": {\n \"tokenAddress\": \"a\",\n \"holders\": \"h\",\n \"top100HoldersAmount\": \"t100a\",\n \"top50HoldersAmount\": \"t50a\",\n \"top10HoldersAmount\": \"t10a\",\n \"top100Holders\": \"t100h\",\n \"top50Holders\": \"t50h\",\n \"top10Holders\": \"t10h\",\n \"top100HoldersRatio\": \"t100r\",\n \"top50HoldersRatio\": \"t50r\",\n \"top10HoldersRatio\": \"t10r\",\n \"creatorsHolders\": \"ch\",\n \"creatorsAmount\": \"ca\",\n \"creatorsRatio\": \"cr\",\n \"balanceTagFreshHolders\": \"btfh\",\n \"balanceTagFreshAmount\": \"btfa\",\n \"balanceTagFreshRatio\": \"btfr\",\n \"balanceTagSandwichHolders\": \"btsh\",\n \"balanceTagSandwichAmount\": \"btsa\",\n \"balanceTagSandwichRatio\": \"btsr\",\n \"balanceTagBundleHolders\": \"btbh\",\n \"balanceTagBundleAmount\": \"btba\",\n \"balanceTagBundleRatio\": \"btbr\",\n \"balanceTagSniperHolders\": \"btsnh\",\n \"balanceTagSniperAmount\": \"btsna\",\n \"balanceTagSniperRatio\": \"btsnr\",\n \"balanceTagDevHolders\": \"btdh\",\n \"balanceTagDevAmount\": \"btda\",\n \"balanceTagDevRatio\": \"btdr\",\n \"balanceTagProHolders\": \"btph\",\n \"balanceTagProAmount\": \"btpa\",\n \"balanceTagProRatio\": \"btpr\",\n \"balanceTagInsiderHolders\": \"btih\",\n \"balanceTagInsiderAmount\": \"btia\",\n \"balanceTagInsiderRatio\": \"btir\",\n \"balanceTagSmartHolders\": \"btsmh\",\n \"balanceTagSmartAmount\": \"btsma\",\n \"balanceTagSmartRatio\": \"btsmr\",\n \"balanceTagKolHolders\": \"btkh\",\n \"balanceTagKolAmount\": \"btka\",\n \"balanceTagKolRatio\": \"btkr\",\n \"balanceTagPhishingHolders\": \"btphh\",\n \"balanceTagPhishingAmount\": \"btpha\",\n \"balanceTagPhishingRatio\": \"btphr\",\n \"balanceTagBluechipHolders\": \"btblh\",\n \"balanceTagBluechipAmount\": \"btbla\",\n \"balanceTagBluechipRatio\": \"btblr\",\n \"balanceTagRatHolders\": \"btrh\",\n \"balanceTagRatAmount\": \"btra\",\n \"balanceTagRatRatio\": \"btrr\",\n \"timestamp\": \"ts\",\n },\n\n // New token subscription fields\n \"subscribeNewToken\": {\n \"tokenAddress\": \"a\",\n \"name\": \"n\",\n \"symbol\": \"s\",\n \"createdAtMs\": \"cts\",\n },\n\n // Token supply subscription fields\n \"subscribeTokenSupply\": {\n \"tokenAddress\": \"a\",\n \"supply\": \"s\",\n \"timestamp\": \"ts\",\n },\n\n // Dex pool balance subscription fields\n \"subscribeDexPoolBalance\": {\n \"poolAddress\": \"a\",\n \"tokenAAddress\": \"taa\",\n \"tokenALiquidityInUsd\": \"taliu\",\n \"tokenBAddress\": \"tba\",\n \"tokenBLiquidityInUsd\": \"tbliu\",\n },\n\n // Token liquidity subscription fields\n \"subscribeTokenLiquidity\": {\n \"tokenAddress\": \"a\",\n \"metricType\": \"t\",\n \"value\": \"v\",\n \"timestamp\": \"ts\",\n },\n\n // New token metadata subscription fields\n \"subscribeNewTokensMetadata\": {\n \"tokenAddress\": \"a\",\n \"name\": \"n\",\n \"symbol\": \"s\",\n \"imageUrl\": \"iu\",\n \"description\": \"de\",\n \"socialMedia\": \"sm\",\n \"createdAtMs\": \"cts\",\n },\n\n // Token trades subscription fields\n \"subscribeTokenTrades\": {\n \"tokenAddress\": \"a\",\n \"timestamp\": \"t\",\n \"kind\": \"k\",\n \"buyAmount\": \"ba\",\n \"buyAmountInUsd\": \"baiu\",\n \"buyTokenAddress\": \"btma\",\n \"buyTokenName\": \"btn\",\n \"buyTokenSymbol\": \"bts\",\n \"buyWalletAddress\": \"bwa\",\n \"sellAmount\": \"sa\",\n \"sellAmountInUsd\": \"saiu\",\n \"sellTokenAddress\": \"stma\",\n \"sellTokenName\": \"stn\",\n \"sellTokenSymbol\": \"sts\",\n \"sellWalletAddress\": \"swa\",\n \"txHash\": \"h\",\n },\n\n // Wallet token PnL subscription fields\n \"subscribeWalletPnl\": {\n \"walletAddress\": \"a\",\n \"tokenAddress\": \"ta\",\n \"tokenPriceInUsd\": \"tpiu\",\n \"timestamp\": \"t\",\n \"opentime\": \"ot\",\n \"lasttime\": \"lt\",\n \"closetime\": \"ct\",\n \"buyAmount\": \"ba\",\n \"buyAmountInUsd\": \"baiu\",\n \"buyCount\": \"bs\",\n \"buyCount30d\": \"bs30d\",\n \"buyCount7d\": \"bs7d\",\n \"sellAmount\": \"sa\",\n \"sellAmountInUsd\": \"saiu\",\n \"sellCount\": \"ss\",\n \"sellCount30d\": \"ss30d\",\n \"sellCount7d\": \"ss7d\",\n \"heldDurationTimestamp\": \"hdts\",\n \"averageBuyPriceInUsd\": \"abpiu\",\n \"averageSellPriceInUsd\": \"aspiu\",\n \"unrealizedProfitInUsd\": \"upiu\",\n \"unrealizedProfitRatio\": \"upr\",\n \"realizedProfitInUsd\": \"rpiu\",\n \"realizedProfitRatio\": \"rpr\",\n \"totalRealizedProfitInUsd\": \"trpiu\",\n \"totalRealizedProfitRatio\": \"trr\",\n },\n} as const;\n\n/**\n * Get field mappings for a specific subscription method\n * @param methodName - The name of the subscription method\n * @returns Field mapping object for the method, or empty object if not found\n */\nexport function getFieldMappings(methodName: string): FieldMapping {\n return CEL_FIELD_MAPPINGS[methodName] || {};\n}\n\n/**\n * Replace long field names with short field names in a filter expression\n * Automatically adds meta. prefix if not present\n * @param filter - Original filter expression\n * @param methodName - The name of the subscription method\n * @returns Filter expression with short field names and meta. prefix\n */\nexport function replaceFilterFields(filter: string, methodName: string): string {\n if (!filter) {return filter}\n \n const fieldMappings = getFieldMappings(methodName);\n let result = filter;\n \n // Replace all long field names with short field names\n for (const [longField, shortField] of Object.entries(fieldMappings)) {\n // Handle both cases: with and without meta. prefix\n const patterns = [\n // Pattern 1: fieldName (without meta. prefix)\n new RegExp(`\\\\b${longField}\\\\b`, \"g\"),\n // Pattern 2: meta.fieldName (with meta. prefix)\n new RegExp(`\\\\bmeta\\\\.${longField}\\\\b`, \"g\"),\n ];\n \n patterns.forEach((pattern) => {\n result = result.replace(pattern, `meta.${shortField}`);\n });\n }\n \n return result;\n}\n\n/**\n * Type-safe field mapping for specific subscription methods\n */\nexport type SubscriptionMethod = keyof typeof CEL_FIELD_MAPPINGS;\n\n/**\n * Get available field names for a specific subscription method\n * @param methodName - The name of the subscription method\n * @returns Array of available field names\n */\nexport function getAvailableFields(methodName: string): string[] {\n const mappings = getFieldMappings(methodName);\n return Object.keys(mappings);\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | Promise<string> | ((name: string) => string | Promise<string>); // parameter for apiKey security\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string | Promise<string>) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name?: string, scopes?: string[]) => string | Promise<string>) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n private static readonly jsonRegex = new RegExp('^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$', 'i');\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise<Response> {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && (response.status >= 200 && response.status < 300)) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n }))\n };\n\n let body: any;\n if (isFormData(overriddenInit.body)\n || (overriddenInit.body instanceof URLSearchParams)\n || isBlob(overriddenInit.body)) {\n body = overriddenInit.body;\n } else if (this.isJsonMime(headers['Content-Type'])) {\n body = JSON.stringify(overriddenInit.body);\n } else {\n body = overriddenInit.body;\n }\n\n const init: RequestInit = {\n ...overriddenInit,\n body\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response = await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n }) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n};\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise<RequestInit>\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map(key => querystringSingleKey(key, params[key], prefix))\n .filter(part => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery, keyPrefix: string = ''): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n const result: { [key: string]: any } = {};\n for (const key of Object.keys(data)) {\n result[key] = fn(data[key]);\n }\n return result;\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(public raw: Response, private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AddressExposure\n */\nexport interface AddressExposure {\n /**\n * DTO.KYT.ADDRESS_EXPOSURE.CATEGORY\n * @type {string}\n * @memberof AddressExposure\n */\n category: string;\n /**\n * DTO.KYT.ADDRESS_EXPOSURE.VALUE\n * @type {number}\n * @memberof AddressExposure\n */\n value: number;\n}\n\n/**\n * Check if a given object implements the AddressExposure interface.\n */\nexport function instanceOfAddressExposure(value: object): value is AddressExposure {\n if (!('category' in value) || value['category'] === undefined) return false;\n if (!('value' in value) || value['value'] === undefined) return false;\n return true;\n}\n\nexport function AddressExposureFromJSON(json: any): AddressExposure {\n return AddressExposureFromJSONTyped(json, false);\n}\n\nexport function AddressExposureFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressExposure {\n if (json == null) {\n return json;\n }\n return {\n \n 'category': json['category'],\n 'value': json['value'],\n };\n}\n\nexport function AddressExposureToJSON(json: any): AddressExposure {\n return AddressExposureToJSONTyped(json, false);\n}\n\nexport function AddressExposureToJSONTyped(value?: AddressExposure | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'category': value['category'],\n 'value': value['value'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AddressExposure } from './AddressExposure';\nimport {\n AddressExposureFromJSON,\n AddressExposureFromJSONTyped,\n AddressExposureToJSON,\n AddressExposureToJSONTyped,\n} from './AddressExposure';\n\n/**\n * \n * @export\n * @interface AddressRiskResponseDTO\n */\nexport interface AddressRiskResponseDTO {\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.ADDRESS\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n address: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.RISK\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n risk: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.RISK_REASON\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n riskReason: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.ADDRESS_TYPE\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n addressType: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.CLUSTER\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n cluster: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.ADDRESS_IDENTIFICATIONS\n * @type {Array<string>}\n * @memberof AddressRiskResponseDTO\n */\n addressIdentifications: Array<string>;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.EXPOSURES\n * @type {Array<AddressExposure>}\n * @memberof AddressRiskResponseDTO\n */\n exposures: Array<AddressExposure>;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.TRIGGERS\n * @type {Array<string>}\n * @memberof AddressRiskResponseDTO\n */\n triggers: Array<string>;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.STATUS\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n status: string;\n}\n\n/**\n * Check if a given object implements the AddressRiskResponseDTO interface.\n */\nexport function instanceOfAddressRiskResponseDTO(value: object): value is AddressRiskResponseDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('risk' in value) || value['risk'] === undefined) return false;\n if (!('riskReason' in value) || value['riskReason'] === undefined) return false;\n if (!('addressType' in value) || value['addressType'] === undefined) return false;\n if (!('cluster' in value) || value['cluster'] === undefined) return false;\n if (!('addressIdentifications' in value) || value['addressIdentifications'] === undefined) return false;\n if (!('exposures' in value) || value['exposures'] === undefined) return false;\n if (!('triggers' in value) || value['triggers'] === undefined) return false;\n if (!('status' in value) || value['status'] === undefined) return false;\n return true;\n}\n\nexport function AddressRiskResponseDTOFromJSON(json: any): AddressRiskResponseDTO {\n return AddressRiskResponseDTOFromJSONTyped(json, false);\n}\n\nexport function AddressRiskResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressRiskResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'risk': json['risk'],\n 'riskReason': json['riskReason'],\n 'addressType': json['addressType'],\n 'cluster': json['cluster'],\n 'addressIdentifications': json['addressIdentifications'],\n 'exposures': ((json['exposures'] as Array<any>).map(AddressExposureFromJSON)),\n 'triggers': json['triggers'],\n 'status': json['status'],\n };\n}\n\nexport function AddressRiskResponseDTOToJSON(json: any): AddressRiskResponseDTO {\n return AddressRiskResponseDTOToJSONTyped(json, false);\n}\n\nexport function AddressRiskResponseDTOToJSONTyped(value?: AddressRiskResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'risk': value['risk'],\n 'riskReason': value['riskReason'],\n 'addressType': value['addressType'],\n 'cluster': value['cluster'],\n 'addressIdentifications': value['addressIdentifications'],\n 'exposures': ((value['exposures'] as Array<any>).map(AddressExposureToJSON)),\n 'triggers': value['triggers'],\n 'status': value['status'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AlertDetail\n */\nexport interface AlertDetail {\n /**\n * DTO.KYT.ALERT_DETAIL.ALERT_LEVEL\n * @type {string}\n * @memberof AlertDetail\n */\n alertLevel: string;\n /**\n * DTO.KYT.ALERT_DETAIL.SERVICE\n * @type {string}\n * @memberof AlertDetail\n */\n service: string;\n /**\n * DTO.KYT.ALERT_DETAIL.EXTERNAL_ID\n * @type {string}\n * @memberof AlertDetail\n */\n externalId: string;\n /**\n * DTO.KYT.ALERT_DETAIL.ALERT_AMOUNT\n * @type {number}\n * @memberof AlertDetail\n */\n alertAmount: number;\n /**\n * DTO.KYT.ALERT_DETAIL.EXPOSURE_TYPE\n * @type {string}\n * @memberof AlertDetail\n */\n exposureType: string;\n /**\n * DTO.KYT.ALERT_DETAIL.CATEGORY_ID\n * @type {number}\n * @memberof AlertDetail\n */\n categoryId: number;\n /**\n * DTO.KYT.ALERT_DETAIL.MEMO\n * @type {string}\n * @memberof AlertDetail\n */\n memo: string;\n}\n\n/**\n * Check if a given object implements the AlertDetail interface.\n */\nexport function instanceOfAlertDetail(value: object): value is AlertDetail {\n if (!('alertLevel' in value) || value['alertLevel'] === undefined) return false;\n if (!('service' in value) || value['service'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('alertAmount' in value) || value['alertAmount'] === undefined) return false;\n if (!('exposureType' in value) || value['exposureType'] === undefined) return false;\n if (!('categoryId' in value) || value['categoryId'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n return true;\n}\n\nexport function AlertDetailFromJSON(json: any): AlertDetail {\n return AlertDetailFromJSONTyped(json, false);\n}\n\nexport function AlertDetailFromJSONTyped(json: any, ignoreDiscriminator: boolean): AlertDetail {\n if (json == null) {\n return json;\n }\n return {\n \n 'alertLevel': json['alertLevel'],\n 'service': json['service'],\n 'externalId': json['externalId'],\n 'alertAmount': json['alertAmount'],\n 'exposureType': json['exposureType'],\n 'categoryId': json['categoryId'],\n 'memo': json['memo'],\n };\n}\n\nexport function AlertDetailToJSON(json: any): AlertDetail {\n return AlertDetailToJSONTyped(json, false);\n}\n\nexport function AlertDetailToJSONTyped(value?: AlertDetail | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'alertLevel': value['alertLevel'],\n 'service': value['service'],\n 'externalId': value['externalId'],\n 'alertAmount': value['alertAmount'],\n 'exposureType': value['exposureType'],\n 'categoryId': value['categoryId'],\n 'memo': value['memo'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface OnChainActivity\n */\nexport interface OnChainActivity {\n /**\n * DTO.KYT.ON_CHAIN_ACTIVITY.FIRST_TRANSACTION_AT\n * @type {number}\n * @memberof OnChainActivity\n */\n firstTransactionAt: number;\n}\n\n/**\n * Check if a given object implements the OnChainActivity interface.\n */\nexport function instanceOfOnChainActivity(value: object): value is OnChainActivity {\n if (!('firstTransactionAt' in value) || value['firstTransactionAt'] === undefined) return false;\n return true;\n}\n\nexport function OnChainActivityFromJSON(json: any): OnChainActivity {\n return OnChainActivityFromJSONTyped(json, false);\n}\n\nexport function OnChainActivityFromJSONTyped(json: any, ignoreDiscriminator: boolean): OnChainActivity {\n if (json == null) {\n return json;\n }\n return {\n \n 'firstTransactionAt': json['first_transaction_at'],\n };\n}\n\nexport function OnChainActivityToJSON(json: any): OnChainActivity {\n return OnChainActivityToJSONTyped(json, false);\n}\n\nexport function OnChainActivityToJSONTyped(value?: OnChainActivity | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'first_transaction_at': value['firstTransactionAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { OnChainActivity } from './OnChainActivity';\nimport {\n OnChainActivityFromJSON,\n OnChainActivityFromJSONTyped,\n OnChainActivityToJSON,\n OnChainActivityToJSONTyped,\n} from './OnChainActivity';\n\n/**\n * \n * @export\n * @interface AlteryaIdentification\n */\nexport interface AlteryaIdentification {\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.OBJECT\n * @type {string}\n * @memberof AlteryaIdentification\n */\n object: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.ADDRESS\n * @type {string}\n * @memberof AlteryaIdentification\n */\n address: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.CHAIN\n * @type {string}\n * @memberof AlteryaIdentification\n */\n chain: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.RISK_LEVEL\n * @type {string}\n * @memberof AlteryaIdentification\n */\n riskLevel: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.REASON\n * @type {string}\n * @memberof AlteryaIdentification\n */\n reason: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.LABELS\n * @type {Array<string>}\n * @memberof AlteryaIdentification\n */\n labels: Array<string>;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.ON_CHAIN_ACTIVITY\n * @type {OnChainActivity}\n * @memberof AlteryaIdentification\n */\n onChainActivity: OnChainActivity;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.RISK_SCORE\n * @type {number}\n * @memberof AlteryaIdentification\n */\n riskScore: number;\n}\n\n/**\n * Check if a given object implements the AlteryaIdentification interface.\n */\nexport function instanceOfAlteryaIdentification(value: object): value is AlteryaIdentification {\n if (!('object' in value) || value['object'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('riskLevel' in value) || value['riskLevel'] === undefined) return false;\n if (!('reason' in value) || value['reason'] === undefined) return false;\n if (!('labels' in value) || value['labels'] === undefined) return false;\n if (!('onChainActivity' in value) || value['onChainActivity'] === undefined) return false;\n if (!('riskScore' in value) || value['riskScore'] === undefined) return false;\n return true;\n}\n\nexport function AlteryaIdentificationFromJSON(json: any): AlteryaIdentification {\n return AlteryaIdentificationFromJSONTyped(json, false);\n}\n\nexport function AlteryaIdentificationFromJSONTyped(json: any, ignoreDiscriminator: boolean): AlteryaIdentification {\n if (json == null) {\n return json;\n }\n return {\n \n 'object': json['object'],\n 'address': json['address'],\n 'chain': json['chain'],\n 'riskLevel': json['risk_level'],\n 'reason': json['reason'],\n 'labels': json['labels'],\n 'onChainActivity': OnChainActivityFromJSON(json['on_chain_activity']),\n 'riskScore': json['risk_score'],\n };\n}\n\nexport function AlteryaIdentificationToJSON(json: any): AlteryaIdentification {\n return AlteryaIdentificationToJSONTyped(json, false);\n}\n\nexport function AlteryaIdentificationToJSONTyped(value?: AlteryaIdentification | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'object': value['object'],\n 'address': value['address'],\n 'chain': value['chain'],\n 'risk_level': value['riskLevel'],\n 'reason': value['reason'],\n 'labels': value['labels'],\n 'on_chain_activity': OnChainActivityToJSON(value['onChainActivity']),\n 'risk_score': value['riskScore'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BlockchainDTO\n */\nexport interface BlockchainDTO {\n /**\n * DTO.BLOCKCHAIN.SYMBOL\n * @type {string}\n * @memberof BlockchainDTO\n */\n symbol: string;\n /**\n * DTO.BLOCKCHAIN.NAME\n * @type {string}\n * @memberof BlockchainDTO\n */\n name: string;\n /**\n * DTO.BLOCKCHAIN.EXPLORER_URL\n * @type {string}\n * @memberof BlockchainDTO\n */\n explorerUrl: string;\n /**\n * DTO.BLOCKCHAIN.CHAIN_ID\n * @type {number}\n * @memberof BlockchainDTO\n */\n chainId: number;\n}\n\n/**\n * Check if a given object implements the BlockchainDTO interface.\n */\nexport function instanceOfBlockchainDTO(value: object): value is BlockchainDTO {\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('explorerUrl' in value) || value['explorerUrl'] === undefined) return false;\n if (!('chainId' in value) || value['chainId'] === undefined) return false;\n return true;\n}\n\nexport function BlockchainDTOFromJSON(json: any): BlockchainDTO {\n return BlockchainDTOFromJSONTyped(json, false);\n}\n\nexport function BlockchainDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): BlockchainDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'symbol': json['symbol'],\n 'name': json['name'],\n 'explorerUrl': json['explorerUrl'],\n 'chainId': json['chainId'],\n };\n}\n\nexport function BlockchainDTOToJSON(json: any): BlockchainDTO {\n return BlockchainDTOToJSONTyped(json, false);\n}\n\nexport function BlockchainDTOToJSONTyped(value?: BlockchainDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'symbol': value['symbol'],\n 'name': value['name'],\n 'explorerUrl': value['explorerUrl'],\n 'chainId': value['chainId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BlockchainLatestBlockDTO\n */\nexport interface BlockchainLatestBlockDTO {\n /**\n * DTO.BLOCKCHAIN.LATEST_BLOCK.BLOCKHASH\n * @type {string}\n * @memberof BlockchainLatestBlockDTO\n */\n blockhash: string;\n /**\n * DTO.BLOCKCHAIN.LATEST_BLOCK.LAST_VALID_BLOCK_HEIGHT\n * @type {number}\n * @memberof BlockchainLatestBlockDTO\n */\n lastValidBlockHeight: number;\n}\n\n/**\n * Check if a given object implements the BlockchainLatestBlockDTO interface.\n */\nexport function instanceOfBlockchainLatestBlockDTO(value: object): value is BlockchainLatestBlockDTO {\n if (!('blockhash' in value) || value['blockhash'] === undefined) return false;\n if (!('lastValidBlockHeight' in value) || value['lastValidBlockHeight'] === undefined) return false;\n return true;\n}\n\nexport function BlockchainLatestBlockDTOFromJSON(json: any): BlockchainLatestBlockDTO {\n return BlockchainLatestBlockDTOFromJSONTyped(json, false);\n}\n\nexport function BlockchainLatestBlockDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): BlockchainLatestBlockDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'blockhash': json['blockhash'],\n 'lastValidBlockHeight': json['lastValidBlockHeight'],\n };\n}\n\nexport function BlockchainLatestBlockDTOToJSON(json: any): BlockchainLatestBlockDTO {\n return BlockchainLatestBlockDTOToJSONTyped(json, false);\n}\n\nexport function BlockchainLatestBlockDTOToJSONTyped(value?: BlockchainLatestBlockDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'blockhash': value['blockhash'],\n 'lastValidBlockHeight': value['lastValidBlockHeight'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BooleanResultDTO\n */\nexport interface BooleanResultDTO {\n /**\n * DTO.BOOLEAN_RESULT.SUCCESS\n * @type {boolean}\n * @memberof BooleanResultDTO\n */\n success: boolean;\n}\n\n/**\n * Check if a given object implements the BooleanResultDTO interface.\n */\nexport function instanceOfBooleanResultDTO(value: object): value is BooleanResultDTO {\n if (!('success' in value) || value['success'] === undefined) return false;\n return true;\n}\n\nexport function BooleanResultDTOFromJSON(json: any): BooleanResultDTO {\n return BooleanResultDTOFromJSONTyped(json, false);\n}\n\nexport function BooleanResultDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): BooleanResultDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'success': json['success'],\n };\n}\n\nexport function BooleanResultDTOToJSON(json: any): BooleanResultDTO {\n return BooleanResultDTOToJSONTyped(json, false);\n}\n\nexport function BooleanResultDTOToJSONTyped(value?: BooleanResultDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'success': value['success'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CalculatePnlInput\n */\nexport interface CalculatePnlInput {\n /**\n * DTO.WALLET.CALCULATE_PNL.INPUT.TOKEN_ADDRESSES\n * @type {Array<string>}\n * @memberof CalculatePnlInput\n */\n tokenAddresses?: Array<string>;\n}\n\n/**\n * Check if a given object implements the CalculatePnlInput interface.\n */\nexport function instanceOfCalculatePnlInput(value: object): value is CalculatePnlInput {\n return true;\n}\n\nexport function CalculatePnlInputFromJSON(json: any): CalculatePnlInput {\n return CalculatePnlInputFromJSONTyped(json, false);\n}\n\nexport function CalculatePnlInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CalculatePnlInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddresses': json['tokenAddresses'] == null ? undefined : json['tokenAddresses'],\n };\n}\n\nexport function CalculatePnlInputToJSON(json: any): CalculatePnlInput {\n return CalculatePnlInputToJSONTyped(json, false);\n}\n\nexport function CalculatePnlInputToJSONTyped(value?: CalculatePnlInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddresses': value['tokenAddresses'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * \n * @export\n */\nexport const Resolution = {\n _1s: '1s',\n _15s: '15s',\n _30s: '30s',\n _1m: '1m',\n _5m: '5m',\n _15m: '15m',\n _1h: '1h',\n _4h: '4h',\n _12h: '12h',\n _1d: '1d'\n} as const;\nexport type Resolution = typeof Resolution[keyof typeof Resolution];\n\n\nexport function instanceOfResolution(value: any): boolean {\n for (const key in Resolution) {\n if (Object.prototype.hasOwnProperty.call(Resolution, key)) {\n if (Resolution[key as keyof typeof Resolution] === value) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function ResolutionFromJSON(json: any): Resolution {\n return ResolutionFromJSONTyped(json, false);\n}\n\nexport function ResolutionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Resolution {\n return json as Resolution;\n}\n\nexport function ResolutionToJSON(value?: Resolution | null): any {\n return value as any;\n}\n\nexport function ResolutionToJSONTyped(value: any, ignoreDiscriminator: boolean): Resolution {\n return value as Resolution;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Resolution } from './Resolution';\nimport {\n ResolutionFromJSON,\n ResolutionFromJSONTyped,\n ResolutionToJSON,\n ResolutionToJSONTyped,\n} from './Resolution';\n\n/**\n * \n * @export\n * @interface Candle\n */\nexport interface Candle {\n /**\n * DTO.CANDLE.OPEN\n * @type {string}\n * @memberof Candle\n */\n open: string;\n /**\n * DTO.CANDLE.CLOSE\n * @type {string}\n * @memberof Candle\n */\n close: string;\n /**\n * DTO.CANDLE.HIGH\n * @type {string}\n * @memberof Candle\n */\n high: string;\n /**\n * DTO.CANDLE.LOW\n * @type {string}\n * @memberof Candle\n */\n low: string;\n /**\n * DTO.CANDLE.VOLUME\n * @type {string}\n * @memberof Candle\n */\n volume: string;\n /**\n * DTO.CANDLE.RESOLUTION\n * @type {Resolution}\n * @memberof Candle\n */\n resolution: Resolution;\n /**\n * DTO.CANDLE.TIME\n * @type {number}\n * @memberof Candle\n */\n time: number;\n}\n\n\n\n/**\n * Check if a given object implements the Candle interface.\n */\nexport function instanceOfCandle(value: object): value is Candle {\n if (!('open' in value) || value['open'] === undefined) return false;\n if (!('close' in value) || value['close'] === undefined) return false;\n if (!('high' in value) || value['high'] === undefined) return false;\n if (!('low' in value) || value['low'] === undefined) return false;\n if (!('volume' in value) || value['volume'] === undefined) return false;\n if (!('resolution' in value) || value['resolution'] === undefined) return false;\n if (!('time' in value) || value['time'] === undefined) return false;\n return true;\n}\n\nexport function CandleFromJSON(json: any): Candle {\n return CandleFromJSONTyped(json, false);\n}\n\nexport function CandleFromJSONTyped(json: any, ignoreDiscriminator: boolean): Candle {\n if (json == null) {\n return json;\n }\n return {\n \n 'open': json['open'],\n 'close': json['close'],\n 'high': json['high'],\n 'low': json['low'],\n 'volume': json['volume'],\n 'resolution': ResolutionFromJSON(json['resolution']),\n 'time': json['time'],\n };\n}\n\nexport function CandleToJSON(json: any): Candle {\n return CandleToJSONTyped(json, false);\n}\n\nexport function CandleToJSONTyped(value?: Candle | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'open': value['open'],\n 'close': value['close'],\n 'high': value['high'],\n 'low': value['low'],\n 'volume': value['volume'],\n 'resolution': ResolutionToJSON(value['resolution']),\n 'time': value['time'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * \n * @export\n */\nexport const Chain = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type Chain = typeof Chain[keyof typeof Chain];\n\n\nexport function instanceOfChain(value: any): boolean {\n for (const key in Chain) {\n if (Object.prototype.hasOwnProperty.call(Chain, key)) {\n if (Chain[key as keyof typeof Chain] === value) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function ChainFromJSON(json: any): Chain {\n return ChainFromJSONTyped(json, false);\n}\n\nexport function ChainFromJSONTyped(json: any, ignoreDiscriminator: boolean): Chain {\n return json as Chain;\n}\n\nexport function ChainToJSON(value?: Chain | null): any {\n return value as any;\n}\n\nexport function ChainToJSONTyped(value: any, ignoreDiscriminator: boolean): Chain {\n return value as Chain;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChainalysisAddressIdentification\n */\nexport interface ChainalysisAddressIdentification {\n /**\n * DTO.KYT.CHAINALYSIS_ADDRESS_IDENTIFICATION.ADDRESS_NAME\n * @type {string}\n * @memberof ChainalysisAddressIdentification\n */\n addressName: string;\n /**\n * DTO.KYT.CHAINALYSIS_ADDRESS_IDENTIFICATION.DESCRIPTION\n * @type {string}\n * @memberof ChainalysisAddressIdentification\n */\n description: string;\n /**\n * DTO.KYT.CHAINALYSIS_ADDRESS_IDENTIFICATION.CATEGORY_ID\n * @type {number}\n * @memberof ChainalysisAddressIdentification\n */\n categoryId: number;\n}\n\n/**\n * Check if a given object implements the ChainalysisAddressIdentification interface.\n */\nexport function instanceOfChainalysisAddressIdentification(value: object): value is ChainalysisAddressIdentification {\n if (!('addressName' in value) || value['addressName'] === undefined) return false;\n if (!('description' in value) || value['description'] === undefined) return false;\n if (!('categoryId' in value) || value['categoryId'] === undefined) return false;\n return true;\n}\n\nexport function ChainalysisAddressIdentificationFromJSON(json: any): ChainalysisAddressIdentification {\n return ChainalysisAddressIdentificationFromJSONTyped(json, false);\n}\n\nexport function ChainalysisAddressIdentificationFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChainalysisAddressIdentification {\n if (json == null) {\n return json;\n }\n return {\n \n 'addressName': json['addressName'],\n 'description': json['description'],\n 'categoryId': json['categoryId'],\n };\n}\n\nexport function ChainalysisAddressIdentificationToJSON(json: any): ChainalysisAddressIdentification {\n return ChainalysisAddressIdentificationToJSONTyped(json, false);\n}\n\nexport function ChainalysisAddressIdentificationToJSONTyped(value?: ChainalysisAddressIdentification | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'addressName': value['addressName'],\n 'description': value['description'],\n 'categoryId': value['categoryId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ClaimRedPacketInput\n */\nexport interface ClaimRedPacketInput {\n /**\n * DTO.RED_PACKET.CHAIN\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n chain: ClaimRedPacketInputChainEnum;\n /**\n * DTO.RED_PACKET.PACKET_ID\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n packetId?: string;\n /**\n * DTO.RED_PACKET.SHARE_ID\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n shareId?: string;\n /**\n * DTO.RED_PACKET.PASSWORD\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n password?: string;\n /**\n * DTO.RED_PACKET.CLAIMER\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n claimer: string;\n}\n\n\n/**\n * @export\n */\nexport const ClaimRedPacketInputChainEnum = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type ClaimRedPacketInputChainEnum = typeof ClaimRedPacketInputChainEnum[keyof typeof ClaimRedPacketInputChainEnum];\n\n\n/**\n * Check if a given object implements the ClaimRedPacketInput interface.\n */\nexport function instanceOfClaimRedPacketInput(value: object): value is ClaimRedPacketInput {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('claimer' in value) || value['claimer'] === undefined) return false;\n return true;\n}\n\nexport function ClaimRedPacketInputFromJSON(json: any): ClaimRedPacketInput {\n return ClaimRedPacketInputFromJSONTyped(json, false);\n}\n\nexport function ClaimRedPacketInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClaimRedPacketInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'packetId': json['packetId'] == null ? undefined : json['packetId'],\n 'shareId': json['shareId'] == null ? undefined : json['shareId'],\n 'password': json['password'] == null ? undefined : json['password'],\n 'claimer': json['claimer'],\n };\n}\n\nexport function ClaimRedPacketInputToJSON(json: any): ClaimRedPacketInput {\n return ClaimRedPacketInputToJSONTyped(json, false);\n}\n\nexport function ClaimRedPacketInputToJSONTyped(value?: ClaimRedPacketInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'packetId': value['packetId'],\n 'shareId': value['shareId'],\n 'password': value['password'],\n 'claimer': value['claimer'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateEndpointInput\n */\nexport interface CreateEndpointInput {\n /**\n * DTO.ENDPOINT.CHANNELS\n * @type {Array<string>}\n * @memberof CreateEndpointInput\n */\n channels?: Array<string>;\n /**\n * DTO.ENDPOINT.DESCRIPTION\n * @type {string}\n * @memberof CreateEndpointInput\n */\n description?: string;\n /**\n * DTO.ENDPOINT.DISABLED\n * @type {boolean}\n * @memberof CreateEndpointInput\n */\n disabled?: boolean;\n /**\n * DTO.ENDPOINT.FILTER_TYPES\n * @type {Array<string>}\n * @memberof CreateEndpointInput\n */\n filterTypes?: Array<string>;\n /**\n * DTO.ENDPOINT.METADATA\n * @type {object}\n * @memberof CreateEndpointInput\n */\n metadata?: object;\n /**\n * DTO.ENDPOINT.RATE_LIMIT\n * @type {number}\n * @memberof CreateEndpointInput\n */\n rateLimit?: number;\n /**\n * DTO.ENDPOINT.URL\n * @type {string}\n * @memberof CreateEndpointInput\n */\n url?: string;\n /**\n * DTO.ENDPOINT.FILTER\n * @type {string}\n * @memberof CreateEndpointInput\n */\n filter?: string;\n}\n\n/**\n * Check if a given object implements the CreateEndpointInput interface.\n */\nexport function instanceOfCreateEndpointInput(value: object): value is CreateEndpointInput {\n return true;\n}\n\nexport function CreateEndpointInputFromJSON(json: any): CreateEndpointInput {\n return CreateEndpointInputFromJSONTyped(json, false);\n}\n\nexport function CreateEndpointInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateEndpointInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'channels': json['channels'] == null ? undefined : json['channels'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'disabled': json['disabled'] == null ? undefined : json['disabled'],\n 'filterTypes': json['filterTypes'] == null ? undefined : json['filterTypes'],\n 'metadata': json['metadata'] == null ? undefined : json['metadata'],\n 'rateLimit': json['rateLimit'] == null ? undefined : json['rateLimit'],\n 'url': json['url'] == null ? undefined : json['url'],\n 'filter': json['filter'] == null ? undefined : json['filter'],\n };\n}\n\nexport function CreateEndpointInputToJSON(json: any): CreateEndpointInput {\n return CreateEndpointInputToJSONTyped(json, false);\n}\n\nexport function CreateEndpointInputToJSONTyped(value?: CreateEndpointInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'channels': value['channels'],\n 'description': value['description'],\n 'disabled': value['disabled'],\n 'filterTypes': value['filterTypes'],\n 'metadata': value['metadata'],\n 'rateLimit': value['rateLimit'],\n 'url': value['url'],\n 'filter': value['filter'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateRedPacketInput\n */\nexport interface CreateRedPacketInput {\n /**\n * DTO.RED_PACKET.CHAIN\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n chain: CreateRedPacketInputChainEnum;\n /**\n * DTO.RED_PACKET.CREATOR\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n creator: string;\n /**\n * DTO.RED_PACKET.MINT\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n mint: string;\n /**\n * DTO.RED_PACKET.MAX_CLAIMS\n * @type {number}\n * @memberof CreateRedPacketInput\n */\n maxClaims: number;\n /**\n * DTO.RED_PACKET.TOTAL_AMOUNT\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n totalAmount?: string;\n /**\n * DTO.RED_PACKET.FIXED_AMOUNT\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n fixedAmount?: string;\n /**\n * DTO.RED_PACKET.MEMO\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n memo?: string;\n /**\n * DTO.RED_PACKET.PASSWORD\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n password?: string;\n /**\n * DTO.RED_PACKET.CLAIM_AUTHORITY\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n claimAuthority?: string;\n}\n\n\n/**\n * @export\n */\nexport const CreateRedPacketInputChainEnum = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type CreateRedPacketInputChainEnum = typeof CreateRedPacketInputChainEnum[keyof typeof CreateRedPacketInputChainEnum];\n\n\n/**\n * Check if a given object implements the CreateRedPacketInput interface.\n */\nexport function instanceOfCreateRedPacketInput(value: object): value is CreateRedPacketInput {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('creator' in value) || value['creator'] === undefined) return false;\n if (!('mint' in value) || value['mint'] === undefined) return false;\n if (!('maxClaims' in value) || value['maxClaims'] === undefined) return false;\n return true;\n}\n\nexport function CreateRedPacketInputFromJSON(json: any): CreateRedPacketInput {\n return CreateRedPacketInputFromJSONTyped(json, false);\n}\n\nexport function CreateRedPacketInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRedPacketInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'creator': json['creator'],\n 'mint': json['mint'],\n 'maxClaims': json['maxClaims'],\n 'totalAmount': json['totalAmount'] == null ? undefined : json['totalAmount'],\n 'fixedAmount': json['fixedAmount'] == null ? undefined : json['fixedAmount'],\n 'memo': json['memo'] == null ? undefined : json['memo'],\n 'password': json['password'] == null ? undefined : json['password'],\n 'claimAuthority': json['claimAuthority'] == null ? undefined : json['claimAuthority'],\n };\n}\n\nexport function CreateRedPacketInputToJSON(json: any): CreateRedPacketInput {\n return CreateRedPacketInputToJSONTyped(json, false);\n}\n\nexport function CreateRedPacketInputToJSONTyped(value?: CreateRedPacketInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'creator': value['creator'],\n 'mint': value['mint'],\n 'maxClaims': value['maxClaims'],\n 'totalAmount': value['totalAmount'],\n 'fixedAmount': value['fixedAmount'],\n 'memo': value['memo'],\n 'password': value['password'],\n 'claimAuthority': value['claimAuthority'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateRedPacketReply\n */\nexport interface CreateRedPacketReply {\n /**\n * DTO.RED_PACKET.SERIALIZED_TX\n * @type {string}\n * @memberof CreateRedPacketReply\n */\n txSerialize: string;\n /**\n * DTO.RED_PACKET.SHARE_ID\n * @type {string}\n * @memberof CreateRedPacketReply\n */\n shareId: string;\n}\n\n/**\n * Check if a given object implements the CreateRedPacketReply interface.\n */\nexport function instanceOfCreateRedPacketReply(value: object): value is CreateRedPacketReply {\n if (!('txSerialize' in value) || value['txSerialize'] === undefined) return false;\n if (!('shareId' in value) || value['shareId'] === undefined) return false;\n return true;\n}\n\nexport function CreateRedPacketReplyFromJSON(json: any): CreateRedPacketReply {\n return CreateRedPacketReplyFromJSONTyped(json, false);\n}\n\nexport function CreateRedPacketReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRedPacketReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'txSerialize': json['txSerialize'],\n 'shareId': json['shareId'],\n };\n}\n\nexport function CreateRedPacketReplyToJSON(json: any): CreateRedPacketReply {\n return CreateRedPacketReplyToJSONTyped(json, false);\n}\n\nexport function CreateRedPacketReplyToJSONTyped(value?: CreateRedPacketReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'txSerialize': value['txSerialize'],\n 'shareId': value['shareId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateTokenInput\n */\nexport interface CreateTokenInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof CreateTokenInput\n */\n dex: CreateTokenInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof CreateTokenInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof CreateTokenInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.MINT.NAME\n * @type {string}\n * @memberof CreateTokenInput\n */\n name: string;\n /**\n * DTO.DEX.MINT.SYMBOL\n * @type {string}\n * @memberof CreateTokenInput\n */\n symbol: string;\n /**\n * DTO.DEX.MINT.URI\n * @type {string}\n * @memberof CreateTokenInput\n */\n uri?: string;\n /**\n * DTO.DEX.MINT.IMAGE\n * @type {string}\n * @memberof CreateTokenInput\n */\n image?: string;\n /**\n * DTO.DEX.MINT.EXTRA\n * @type {object}\n * @memberof CreateTokenInput\n */\n extra?: object;\n}\n\n\n/**\n * @export\n */\nexport const CreateTokenInputDexEnum = {\n Raydium: 'raydium',\n Pumpfun: 'pumpfun',\n Moonshot: 'moonshot',\n Candy: 'candy',\n Launchpad: 'launchpad'\n} as const;\nexport type CreateTokenInputDexEnum = typeof CreateTokenInputDexEnum[keyof typeof CreateTokenInputDexEnum];\n\n\n/**\n * Check if a given object implements the CreateTokenInput interface.\n */\nexport function instanceOfCreateTokenInput(value: object): value is CreateTokenInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n return true;\n}\n\nexport function CreateTokenInputFromJSON(json: any): CreateTokenInput {\n return CreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function CreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'uri': json['uri'] == null ? undefined : json['uri'],\n 'image': json['image'] == null ? undefined : json['image'],\n 'extra': json['extra'] == null ? undefined : json['extra'],\n };\n}\n\nexport function CreateTokenInputToJSON(json: any): CreateTokenInput {\n return CreateTokenInputToJSONTyped(json, false);\n}\n\nexport function CreateTokenInputToJSONTyped(value?: CreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'uri': value['uri'],\n 'image': value['image'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateTokenReply\n */\nexport interface CreateTokenReply {\n /**\n * DTO.DEX.CREATE_TOKEN.SERIALIZED_TX\n * @type {string}\n * @memberof CreateTokenReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.CREATE_TOKEN.MINT_ADDRESS\n * @type {string}\n * @memberof CreateTokenReply\n */\n mintAddress: string;\n}\n\n/**\n * Check if a given object implements the CreateTokenReply interface.\n */\nexport function instanceOfCreateTokenReply(value: object): value is CreateTokenReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('mintAddress' in value) || value['mintAddress'] === undefined) return false;\n return true;\n}\n\nexport function CreateTokenReplyFromJSON(json: any): CreateTokenReply {\n return CreateTokenReplyFromJSONTyped(json, false);\n}\n\nexport function CreateTokenReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateTokenReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'mintAddress': json['mintAddress'],\n };\n}\n\nexport function CreateTokenReplyToJSON(json: any): CreateTokenReply {\n return CreateTokenReplyToJSONTyped(json, false);\n}\n\nexport function CreateTokenReplyToJSONTyped(value?: CreateTokenReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'mintAddress': value['mintAddress'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenMarketData\n */\nexport interface TokenMarketData {\n /**\n * DTO.TOKEN.MARKET_CAP.TOTAL_SUPPLY\n * @type {string}\n * @memberof TokenMarketData\n */\n totalSupply: string;\n /**\n * DTO.TOKEN.MARKET_CAP.MARKET_CAP_IN_SOL\n * @type {string}\n * @memberof TokenMarketData\n */\n marketCapInSol?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.MARKET_CAP_IN_USD\n * @type {string}\n * @memberof TokenMarketData\n */\n marketCapInUsd: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP10_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n top10TotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP10_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n top10HoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP100_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n top100TotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP100_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n top100HoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.HOLDERS\n * @type {number}\n * @memberof TokenMarketData\n */\n holders: number;\n /**\n * DTO.TOKEN.MARKET_CAP.PRICE_IN_SOL\n * @type {string}\n * @memberof TokenMarketData\n */\n priceInSol?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRICE_IN_USD\n * @type {string}\n * @memberof TokenMarketData\n */\n priceInUsd: string;\n /**\n * DTO.TOKEN.MARKET_CAP.LIQUIDITY_IN_SOL\n * @type {string}\n * @memberof TokenMarketData\n */\n tvlInSol?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.LIQUIDITY_IN_USD\n * @type {string}\n * @memberof TokenMarketData\n */\n tvlInUsd: string;\n /**\n * DTO.TOKEN.MARKET_CAP.COMPLETION_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n completionRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP50_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n top50TotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP50_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n top50HoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BLUECHIP_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n bluechipTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BLUECHIP_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n bluechipTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BLUECHIP_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n bluechipHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.KOL_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n kolTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.KOL_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n kolTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.KOL_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n kolHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SNIPER_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n sniperTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SNIPER_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n sniperTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SNIPER_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n sniperHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRO_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n proTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRO_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n proTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRO_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n proHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.INSIDER_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n insiderTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.INSIDER_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n insiderTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.INSIDER_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n insiderHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SANDWISH_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n sandwishTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SANDWISH_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n sandwishTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SANDWISH_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n sandwishHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.FRESH_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n freshTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.FRESH_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n freshTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.FRESH_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n freshHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BUNDLE_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n bundleTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BUNDLE_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n bundleTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BUNDLE_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n bundleHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.DEV_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n devTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.DEV_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n devTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.DEV_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n devHoldingsRatio?: string;\n}\n\n/**\n * Check if a given object implements the TokenMarketData interface.\n */\nexport function instanceOfTokenMarketData(value: object): value is TokenMarketData {\n if (!('totalSupply' in value) || value['totalSupply'] === undefined) return false;\n if (!('marketCapInUsd' in value) || value['marketCapInUsd'] === undefined) return false;\n if (!('holders' in value) || value['holders'] === undefined) return false;\n if (!('priceInUsd' in value) || value['priceInUsd'] === undefined) return false;\n if (!('tvlInUsd' in value) || value['tvlInUsd'] === undefined) return false;\n return true;\n}\n\nexport function TokenMarketDataFromJSON(json: any): TokenMarketData {\n return TokenMarketDataFromJSONTyped(json, false);\n}\n\nexport function TokenMarketDataFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenMarketData {\n if (json == null) {\n return json;\n }\n return {\n \n 'totalSupply': json['totalSupply'],\n 'marketCapInSol': json['marketCapInSol'] == null ? undefined : json['marketCapInSol'],\n 'marketCapInUsd': json['marketCapInUsd'],\n 'top10TotalHoldings': json['top10TotalHoldings'] == null ? undefined : json['top10TotalHoldings'],\n 'top10HoldingsRatio': json['top10HoldingsRatio'] == null ? undefined : json['top10HoldingsRatio'],\n 'top100TotalHoldings': json['top100TotalHoldings'] == null ? undefined : json['top100TotalHoldings'],\n 'top100HoldingsRatio': json['top100HoldingsRatio'] == null ? undefined : json['top100HoldingsRatio'],\n 'holders': json['holders'],\n 'priceInSol': json['priceInSol'] == null ? undefined : json['priceInSol'],\n 'priceInUsd': json['priceInUsd'],\n 'tvlInSol': json['tvlInSol'] == null ? undefined : json['tvlInSol'],\n 'tvlInUsd': json['tvlInUsd'],\n 'completionRatio': json['completionRatio'] == null ? undefined : json['completionRatio'],\n 'top50TotalHoldings': json['top50TotalHoldings'] == null ? undefined : json['top50TotalHoldings'],\n 'top50HoldingsRatio': json['top50HoldingsRatio'] == null ? undefined : json['top50HoldingsRatio'],\n 'bluechipTotalHolders': json['bluechipTotalHolders'] == null ? undefined : json['bluechipTotalHolders'],\n 'bluechipTotalHoldings': json['bluechipTotalHoldings'] == null ? undefined : json['bluechipTotalHoldings'],\n 'bluechipHoldingsRatio': json['bluechipHoldingsRatio'] == null ? undefined : json['bluechipHoldingsRatio'],\n 'kolTotalHolders': json['kolTotalHolders'] == null ? undefined : json['kolTotalHolders'],\n 'kolTotalHoldings': json['kolTotalHoldings'] == null ? undefined : json['kolTotalHoldings'],\n 'kolHoldingsRatio': json['kolHoldingsRatio'] == null ? undefined : json['kolHoldingsRatio'],\n 'sniperTotalHolders': json['sniperTotalHolders'] == null ? undefined : json['sniperTotalHolders'],\n 'sniperTotalHoldings': json['sniperTotalHoldings'] == null ? undefined : json['sniperTotalHoldings'],\n 'sniperHoldingsRatio': json['sniperHoldingsRatio'] == null ? undefined : json['sniperHoldingsRatio'],\n 'proTotalHolders': json['proTotalHolders'] == null ? undefined : json['proTotalHolders'],\n 'proTotalHoldings': json['proTotalHoldings'] == null ? undefined : json['proTotalHoldings'],\n 'proHoldingsRatio': json['proHoldingsRatio'] == null ? undefined : json['proHoldingsRatio'],\n 'insiderTotalHolders': json['insiderTotalHolders'] == null ? undefined : json['insiderTotalHolders'],\n 'insiderTotalHoldings': json['insiderTotalHoldings'] == null ? undefined : json['insiderTotalHoldings'],\n 'insiderHoldingsRatio': json['insiderHoldingsRatio'] == null ? undefined : json['insiderHoldingsRatio'],\n 'sandwishTotalHolders': json['sandwishTotalHolders'] == null ? undefined : json['sandwishTotalHolders'],\n 'sandwishTotalHoldings': json['sandwishTotalHoldings'] == null ? undefined : json['sandwishTotalHoldings'],\n 'sandwishHoldingsRatio': json['sandwishHoldingsRatio'] == null ? undefined : json['sandwishHoldingsRatio'],\n 'freshTotalHolders': json['freshTotalHolders'] == null ? undefined : json['freshTotalHolders'],\n 'freshTotalHoldings': json['freshTotalHoldings'] == null ? undefined : json['freshTotalHoldings'],\n 'freshHoldingsRatio': json['freshHoldingsRatio'] == null ? undefined : json['freshHoldingsRatio'],\n 'bundleTotalHolders': json['bundleTotalHolders'] == null ? undefined : json['bundleTotalHolders'],\n 'bundleTotalHoldings': json['bundleTotalHoldings'] == null ? undefined : json['bundleTotalHoldings'],\n 'bundleHoldingsRatio': json['bundleHoldingsRatio'] == null ? undefined : json['bundleHoldingsRatio'],\n 'devTotalHolders': json['devTotalHolders'] == null ? undefined : json['devTotalHolders'],\n 'devTotalHoldings': json['devTotalHoldings'] == null ? undefined : json['devTotalHoldings'],\n 'devHoldingsRatio': json['devHoldingsRatio'] == null ? undefined : json['devHoldingsRatio'],\n };\n}\n\nexport function TokenMarketDataToJSON(json: any): TokenMarketData {\n return TokenMarketDataToJSONTyped(json, false);\n}\n\nexport function TokenMarketDataToJSONTyped(value?: TokenMarketData | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'totalSupply': value['totalSupply'],\n 'marketCapInSol': value['marketCapInSol'],\n 'marketCapInUsd': value['marketCapInUsd'],\n 'top10TotalHoldings': value['top10TotalHoldings'],\n 'top10HoldingsRatio': value['top10HoldingsRatio'],\n 'top100TotalHoldings': value['top100TotalHoldings'],\n 'top100HoldingsRatio': value['top100HoldingsRatio'],\n 'holders': value['holders'],\n 'priceInSol': value['priceInSol'],\n 'priceInUsd': value['priceInUsd'],\n 'tvlInSol': value['tvlInSol'],\n 'tvlInUsd': value['tvlInUsd'],\n 'completionRatio': value['completionRatio'],\n 'top50TotalHoldings': value['top50TotalHoldings'],\n 'top50HoldingsRatio': value['top50HoldingsRatio'],\n 'bluechipTotalHolders': value['bluechipTotalHolders'],\n 'bluechipTotalHoldings': value['bluechipTotalHoldings'],\n 'bluechipHoldingsRatio': value['bluechipHoldingsRatio'],\n 'kolTotalHolders': value['kolTotalHolders'],\n 'kolTotalHoldings': value['kolTotalHoldings'],\n 'kolHoldingsRatio': value['kolHoldingsRatio'],\n 'sniperTotalHolders': value['sniperTotalHolders'],\n 'sniperTotalHoldings': value['sniperTotalHoldings'],\n 'sniperHoldingsRatio': value['sniperHoldingsRatio'],\n 'proTotalHolders': value['proTotalHolders'],\n 'proTotalHoldings': value['proTotalHoldings'],\n 'proHoldingsRatio': value['proHoldingsRatio'],\n 'insiderTotalHolders': value['insiderTotalHolders'],\n 'insiderTotalHoldings': value['insiderTotalHoldings'],\n 'insiderHoldingsRatio': value['insiderHoldingsRatio'],\n 'sandwishTotalHolders': value['sandwishTotalHolders'],\n 'sandwishTotalHoldings': value['sandwishTotalHoldings'],\n 'sandwishHoldingsRatio': value['sandwishHoldingsRatio'],\n 'freshTotalHolders': value['freshTotalHolders'],\n 'freshTotalHoldings': value['freshTotalHoldings'],\n 'freshHoldingsRatio': value['freshHoldingsRatio'],\n 'bundleTotalHolders': value['bundleTotalHolders'],\n 'bundleTotalHoldings': value['bundleTotalHoldings'],\n 'bundleHoldingsRatio': value['bundleHoldingsRatio'],\n 'devTotalHolders': value['devTotalHolders'],\n 'devTotalHoldings': value['devTotalHoldings'],\n 'devHoldingsRatio': value['devHoldingsRatio'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenExtraDTO\n */\nexport interface TokenExtraDTO {\n /**\n * DTO.TOKEN.EXTRA.COLLECTION_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n collectionAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.EDITION_NONCE\n * @type {number}\n * @memberof TokenExtraDTO\n */\n editionNonce?: number;\n /**\n * DTO.TOKEN.EXTRA.FUNGIBLE\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n fungible?: boolean;\n /**\n * DTO.TOKEN.EXTRA.IS_MUTABLE\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isMutable?: boolean;\n /**\n * DTO.TOKEN.EXTRA.KEY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n key?: string;\n /**\n * DTO.TOKEN.EXTRA.IS_NATIVE\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isNative?: boolean;\n /**\n * DTO.TOKEN.EXTRA.PRIMARY_SALE_HAPPENED\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n primarySaleHappened?: boolean;\n /**\n * DTO.TOKEN.EXTRA.LAUNCH_FROM_PROGRAM_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n launchFromProgramAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.LAUNCH_FROM_PROTOCOL_FAMILY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n launchFromProtocolFamily?: string;\n /**\n * DTO.TOKEN.EXTRA.PROGRAM_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n programAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_TO_PROGRAM_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n migratedToProgramAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_TO_PROTOCOL_FAMILY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n migratedToProtocolFamily?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_TO_POOL_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n migratedToPoolAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_AT\n * @type {number}\n * @memberof TokenExtraDTO\n */\n migratedAt?: number;\n /**\n * DTO.TOKEN.EXTRA.SELLER_FEE_BASIS_POINTS\n * @type {number}\n * @memberof TokenExtraDTO\n */\n sellerFeeBasisPoints?: number;\n /**\n * DTO.TOKEN.EXTRA.TOKEN_STANDARD\n * @type {string}\n * @memberof TokenExtraDTO\n */\n tokenStandard?: string;\n /**\n * DTO.TOKEN.EXTRA.MINT_AUTHORITY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n mintAuthority?: string;\n /**\n * DTO.TOKEN.EXTRA.FREEZE_AUTHORITY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n freezeAuthority?: string;\n /**\n * DTO.TOKEN.EXTRA.UPDATE_AUTHORITY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n updateAuthority?: string;\n /**\n * DTO.TOKEN.EXTRA.IS_VERIFIED_COLLECTION\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isVerifiedCollection?: boolean;\n /**\n * DTO.TOKEN.EXTRA.IS_WRAPPED\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isWrapped?: boolean;\n}\n\n/**\n * Check if a given object implements the TokenExtraDTO interface.\n */\nexport function instanceOfTokenExtraDTO(value: object): value is TokenExtraDTO {\n return true;\n}\n\nexport function TokenExtraDTOFromJSON(json: any): TokenExtraDTO {\n return TokenExtraDTOFromJSONTyped(json, false);\n}\n\nexport function TokenExtraDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenExtraDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'collectionAddress': json['collectionAddress'] == null ? undefined : json['collectionAddress'],\n 'editionNonce': json['editionNonce'] == null ? undefined : json['editionNonce'],\n 'fungible': json['fungible'] == null ? undefined : json['fungible'],\n 'isMutable': json['isMutable'] == null ? undefined : json['isMutable'],\n 'key': json['key'] == null ? undefined : json['key'],\n 'isNative': json['isNative'] == null ? undefined : json['isNative'],\n 'primarySaleHappened': json['primarySaleHappened'] == null ? undefined : json['primarySaleHappened'],\n 'launchFromProgramAddress': json['launchFromProgramAddress'] == null ? undefined : json['launchFromProgramAddress'],\n 'launchFromProtocolFamily': json['launchFromProtocolFamily'] == null ? undefined : json['launchFromProtocolFamily'],\n 'programAddress': json['programAddress'] == null ? undefined : json['programAddress'],\n 'migratedToProgramAddress': json['migratedToProgramAddress'] == null ? undefined : json['migratedToProgramAddress'],\n 'migratedToProtocolFamily': json['migratedToProtocolFamily'] == null ? undefined : json['migratedToProtocolFamily'],\n 'migratedToPoolAddress': json['migratedToPoolAddress'] == null ? undefined : json['migratedToPoolAddress'],\n 'migratedAt': json['migratedAt'] == null ? undefined : json['migratedAt'],\n 'sellerFeeBasisPoints': json['sellerFeeBasisPoints'] == null ? undefined : json['sellerFeeBasisPoints'],\n 'tokenStandard': json['tokenStandard'] == null ? undefined : json['tokenStandard'],\n 'mintAuthority': json['mintAuthority'] == null ? undefined : json['mintAuthority'],\n 'freezeAuthority': json['freezeAuthority'] == null ? undefined : json['freezeAuthority'],\n 'updateAuthority': json['updateAuthority'] == null ? undefined : json['updateAuthority'],\n 'isVerifiedCollection': json['isVerifiedCollection'] == null ? undefined : json['isVerifiedCollection'],\n 'isWrapped': json['isWrapped'] == null ? undefined : json['isWrapped'],\n };\n}\n\nexport function TokenExtraDTOToJSON(json: any): TokenExtraDTO {\n return TokenExtraDTOToJSONTyped(json, false);\n}\n\nexport function TokenExtraDTOToJSONTyped(value?: TokenExtraDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'collectionAddress': value['collectionAddress'],\n 'editionNonce': value['editionNonce'],\n 'fungible': value['fungible'],\n 'isMutable': value['isMutable'],\n 'key': value['key'],\n 'isNative': value['isNative'],\n 'primarySaleHappened': value['primarySaleHappened'],\n 'launchFromProgramAddress': value['launchFromProgramAddress'],\n 'launchFromProtocolFamily': value['launchFromProtocolFamily'],\n 'programAddress': value['programAddress'],\n 'migratedToProgramAddress': value['migratedToProgramAddress'],\n 'migratedToProtocolFamily': value['migratedToProtocolFamily'],\n 'migratedToPoolAddress': value['migratedToPoolAddress'],\n 'migratedAt': value['migratedAt'],\n 'sellerFeeBasisPoints': value['sellerFeeBasisPoints'],\n 'tokenStandard': value['tokenStandard'],\n 'mintAuthority': value['mintAuthority'],\n 'freezeAuthority': value['freezeAuthority'],\n 'updateAuthority': value['updateAuthority'],\n 'isVerifiedCollection': value['isVerifiedCollection'],\n 'isWrapped': value['isWrapped'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenCreatorsDTO\n */\nexport interface TokenCreatorsDTO {\n /**\n * DTO.TOKEN.CREATORS.ADDRESS\n * @type {string}\n * @memberof TokenCreatorsDTO\n */\n address?: string;\n /**\n * DTO.TOKEN.CREATORS.SHARE\n * @type {number}\n * @memberof TokenCreatorsDTO\n */\n share?: number;\n /**\n * DTO.TOKEN.CREATORS.IS_VERIFIED\n * @type {boolean}\n * @memberof TokenCreatorsDTO\n */\n isVerified?: boolean;\n}\n\n/**\n * Check if a given object implements the TokenCreatorsDTO interface.\n */\nexport function instanceOfTokenCreatorsDTO(value: object): value is TokenCreatorsDTO {\n return true;\n}\n\nexport function TokenCreatorsDTOFromJSON(json: any): TokenCreatorsDTO {\n return TokenCreatorsDTOFromJSONTyped(json, false);\n}\n\nexport function TokenCreatorsDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenCreatorsDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'] == null ? undefined : json['address'],\n 'share': json['share'] == null ? undefined : json['share'],\n 'isVerified': json['isVerified'] == null ? undefined : json['isVerified'],\n };\n}\n\nexport function TokenCreatorsDTOToJSON(json: any): TokenCreatorsDTO {\n return TokenCreatorsDTOToJSONTyped(json, false);\n}\n\nexport function TokenCreatorsDTOToJSONTyped(value?: TokenCreatorsDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'share': value['share'],\n 'isVerified': value['isVerified'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenSocialMediasDTO\n */\nexport interface TokenSocialMediasDTO {\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.TWITTER\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n twitter?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.TELEGRAM\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n telegram?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.WEBSITE\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n website?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.TIKTOK\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n tiktok?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.DISCORD\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n discord?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.FACEBOOK\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n facebook?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.GITHUB\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n github?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.INSTAGRAM\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n instagram?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.LINKEDIN\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n linkedin?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.MEDIUM\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n medium?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.REDDIT\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n reddit?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.YOUTUBE\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n youtube?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.BITBUCKET\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n bitbucket?: string;\n}\n\n/**\n * Check if a given object implements the TokenSocialMediasDTO interface.\n */\nexport function instanceOfTokenSocialMediasDTO(value: object): value is TokenSocialMediasDTO {\n return true;\n}\n\nexport function TokenSocialMediasDTOFromJSON(json: any): TokenSocialMediasDTO {\n return TokenSocialMediasDTOFromJSONTyped(json, false);\n}\n\nexport function TokenSocialMediasDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenSocialMediasDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'twitter': json['twitter'] == null ? undefined : json['twitter'],\n 'telegram': json['telegram'] == null ? undefined : json['telegram'],\n 'website': json['website'] == null ? undefined : json['website'],\n 'tiktok': json['tiktok'] == null ? undefined : json['tiktok'],\n 'discord': json['discord'] == null ? undefined : json['discord'],\n 'facebook': json['facebook'] == null ? undefined : json['facebook'],\n 'github': json['github'] == null ? undefined : json['github'],\n 'instagram': json['instagram'] == null ? undefined : json['instagram'],\n 'linkedin': json['linkedin'] == null ? undefined : json['linkedin'],\n 'medium': json['medium'] == null ? undefined : json['medium'],\n 'reddit': json['reddit'] == null ? undefined : json['reddit'],\n 'youtube': json['youtube'] == null ? undefined : json['youtube'],\n 'bitbucket': json['bitbucket'] == null ? undefined : json['bitbucket'],\n };\n}\n\nexport function TokenSocialMediasDTOToJSON(json: any): TokenSocialMediasDTO {\n return TokenSocialMediasDTOToJSONTyped(json, false);\n}\n\nexport function TokenSocialMediasDTOToJSONTyped(value?: TokenSocialMediasDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'twitter': value['twitter'],\n 'telegram': value['telegram'],\n 'website': value['website'],\n 'tiktok': value['tiktok'],\n 'discord': value['discord'],\n 'facebook': value['facebook'],\n 'github': value['github'],\n 'instagram': value['instagram'],\n 'linkedin': value['linkedin'],\n 'medium': value['medium'],\n 'reddit': value['reddit'],\n 'youtube': value['youtube'],\n 'bitbucket': value['bitbucket'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenExtraDTO } from './TokenExtraDTO';\nimport {\n TokenExtraDTOFromJSON,\n TokenExtraDTOFromJSONTyped,\n TokenExtraDTOToJSON,\n TokenExtraDTOToJSONTyped,\n} from './TokenExtraDTO';\nimport type { TokenCreatorsDTO } from './TokenCreatorsDTO';\nimport {\n TokenCreatorsDTOFromJSON,\n TokenCreatorsDTOFromJSONTyped,\n TokenCreatorsDTOToJSON,\n TokenCreatorsDTOToJSONTyped,\n} from './TokenCreatorsDTO';\nimport type { TokenSocialMediasDTO } from './TokenSocialMediasDTO';\nimport {\n TokenSocialMediasDTOFromJSON,\n TokenSocialMediasDTOFromJSONTyped,\n TokenSocialMediasDTOToJSON,\n TokenSocialMediasDTOToJSONTyped,\n} from './TokenSocialMediasDTO';\n\n/**\n * \n * @export\n * @interface TokenMetadata\n */\nexport interface TokenMetadata {\n /**\n * DTO.TOKEN.METADATA.CHAIN\n * @type {string}\n * @memberof TokenMetadata\n */\n chain: string;\n /**\n * DTO.TOKEN.METADATA.DECIMALS\n * @type {number}\n * @memberof TokenMetadata\n */\n decimals: number;\n /**\n * DTO.TOKEN.METADATA.NAME\n * @type {string}\n * @memberof TokenMetadata\n */\n name: string;\n /**\n * DTO.TOKEN.METADATA.SYMBOL\n * @type {string}\n * @memberof TokenMetadata\n */\n symbol: string;\n /**\n * DTO.TOKEN.METADATA.METADATA_ADDRESS\n * @type {string}\n * @memberof TokenMetadata\n */\n metadataAddress?: string;\n /**\n * DTO.TOKEN.METADATA.ADDRESS\n * @type {string}\n * @memberof TokenMetadata\n */\n address: string;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATORS\n * @type {Array<TokenCreatorsDTO>}\n * @memberof TokenMetadata\n */\n tokenCreators?: Array<TokenCreatorsDTO>;\n /**\n * DTO.TOKEN.METADATA.IMAGE_URL\n * @type {string}\n * @memberof TokenMetadata\n */\n imageUrl?: string;\n /**\n * DTO.TOKEN.METADATA.URI\n * @type {string}\n * @memberof TokenMetadata\n */\n uri?: string;\n /**\n * DTO.TOKEN.METADATA.EXTRA\n * @type {TokenExtraDTO}\n * @memberof TokenMetadata\n */\n extra?: TokenExtraDTO;\n /**\n * DTO.TOKEN.METADATA.SOCIAL_MEDIAS\n * @type {TokenSocialMediasDTO}\n * @memberof TokenMetadata\n */\n socialMedias?: TokenSocialMediasDTO;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATED_AT\n * @type {number}\n * @memberof TokenMetadata\n */\n tokenCreatedAt?: number;\n /**\n * DTO.TOKEN.METADATA.DESCRIPTION\n * @type {string}\n * @memberof TokenMetadata\n */\n description?: string;\n /**\n * DTO.TOKEN.METADATA.DEV_TOTAL_TOKENS\n * @type {number}\n * @memberof TokenMetadata\n */\n devTotalTokens?: number;\n /**\n * DTO.TOKEN.METADATA.DEV_LAST_TOKEN_CREATED_AT\n * @type {string}\n * @memberof TokenMetadata\n */\n devLastTokenCreatedAt?: string;\n}\n\n/**\n * Check if a given object implements the TokenMetadata interface.\n */\nexport function instanceOfTokenMetadata(value: object): value is TokenMetadata {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('decimals' in value) || value['decimals'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function TokenMetadataFromJSON(json: any): TokenMetadata {\n return TokenMetadataFromJSONTyped(json, false);\n}\n\nexport function TokenMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenMetadata {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'decimals': json['decimals'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'metadataAddress': json['metadataAddress'] == null ? undefined : json['metadataAddress'],\n 'address': json['address'],\n 'tokenCreators': json['tokenCreators'] == null ? undefined : ((json['tokenCreators'] as Array<any>).map(TokenCreatorsDTOFromJSON)),\n 'imageUrl': json['imageUrl'] == null ? undefined : json['imageUrl'],\n 'uri': json['uri'] == null ? undefined : json['uri'],\n 'extra': json['extra'] == null ? undefined : TokenExtraDTOFromJSON(json['extra']),\n 'socialMedias': json['socialMedias'] == null ? undefined : TokenSocialMediasDTOFromJSON(json['socialMedias']),\n 'tokenCreatedAt': json['tokenCreatedAt'] == null ? undefined : json['tokenCreatedAt'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'devTotalTokens': json['devTotalTokens'] == null ? undefined : json['devTotalTokens'],\n 'devLastTokenCreatedAt': json['devLastTokenCreatedAt'] == null ? undefined : json['devLastTokenCreatedAt'],\n };\n}\n\nexport function TokenMetadataToJSON(json: any): TokenMetadata {\n return TokenMetadataToJSONTyped(json, false);\n}\n\nexport function TokenMetadataToJSONTyped(value?: TokenMetadata | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'decimals': value['decimals'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'metadataAddress': value['metadataAddress'],\n 'address': value['address'],\n 'tokenCreators': value['tokenCreators'] == null ? undefined : ((value['tokenCreators'] as Array<any>).map(TokenCreatorsDTOToJSON)),\n 'imageUrl': value['imageUrl'],\n 'uri': value['uri'],\n 'extra': TokenExtraDTOToJSON(value['extra']),\n 'socialMedias': TokenSocialMediasDTOToJSON(value['socialMedias']),\n 'tokenCreatedAt': value['tokenCreatedAt'],\n 'description': value['description'],\n 'devTotalTokens': value['devTotalTokens'],\n 'devLastTokenCreatedAt': value['devLastTokenCreatedAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenStat\n */\nexport interface TokenStat {\n /**\n * DTO.TOKEN.STAT.ADDRESS\n * @type {string}\n * @memberof TokenStat\n */\n address: string;\n /**\n * DTO.TOKEN.STAT.PRICE_1M\n * @type {string}\n * @memberof TokenStat\n */\n price1m: string;\n /**\n * DTO.TOKEN.STAT.BUYS_1M\n * @type {number}\n * @memberof TokenStat\n */\n buys1m: number;\n /**\n * DTO.TOKEN.STAT.SELLS_1M\n * @type {number}\n * @memberof TokenStat\n */\n sells1m: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_1M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes1m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_1M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes1m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_1M\n * @type {string}\n * @memberof TokenStat\n */\n volumes1m: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_1M\n * @type {number}\n * @memberof TokenStat\n */\n buyers1m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_1M\n * @type {number}\n * @memberof TokenStat\n */\n sellers1m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.TRADES_1M\n * @type {number}\n * @memberof TokenStat\n */\n trades1m: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_1M\n * @type {number}\n * @memberof TokenStat\n */\n traders1m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd1m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd1m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_5M\n * @type {string}\n * @memberof TokenStat\n */\n price5m: string;\n /**\n * DTO.TOKEN.STAT.BUYS_5M\n * @type {number}\n * @memberof TokenStat\n */\n buys5m: number;\n /**\n * DTO.TOKEN.STAT.SELLS_5M\n * @type {number}\n * @memberof TokenStat\n */\n sells5m: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_5M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes5m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_5M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes5m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_5M\n * @type {string}\n * @memberof TokenStat\n */\n volumes5m: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_5M\n * @type {number}\n * @memberof TokenStat\n */\n buyers5m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_5M\n * @type {number}\n * @memberof TokenStat\n */\n sellers5m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.TRADES_5M\n * @type {number}\n * @memberof TokenStat\n */\n trades5m: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_5M\n * @type {number}\n * @memberof TokenStat\n */\n traders5m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd5m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd5m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_15M\n * @type {string}\n * @memberof TokenStat\n */\n price15m?: string;\n /**\n * DTO.TOKEN.STAT.BUYS_15M\n * @type {number}\n * @memberof TokenStat\n */\n buys15m?: number;\n /**\n * DTO.TOKEN.STAT.SELLS_15M\n * @type {number}\n * @memberof TokenStat\n */\n sells15m?: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_15M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes15m?: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_15M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes15m?: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_15M\n * @type {string}\n * @memberof TokenStat\n */\n volumes15m?: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_15M\n * @type {number}\n * @memberof TokenStat\n */\n buyers15m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_15M\n * @type {number}\n * @memberof TokenStat\n */\n sellers15m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.TRADES_15M\n * @type {number}\n * @memberof TokenStat\n */\n trades15m?: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_15M\n * @type {number}\n * @memberof TokenStat\n */\n traders15m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_30M\n * @type {string}\n * @memberof TokenStat\n */\n price30m: string;\n /**\n * DTO.TOKEN.STAT.BUYS_30M\n * @type {number}\n * @memberof TokenStat\n */\n buys30m: number;\n /**\n * DTO.TOKEN.STAT.SELLS_30M\n * @type {number}\n * @memberof TokenStat\n */\n sells30m: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_30M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes30m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_30M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes30m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_30M\n * @type {string}\n * @memberof TokenStat\n */\n volumes30m: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_30M\n * @type {number}\n * @memberof TokenStat\n */\n buyers30m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_30M\n * @type {number}\n * @memberof TokenStat\n */\n sellers30m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.TRADES_30M\n * @type {number}\n * @memberof TokenStat\n */\n trades30m: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_30M\n * @type {number}\n * @memberof TokenStat\n */\n traders30m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd30m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd30m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_1H\n * @type {string}\n * @memberof TokenStat\n */\n price1h: string;\n /**\n * DTO.TOKEN.STAT.BUYS_1H\n * @type {number}\n * @memberof TokenStat\n */\n buys1h: number;\n /**\n * DTO.TOKEN.STAT.SELLS_1H\n * @type {number}\n * @memberof TokenStat\n */\n sells1h: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_1H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes1h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_1H\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes1h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_1H\n * @type {string}\n * @memberof TokenStat\n */\n volumes1h: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_1H\n * @type {number}\n * @memberof TokenStat\n */\n buyers1h?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_1H\n * @type {number}\n * @memberof TokenStat\n */\n sellers1h?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.TRADES_1H\n * @type {number}\n * @memberof TokenStat\n */\n trades1h: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_1H\n * @type {number}\n * @memberof TokenStat\n */\n traders1h?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd1h?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd1h?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_4H\n * @type {string}\n * @memberof TokenStat\n */\n price4h: string;\n /**\n * DTO.TOKEN.STAT.BUYS_4H\n * @type {number}\n * @memberof TokenStat\n */\n buys4h: number;\n /**\n * DTO.TOKEN.STAT.SELLS_4H\n * @type {number}\n * @memberof TokenStat\n */\n sells4h: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_4H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes4h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_4H\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes4h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_4H\n * @type {string}\n * @memberof TokenStat\n */\n volumes4h: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_4H\n * @type {number}\n * @memberof TokenStat\n */\n buyers4h?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_4H\n * @type {number}\n * @memberof TokenStat\n */\n sellers4h?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.TRADES_4H\n * @type {number}\n * @memberof TokenStat\n */\n trades4h: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_4H\n * @type {number}\n * @memberof TokenStat\n */\n traders4h?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd4h?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd4h?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_24H\n * @type {string}\n * @memberof TokenStat\n */\n price24h: string;\n /**\n * DTO.TOKEN.STAT.BUYS_24H\n * @type {number}\n * @memberof TokenStat\n */\n buys24h: number;\n /**\n * DTO.TOKEN.STAT.SELLS_24H\n * @type {number}\n * @memberof TokenStat\n */\n sells24h: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_24H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes24h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_24H\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes24h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_24H\n * @type {string}\n * @memberof TokenStat\n */\n volumes24h: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_24H\n * @type {number}\n * @memberof TokenStat\n */\n buyers24h?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_24H\n * @type {number}\n * @memberof TokenStat\n */\n sellers24h?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.TRADES_24H\n * @type {number}\n * @memberof TokenStat\n */\n trades24h: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_24H\n * @type {number}\n * @memberof TokenStat\n */\n traders24h?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd24h?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd24h?: string;\n}\n\n/**\n * Check if a given object implements the TokenStat interface.\n */\nexport function instanceOfTokenStat(value: object): value is TokenStat {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('price1m' in value) || value['price1m'] === undefined) return false;\n if (!('buys1m' in value) || value['buys1m'] === undefined) return false;\n if (!('sells1m' in value) || value['sells1m'] === undefined) return false;\n if (!('buyVolumes1m' in value) || value['buyVolumes1m'] === undefined) return false;\n if (!('sellsVolumes1m' in value) || value['sellsVolumes1m'] === undefined) return false;\n if (!('volumes1m' in value) || value['volumes1m'] === undefined) return false;\n if (!('buyVolumesInUsd1m' in value) || value['buyVolumesInUsd1m'] === undefined) return false;\n if (!('sellVolumesInUsd1m' in value) || value['sellVolumesInUsd1m'] === undefined) return false;\n if (!('volumesInUsd1m' in value) || value['volumesInUsd1m'] === undefined) return false;\n if (!('openPriceInUsd1m' in value) || value['openPriceInUsd1m'] === undefined) return false;\n if (!('closePriceInUsd1m' in value) || value['closePriceInUsd1m'] === undefined) return false;\n if (!('priceChangeRatioInUsd1m' in value) || value['priceChangeRatioInUsd1m'] === undefined) return false;\n if (!('trades1m' in value) || value['trades1m'] === undefined) return false;\n if (!('price5m' in value) || value['price5m'] === undefined) return false;\n if (!('buys5m' in value) || value['buys5m'] === undefined) return false;\n if (!('sells5m' in value) || value['sells5m'] === undefined) return false;\n if (!('buyVolumes5m' in value) || value['buyVolumes5m'] === undefined) return false;\n if (!('sellsVolumes5m' in value) || value['sellsVolumes5m'] === undefined) return false;\n if (!('volumes5m' in value) || value['volumes5m'] === undefined) return false;\n if (!('buyVolumesInUsd5m' in value) || value['buyVolumesInUsd5m'] === undefined) return false;\n if (!('sellVolumesInUsd5m' in value) || value['sellVolumesInUsd5m'] === undefined) return false;\n if (!('volumesInUsd5m' in value) || value['volumesInUsd5m'] === undefined) return false;\n if (!('openPriceInUsd5m' in value) || value['openPriceInUsd5m'] === undefined) return false;\n if (!('closePriceInUsd5m' in value) || value['closePriceInUsd5m'] === undefined) return false;\n if (!('priceChangeRatioInUsd5m' in value) || value['priceChangeRatioInUsd5m'] === undefined) return false;\n if (!('trades5m' in value) || value['trades5m'] === undefined) return false;\n if (!('price30m' in value) || value['price30m'] === undefined) return false;\n if (!('buys30m' in value) || value['buys30m'] === undefined) return false;\n if (!('sells30m' in value) || value['sells30m'] === undefined) return false;\n if (!('buyVolumes30m' in value) || value['buyVolumes30m'] === undefined) return false;\n if (!('sellsVolumes30m' in value) || value['sellsVolumes30m'] === undefined) return false;\n if (!('volumes30m' in value) || value['volumes30m'] === undefined) return false;\n if (!('buyVolumesInUsd30m' in value) || value['buyVolumesInUsd30m'] === undefined) return false;\n if (!('sellVolumesInUsd30m' in value) || value['sellVolumesInUsd30m'] === undefined) return false;\n if (!('volumesInUsd30m' in value) || value['volumesInUsd30m'] === undefined) return false;\n if (!('openPriceInUsd30m' in value) || value['openPriceInUsd30m'] === undefined) return false;\n if (!('closePriceInUsd30m' in value) || value['closePriceInUsd30m'] === undefined) return false;\n if (!('priceChangeRatioInUsd30m' in value) || value['priceChangeRatioInUsd30m'] === undefined) return false;\n if (!('trades30m' in value) || value['trades30m'] === undefined) return false;\n if (!('price1h' in value) || value['price1h'] === undefined) return false;\n if (!('buys1h' in value) || value['buys1h'] === undefined) return false;\n if (!('sells1h' in value) || value['sells1h'] === undefined) return false;\n if (!('buyVolumes1h' in value) || value['buyVolumes1h'] === undefined) return false;\n if (!('sellsVolumes1h' in value) || value['sellsVolumes1h'] === undefined) return false;\n if (!('volumes1h' in value) || value['volumes1h'] === undefined) return false;\n if (!('buyVolumesInUsd1h' in value) || value['buyVolumesInUsd1h'] === undefined) return false;\n if (!('sellVolumesInUsd1h' in value) || value['sellVolumesInUsd1h'] === undefined) return false;\n if (!('volumesInUsd1h' in value) || value['volumesInUsd1h'] === undefined) return false;\n if (!('openPriceInUsd1h' in value) || value['openPriceInUsd1h'] === undefined) return false;\n if (!('closePriceInUsd1h' in value) || value['closePriceInUsd1h'] === undefined) return false;\n if (!('priceChangeRatioInUsd1h' in value) || value['priceChangeRatioInUsd1h'] === undefined) return false;\n if (!('trades1h' in value) || value['trades1h'] === undefined) return false;\n if (!('price4h' in value) || value['price4h'] === undefined) return false;\n if (!('buys4h' in value) || value['buys4h'] === undefined) return false;\n if (!('sells4h' in value) || value['sells4h'] === undefined) return false;\n if (!('buyVolumes4h' in value) || value['buyVolumes4h'] === undefined) return false;\n if (!('sellsVolumes4h' in value) || value['sellsVolumes4h'] === undefined) return false;\n if (!('volumes4h' in value) || value['volumes4h'] === undefined) return false;\n if (!('buyVolumesInUsd4h' in value) || value['buyVolumesInUsd4h'] === undefined) return false;\n if (!('sellVolumesInUsd4h' in value) || value['sellVolumesInUsd4h'] === undefined) return false;\n if (!('volumesInUsd4h' in value) || value['volumesInUsd4h'] === undefined) return false;\n if (!('openPriceInUsd4h' in value) || value['openPriceInUsd4h'] === undefined) return false;\n if (!('closePriceInUsd4h' in value) || value['closePriceInUsd4h'] === undefined) return false;\n if (!('priceChangeRatioInUsd4h' in value) || value['priceChangeRatioInUsd4h'] === undefined) return false;\n if (!('trades4h' in value) || value['trades4h'] === undefined) return false;\n if (!('price24h' in value) || value['price24h'] === undefined) return false;\n if (!('buys24h' in value) || value['buys24h'] === undefined) return false;\n if (!('sells24h' in value) || value['sells24h'] === undefined) return false;\n if (!('buyVolumes24h' in value) || value['buyVolumes24h'] === undefined) return false;\n if (!('sellsVolumes24h' in value) || value['sellsVolumes24h'] === undefined) return false;\n if (!('volumes24h' in value) || value['volumes24h'] === undefined) return false;\n if (!('buyVolumesInUsd24h' in value) || value['buyVolumesInUsd24h'] === undefined) return false;\n if (!('sellVolumesInUsd24h' in value) || value['sellVolumesInUsd24h'] === undefined) return false;\n if (!('volumesInUsd24h' in value) || value['volumesInUsd24h'] === undefined) return false;\n if (!('openPriceInUsd24h' in value) || value['openPriceInUsd24h'] === undefined) return false;\n if (!('closePriceInUsd24h' in value) || value['closePriceInUsd24h'] === undefined) return false;\n if (!('priceChangeRatioInUsd24h' in value) || value['priceChangeRatioInUsd24h'] === undefined) return false;\n if (!('trades24h' in value) || value['trades24h'] === undefined) return false;\n return true;\n}\n\nexport function TokenStatFromJSON(json: any): TokenStat {\n return TokenStatFromJSONTyped(json, false);\n}\n\nexport function TokenStatFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenStat {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'price1m': json['price1m'],\n 'buys1m': json['buys1m'],\n 'sells1m': json['sells1m'],\n 'buyVolumes1m': json['buyVolumes1m'],\n 'sellsVolumes1m': json['sellsVolumes1m'],\n 'volumes1m': json['volumes1m'],\n 'buyVolumesInUsd1m': json['buyVolumesInUsd1m'],\n 'sellVolumesInUsd1m': json['sellVolumesInUsd1m'],\n 'volumesInUsd1m': json['volumesInUsd1m'],\n 'buyers1m': json['buyers1m'] == null ? undefined : json['buyers1m'],\n 'sellers1m': json['sellers1m'] == null ? undefined : json['sellers1m'],\n 'openPriceInUsd1m': json['openPriceInUsd1m'],\n 'closePriceInUsd1m': json['closePriceInUsd1m'],\n 'priceChangeRatioInUsd1m': json['priceChangeRatioInUsd1m'],\n 'trades1m': json['trades1m'],\n 'traders1m': json['traders1m'] == null ? undefined : json['traders1m'],\n 'highInUsd1m': json['highInUsd1m'] == null ? undefined : json['highInUsd1m'],\n 'lowInUsd1m': json['lowInUsd1m'] == null ? undefined : json['lowInUsd1m'],\n 'price5m': json['price5m'],\n 'buys5m': json['buys5m'],\n 'sells5m': json['sells5m'],\n 'buyVolumes5m': json['buyVolumes5m'],\n 'sellsVolumes5m': json['sellsVolumes5m'],\n 'volumes5m': json['volumes5m'],\n 'buyVolumesInUsd5m': json['buyVolumesInUsd5m'],\n 'sellVolumesInUsd5m': json['sellVolumesInUsd5m'],\n 'volumesInUsd5m': json['volumesInUsd5m'],\n 'buyers5m': json['buyers5m'] == null ? undefined : json['buyers5m'],\n 'sellers5m': json['sellers5m'] == null ? undefined : json['sellers5m'],\n 'openPriceInUsd5m': json['openPriceInUsd5m'],\n 'closePriceInUsd5m': json['closePriceInUsd5m'],\n 'priceChangeRatioInUsd5m': json['priceChangeRatioInUsd5m'],\n 'trades5m': json['trades5m'],\n 'traders5m': json['traders5m'] == null ? undefined : json['traders5m'],\n 'highInUsd5m': json['highInUsd5m'] == null ? undefined : json['highInUsd5m'],\n 'lowInUsd5m': json['lowInUsd5m'] == null ? undefined : json['lowInUsd5m'],\n 'price15m': json['price15m'] == null ? undefined : json['price15m'],\n 'buys15m': json['buys15m'] == null ? undefined : json['buys15m'],\n 'sells15m': json['sells15m'] == null ? undefined : json['sells15m'],\n 'buyVolumes15m': json['buyVolumes15m'] == null ? undefined : json['buyVolumes15m'],\n 'sellsVolumes15m': json['sellsVolumes15m'] == null ? undefined : json['sellsVolumes15m'],\n 'volumes15m': json['volumes15m'] == null ? undefined : json['volumes15m'],\n 'buyVolumesInUsd15m': json['buyVolumesInUsd15m'] == null ? undefined : json['buyVolumesInUsd15m'],\n 'sellVolumesInUsd15m': json['sellVolumesInUsd15m'] == null ? undefined : json['sellVolumesInUsd15m'],\n 'volumesInUsd15m': json['volumesInUsd15m'] == null ? undefined : json['volumesInUsd15m'],\n 'buyers15m': json['buyers15m'] == null ? undefined : json['buyers15m'],\n 'sellers15m': json['sellers15m'] == null ? undefined : json['sellers15m'],\n 'openPriceInUsd15m': json['openPriceInUsd15m'] == null ? undefined : json['openPriceInUsd15m'],\n 'closePriceInUsd15m': json['closePriceInUsd15m'] == null ? undefined : json['closePriceInUsd15m'],\n 'priceChangeRatioInUsd15m': json['priceChangeRatioInUsd15m'] == null ? undefined : json['priceChangeRatioInUsd15m'],\n 'trades15m': json['trades15m'] == null ? undefined : json['trades15m'],\n 'traders15m': json['traders15m'] == null ? undefined : json['traders15m'],\n 'highInUsd15m': json['highInUsd15m'] == null ? undefined : json['highInUsd15m'],\n 'lowInUsd15m': json['lowInUsd15m'] == null ? undefined : json['lowInUsd15m'],\n 'price30m': json['price30m'],\n 'buys30m': json['buys30m'],\n 'sells30m': json['sells30m'],\n 'buyVolumes30m': json['buyVolumes30m'],\n 'sellsVolumes30m': json['sellsVolumes30m'],\n 'volumes30m': json['volumes30m'],\n 'buyVolumesInUsd30m': json['buyVolumesInUsd30m'],\n 'sellVolumesInUsd30m': json['sellVolumesInUsd30m'],\n 'volumesInUsd30m': json['volumesInUsd30m'],\n 'buyers30m': json['buyers30m'] == null ? undefined : json['buyers30m'],\n 'sellers30m': json['sellers30m'] == null ? undefined : json['sellers30m'],\n 'openPriceInUsd30m': json['openPriceInUsd30m'],\n 'closePriceInUsd30m': json['closePriceInUsd30m'],\n 'priceChangeRatioInUsd30m': json['priceChangeRatioInUsd30m'],\n 'trades30m': json['trades30m'],\n 'traders30m': json['traders30m'] == null ? undefined : json['traders30m'],\n 'highInUsd30m': json['highInUsd30m'] == null ? undefined : json['highInUsd30m'],\n 'lowInUsd30m': json['lowInUsd30m'] == null ? undefined : json['lowInUsd30m'],\n 'price1h': json['price1h'],\n 'buys1h': json['buys1h'],\n 'sells1h': json['sells1h'],\n 'buyVolumes1h': json['buyVolumes1h'],\n 'sellsVolumes1h': json['sellsVolumes1h'],\n 'volumes1h': json['volumes1h'],\n 'buyVolumesInUsd1h': json['buyVolumesInUsd1h'],\n 'sellVolumesInUsd1h': json['sellVolumesInUsd1h'],\n 'volumesInUsd1h': json['volumesInUsd1h'],\n 'buyers1h': json['buyers1h'] == null ? undefined : json['buyers1h'],\n 'sellers1h': json['sellers1h'] == null ? undefined : json['sellers1h'],\n 'openPriceInUsd1h': json['openPriceInUsd1h'],\n 'closePriceInUsd1h': json['closePriceInUsd1h'],\n 'priceChangeRatioInUsd1h': json['priceChangeRatioInUsd1h'],\n 'trades1h': json['trades1h'],\n 'traders1h': json['traders1h'] == null ? undefined : json['traders1h'],\n 'highInUsd1h': json['highInUsd1h'] == null ? undefined : json['highInUsd1h'],\n 'lowInUsd1h': json['lowInUsd1h'] == null ? undefined : json['lowInUsd1h'],\n 'price4h': json['price4h'],\n 'buys4h': json['buys4h'],\n 'sells4h': json['sells4h'],\n 'buyVolumes4h': json['buyVolumes4h'],\n 'sellsVolumes4h': json['sellsVolumes4h'],\n 'volumes4h': json['volumes4h'],\n 'buyVolumesInUsd4h': json['buyVolumesInUsd4h'],\n 'sellVolumesInUsd4h': json['sellVolumesInUsd4h'],\n 'volumesInUsd4h': json['volumesInUsd4h'],\n 'buyers4h': json['buyers4h'] == null ? undefined : json['buyers4h'],\n 'sellers4h': json['sellers4h'] == null ? undefined : json['sellers4h'],\n 'openPriceInUsd4h': json['openPriceInUsd4h'],\n 'closePriceInUsd4h': json['closePriceInUsd4h'],\n 'priceChangeRatioInUsd4h': json['priceChangeRatioInUsd4h'],\n 'trades4h': json['trades4h'],\n 'traders4h': json['traders4h'] == null ? undefined : json['traders4h'],\n 'highInUsd4h': json['highInUsd4h'] == null ? undefined : json['highInUsd4h'],\n 'lowInUsd4h': json['lowInUsd4h'] == null ? undefined : json['lowInUsd4h'],\n 'price24h': json['price24h'],\n 'buys24h': json['buys24h'],\n 'sells24h': json['sells24h'],\n 'buyVolumes24h': json['buyVolumes24h'],\n 'sellsVolumes24h': json['sellsVolumes24h'],\n 'volumes24h': json['volumes24h'],\n 'buyVolumesInUsd24h': json['buyVolumesInUsd24h'],\n 'sellVolumesInUsd24h': json['sellVolumesInUsd24h'],\n 'volumesInUsd24h': json['volumesInUsd24h'],\n 'buyers24h': json['buyers24h'] == null ? undefined : json['buyers24h'],\n 'sellers24h': json['sellers24h'] == null ? undefined : json['sellers24h'],\n 'openPriceInUsd24h': json['openPriceInUsd24h'],\n 'closePriceInUsd24h': json['closePriceInUsd24h'],\n 'priceChangeRatioInUsd24h': json['priceChangeRatioInUsd24h'],\n 'trades24h': json['trades24h'],\n 'traders24h': json['traders24h'] == null ? undefined : json['traders24h'],\n 'highInUsd24h': json['highInUsd24h'] == null ? undefined : json['highInUsd24h'],\n 'lowInUsd24h': json['lowInUsd24h'] == null ? undefined : json['lowInUsd24h'],\n };\n}\n\nexport function TokenStatToJSON(json: any): TokenStat {\n return TokenStatToJSONTyped(json, false);\n}\n\nexport function TokenStatToJSONTyped(value?: TokenStat | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'price1m': value['price1m'],\n 'buys1m': value['buys1m'],\n 'sells1m': value['sells1m'],\n 'buyVolumes1m': value['buyVolumes1m'],\n 'sellsVolumes1m': value['sellsVolumes1m'],\n 'volumes1m': value['volumes1m'],\n 'buyVolumesInUsd1m': value['buyVolumesInUsd1m'],\n 'sellVolumesInUsd1m': value['sellVolumesInUsd1m'],\n 'volumesInUsd1m': value['volumesInUsd1m'],\n 'buyers1m': value['buyers1m'],\n 'sellers1m': value['sellers1m'],\n 'openPriceInUsd1m': value['openPriceInUsd1m'],\n 'closePriceInUsd1m': value['closePriceInUsd1m'],\n 'priceChangeRatioInUsd1m': value['priceChangeRatioInUsd1m'],\n 'trades1m': value['trades1m'],\n 'traders1m': value['traders1m'],\n 'highInUsd1m': value['highInUsd1m'],\n 'lowInUsd1m': value['lowInUsd1m'],\n 'price5m': value['price5m'],\n 'buys5m': value['buys5m'],\n 'sells5m': value['sells5m'],\n 'buyVolumes5m': value['buyVolumes5m'],\n 'sellsVolumes5m': value['sellsVolumes5m'],\n 'volumes5m': value['volumes5m'],\n 'buyVolumesInUsd5m': value['buyVolumesInUsd5m'],\n 'sellVolumesInUsd5m': value['sellVolumesInUsd5m'],\n 'volumesInUsd5m': value['volumesInUsd5m'],\n 'buyers5m': value['buyers5m'],\n 'sellers5m': value['sellers5m'],\n 'openPriceInUsd5m': value['openPriceInUsd5m'],\n 'closePriceInUsd5m': value['closePriceInUsd5m'],\n 'priceChangeRatioInUsd5m': value['priceChangeRatioInUsd5m'],\n 'trades5m': value['trades5m'],\n 'traders5m': value['traders5m'],\n 'highInUsd5m': value['highInUsd5m'],\n 'lowInUsd5m': value['lowInUsd5m'],\n 'price15m': value['price15m'],\n 'buys15m': value['buys15m'],\n 'sells15m': value['sells15m'],\n 'buyVolumes15m': value['buyVolumes15m'],\n 'sellsVolumes15m': value['sellsVolumes15m'],\n 'volumes15m': value['volumes15m'],\n 'buyVolumesInUsd15m': value['buyVolumesInUsd15m'],\n 'sellVolumesInUsd15m': value['sellVolumesInUsd15m'],\n 'volumesInUsd15m': value['volumesInUsd15m'],\n 'buyers15m': value['buyers15m'],\n 'sellers15m': value['sellers15m'],\n 'openPriceInUsd15m': value['openPriceInUsd15m'],\n 'closePriceInUsd15m': value['closePriceInUsd15m'],\n 'priceChangeRatioInUsd15m': value['priceChangeRatioInUsd15m'],\n 'trades15m': value['trades15m'],\n 'traders15m': value['traders15m'],\n 'highInUsd15m': value['highInUsd15m'],\n 'lowInUsd15m': value['lowInUsd15m'],\n 'price30m': value['price30m'],\n 'buys30m': value['buys30m'],\n 'sells30m': value['sells30m'],\n 'buyVolumes30m': value['buyVolumes30m'],\n 'sellsVolumes30m': value['sellsVolumes30m'],\n 'volumes30m': value['volumes30m'],\n 'buyVolumesInUsd30m': value['buyVolumesInUsd30m'],\n 'sellVolumesInUsd30m': value['sellVolumesInUsd30m'],\n 'volumesInUsd30m': value['volumesInUsd30m'],\n 'buyers30m': value['buyers30m'],\n 'sellers30m': value['sellers30m'],\n 'openPriceInUsd30m': value['openPriceInUsd30m'],\n 'closePriceInUsd30m': value['closePriceInUsd30m'],\n 'priceChangeRatioInUsd30m': value['priceChangeRatioInUsd30m'],\n 'trades30m': value['trades30m'],\n 'traders30m': value['traders30m'],\n 'highInUsd30m': value['highInUsd30m'],\n 'lowInUsd30m': value['lowInUsd30m'],\n 'price1h': value['price1h'],\n 'buys1h': value['buys1h'],\n 'sells1h': value['sells1h'],\n 'buyVolumes1h': value['buyVolumes1h'],\n 'sellsVolumes1h': value['sellsVolumes1h'],\n 'volumes1h': value['volumes1h'],\n 'buyVolumesInUsd1h': value['buyVolumesInUsd1h'],\n 'sellVolumesInUsd1h': value['sellVolumesInUsd1h'],\n 'volumesInUsd1h': value['volumesInUsd1h'],\n 'buyers1h': value['buyers1h'],\n 'sellers1h': value['sellers1h'],\n 'openPriceInUsd1h': value['openPriceInUsd1h'],\n 'closePriceInUsd1h': value['closePriceInUsd1h'],\n 'priceChangeRatioInUsd1h': value['priceChangeRatioInUsd1h'],\n 'trades1h': value['trades1h'],\n 'traders1h': value['traders1h'],\n 'highInUsd1h': value['highInUsd1h'],\n 'lowInUsd1h': value['lowInUsd1h'],\n 'price4h': value['price4h'],\n 'buys4h': value['buys4h'],\n 'sells4h': value['sells4h'],\n 'buyVolumes4h': value['buyVolumes4h'],\n 'sellsVolumes4h': value['sellsVolumes4h'],\n 'volumes4h': value['volumes4h'],\n 'buyVolumesInUsd4h': value['buyVolumesInUsd4h'],\n 'sellVolumesInUsd4h': value['sellVolumesInUsd4h'],\n 'volumesInUsd4h': value['volumesInUsd4h'],\n 'buyers4h': value['buyers4h'],\n 'sellers4h': value['sellers4h'],\n 'openPriceInUsd4h': value['openPriceInUsd4h'],\n 'closePriceInUsd4h': value['closePriceInUsd4h'],\n 'priceChangeRatioInUsd4h': value['priceChangeRatioInUsd4h'],\n 'trades4h': value['trades4h'],\n 'traders4h': value['traders4h'],\n 'highInUsd4h': value['highInUsd4h'],\n 'lowInUsd4h': value['lowInUsd4h'],\n 'price24h': value['price24h'],\n 'buys24h': value['buys24h'],\n 'sells24h': value['sells24h'],\n 'buyVolumes24h': value['buyVolumes24h'],\n 'sellsVolumes24h': value['sellsVolumes24h'],\n 'volumes24h': value['volumes24h'],\n 'buyVolumesInUsd24h': value['buyVolumesInUsd24h'],\n 'sellVolumesInUsd24h': value['sellVolumesInUsd24h'],\n 'volumesInUsd24h': value['volumesInUsd24h'],\n 'buyers24h': value['buyers24h'],\n 'sellers24h': value['sellers24h'],\n 'openPriceInUsd24h': value['openPriceInUsd24h'],\n 'closePriceInUsd24h': value['closePriceInUsd24h'],\n 'priceChangeRatioInUsd24h': value['priceChangeRatioInUsd24h'],\n 'trades24h': value['trades24h'],\n 'traders24h': value['traders24h'],\n 'highInUsd24h': value['highInUsd24h'],\n 'lowInUsd24h': value['lowInUsd24h'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenMarketData } from './TokenMarketData';\nimport {\n TokenMarketDataFromJSON,\n TokenMarketDataFromJSONTyped,\n TokenMarketDataToJSON,\n TokenMarketDataToJSONTyped,\n} from './TokenMarketData';\nimport type { TokenMetadata } from './TokenMetadata';\nimport {\n TokenMetadataFromJSON,\n TokenMetadataFromJSONTyped,\n TokenMetadataToJSON,\n TokenMetadataToJSONTyped,\n} from './TokenMetadata';\nimport type { TokenStat } from './TokenStat';\nimport {\n TokenStatFromJSON,\n TokenStatFromJSONTyped,\n TokenStatToJSON,\n TokenStatToJSONTyped,\n} from './TokenStat';\n\n/**\n * \n * @export\n * @interface DevTokenDTO\n */\nexport interface DevTokenDTO {\n /**\n * DTO.DEV_TOKEN.ADDRESS\n * @type {string}\n * @memberof DevTokenDTO\n */\n address: string;\n /**\n * DTO.DEV_TOKEN.METADATA\n * @type {TokenMetadata}\n * @memberof DevTokenDTO\n */\n metadata: TokenMetadata;\n /**\n * DTO.DEV_TOKEN.MARKET_DATA\n * @type {TokenMarketData}\n * @memberof DevTokenDTO\n */\n marketData: TokenMarketData;\n /**\n * DTO.DEV_TOKEN.STATS\n * @type {TokenStat}\n * @memberof DevTokenDTO\n */\n stats: TokenStat;\n}\n\n/**\n * Check if a given object implements the DevTokenDTO interface.\n */\nexport function instanceOfDevTokenDTO(value: object): value is DevTokenDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('metadata' in value) || value['metadata'] === undefined) return false;\n if (!('marketData' in value) || value['marketData'] === undefined) return false;\n if (!('stats' in value) || value['stats'] === undefined) return false;\n return true;\n}\n\nexport function DevTokenDTOFromJSON(json: any): DevTokenDTO {\n return DevTokenDTOFromJSONTyped(json, false);\n}\n\nexport function DevTokenDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): DevTokenDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'metadata': TokenMetadataFromJSON(json['metadata']),\n 'marketData': TokenMarketDataFromJSON(json['marketData']),\n 'stats': TokenStatFromJSON(json['stats']),\n };\n}\n\nexport function DevTokenDTOToJSON(json: any): DevTokenDTO {\n return DevTokenDTOToJSONTyped(json, false);\n}\n\nexport function DevTokenDTOToJSONTyped(value?: DevTokenDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'metadata': TokenMetadataToJSON(value['metadata']),\n 'marketData': TokenMarketDataToJSON(value['marketData']),\n 'stats': TokenStatToJSON(value['stats']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DexDTO\n */\nexport interface DexDTO {\n /**\n * DTO.DEX.PROGRAM_ADDRESS\n * @type {string}\n * @memberof DexDTO\n */\n programAddress?: string;\n /**\n * DTO.DEX.PROTOCOL_FAMILY\n * @type {string}\n * @memberof DexDTO\n */\n protocolFamily?: string;\n /**\n * DTO.DEX.IMAGE\n * @type {string}\n * @memberof DexDTO\n */\n image?: string;\n /**\n * DTO.DEX.CHAIN\n * @type {string}\n * @memberof DexDTO\n */\n chain: string;\n}\n\n/**\n * Check if a given object implements the DexDTO interface.\n */\nexport function instanceOfDexDTO(value: object): value is DexDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n return true;\n}\n\nexport function DexDTOFromJSON(json: any): DexDTO {\n return DexDTOFromJSONTyped(json, false);\n}\n\nexport function DexDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): DexDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'programAddress': json['programAddress'] == null ? undefined : json['programAddress'],\n 'protocolFamily': json['protocolFamily'] == null ? undefined : json['protocolFamily'],\n 'image': json['image'] == null ? undefined : json['image'],\n 'chain': json['chain'],\n };\n}\n\nexport function DexDTOToJSON(json: any): DexDTO {\n return DexDTOToJSONTyped(json, false);\n}\n\nexport function DexDTOToJSONTyped(value?: DexDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'programAddress': value['programAddress'],\n 'protocolFamily': value['protocolFamily'],\n 'image': value['image'],\n 'chain': value['chain'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { DexDTO } from './DexDTO';\nimport {\n DexDTOFromJSON,\n DexDTOFromJSONTyped,\n DexDTOToJSON,\n DexDTOToJSONTyped,\n} from './DexDTO';\n\n/**\n * \n * @export\n * @interface DexPage\n */\nexport interface DexPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof DexPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof DexPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof DexPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof DexPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof DexPage\n */\n total?: number;\n /**\n * DTO.DEX.PAGE.DATA\n * @type {Array<DexDTO>}\n * @memberof DexPage\n */\n data: Array<DexDTO>;\n}\n\n/**\n * Check if a given object implements the DexPage interface.\n */\nexport function instanceOfDexPage(value: object): value is DexPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function DexPageFromJSON(json: any): DexPage {\n return DexPageFromJSONTyped(json, false);\n}\n\nexport function DexPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): DexPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(DexDTOFromJSON)),\n };\n}\n\nexport function DexPageToJSON(json: any): DexPage {\n return DexPageToJSONTyped(json, false);\n}\n\nexport function DexPageToJSONTyped(value?: DexPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(DexDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DexPoolDTO\n */\nexport interface DexPoolDTO {\n /**\n * DTO.DEX.PROGRAM_ADDRESS\n * @type {string}\n * @memberof DexPoolDTO\n */\n programAddress?: string;\n /**\n * DTO.DEX.PROTOCOL_FAMILY\n * @type {string}\n * @memberof DexPoolDTO\n */\n protocolFamily?: string;\n /**\n * DTO.DEX.IMAGE\n * @type {string}\n * @memberof DexPoolDTO\n */\n image?: string;\n /**\n * DTO.DEX.CHAIN\n * @type {string}\n * @memberof DexPoolDTO\n */\n chain: string;\n /**\n * DTO.DEXPOOL.POOL_ADDRESS\n * @type {string}\n * @memberof DexPoolDTO\n */\n poolAddress: string;\n /**\n * DTO.DEXPOOL.PROTOCOL_NAME\n * @type {string}\n * @memberof DexPoolDTO\n */\n protocolName?: string;\n /**\n * DTO.DEXPOOL.TOKEN_A\n * @type {string}\n * @memberof DexPoolDTO\n */\n tokenAAddress: string;\n /**\n * DTO.DEXPOOL.TOKEN_B\n * @type {string}\n * @memberof DexPoolDTO\n */\n tokenBAddress: string;\n /**\n * DTO.DEXPOOL.TVL_USD\n * @type {string}\n * @memberof DexPoolDTO\n */\n tvlInUsd?: string;\n /**\n * DTO.DEXPOOL.TVL_SOL\n * @type {string}\n * @memberof DexPoolDTO\n */\n tvlInSol?: string;\n}\n\n/**\n * Check if a given object implements the DexPoolDTO interface.\n */\nexport function instanceOfDexPoolDTO(value: object): value is DexPoolDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('poolAddress' in value) || value['poolAddress'] === undefined) return false;\n if (!('tokenAAddress' in value) || value['tokenAAddress'] === undefined) return false;\n if (!('tokenBAddress' in value) || value['tokenBAddress'] === undefined) return false;\n return true;\n}\n\nexport function DexPoolDTOFromJSON(json: any): DexPoolDTO {\n return DexPoolDTOFromJSONTyped(json, false);\n}\n\nexport function DexPoolDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): DexPoolDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'programAddress': json['programAddress'] == null ? undefined : json['programAddress'],\n 'protocolFamily': json['protocolFamily'] == null ? undefined : json['protocolFamily'],\n 'image': json['image'] == null ? undefined : json['image'],\n 'chain': json['chain'],\n 'poolAddress': json['poolAddress'],\n 'protocolName': json['protocolName'] == null ? undefined : json['protocolName'],\n 'tokenAAddress': json['tokenAAddress'],\n 'tokenBAddress': json['tokenBAddress'],\n 'tvlInUsd': json['tvlInUsd'] == null ? undefined : json['tvlInUsd'],\n 'tvlInSol': json['tvlInSol'] == null ? undefined : json['tvlInSol'],\n };\n}\n\nexport function DexPoolDTOToJSON(json: any): DexPoolDTO {\n return DexPoolDTOToJSONTyped(json, false);\n}\n\nexport function DexPoolDTOToJSONTyped(value?: DexPoolDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'programAddress': value['programAddress'],\n 'protocolFamily': value['protocolFamily'],\n 'image': value['image'],\n 'chain': value['chain'],\n 'poolAddress': value['poolAddress'],\n 'protocolName': value['protocolName'],\n 'tokenAAddress': value['tokenAAddress'],\n 'tokenBAddress': value['tokenBAddress'],\n 'tvlInUsd': value['tvlInUsd'],\n 'tvlInSol': value['tvlInSol'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DirectExposureDetail\n */\nexport interface DirectExposureDetail {\n /**\n * DTO.KYT.DIRECT_EXPOSURE_DETAIL.NAME\n * @type {string}\n * @memberof DirectExposureDetail\n */\n name: string;\n /**\n * DTO.KYT.DIRECT_EXPOSURE_DETAIL.CATEGORY_ID\n * @type {number}\n * @memberof DirectExposureDetail\n */\n categoryId: number;\n}\n\n/**\n * Check if a given object implements the DirectExposureDetail interface.\n */\nexport function instanceOfDirectExposureDetail(value: object): value is DirectExposureDetail {\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('categoryId' in value) || value['categoryId'] === undefined) return false;\n return true;\n}\n\nexport function DirectExposureDetailFromJSON(json: any): DirectExposureDetail {\n return DirectExposureDetailFromJSONTyped(json, false);\n}\n\nexport function DirectExposureDetailFromJSONTyped(json: any, ignoreDiscriminator: boolean): DirectExposureDetail {\n if (json == null) {\n return json;\n }\n return {\n \n 'name': json['name'],\n 'categoryId': json['categoryId'],\n };\n}\n\nexport function DirectExposureDetailToJSON(json: any): DirectExposureDetail {\n return DirectExposureDetailToJSONTyped(json, false);\n}\n\nexport function DirectExposureDetailToJSONTyped(value?: DirectExposureDetail | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'name': value['name'],\n 'categoryId': value['categoryId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EndpointResponse\n */\nexport interface EndpointResponse {\n /**\n * DTO.ENDPOINT.ID\n * @type {string}\n * @memberof EndpointResponse\n */\n id?: string;\n /**\n * DTO.ENDPOINT.URL\n * @type {string}\n * @memberof EndpointResponse\n */\n url?: string;\n /**\n * DTO.ENDPOINT.DESCRIPTION\n * @type {string}\n * @memberof EndpointResponse\n */\n description?: string;\n /**\n * DTO.ENDPOINT.FILTER_TYPES\n * @type {Array<string>}\n * @memberof EndpointResponse\n */\n filterTypes?: Array<string>;\n /**\n * DTO.ENDPOINT.CHANNELS\n * @type {Array<string>}\n * @memberof EndpointResponse\n */\n channels?: Array<string>;\n /**\n * DTO.ENDPOINT.DISABLED\n * @type {boolean}\n * @memberof EndpointResponse\n */\n disabled?: boolean;\n /**\n * DTO.ENDPOINT.METADATA\n * @type {object}\n * @memberof EndpointResponse\n */\n metadata?: object;\n /**\n * DTO.ENDPOINT.RATE_LIMIT\n * @type {number}\n * @memberof EndpointResponse\n */\n rateLimit?: number;\n /**\n * DTO.ENDPOINT.FILTER\n * @type {string}\n * @memberof EndpointResponse\n */\n filter?: string;\n /**\n * DTO.ENDPOINT.CREATED_AT\n * @type {string}\n * @memberof EndpointResponse\n */\n createdAt?: string;\n /**\n * DTO.ENDPOINT.UPDATED_AT\n * @type {string}\n * @memberof EndpointResponse\n */\n updatedAt?: string;\n}\n\n/**\n * Check if a given object implements the EndpointResponse interface.\n */\nexport function instanceOfEndpointResponse(value: object): value is EndpointResponse {\n return true;\n}\n\nexport function EndpointResponseFromJSON(json: any): EndpointResponse {\n return EndpointResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n 'url': json['url'] == null ? undefined : json['url'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'filterTypes': json['filterTypes'] == null ? undefined : json['filterTypes'],\n 'channels': json['channels'] == null ? undefined : json['channels'],\n 'disabled': json['disabled'] == null ? undefined : json['disabled'],\n 'metadata': json['metadata'] == null ? undefined : json['metadata'],\n 'rateLimit': json['rateLimit'] == null ? undefined : json['rateLimit'],\n 'filter': json['filter'] == null ? undefined : json['filter'],\n 'createdAt': json['createdAt'] == null ? undefined : json['createdAt'],\n 'updatedAt': json['updatedAt'] == null ? undefined : json['updatedAt'],\n };\n}\n\nexport function EndpointResponseToJSON(json: any): EndpointResponse {\n return EndpointResponseToJSONTyped(json, false);\n}\n\nexport function EndpointResponseToJSONTyped(value?: EndpointResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'url': value['url'],\n 'description': value['description'],\n 'filterTypes': value['filterTypes'],\n 'channels': value['channels'],\n 'disabled': value['disabled'],\n 'metadata': value['metadata'],\n 'rateLimit': value['rateLimit'],\n 'filter': value['filter'],\n 'createdAt': value['createdAt'],\n 'updatedAt': value['updatedAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { EndpointResponse } from './EndpointResponse';\nimport {\n EndpointResponseFromJSON,\n EndpointResponseFromJSONTyped,\n EndpointResponseToJSON,\n EndpointResponseToJSONTyped,\n} from './EndpointResponse';\n\n/**\n * \n * @export\n * @interface EndpointListResponse\n */\nexport interface EndpointListResponse {\n /**\n * DTO.ENDPOINT.PAGE.DATA\n * @type {Array<EndpointResponse>}\n * @memberof EndpointListResponse\n */\n data?: Array<EndpointResponse>;\n /**\n * DTO.ENDPOINT.PAGE.DONE\n * @type {boolean}\n * @memberof EndpointListResponse\n */\n done?: boolean;\n /**\n * DTO.ENDPOINT.PAGE.ITERATOR\n * @type {string}\n * @memberof EndpointListResponse\n */\n iterator?: string;\n /**\n * DTO.ENDPOINT.PAGE.PREV_ITERATOR\n * @type {string}\n * @memberof EndpointListResponse\n */\n prevIterator?: string;\n}\n\n/**\n * Check if a given object implements the EndpointListResponse interface.\n */\nexport function instanceOfEndpointListResponse(value: object): value is EndpointListResponse {\n return true;\n}\n\nexport function EndpointListResponseFromJSON(json: any): EndpointListResponse {\n return EndpointListResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointListResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'data': json['data'] == null ? undefined : ((json['data'] as Array<any>).map(EndpointResponseFromJSON)),\n 'done': json['done'] == null ? undefined : json['done'],\n 'iterator': json['iterator'] == null ? undefined : json['iterator'],\n 'prevIterator': json['prevIterator'] == null ? undefined : json['prevIterator'],\n };\n}\n\nexport function EndpointListResponseToJSON(json: any): EndpointListResponse {\n return EndpointListResponseToJSONTyped(json, false);\n}\n\nexport function EndpointListResponseToJSONTyped(value?: EndpointListResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'data': value['data'] == null ? undefined : ((value['data'] as Array<any>).map(EndpointResponseToJSON)),\n 'done': value['done'],\n 'iterator': value['iterator'],\n 'prevIterator': value['prevIterator'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EndpointOperationResponse\n */\nexport interface EndpointOperationResponse {\n /**\n * DTO.ENDPOINT.SUCCESS\n * @type {boolean}\n * @memberof EndpointOperationResponse\n */\n success?: boolean;\n}\n\n/**\n * Check if a given object implements the EndpointOperationResponse interface.\n */\nexport function instanceOfEndpointOperationResponse(value: object): value is EndpointOperationResponse {\n return true;\n}\n\nexport function EndpointOperationResponseFromJSON(json: any): EndpointOperationResponse {\n return EndpointOperationResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointOperationResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointOperationResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'success': json['success'] == null ? undefined : json['success'],\n };\n}\n\nexport function EndpointOperationResponseToJSON(json: any): EndpointOperationResponse {\n return EndpointOperationResponseToJSONTyped(json, false);\n}\n\nexport function EndpointOperationResponseToJSONTyped(value?: EndpointOperationResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'success': value['success'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EndpointSecretResponse\n */\nexport interface EndpointSecretResponse {\n /**\n * DTO.ENDPOINT.SECRET\n * @type {string}\n * @memberof EndpointSecretResponse\n */\n secret?: string;\n}\n\n/**\n * Check if a given object implements the EndpointSecretResponse interface.\n */\nexport function instanceOfEndpointSecretResponse(value: object): value is EndpointSecretResponse {\n return true;\n}\n\nexport function EndpointSecretResponseFromJSON(json: any): EndpointSecretResponse {\n return EndpointSecretResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointSecretResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointSecretResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'secret': json['secret'] == null ? undefined : json['secret'],\n };\n}\n\nexport function EndpointSecretResponseToJSON(json: any): EndpointSecretResponse {\n return EndpointSecretResponseToJSONTyped(json, false);\n}\n\nexport function EndpointSecretResponseToJSONTyped(value?: EndpointSecretResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'secret': value['secret'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EstimateGasLimitInput\n */\nexport interface EstimateGasLimitInput {\n /**\n * From address\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n from: string;\n /**\n * To address\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n to: string;\n /**\n * Transaction data (hex)\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n data: string;\n /**\n * Value to send (in wei, hex string)\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n value?: string;\n}\n\n/**\n * Check if a given object implements the EstimateGasLimitInput interface.\n */\nexport function instanceOfEstimateGasLimitInput(value: object): value is EstimateGasLimitInput {\n if (!('from' in value) || value['from'] === undefined) return false;\n if (!('to' in value) || value['to'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function EstimateGasLimitInputFromJSON(json: any): EstimateGasLimitInput {\n return EstimateGasLimitInputFromJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): EstimateGasLimitInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'from': json['from'],\n 'to': json['to'],\n 'data': json['data'],\n 'value': json['value'] == null ? undefined : json['value'],\n };\n}\n\nexport function EstimateGasLimitInputToJSON(json: any): EstimateGasLimitInput {\n return EstimateGasLimitInputToJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitInputToJSONTyped(value?: EstimateGasLimitInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'from': value['from'],\n 'to': value['to'],\n 'data': value['data'],\n 'value': value['value'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EstimateGasLimitResponse\n */\nexport interface EstimateGasLimitResponse {\n /**\n * Estimated gas limit (hex string)\n * @type {string}\n * @memberof EstimateGasLimitResponse\n */\n gasLimit: string;\n /**\n * Chain symbol\n * @type {string}\n * @memberof EstimateGasLimitResponse\n */\n chain: string;\n}\n\n/**\n * Check if a given object implements the EstimateGasLimitResponse interface.\n */\nexport function instanceOfEstimateGasLimitResponse(value: object): value is EstimateGasLimitResponse {\n if (!('gasLimit' in value) || value['gasLimit'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n return true;\n}\n\nexport function EstimateGasLimitResponseFromJSON(json: any): EstimateGasLimitResponse {\n return EstimateGasLimitResponseFromJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EstimateGasLimitResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'gasLimit': json['gasLimit'],\n 'chain': json['chain'],\n };\n}\n\nexport function EstimateGasLimitResponseToJSON(json: any): EstimateGasLimitResponse {\n return EstimateGasLimitResponseToJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitResponseToJSONTyped(value?: EstimateGasLimitResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'gasLimit': value['gasLimit'],\n 'chain': value['chain'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface GainersAndLosersDTO\n */\nexport interface GainersAndLosersDTO {\n /**\n * GLOBAL.WALLETADDRESS.DESCRIPTION\n * @type {string}\n * @memberof GainersAndLosersDTO\n */\n address: string;\n /**\n * DTO.TRADE.GAINERS_LOSERS.PNL\n * @type {number}\n * @memberof GainersAndLosersDTO\n */\n pnl: number;\n /**\n * DTO.TRADE.GAINERS_LOSERS.TRADE_COUNT\n * @type {number}\n * @memberof GainersAndLosersDTO\n */\n tradeCount: number;\n /**\n * DTO.TRADE.GAINERS_LOSERS.VOLUME\n * @type {number}\n * @memberof GainersAndLosersDTO\n */\n volume: number;\n}\n\n/**\n * Check if a given object implements the GainersAndLosersDTO interface.\n */\nexport function instanceOfGainersAndLosersDTO(value: object): value is GainersAndLosersDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('pnl' in value) || value['pnl'] === undefined) return false;\n if (!('tradeCount' in value) || value['tradeCount'] === undefined) return false;\n if (!('volume' in value) || value['volume'] === undefined) return false;\n return true;\n}\n\nexport function GainersAndLosersDTOFromJSON(json: any): GainersAndLosersDTO {\n return GainersAndLosersDTOFromJSONTyped(json, false);\n}\n\nexport function GainersAndLosersDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): GainersAndLosersDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'pnl': json['pnl'],\n 'tradeCount': json['tradeCount'],\n 'volume': json['volume'],\n };\n}\n\nexport function GainersAndLosersDTOToJSON(json: any): GainersAndLosersDTO {\n return GainersAndLosersDTOToJSONTyped(json, false);\n}\n\nexport function GainersAndLosersDTOToJSONTyped(value?: GainersAndLosersDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'pnl': value['pnl'],\n 'tradeCount': value['tradeCount'],\n 'volume': value['volume'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { GainersAndLosersDTO } from './GainersAndLosersDTO';\nimport {\n GainersAndLosersDTOFromJSON,\n GainersAndLosersDTOFromJSONTyped,\n GainersAndLosersDTOToJSON,\n GainersAndLosersDTOToJSONTyped,\n} from './GainersAndLosersDTO';\n\n/**\n * \n * @export\n * @interface GainersAndLosersPage\n */\nexport interface GainersAndLosersPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof GainersAndLosersPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof GainersAndLosersPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof GainersAndLosersPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof GainersAndLosersPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof GainersAndLosersPage\n */\n total?: number;\n /**\n * DTO.TRADE.GAINERS_LOSERS.PAGE.DATA\n * @type {Array<GainersAndLosersDTO>}\n * @memberof GainersAndLosersPage\n */\n data: Array<GainersAndLosersDTO>;\n}\n\n/**\n * Check if a given object implements the GainersAndLosersPage interface.\n */\nexport function instanceOfGainersAndLosersPage(value: object): value is GainersAndLosersPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function GainersAndLosersPageFromJSON(json: any): GainersAndLosersPage {\n return GainersAndLosersPageFromJSONTyped(json, false);\n}\n\nexport function GainersAndLosersPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): GainersAndLosersPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(GainersAndLosersDTOFromJSON)),\n };\n}\n\nexport function GainersAndLosersPageToJSON(json: any): GainersAndLosersPage {\n return GainersAndLosersPageToJSONTyped(json, false);\n}\n\nexport function GainersAndLosersPageToJSONTyped(value?: GainersAndLosersPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(GainersAndLosersDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface GasPriceResponse\n */\nexport interface GasPriceResponse {\n /**\n * Current gas price in wei (hex string)\n * @type {string}\n * @memberof GasPriceResponse\n */\n gasPrice: string;\n /**\n * Chain symbol\n * @type {string}\n * @memberof GasPriceResponse\n */\n chain: string;\n}\n\n/**\n * Check if a given object implements the GasPriceResponse interface.\n */\nexport function instanceOfGasPriceResponse(value: object): value is GasPriceResponse {\n if (!('gasPrice' in value) || value['gasPrice'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n return true;\n}\n\nexport function GasPriceResponseFromJSON(json: any): GasPriceResponse {\n return GasPriceResponseFromJSONTyped(json, false);\n}\n\nexport function GasPriceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): GasPriceResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'gasPrice': json['gasPrice'],\n 'chain': json['chain'],\n };\n}\n\nexport function GasPriceResponseToJSON(json: any): GasPriceResponse {\n return GasPriceResponseToJSONTyped(json, false);\n}\n\nexport function GasPriceResponseToJSONTyped(value?: GasPriceResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'gasPrice': value['gasPrice'],\n 'chain': value['chain'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface JobDTO\n */\nexport interface JobDTO {\n /**\n * DTO.JOB.STATE\n * @type {string}\n * @memberof JobDTO\n */\n state: string;\n /**\n * DTO.JOB.RESULT\n * @type {object}\n * @memberof JobDTO\n */\n result: object;\n}\n\n/**\n * Check if a given object implements the JobDTO interface.\n */\nexport function instanceOfJobDTO(value: object): value is JobDTO {\n if (!('state' in value) || value['state'] === undefined) return false;\n if (!('result' in value) || value['result'] === undefined) return false;\n return true;\n}\n\nexport function JobDTOFromJSON(json: any): JobDTO {\n return JobDTOFromJSONTyped(json, false);\n}\n\nexport function JobDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'state': json['state'],\n 'result': json['result'],\n };\n}\n\nexport function JobDTOToJSON(json: any): JobDTO {\n return JobDTOToJSONTyped(json, false);\n}\n\nexport function JobDTOToJSONTyped(value?: JobDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'state': value['state'],\n 'result': value['result'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface JobStreamingDTO\n */\nexport interface JobStreamingDTO {\n /**\n * DTO.JOB.STREAMING.ID\n * @type {number}\n * @memberof JobStreamingDTO\n */\n id: number;\n /**\n * DTO.JOB.STREAMING.DATA\n * @type {object}\n * @memberof JobStreamingDTO\n */\n data: object;\n}\n\n/**\n * Check if a given object implements the JobStreamingDTO interface.\n */\nexport function instanceOfJobStreamingDTO(value: object): value is JobStreamingDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function JobStreamingDTOFromJSON(json: any): JobStreamingDTO {\n return JobStreamingDTOFromJSONTyped(json, false);\n}\n\nexport function JobStreamingDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobStreamingDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'data': json['data'],\n };\n}\n\nexport function JobStreamingDTOToJSON(json: any): JobStreamingDTO {\n return JobStreamingDTOToJSONTyped(json, false);\n}\n\nexport function JobStreamingDTOToJSONTyped(value?: JobStreamingDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'data': value['data'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KYTRegisterTransferRequest\n */\nexport interface KYTRegisterTransferRequest {\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.NETWORK\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n network: KYTRegisterTransferRequestNetworkEnum;\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.ASSET\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n asset: string;\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.TRANSFER_REFERENCE\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n transferReference: string;\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.DIRECTION\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n direction: KYTRegisterTransferRequestDirectionEnum;\n}\n\n\n/**\n * @export\n */\nexport const KYTRegisterTransferRequestNetworkEnum = {\n Bitcoin: 'bitcoin',\n Ethereum: 'ethereum',\n Solana: 'Solana'\n} as const;\nexport type KYTRegisterTransferRequestNetworkEnum = typeof KYTRegisterTransferRequestNetworkEnum[keyof typeof KYTRegisterTransferRequestNetworkEnum];\n\n/**\n * @export\n */\nexport const KYTRegisterTransferRequestDirectionEnum = {\n Sent: 'sent',\n Received: 'received'\n} as const;\nexport type KYTRegisterTransferRequestDirectionEnum = typeof KYTRegisterTransferRequestDirectionEnum[keyof typeof KYTRegisterTransferRequestDirectionEnum];\n\n\n/**\n * Check if a given object implements the KYTRegisterTransferRequest interface.\n */\nexport function instanceOfKYTRegisterTransferRequest(value: object): value is KYTRegisterTransferRequest {\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('transferReference' in value) || value['transferReference'] === undefined) return false;\n if (!('direction' in value) || value['direction'] === undefined) return false;\n return true;\n}\n\nexport function KYTRegisterTransferRequestFromJSON(json: any): KYTRegisterTransferRequest {\n return KYTRegisterTransferRequestFromJSONTyped(json, false);\n}\n\nexport function KYTRegisterTransferRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): KYTRegisterTransferRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'network': json['network'],\n 'asset': json['asset'],\n 'transferReference': json['transferReference'],\n 'direction': json['direction'],\n };\n}\n\nexport function KYTRegisterTransferRequestToJSON(json: any): KYTRegisterTransferRequest {\n return KYTRegisterTransferRequestToJSONTyped(json, false);\n}\n\nexport function KYTRegisterTransferRequestToJSONTyped(value?: KYTRegisterTransferRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'network': value['network'],\n 'asset': value['asset'],\n 'transferReference': value['transferReference'],\n 'direction': value['direction'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KYTRegisterWithdrawalRequest\n */\nexport interface KYTRegisterWithdrawalRequest {\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.NETWORK\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n network: KYTRegisterWithdrawalRequestNetworkEnum;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n asset: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ADDRESS\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n address: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_AMOUNT\n * @type {number}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetAmount: number;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ATTEMPT_TIMESTAMP\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n attemptTimestamp: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_PRICE\n * @type {number}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetPrice?: number;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_DENOMINATION\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetDenomination?: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_ID\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetId?: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.MEMO\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n memo?: string;\n}\n\n\n/**\n * @export\n */\nexport const KYTRegisterWithdrawalRequestNetworkEnum = {\n Bitcoin: 'bitcoin',\n Ethereum: 'ethereum',\n Solana: 'Solana'\n} as const;\nexport type KYTRegisterWithdrawalRequestNetworkEnum = typeof KYTRegisterWithdrawalRequestNetworkEnum[keyof typeof KYTRegisterWithdrawalRequestNetworkEnum];\n\n\n/**\n * Check if a given object implements the KYTRegisterWithdrawalRequest interface.\n */\nexport function instanceOfKYTRegisterWithdrawalRequest(value: object): value is KYTRegisterWithdrawalRequest {\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('assetAmount' in value) || value['assetAmount'] === undefined) return false;\n if (!('attemptTimestamp' in value) || value['attemptTimestamp'] === undefined) return false;\n return true;\n}\n\nexport function KYTRegisterWithdrawalRequestFromJSON(json: any): KYTRegisterWithdrawalRequest {\n return KYTRegisterWithdrawalRequestFromJSONTyped(json, false);\n}\n\nexport function KYTRegisterWithdrawalRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): KYTRegisterWithdrawalRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'network': json['network'],\n 'asset': json['asset'],\n 'address': json['address'],\n 'assetAmount': json['assetAmount'],\n 'attemptTimestamp': json['attemptTimestamp'],\n 'assetPrice': json['assetPrice'] == null ? undefined : json['assetPrice'],\n 'assetDenomination': json['assetDenomination'] == null ? undefined : json['assetDenomination'],\n 'assetId': json['assetId'] == null ? undefined : json['assetId'],\n 'memo': json['memo'] == null ? undefined : json['memo'],\n };\n}\n\nexport function KYTRegisterWithdrawalRequestToJSON(json: any): KYTRegisterWithdrawalRequest {\n return KYTRegisterWithdrawalRequestToJSONTyped(json, false);\n}\n\nexport function KYTRegisterWithdrawalRequestToJSONTyped(value?: KYTRegisterWithdrawalRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'network': value['network'],\n 'asset': value['asset'],\n 'address': value['address'],\n 'assetAmount': value['assetAmount'],\n 'attemptTimestamp': value['attemptTimestamp'],\n 'assetPrice': value['assetPrice'],\n 'assetDenomination': value['assetDenomination'],\n 'assetId': value['assetId'],\n 'memo': value['memo'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KytAddressDTO\n */\nexport interface KytAddressDTO {\n /**\n * DTO.KYT.KYT_ADDRESS.ID\n * @type {number}\n * @memberof KytAddressDTO\n */\n id: number;\n /**\n * DTO.KYT.KYT_ADDRESS.ORG_ID\n * @type {string}\n * @memberof KytAddressDTO\n */\n orgId: string;\n /**\n * DTO.KYT.KYT_ADDRESS.ADDRESS\n * @type {string}\n * @memberof KytAddressDTO\n */\n address: string;\n /**\n * DTO.KYT.KYT_ADDRESS.CREATED_AT\n * @type {Date}\n * @memberof KytAddressDTO\n */\n createdAt: Date;\n /**\n * DTO.KYT.KYT_ADDRESS.UPDATED_AT\n * @type {Date}\n * @memberof KytAddressDTO\n */\n updatedAt: Date;\n}\n\n/**\n * Check if a given object implements the KytAddressDTO interface.\n */\nexport function instanceOfKytAddressDTO(value: object): value is KytAddressDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('orgId' in value) || value['orgId'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function KytAddressDTOFromJSON(json: any): KytAddressDTO {\n return KytAddressDTOFromJSONTyped(json, false);\n}\n\nexport function KytAddressDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytAddressDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'orgId': json['orgId'],\n 'address': json['address'],\n 'createdAt': (new Date(json['createdAt'])),\n 'updatedAt': (new Date(json['updatedAt'])),\n };\n}\n\nexport function KytAddressDTOToJSON(json: any): KytAddressDTO {\n return KytAddressDTOToJSONTyped(json, false);\n}\n\nexport function KytAddressDTOToJSONTyped(value?: KytAddressDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'orgId': value['orgId'],\n 'address': value['address'],\n 'createdAt': value['createdAt'].toISOString(),\n 'updatedAt': value['updatedAt'].toISOString(),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { KytAddressDTO } from './KytAddressDTO';\nimport {\n KytAddressDTOFromJSON,\n KytAddressDTOFromJSONTyped,\n KytAddressDTOToJSON,\n KytAddressDTOToJSONTyped,\n} from './KytAddressDTO';\n\n/**\n * \n * @export\n * @interface KytAddressPage\n */\nexport interface KytAddressPage {\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL\n * @type {number}\n * @memberof KytAddressPage\n */\n total: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE\n * @type {number}\n * @memberof KytAddressPage\n */\n page: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE_SIZE\n * @type {number}\n * @memberof KytAddressPage\n */\n pageSize: number;\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL_PAGES\n * @type {number}\n * @memberof KytAddressPage\n */\n totalPages: number;\n /**\n * DTO.KYT.KYT_ADDRESS_PAGE.DATA\n * @type {Array<KytAddressDTO>}\n * @memberof KytAddressPage\n */\n data: Array<KytAddressDTO>;\n}\n\n/**\n * Check if a given object implements the KytAddressPage interface.\n */\nexport function instanceOfKytAddressPage(value: object): value is KytAddressPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('page' in value) || value['page'] === undefined) return false;\n if (!('pageSize' in value) || value['pageSize'] === undefined) return false;\n if (!('totalPages' in value) || value['totalPages'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function KytAddressPageFromJSON(json: any): KytAddressPage {\n return KytAddressPageFromJSONTyped(json, false);\n}\n\nexport function KytAddressPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytAddressPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'page': json['page'],\n 'pageSize': json['pageSize'],\n 'totalPages': json['totalPages'],\n 'data': ((json['data'] as Array<any>).map(KytAddressDTOFromJSON)),\n };\n}\n\nexport function KytAddressPageToJSON(json: any): KytAddressPage {\n return KytAddressPageToJSONTyped(json, false);\n}\n\nexport function KytAddressPageToJSONTyped(value?: KytAddressPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'page': value['page'],\n 'pageSize': value['pageSize'],\n 'totalPages': value['totalPages'],\n 'data': ((value['data'] as Array<any>).map(KytAddressDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KytTransferDTO\n */\nexport interface KytTransferDTO {\n /**\n * DTO.KYT.KYT_TRANSFER.ID\n * @type {number}\n * @memberof KytTransferDTO\n */\n id: number;\n /**\n * DTO.KYT.KYT_TRANSFER.ORG_ID\n * @type {string}\n * @memberof KytTransferDTO\n */\n orgId: string;\n /**\n * DTO.KYT.KYT_TRANSFER.TX_HASH\n * @type {string}\n * @memberof KytTransferDTO\n */\n txHash: string;\n /**\n * DTO.KYT.KYT_TRANSFER.EXTERNAL_ID\n * @type {string}\n * @memberof KytTransferDTO\n */\n externalId: string;\n /**\n * DTO.KYT.KYT_TRANSFER.CREATED_AT\n * @type {Date}\n * @memberof KytTransferDTO\n */\n createdAt: Date;\n /**\n * DTO.KYT.KYT_TRANSFER.UPDATED_AT\n * @type {Date}\n * @memberof KytTransferDTO\n */\n updatedAt: Date;\n}\n\n/**\n * Check if a given object implements the KytTransferDTO interface.\n */\nexport function instanceOfKytTransferDTO(value: object): value is KytTransferDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('orgId' in value) || value['orgId'] === undefined) return false;\n if (!('txHash' in value) || value['txHash'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function KytTransferDTOFromJSON(json: any): KytTransferDTO {\n return KytTransferDTOFromJSONTyped(json, false);\n}\n\nexport function KytTransferDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytTransferDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'orgId': json['orgId'],\n 'txHash': json['txHash'],\n 'externalId': json['externalId'],\n 'createdAt': (new Date(json['createdAt'])),\n 'updatedAt': (new Date(json['updatedAt'])),\n };\n}\n\nexport function KytTransferDTOToJSON(json: any): KytTransferDTO {\n return KytTransferDTOToJSONTyped(json, false);\n}\n\nexport function KytTransferDTOToJSONTyped(value?: KytTransferDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'orgId': value['orgId'],\n 'txHash': value['txHash'],\n 'externalId': value['externalId'],\n 'createdAt': value['createdAt'].toISOString(),\n 'updatedAt': value['updatedAt'].toISOString(),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { KytTransferDTO } from './KytTransferDTO';\nimport {\n KytTransferDTOFromJSON,\n KytTransferDTOFromJSONTyped,\n KytTransferDTOToJSON,\n KytTransferDTOToJSONTyped,\n} from './KytTransferDTO';\n\n/**\n * \n * @export\n * @interface KytTransferPage\n */\nexport interface KytTransferPage {\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL\n * @type {number}\n * @memberof KytTransferPage\n */\n total: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE\n * @type {number}\n * @memberof KytTransferPage\n */\n page: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE_SIZE\n * @type {number}\n * @memberof KytTransferPage\n */\n pageSize: number;\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL_PAGES\n * @type {number}\n * @memberof KytTransferPage\n */\n totalPages: number;\n /**\n * DTO.KYT.KYT_TRANSFER_PAGE.DATA\n * @type {Array<KytTransferDTO>}\n * @memberof KytTransferPage\n */\n data: Array<KytTransferDTO>;\n}\n\n/**\n * Check if a given object implements the KytTransferPage interface.\n */\nexport function instanceOfKytTransferPage(value: object): value is KytTransferPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('page' in value) || value['page'] === undefined) return false;\n if (!('pageSize' in value) || value['pageSize'] === undefined) return false;\n if (!('totalPages' in value) || value['totalPages'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function KytTransferPageFromJSON(json: any): KytTransferPage {\n return KytTransferPageFromJSONTyped(json, false);\n}\n\nexport function KytTransferPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytTransferPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'page': json['page'],\n 'pageSize': json['pageSize'],\n 'totalPages': json['totalPages'],\n 'data': ((json['data'] as Array<any>).map(KytTransferDTOFromJSON)),\n };\n}\n\nexport function KytTransferPageToJSON(json: any): KytTransferPage {\n return KytTransferPageToJSONTyped(json, false);\n}\n\nexport function KytTransferPageToJSONTyped(value?: KytTransferPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'page': value['page'],\n 'pageSize': value['pageSize'],\n 'totalPages': value['totalPages'],\n 'data': ((value['data'] as Array<any>).map(KytTransferDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KytWithdrawalDTO\n */\nexport interface KytWithdrawalDTO {\n /**\n * DTO.KYT.KYT_WITHDRAWAL.ID\n * @type {number}\n * @memberof KytWithdrawalDTO\n */\n id: number;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.ORG_ID\n * @type {string}\n * @memberof KytWithdrawalDTO\n */\n orgId: string;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.ADDRESS\n * @type {string}\n * @memberof KytWithdrawalDTO\n */\n address: string;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.EXTERNAL_ID\n * @type {string}\n * @memberof KytWithdrawalDTO\n */\n externalId: string;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.CREATED_AT\n * @type {Date}\n * @memberof KytWithdrawalDTO\n */\n createdAt: Date;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.UPDATED_AT\n * @type {Date}\n * @memberof KytWithdrawalDTO\n */\n updatedAt: Date;\n}\n\n/**\n * Check if a given object implements the KytWithdrawalDTO interface.\n */\nexport function instanceOfKytWithdrawalDTO(value: object): value is KytWithdrawalDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('orgId' in value) || value['orgId'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function KytWithdrawalDTOFromJSON(json: any): KytWithdrawalDTO {\n return KytWithdrawalDTOFromJSONTyped(json, false);\n}\n\nexport function KytWithdrawalDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytWithdrawalDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'orgId': json['orgId'],\n 'address': json['address'],\n 'externalId': json['externalId'],\n 'createdAt': (new Date(json['createdAt'])),\n 'updatedAt': (new Date(json['updatedAt'])),\n };\n}\n\nexport function KytWithdrawalDTOToJSON(json: any): KytWithdrawalDTO {\n return KytWithdrawalDTOToJSONTyped(json, false);\n}\n\nexport function KytWithdrawalDTOToJSONTyped(value?: KytWithdrawalDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'orgId': value['orgId'],\n 'address': value['address'],\n 'externalId': value['externalId'],\n 'createdAt': value['createdAt'].toISOString(),\n 'updatedAt': value['updatedAt'].toISOString(),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { KytWithdrawalDTO } from './KytWithdrawalDTO';\nimport {\n KytWithdrawalDTOFromJSON,\n KytWithdrawalDTOFromJSONTyped,\n KytWithdrawalDTOToJSON,\n KytWithdrawalDTOToJSONTyped,\n} from './KytWithdrawalDTO';\n\n/**\n * \n * @export\n * @interface KytWithdrawalPage\n */\nexport interface KytWithdrawalPage {\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n total: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n page: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE_SIZE\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n pageSize: number;\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL_PAGES\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n totalPages: number;\n /**\n * DTO.KYT.KYT_WITHDRAWAL_PAGE.DATA\n * @type {Array<KytWithdrawalDTO>}\n * @memberof KytWithdrawalPage\n */\n data: Array<KytWithdrawalDTO>;\n}\n\n/**\n * Check if a given object implements the KytWithdrawalPage interface.\n */\nexport function instanceOfKytWithdrawalPage(value: object): value is KytWithdrawalPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('page' in value) || value['page'] === undefined) return false;\n if (!('pageSize' in value) || value['pageSize'] === undefined) return false;\n if (!('totalPages' in value) || value['totalPages'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function KytWithdrawalPageFromJSON(json: any): KytWithdrawalPage {\n return KytWithdrawalPageFromJSONTyped(json, false);\n}\n\nexport function KytWithdrawalPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytWithdrawalPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'page': json['page'],\n 'pageSize': json['pageSize'],\n 'totalPages': json['totalPages'],\n 'data': ((json['data'] as Array<any>).map(KytWithdrawalDTOFromJSON)),\n };\n}\n\nexport function KytWithdrawalPageToJSON(json: any): KytWithdrawalPage {\n return KytWithdrawalPageToJSONTyped(json, false);\n}\n\nexport function KytWithdrawalPageToJSONTyped(value?: KytWithdrawalPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'page': value['page'],\n 'pageSize': value['pageSize'],\n 'totalPages': value['totalPages'],\n 'data': ((value['data'] as Array<any>).map(KytWithdrawalDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Link\n */\nexport interface Link {\n /**\n * DTO.DEX.MOONSHOT.LINK.URL\n * @type {string}\n * @memberof Link\n */\n url: string;\n /**\n * DTO.DEX.MOONSHOT.LINK.LABEL\n * @type {string}\n * @memberof Link\n */\n label: LinkLabelEnum;\n}\n\n\n/**\n * @export\n */\nexport const LinkLabelEnum = {\n Website: 'website',\n Twitter: 'twitter',\n Telegram: 'telegram',\n Discord: 'discord'\n} as const;\nexport type LinkLabelEnum = typeof LinkLabelEnum[keyof typeof LinkLabelEnum];\n\n\n/**\n * Check if a given object implements the Link interface.\n */\nexport function instanceOfLink(value: object): value is Link {\n if (!('url' in value) || value['url'] === undefined) return false;\n if (!('label' in value) || value['label'] === undefined) return false;\n return true;\n}\n\nexport function LinkFromJSON(json: any): Link {\n return LinkFromJSONTyped(json, false);\n}\n\nexport function LinkFromJSONTyped(json: any, ignoreDiscriminator: boolean): Link {\n if (json == null) {\n return json;\n }\n return {\n \n 'url': json['url'],\n 'label': json['label'],\n };\n}\n\nexport function LinkToJSON(json: any): Link {\n return LinkToJSONTyped(json, false);\n}\n\nexport function LinkToJSONTyped(value?: Link | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'url': value['url'],\n 'label': value['label'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Link } from './Link';\nimport {\n LinkFromJSON,\n LinkFromJSONTyped,\n LinkToJSON,\n LinkToJSONTyped,\n} from './Link';\n\n/**\n * \n * @export\n * @interface MoonshotCreateTokenInput\n */\nexport interface MoonshotCreateTokenInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n dex: MoonshotCreateTokenInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.NAME\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n name: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.SYMBOL\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n symbol: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.MIGRATION_DEX\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n migrationDex: MoonshotCreateTokenInputMigrationDexEnum;\n /**\n * DTO.DEX.MOONSHOT.MINT.ICON\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n icon: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.DESCRIPTION\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n description: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.LINKS\n * @type {Array<Link>}\n * @memberof MoonshotCreateTokenInput\n */\n links: Array<Link>;\n /**\n * DTO.DEX.MOONSHOT.MINT.BANNER\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n banner?: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.TOKEN_AMOUNT\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n tokenAmount: string;\n}\n\n\n/**\n * @export\n */\nexport const MoonshotCreateTokenInputDexEnum = {\n Moonshot: 'moonshot'\n} as const;\nexport type MoonshotCreateTokenInputDexEnum = typeof MoonshotCreateTokenInputDexEnum[keyof typeof MoonshotCreateTokenInputDexEnum];\n\n/**\n * @export\n */\nexport const MoonshotCreateTokenInputMigrationDexEnum = {\n Raydium: 'RAYDIUM',\n Meteora: 'METEORA',\n Uniswap: 'UNISWAP'\n} as const;\nexport type MoonshotCreateTokenInputMigrationDexEnum = typeof MoonshotCreateTokenInputMigrationDexEnum[keyof typeof MoonshotCreateTokenInputMigrationDexEnum];\n\n\n/**\n * Check if a given object implements the MoonshotCreateTokenInput interface.\n */\nexport function instanceOfMoonshotCreateTokenInput(value: object): value is MoonshotCreateTokenInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('migrationDex' in value) || value['migrationDex'] === undefined) return false;\n if (!('icon' in value) || value['icon'] === undefined) return false;\n if (!('description' in value) || value['description'] === undefined) return false;\n if (!('links' in value) || value['links'] === undefined) return false;\n if (!('tokenAmount' in value) || value['tokenAmount'] === undefined) return false;\n return true;\n}\n\nexport function MoonshotCreateTokenInputFromJSON(json: any): MoonshotCreateTokenInput {\n return MoonshotCreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotCreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'migrationDex': json['migrationDex'],\n 'icon': json['icon'],\n 'description': json['description'],\n 'links': ((json['links'] as Array<any>).map(LinkFromJSON)),\n 'banner': json['banner'] == null ? undefined : json['banner'],\n 'tokenAmount': json['tokenAmount'],\n };\n}\n\nexport function MoonshotCreateTokenInputToJSON(json: any): MoonshotCreateTokenInput {\n return MoonshotCreateTokenInputToJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenInputToJSONTyped(value?: MoonshotCreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'migrationDex': value['migrationDex'],\n 'icon': value['icon'],\n 'description': value['description'],\n 'links': ((value['links'] as Array<any>).map(LinkToJSON)),\n 'banner': value['banner'],\n 'tokenAmount': value['tokenAmount'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MoonshotCreateTokenReply\n */\nexport interface MoonshotCreateTokenReply {\n /**\n * DTO.DEX.MOONSHOT.CREATE_TOKEN.SERIALIZED_TX\n * @type {string}\n * @memberof MoonshotCreateTokenReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.MOONSHOT.CREATE_TOKEN.EXTRA\n * @type {object}\n * @memberof MoonshotCreateTokenReply\n */\n extra: object;\n}\n\n/**\n * Check if a given object implements the MoonshotCreateTokenReply interface.\n */\nexport function instanceOfMoonshotCreateTokenReply(value: object): value is MoonshotCreateTokenReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('extra' in value) || value['extra'] === undefined) return false;\n return true;\n}\n\nexport function MoonshotCreateTokenReplyFromJSON(json: any): MoonshotCreateTokenReply {\n return MoonshotCreateTokenReplyFromJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotCreateTokenReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'extra': json['extra'],\n };\n}\n\nexport function MoonshotCreateTokenReplyToJSON(json: any): MoonshotCreateTokenReply {\n return MoonshotCreateTokenReplyToJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenReplyToJSONTyped(value?: MoonshotCreateTokenReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MoonshotSubmitCreateToken200Response\n */\nexport interface MoonshotSubmitCreateToken200Response {\n /**\n * Transaction signature\n * @type {string}\n * @memberof MoonshotSubmitCreateToken200Response\n */\n signature?: string;\n /**\n * Block slot number\n * @type {number}\n * @memberof MoonshotSubmitCreateToken200Response\n */\n slot?: number;\n}\n\n/**\n * Check if a given object implements the MoonshotSubmitCreateToken200Response interface.\n */\nexport function instanceOfMoonshotSubmitCreateToken200Response(value: object): value is MoonshotSubmitCreateToken200Response {\n return true;\n}\n\nexport function MoonshotSubmitCreateToken200ResponseFromJSON(json: any): MoonshotSubmitCreateToken200Response {\n return MoonshotSubmitCreateToken200ResponseFromJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateToken200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotSubmitCreateToken200Response {\n if (json == null) {\n return json;\n }\n return {\n \n 'signature': json['signature'] == null ? undefined : json['signature'],\n 'slot': json['slot'] == null ? undefined : json['slot'],\n };\n}\n\nexport function MoonshotSubmitCreateToken200ResponseToJSON(json: any): MoonshotSubmitCreateToken200Response {\n return MoonshotSubmitCreateToken200ResponseToJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateToken200ResponseToJSONTyped(value?: MoonshotSubmitCreateToken200Response | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signature': value['signature'],\n 'slot': value['slot'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MoonshotSubmitCreateTokenInput\n */\nexport interface MoonshotSubmitCreateTokenInput {\n /**\n * DTO.DEX.MOONSHOT.SUBMIT.CREATE_TOKEN.SIGNED_TX\n * @type {string}\n * @memberof MoonshotSubmitCreateTokenInput\n */\n signedTx: string;\n /**\n * DTO.DEX.MOONSHOT.SUBMIT.CREATE_TOKEN.EXTRA\n * @type {object}\n * @memberof MoonshotSubmitCreateTokenInput\n */\n extra?: object;\n}\n\n/**\n * Check if a given object implements the MoonshotSubmitCreateTokenInput interface.\n */\nexport function instanceOfMoonshotSubmitCreateTokenInput(value: object): value is MoonshotSubmitCreateTokenInput {\n if (!('signedTx' in value) || value['signedTx'] === undefined) return false;\n return true;\n}\n\nexport function MoonshotSubmitCreateTokenInputFromJSON(json: any): MoonshotSubmitCreateTokenInput {\n return MoonshotSubmitCreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotSubmitCreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'signedTx': json['signedTx'],\n 'extra': json['extra'] == null ? undefined : json['extra'],\n };\n}\n\nexport function MoonshotSubmitCreateTokenInputToJSON(json: any): MoonshotSubmitCreateTokenInput {\n return MoonshotSubmitCreateTokenInputToJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateTokenInputToJSONTyped(value?: MoonshotSubmitCreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signedTx': value['signedTx'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface NetworkIdentificationOrg\n */\nexport interface NetworkIdentificationOrg {\n /**\n * DTO.KYT.NETWORK_IDENTIFICATION_ORG.NAME\n * @type {string}\n * @memberof NetworkIdentificationOrg\n */\n name: string;\n}\n\n/**\n * Check if a given object implements the NetworkIdentificationOrg interface.\n */\nexport function instanceOfNetworkIdentificationOrg(value: object): value is NetworkIdentificationOrg {\n if (!('name' in value) || value['name'] === undefined) return false;\n return true;\n}\n\nexport function NetworkIdentificationOrgFromJSON(json: any): NetworkIdentificationOrg {\n return NetworkIdentificationOrgFromJSONTyped(json, false);\n}\n\nexport function NetworkIdentificationOrgFromJSONTyped(json: any, ignoreDiscriminator: boolean): NetworkIdentificationOrg {\n if (json == null) {\n return json;\n }\n return {\n \n 'name': json['name'],\n };\n}\n\nexport function NetworkIdentificationOrgToJSON(json: any): NetworkIdentificationOrg {\n return NetworkIdentificationOrgToJSONTyped(json, false);\n}\n\nexport function NetworkIdentificationOrgToJSONTyped(value?: NetworkIdentificationOrg | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'name': value['name'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PumpCreateTokenInput\n */\nexport interface PumpCreateTokenInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n dex: PumpCreateTokenInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.TWITTER\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n twitter?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.TELEGRAM\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n telegram?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.WEBSITE\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n website?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.NAME\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n name: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.SYMBOL\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n symbol: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.MIGRATION_DEX\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n migrationDex: PumpCreateTokenInputMigrationDexEnum;\n /**\n * DTO.DEX.PUMPFUN.MINT.IMAGE\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n image: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.MINT_ADDRESS\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n mintAddress: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.DESCRIPTION\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n description: string;\n}\n\n\n/**\n * @export\n */\nexport const PumpCreateTokenInputDexEnum = {\n Pumpfun: 'pumpfun'\n} as const;\nexport type PumpCreateTokenInputDexEnum = typeof PumpCreateTokenInputDexEnum[keyof typeof PumpCreateTokenInputDexEnum];\n\n/**\n * @export\n */\nexport const PumpCreateTokenInputMigrationDexEnum = {\n Raydium: 'RAYDIUM',\n Meteora: 'METEORA'\n} as const;\nexport type PumpCreateTokenInputMigrationDexEnum = typeof PumpCreateTokenInputMigrationDexEnum[keyof typeof PumpCreateTokenInputMigrationDexEnum];\n\n\n/**\n * Check if a given object implements the PumpCreateTokenInput interface.\n */\nexport function instanceOfPumpCreateTokenInput(value: object): value is PumpCreateTokenInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('migrationDex' in value) || value['migrationDex'] === undefined) return false;\n if (!('image' in value) || value['image'] === undefined) return false;\n if (!('mintAddress' in value) || value['mintAddress'] === undefined) return false;\n if (!('description' in value) || value['description'] === undefined) return false;\n return true;\n}\n\nexport function PumpCreateTokenInputFromJSON(json: any): PumpCreateTokenInput {\n return PumpCreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): PumpCreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'twitter': json['twitter'] == null ? undefined : json['twitter'],\n 'telegram': json['telegram'] == null ? undefined : json['telegram'],\n 'website': json['website'] == null ? undefined : json['website'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'migrationDex': json['migrationDex'],\n 'image': json['image'],\n 'mintAddress': json['mintAddress'],\n 'description': json['description'],\n };\n}\n\nexport function PumpCreateTokenInputToJSON(json: any): PumpCreateTokenInput {\n return PumpCreateTokenInputToJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenInputToJSONTyped(value?: PumpCreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'twitter': value['twitter'],\n 'telegram': value['telegram'],\n 'website': value['website'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'migrationDex': value['migrationDex'],\n 'image': value['image'],\n 'mintAddress': value['mintAddress'],\n 'description': value['description'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PumpCreateTokenReply\n */\nexport interface PumpCreateTokenReply {\n /**\n * DTO.DEX.PUMPFUN.MINT.SERIALIZED_TX\n * @type {string}\n * @memberof PumpCreateTokenReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.EXTRA\n * @type {object}\n * @memberof PumpCreateTokenReply\n */\n extra?: object;\n}\n\n/**\n * Check if a given object implements the PumpCreateTokenReply interface.\n */\nexport function instanceOfPumpCreateTokenReply(value: object): value is PumpCreateTokenReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n return true;\n}\n\nexport function PumpCreateTokenReplyFromJSON(json: any): PumpCreateTokenReply {\n return PumpCreateTokenReplyFromJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): PumpCreateTokenReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'extra': json['extra'] == null ? undefined : json['extra'],\n };\n}\n\nexport function PumpCreateTokenReplyToJSON(json: any): PumpCreateTokenReply {\n return PumpCreateTokenReplyToJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenReplyToJSONTyped(value?: PumpCreateTokenReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface QuoteResponse\n */\nexport interface QuoteResponse {\n /**\n * DTO.DEX.QUOTE.AMOUNT_OUT\n * @type {string}\n * @memberof QuoteResponse\n */\n amountOut?: string;\n /**\n * DTO.DEX.QUOTE.MIN_AMOUNT_OUT\n * @type {string}\n * @memberof QuoteResponse\n */\n minAmountOut?: string;\n /**\n * DTO.DEX.QUOTE.CURRENT_PRICE\n * @type {string}\n * @memberof QuoteResponse\n */\n currentPrice?: string;\n /**\n * DTO.DEX.QUOTE.EXECUTION_PRICE\n * @type {string}\n * @memberof QuoteResponse\n */\n executionPrice?: string;\n /**\n * DTO.DEX.QUOTE.PRICE_IMPACT\n * @type {string}\n * @memberof QuoteResponse\n */\n priceImpact?: string;\n /**\n * DTO.DEX.QUOTE.FEE\n * @type {string}\n * @memberof QuoteResponse\n */\n fee?: string;\n}\n\n/**\n * Check if a given object implements the QuoteResponse interface.\n */\nexport function instanceOfQuoteResponse(value: object): value is QuoteResponse {\n return true;\n}\n\nexport function QuoteResponseFromJSON(json: any): QuoteResponse {\n return QuoteResponseFromJSONTyped(json, false);\n}\n\nexport function QuoteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuoteResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'amountOut': json['amountOut'] == null ? undefined : json['amountOut'],\n 'minAmountOut': json['minAmountOut'] == null ? undefined : json['minAmountOut'],\n 'currentPrice': json['currentPrice'] == null ? undefined : json['currentPrice'],\n 'executionPrice': json['executionPrice'] == null ? undefined : json['executionPrice'],\n 'priceImpact': json['priceImpact'] == null ? undefined : json['priceImpact'],\n 'fee': json['fee'] == null ? undefined : json['fee'],\n };\n}\n\nexport function QuoteResponseToJSON(json: any): QuoteResponse {\n return QuoteResponseToJSONTyped(json, false);\n}\n\nexport function QuoteResponseToJSONTyped(value?: QuoteResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'amountOut': value['amountOut'],\n 'minAmountOut': value['minAmountOut'],\n 'currentPrice': value['currentPrice'],\n 'executionPrice': value['executionPrice'],\n 'priceImpact': value['priceImpact'],\n 'fee': value['fee'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Chain } from './Chain';\nimport {\n ChainFromJSON,\n ChainFromJSONTyped,\n ChainToJSON,\n ChainToJSONTyped,\n} from './Chain';\n\n/**\n * \n * @export\n * @interface RedPacketClaimDTO\n */\nexport interface RedPacketClaimDTO {\n /**\n * DTO.RED_PACKET.PACKET_ID\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n packetId: string;\n /**\n * DTO.RED_PACKET.CHAIN\n * @type {Chain}\n * @memberof RedPacketClaimDTO\n */\n chain: Chain;\n /**\n * DTO.RED_PACKET.CLAIMER\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n claimer: string;\n /**\n * DTO.RED_PACKET.MINT\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n mint: string;\n /**\n * DTO.RED_PACKET.AMOUNT\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n amount: string;\n /**\n * DTO.RED_PACKET.CLAIMED_AT\n * @type {number}\n * @memberof RedPacketClaimDTO\n */\n claimedAt: number;\n /**\n * DTO.RED_PACKET.CREATOR\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n creator: string;\n /**\n * DTO.RED_PACKET.TX_HASH\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n txHash: string;\n}\n\n\n\n/**\n * Check if a given object implements the RedPacketClaimDTO interface.\n */\nexport function instanceOfRedPacketClaimDTO(value: object): value is RedPacketClaimDTO {\n if (!('packetId' in value) || value['packetId'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('claimer' in value) || value['claimer'] === undefined) return false;\n if (!('mint' in value) || value['mint'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('claimedAt' in value) || value['claimedAt'] === undefined) return false;\n if (!('creator' in value) || value['creator'] === undefined) return false;\n if (!('txHash' in value) || value['txHash'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketClaimDTOFromJSON(json: any): RedPacketClaimDTO {\n return RedPacketClaimDTOFromJSONTyped(json, false);\n}\n\nexport function RedPacketClaimDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketClaimDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'packetId': json['packetId'],\n 'chain': ChainFromJSON(json['chain']),\n 'claimer': json['claimer'],\n 'mint': json['mint'],\n 'amount': json['amount'],\n 'claimedAt': json['claimedAt'],\n 'creator': json['creator'],\n 'txHash': json['txHash'],\n };\n}\n\nexport function RedPacketClaimDTOToJSON(json: any): RedPacketClaimDTO {\n return RedPacketClaimDTOToJSONTyped(json, false);\n}\n\nexport function RedPacketClaimDTOToJSONTyped(value?: RedPacketClaimDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'packetId': value['packetId'],\n 'chain': ChainToJSON(value['chain']),\n 'claimer': value['claimer'],\n 'mint': value['mint'],\n 'amount': value['amount'],\n 'claimedAt': value['claimedAt'],\n 'creator': value['creator'],\n 'txHash': value['txHash'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { RedPacketClaimDTO } from './RedPacketClaimDTO';\nimport {\n RedPacketClaimDTOFromJSON,\n RedPacketClaimDTOFromJSONTyped,\n RedPacketClaimDTOToJSON,\n RedPacketClaimDTOToJSONTyped,\n} from './RedPacketClaimDTO';\n\n/**\n * \n * @export\n * @interface RedPacketClaimsPage\n */\nexport interface RedPacketClaimsPage {\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof RedPacketClaimsPage\n */\n total: number;\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof RedPacketClaimsPage\n */\n hasNextPage: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof RedPacketClaimsPage\n */\n startCursor: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof RedPacketClaimsPage\n */\n endCursor: string;\n /**\n * Array of claim records\n * @type {Array<RedPacketClaimDTO>}\n * @memberof RedPacketClaimsPage\n */\n records: Array<RedPacketClaimDTO>;\n}\n\n/**\n * Check if a given object implements the RedPacketClaimsPage interface.\n */\nexport function instanceOfRedPacketClaimsPage(value: object): value is RedPacketClaimsPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('hasNextPage' in value) || value['hasNextPage'] === undefined) return false;\n if (!('startCursor' in value) || value['startCursor'] === undefined) return false;\n if (!('endCursor' in value) || value['endCursor'] === undefined) return false;\n if (!('records' in value) || value['records'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketClaimsPageFromJSON(json: any): RedPacketClaimsPage {\n return RedPacketClaimsPageFromJSONTyped(json, false);\n}\n\nexport function RedPacketClaimsPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketClaimsPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'hasNextPage': json['hasNextPage'],\n 'startCursor': json['startCursor'],\n 'endCursor': json['endCursor'],\n 'records': ((json['records'] as Array<any>).map(RedPacketClaimDTOFromJSON)),\n };\n}\n\nexport function RedPacketClaimsPageToJSON(json: any): RedPacketClaimsPage {\n return RedPacketClaimsPageToJSONTyped(json, false);\n}\n\nexport function RedPacketClaimsPageToJSONTyped(value?: RedPacketClaimsPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'hasNextPage': value['hasNextPage'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'records': ((value['records'] as Array<any>).map(RedPacketClaimDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Chain } from './Chain';\nimport {\n ChainFromJSON,\n ChainFromJSONTyped,\n ChainToJSON,\n ChainToJSONTyped,\n} from './Chain';\n\n/**\n * \n * @export\n * @interface RedPacketDTO\n */\nexport interface RedPacketDTO {\n /**\n * GLOBAL.CHAIN.DESCRIPTION\n * @type {Chain}\n * @memberof RedPacketDTO\n */\n chain: Chain;\n /**\n * DTO.RED_PACKET.ID\n * @type {string}\n * @memberof RedPacketDTO\n */\n id: string;\n /**\n * DTO.RED_PACKET.SHARE_ID\n * @type {string}\n * @memberof RedPacketDTO\n */\n shareId: string;\n /**\n * DTO.RED_PACKET.TX_HASH\n * @type {string}\n * @memberof RedPacketDTO\n */\n txHash: string;\n /**\n * DTO.RED_PACKET.CREATOR\n * @type {string}\n * @memberof RedPacketDTO\n */\n creator: string;\n /**\n * DTO.RED_PACKET.MINT\n * @type {string}\n * @memberof RedPacketDTO\n */\n mint: string;\n /**\n * DTO.RED_PACKET.TOTAL_AMOUNT\n * @type {string}\n * @memberof RedPacketDTO\n */\n totalAmount: string;\n /**\n * DTO.RED_PACKET.MEMO\n * @type {string}\n * @memberof RedPacketDTO\n */\n memo: string;\n /**\n * DTO.RED_PACKET.MAX_CLAIMS\n * @type {number}\n * @memberof RedPacketDTO\n */\n maxClaims: number;\n /**\n * DTO.RED_PACKET.CLAIM_AUTHORITY\n * @type {string}\n * @memberof RedPacketDTO\n */\n claimAuthority: string;\n /**\n * DTO.RED_PACKET.WITHDRAWED\n * @type {boolean}\n * @memberof RedPacketDTO\n */\n expired: boolean;\n /**\n * DTO.RED_PACKET.EXPIRATION\n * @type {number}\n * @memberof RedPacketDTO\n */\n expiration: number;\n /**\n * DTO.RED_PACKET.CREATED_AT\n * @type {number}\n * @memberof RedPacketDTO\n */\n createdAt: number;\n /**\n * DTO.RED_PACKET.EXPIRES_AT\n * @type {number}\n * @memberof RedPacketDTO\n */\n expiredAt: number;\n /**\n * DTO.RED_PACKET.CLAIMED_COUNT\n * @type {number}\n * @memberof RedPacketDTO\n */\n claimedCount: number;\n /**\n * DTO.RED_PACKET.CLAIMED_AMOUNT\n * @type {string}\n * @memberof RedPacketDTO\n */\n claimedAmount: string;\n /**\n * DTO.RED_PACKET.REFUND_AMOUNT\n * @type {string}\n * @memberof RedPacketDTO\n */\n refundedAmount: string;\n}\n\n\n\n/**\n * Check if a given object implements the RedPacketDTO interface.\n */\nexport function instanceOfRedPacketDTO(value: object): value is RedPacketDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('shareId' in value) || value['shareId'] === undefined) return false;\n if (!('txHash' in value) || value['txHash'] === undefined) return false;\n if (!('creator' in value) || value['creator'] === undefined) return false;\n if (!('mint' in value) || value['mint'] === undefined) return false;\n if (!('totalAmount' in value) || value['totalAmount'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n if (!('maxClaims' in value) || value['maxClaims'] === undefined) return false;\n if (!('claimAuthority' in value) || value['claimAuthority'] === undefined) return false;\n if (!('expired' in value) || value['expired'] === undefined) return false;\n if (!('expiration' in value) || value['expiration'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('expiredAt' in value) || value['expiredAt'] === undefined) return false;\n if (!('claimedCount' in value) || value['claimedCount'] === undefined) return false;\n if (!('claimedAmount' in value) || value['claimedAmount'] === undefined) return false;\n if (!('refundedAmount' in value) || value['refundedAmount'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketDTOFromJSON(json: any): RedPacketDTO {\n return RedPacketDTOFromJSONTyped(json, false);\n}\n\nexport function RedPacketDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': ChainFromJSON(json['chain']),\n 'id': json['id'],\n 'shareId': json['shareId'],\n 'txHash': json['txHash'],\n 'creator': json['creator'],\n 'mint': json['mint'],\n 'totalAmount': json['totalAmount'],\n 'memo': json['memo'],\n 'maxClaims': json['maxClaims'],\n 'claimAuthority': json['claimAuthority'],\n 'expired': json['expired'],\n 'expiration': json['expiration'],\n 'createdAt': json['createdAt'],\n 'expiredAt': json['expiredAt'],\n 'claimedCount': json['claimedCount'],\n 'claimedAmount': json['claimedAmount'],\n 'refundedAmount': json['refundedAmount'],\n };\n}\n\nexport function RedPacketDTOToJSON(json: any): RedPacketDTO {\n return RedPacketDTOToJSONTyped(json, false);\n}\n\nexport function RedPacketDTOToJSONTyped(value?: RedPacketDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': ChainToJSON(value['chain']),\n 'id': value['id'],\n 'shareId': value['shareId'],\n 'txHash': value['txHash'],\n 'creator': value['creator'],\n 'mint': value['mint'],\n 'totalAmount': value['totalAmount'],\n 'memo': value['memo'],\n 'maxClaims': value['maxClaims'],\n 'claimAuthority': value['claimAuthority'],\n 'expired': value['expired'],\n 'expiration': value['expiration'],\n 'createdAt': value['createdAt'],\n 'expiredAt': value['expiredAt'],\n 'claimedCount': value['claimedCount'],\n 'claimedAmount': value['claimedAmount'],\n 'refundedAmount': value['refundedAmount'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RedPacketReply\n */\nexport interface RedPacketReply {\n /**\n * DTO.RED_PACKET.SERIALIZED_TX\n * @type {string}\n * @memberof RedPacketReply\n */\n txSerialize: string;\n}\n\n/**\n * Check if a given object implements the RedPacketReply interface.\n */\nexport function instanceOfRedPacketReply(value: object): value is RedPacketReply {\n if (!('txSerialize' in value) || value['txSerialize'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketReplyFromJSON(json: any): RedPacketReply {\n return RedPacketReplyFromJSONTyped(json, false);\n}\n\nexport function RedPacketReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'txSerialize': json['txSerialize'],\n };\n}\n\nexport function RedPacketReplyToJSON(json: any): RedPacketReply {\n return RedPacketReplyToJSONTyped(json, false);\n}\n\nexport function RedPacketReplyToJSONTyped(value?: RedPacketReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'txSerialize': value['txSerialize'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RedPacketSendTxInput\n */\nexport interface RedPacketSendTxInput {\n /**\n * DTO.RED_PACKET.SIGNED_TX\n * @type {string}\n * @memberof RedPacketSendTxInput\n */\n signedTx: string;\n}\n\n/**\n * Check if a given object implements the RedPacketSendTxInput interface.\n */\nexport function instanceOfRedPacketSendTxInput(value: object): value is RedPacketSendTxInput {\n if (!('signedTx' in value) || value['signedTx'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketSendTxInputFromJSON(json: any): RedPacketSendTxInput {\n return RedPacketSendTxInputFromJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketSendTxInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'signedTx': json['signedTx'],\n };\n}\n\nexport function RedPacketSendTxInputToJSON(json: any): RedPacketSendTxInput {\n return RedPacketSendTxInputToJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxInputToJSONTyped(value?: RedPacketSendTxInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signedTx': value['signedTx'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RedPacketSendTxResponse\n */\nexport interface RedPacketSendTxResponse {\n /**\n * DTO.RED_PACKET.SIGNATURE\n * @type {string}\n * @memberof RedPacketSendTxResponse\n */\n signature: string;\n}\n\n/**\n * Check if a given object implements the RedPacketSendTxResponse interface.\n */\nexport function instanceOfRedPacketSendTxResponse(value: object): value is RedPacketSendTxResponse {\n if (!('signature' in value) || value['signature'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketSendTxResponseFromJSON(json: any): RedPacketSendTxResponse {\n return RedPacketSendTxResponseFromJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketSendTxResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'signature': json['signature'],\n };\n}\n\nexport function RedPacketSendTxResponseToJSON(json: any): RedPacketSendTxResponse {\n return RedPacketSendTxResponseToJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxResponseToJSONTyped(value?: RedPacketSendTxResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signature': value['signature'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { RedPacketDTO } from './RedPacketDTO';\nimport {\n RedPacketDTOFromJSON,\n RedPacketDTOFromJSONTyped,\n RedPacketDTOToJSON,\n RedPacketDTOToJSONTyped,\n} from './RedPacketDTO';\n\n/**\n * \n * @export\n * @interface RedPacketsPage\n */\nexport interface RedPacketsPage {\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof RedPacketsPage\n */\n total: number;\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof RedPacketsPage\n */\n hasNextPage: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof RedPacketsPage\n */\n startCursor: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof RedPacketsPage\n */\n endCursor: string;\n /**\n * Array of red packets\n * @type {Array<RedPacketDTO>}\n * @memberof RedPacketsPage\n */\n records: Array<RedPacketDTO>;\n}\n\n/**\n * Check if a given object implements the RedPacketsPage interface.\n */\nexport function instanceOfRedPacketsPage(value: object): value is RedPacketsPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('hasNextPage' in value) || value['hasNextPage'] === undefined) return false;\n if (!('startCursor' in value) || value['startCursor'] === undefined) return false;\n if (!('endCursor' in value) || value['endCursor'] === undefined) return false;\n if (!('records' in value) || value['records'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketsPageFromJSON(json: any): RedPacketsPage {\n return RedPacketsPageFromJSONTyped(json, false);\n}\n\nexport function RedPacketsPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketsPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'hasNextPage': json['hasNextPage'],\n 'startCursor': json['startCursor'],\n 'endCursor': json['endCursor'],\n 'records': ((json['records'] as Array<any>).map(RedPacketDTOFromJSON)),\n };\n}\n\nexport function RedPacketsPageToJSON(json: any): RedPacketsPage {\n return RedPacketsPageToJSONTyped(json, false);\n}\n\nexport function RedPacketsPageToJSONTyped(value?: RedPacketsPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'hasNextPage': value['hasNextPage'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'records': ((value['records'] as Array<any>).map(RedPacketDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RegisterAddressRequest\n */\nexport interface RegisterAddressRequest {\n /**\n * DTO.KYT.REGISTER_ADDRESS_REQUEST.ADDRESS\n * @type {string}\n * @memberof RegisterAddressRequest\n */\n address: string;\n}\n\n/**\n * Check if a given object implements the RegisterAddressRequest interface.\n */\nexport function instanceOfRegisterAddressRequest(value: object): value is RegisterAddressRequest {\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function RegisterAddressRequestFromJSON(json: any): RegisterAddressRequest {\n return RegisterAddressRequestFromJSONTyped(json, false);\n}\n\nexport function RegisterAddressRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RegisterAddressRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n };\n}\n\nexport function RegisterAddressRequestToJSON(json: any): RegisterAddressRequest {\n return RegisterAddressRequestToJSONTyped(json, false);\n}\n\nexport function RegisterAddressRequestToJSONTyped(value?: RegisterAddressRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RegisterAddressResponseDTO\n */\nexport interface RegisterAddressResponseDTO {\n /**\n * DTO.KYT.REGISTER_ADDRESS_RESPONSE.ADDRESS\n * @type {string}\n * @memberof RegisterAddressResponseDTO\n */\n address: string;\n}\n\n/**\n * Check if a given object implements the RegisterAddressResponseDTO interface.\n */\nexport function instanceOfRegisterAddressResponseDTO(value: object): value is RegisterAddressResponseDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function RegisterAddressResponseDTOFromJSON(json: any): RegisterAddressResponseDTO {\n return RegisterAddressResponseDTOFromJSONTyped(json, false);\n}\n\nexport function RegisterAddressResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): RegisterAddressResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n };\n}\n\nexport function RegisterAddressResponseDTOToJSON(json: any): RegisterAddressResponseDTO {\n return RegisterAddressResponseDTOToJSONTyped(json, false);\n}\n\nexport function RegisterAddressResponseDTOToJSONTyped(value?: RegisterAddressResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SendTxInput\n */\nexport interface SendTxInput {\n /**\n * DTO.TRANSACTION.SEND.SIGNED_TX\n * @type {string}\n * @memberof SendTxInput\n */\n signedTx: string;\n /**\n * DTO.TRANSACTION.SEND.SUBMIT_TYPE\n * @type {string}\n * @memberof SendTxInput\n */\n submitType?: SendTxInputSubmitTypeEnum;\n /**\n * DTO.TRANSACTION.SEND.OPTIONS\n * @type {object}\n * @memberof SendTxInput\n */\n options?: object;\n}\n\n\n/**\n * @export\n */\nexport const SendTxInputSubmitTypeEnum = {\n Default: 'default',\n Priority: 'priority'\n} as const;\nexport type SendTxInputSubmitTypeEnum = typeof SendTxInputSubmitTypeEnum[keyof typeof SendTxInputSubmitTypeEnum];\n\n\n/**\n * Check if a given object implements the SendTxInput interface.\n */\nexport function instanceOfSendTxInput(value: object): value is SendTxInput {\n if (!('signedTx' in value) || value['signedTx'] === undefined) return false;\n return true;\n}\n\nexport function SendTxInputFromJSON(json: any): SendTxInput {\n return SendTxInputFromJSONTyped(json, false);\n}\n\nexport function SendTxInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): SendTxInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'signedTx': json['signedTx'],\n 'submitType': json['submitType'] == null ? undefined : json['submitType'],\n 'options': json['options'] == null ? undefined : json['options'],\n };\n}\n\nexport function SendTxInputToJSON(json: any): SendTxInput {\n return SendTxInputToJSONTyped(json, false);\n}\n\nexport function SendTxInputToJSONTyped(value?: SendTxInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signedTx': value['signedTx'],\n 'submitType': value['submitType'],\n 'options': value['options'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SendTxResponse\n */\nexport interface SendTxResponse {\n /**\n * DTO.TRANSACTION.SEND.SIGNATURE\n * @type {string}\n * @memberof SendTxResponse\n */\n signature: string;\n /**\n * DTO.TRANSACTION.SEND.ELAPSED_TIME\n * @type {number}\n * @memberof SendTxResponse\n */\n elapsedTime: number;\n /**\n * DTO.TRANSACTION.SEND.JOB_ID\n * @type {string}\n * @memberof SendTxResponse\n */\n jobId: string;\n}\n\n/**\n * Check if a given object implements the SendTxResponse interface.\n */\nexport function instanceOfSendTxResponse(value: object): value is SendTxResponse {\n if (!('signature' in value) || value['signature'] === undefined) return false;\n if (!('elapsedTime' in value) || value['elapsedTime'] === undefined) return false;\n if (!('jobId' in value) || value['jobId'] === undefined) return false;\n return true;\n}\n\nexport function SendTxResponseFromJSON(json: any): SendTxResponse {\n return SendTxResponseFromJSONTyped(json, false);\n}\n\nexport function SendTxResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SendTxResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'signature': json['signature'],\n 'elapsedTime': json['elapsedTime'],\n 'jobId': json['jobId'],\n };\n}\n\nexport function SendTxResponseToJSON(json: any): SendTxResponse {\n return SendTxResponseToJSONTyped(json, false);\n}\n\nexport function SendTxResponseToJSONTyped(value?: SendTxResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signature': value['signature'],\n 'elapsedTime': value['elapsedTime'],\n 'jobId': value['jobId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SwapInput\n */\nexport interface SwapInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof SwapInput\n */\n dex: SwapInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof SwapInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof SwapInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.SWAP.POOL_ADDRESS\n * @type {string}\n * @memberof SwapInput\n */\n poolAddress?: string;\n /**\n * DTO.DEX.SWAP.AMOUNT\n * @type {string}\n * @memberof SwapInput\n */\n amount: string;\n /**\n * DTO.DEX.SWAP.MODE\n * @type {string}\n * @memberof SwapInput\n */\n swapMode: SwapInputSwapModeEnum;\n /**\n * DTO.DEX.SWAP.SLIPPAGE\n * @type {number}\n * @memberof SwapInput\n */\n slippage: number;\n /**\n * DTO.DEX.SWAP.INPUT_MINT\n * @type {string}\n * @memberof SwapInput\n */\n inputMint?: string;\n /**\n * DTO.DEX.SWAP.OUTPUT_MINT\n * @type {string}\n * @memberof SwapInput\n */\n outputMint?: string;\n}\n\n\n/**\n * @export\n */\nexport const SwapInputDexEnum = {\n Raydium: 'raydium',\n Pumpfun: 'pumpfun',\n Moonshot: 'moonshot',\n Candy: 'candy',\n Launchpad: 'launchpad'\n} as const;\nexport type SwapInputDexEnum = typeof SwapInputDexEnum[keyof typeof SwapInputDexEnum];\n\n/**\n * @export\n */\nexport const SwapInputSwapModeEnum = {\n ExactIn: 'ExactIn',\n ExactOut: 'ExactOut'\n} as const;\nexport type SwapInputSwapModeEnum = typeof SwapInputSwapModeEnum[keyof typeof SwapInputSwapModeEnum];\n\n\n/**\n * Check if a given object implements the SwapInput interface.\n */\nexport function instanceOfSwapInput(value: object): value is SwapInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('swapMode' in value) || value['swapMode'] === undefined) return false;\n if (!('slippage' in value) || value['slippage'] === undefined) return false;\n return true;\n}\n\nexport function SwapInputFromJSON(json: any): SwapInput {\n return SwapInputFromJSONTyped(json, false);\n}\n\nexport function SwapInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'poolAddress': json['poolAddress'] == null ? undefined : json['poolAddress'],\n 'amount': json['amount'],\n 'swapMode': json['swapMode'],\n 'slippage': json['slippage'],\n 'inputMint': json['inputMint'] == null ? undefined : json['inputMint'],\n 'outputMint': json['outputMint'] == null ? undefined : json['outputMint'],\n };\n}\n\nexport function SwapInputToJSON(json: any): SwapInput {\n return SwapInputToJSONTyped(json, false);\n}\n\nexport function SwapInputToJSONTyped(value?: SwapInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'poolAddress': value['poolAddress'],\n 'amount': value['amount'],\n 'swapMode': value['swapMode'],\n 'slippage': value['slippage'],\n 'inputMint': value['inputMint'],\n 'outputMint': value['outputMint'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SwapReply\n */\nexport interface SwapReply {\n /**\n * DTO.DEX.SWAP.SERIALIZED_TX\n * @type {string}\n * @memberof SwapReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.SWAP.ELAPSED_TIME\n * @type {number}\n * @memberof SwapReply\n */\n elapsedTime: number;\n}\n\n/**\n * Check if a given object implements the SwapReply interface.\n */\nexport function instanceOfSwapReply(value: object): value is SwapReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('elapsedTime' in value) || value['elapsedTime'] === undefined) return false;\n return true;\n}\n\nexport function SwapReplyFromJSON(json: any): SwapReply {\n return SwapReplyFromJSONTyped(json, false);\n}\n\nexport function SwapReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'elapsedTime': json['elapsedTime'],\n };\n}\n\nexport function SwapReplyToJSON(json: any): SwapReply {\n return SwapReplyToJSONTyped(json, false);\n}\n\nexport function SwapReplyToJSONTyped(value?: SwapReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'elapsedTime': value['elapsedTime'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SwapRouteInput\n */\nexport interface SwapRouteInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof SwapRouteInput\n */\n dex: SwapRouteInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof SwapRouteInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof SwapRouteInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.SWAP.AMOUNT\n * @type {string}\n * @memberof SwapRouteInput\n */\n amount: string;\n /**\n * DTO.DEX.SWAP.MODE\n * @type {string}\n * @memberof SwapRouteInput\n */\n swapMode: SwapRouteInputSwapModeEnum;\n /**\n * DTO.DEX.SWAP.SLIPPAGE\n * @type {number}\n * @memberof SwapRouteInput\n */\n slippage: number;\n /**\n * DTO.DEX.SWAP.INPUT_MINT\n * @type {string}\n * @memberof SwapRouteInput\n */\n inputMint?: string;\n /**\n * DTO.DEX.SWAP.OUTPUT_MINT\n * @type {string}\n * @memberof SwapRouteInput\n */\n outputMint?: string;\n /**\n * DTO.DEX.SWAP.RECIPIENT_ADDRESS\n * @type {string}\n * @memberof SwapRouteInput\n */\n recipientAddress?: string;\n /**\n * DTO.DEX.SWAP.PERMIT\n * @type {string}\n * @memberof SwapRouteInput\n */\n permit?: string;\n /**\n * DTO.DEX.SWAP.DEADLINE\n * @type {number}\n * @memberof SwapRouteInput\n */\n deadline?: number;\n /**\n * DTO.DEX.BASE.TIP_FEE\n * @type {string}\n * @memberof SwapRouteInput\n */\n tipFee?: string;\n /**\n * DTO.DEX.BASE.IS_ANTI_MEV\n * @type {boolean}\n * @memberof SwapRouteInput\n */\n isAntiMev?: boolean;\n}\n\n\n/**\n * @export\n */\nexport const SwapRouteInputDexEnum = {\n Jupiter: 'jupiter',\n Kyberswap: 'kyberswap'\n} as const;\nexport type SwapRouteInputDexEnum = typeof SwapRouteInputDexEnum[keyof typeof SwapRouteInputDexEnum];\n\n/**\n * @export\n */\nexport const SwapRouteInputSwapModeEnum = {\n ExactIn: 'ExactIn',\n ExactOut: 'ExactOut'\n} as const;\nexport type SwapRouteInputSwapModeEnum = typeof SwapRouteInputSwapModeEnum[keyof typeof SwapRouteInputSwapModeEnum];\n\n\n/**\n * Check if a given object implements the SwapRouteInput interface.\n */\nexport function instanceOfSwapRouteInput(value: object): value is SwapRouteInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('swapMode' in value) || value['swapMode'] === undefined) return false;\n if (!('slippage' in value) || value['slippage'] === undefined) return false;\n return true;\n}\n\nexport function SwapRouteInputFromJSON(json: any): SwapRouteInput {\n return SwapRouteInputFromJSONTyped(json, false);\n}\n\nexport function SwapRouteInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapRouteInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'amount': json['amount'],\n 'swapMode': json['swapMode'],\n 'slippage': json['slippage'],\n 'inputMint': json['inputMint'] == null ? undefined : json['inputMint'],\n 'outputMint': json['outputMint'] == null ? undefined : json['outputMint'],\n 'recipientAddress': json['recipientAddress'] == null ? undefined : json['recipientAddress'],\n 'permit': json['permit'] == null ? undefined : json['permit'],\n 'deadline': json['deadline'] == null ? undefined : json['deadline'],\n 'tipFee': json['tipFee'] == null ? undefined : json['tipFee'],\n 'isAntiMev': json['isAntiMev'] == null ? undefined : json['isAntiMev'],\n };\n}\n\nexport function SwapRouteInputToJSON(json: any): SwapRouteInput {\n return SwapRouteInputToJSONTyped(json, false);\n}\n\nexport function SwapRouteInputToJSONTyped(value?: SwapRouteInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'amount': value['amount'],\n 'swapMode': value['swapMode'],\n 'slippage': value['slippage'],\n 'inputMint': value['inputMint'],\n 'outputMint': value['outputMint'],\n 'recipientAddress': value['recipientAddress'],\n 'permit': value['permit'],\n 'deadline': value['deadline'],\n 'tipFee': value['tipFee'],\n 'isAntiMev': value['isAntiMev'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { SwapRouteInput } from './SwapRouteInput';\nimport {\n SwapRouteInputFromJSON,\n SwapRouteInputFromJSONTyped,\n SwapRouteInputToJSON,\n SwapRouteInputToJSONTyped,\n} from './SwapRouteInput';\n\n/**\n * \n * @export\n * @interface SwapRouteResponse\n */\nexport interface SwapRouteResponse {\n /**\n * DTO.DEX.SWAP.ARGS\n * @type {SwapRouteInput}\n * @memberof SwapRouteResponse\n */\n args: SwapRouteInput;\n /**\n * DTO.DEX.SWAP.SERIALIZED_TX\n * @type {string}\n * @memberof SwapRouteResponse\n */\n serializedTx: string;\n /**\n * DTO.DEX.SWAP.ROUTE_INFO\n * @type {object}\n * @memberof SwapRouteResponse\n */\n routeInfo: object;\n /**\n * DTO.DEX.SWAP.ELAPSED_TIME\n * @type {number}\n * @memberof SwapRouteResponse\n */\n elapsedTime: number;\n}\n\n/**\n * Check if a given object implements the SwapRouteResponse interface.\n */\nexport function instanceOfSwapRouteResponse(value: object): value is SwapRouteResponse {\n if (!('args' in value) || value['args'] === undefined) return false;\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('routeInfo' in value) || value['routeInfo'] === undefined) return false;\n if (!('elapsedTime' in value) || value['elapsedTime'] === undefined) return false;\n return true;\n}\n\nexport function SwapRouteResponseFromJSON(json: any): SwapRouteResponse {\n return SwapRouteResponseFromJSONTyped(json, false);\n}\n\nexport function SwapRouteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapRouteResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'args': SwapRouteInputFromJSON(json['args']),\n 'serializedTx': json['serializedTx'],\n 'routeInfo': json['routeInfo'],\n 'elapsedTime': json['elapsedTime'],\n };\n}\n\nexport function SwapRouteResponseToJSON(json: any): SwapRouteResponse {\n return SwapRouteResponseToJSONTyped(json, false);\n}\n\nexport function SwapRouteResponseToJSONTyped(value?: SwapRouteResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'args': SwapRouteInputToJSON(value['args']),\n 'serializedTx': value['serializedTx'],\n 'routeInfo': value['routeInfo'],\n 'elapsedTime': value['elapsedTime'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { DexPoolDTO } from './DexPoolDTO';\nimport {\n DexPoolDTOFromJSON,\n DexPoolDTOFromJSONTyped,\n DexPoolDTOToJSON,\n DexPoolDTOToJSONTyped,\n} from './DexPoolDTO';\nimport type { TokenMarketData } from './TokenMarketData';\nimport {\n TokenMarketDataFromJSON,\n TokenMarketDataFromJSONTyped,\n TokenMarketDataToJSON,\n TokenMarketDataToJSONTyped,\n} from './TokenMarketData';\nimport type { TokenExtraDTO } from './TokenExtraDTO';\nimport {\n TokenExtraDTOFromJSON,\n TokenExtraDTOFromJSONTyped,\n TokenExtraDTOToJSON,\n TokenExtraDTOToJSONTyped,\n} from './TokenExtraDTO';\nimport type { TokenCreatorsDTO } from './TokenCreatorsDTO';\nimport {\n TokenCreatorsDTOFromJSON,\n TokenCreatorsDTOFromJSONTyped,\n TokenCreatorsDTOToJSON,\n TokenCreatorsDTOToJSONTyped,\n} from './TokenCreatorsDTO';\nimport type { TokenStat } from './TokenStat';\nimport {\n TokenStatFromJSON,\n TokenStatFromJSONTyped,\n TokenStatToJSON,\n TokenStatToJSONTyped,\n} from './TokenStat';\nimport type { TokenSocialMediasDTO } from './TokenSocialMediasDTO';\nimport {\n TokenSocialMediasDTOFromJSON,\n TokenSocialMediasDTOFromJSONTyped,\n TokenSocialMediasDTOToJSON,\n TokenSocialMediasDTOToJSONTyped,\n} from './TokenSocialMediasDTO';\n\n/**\n * \n * @export\n * @interface Token\n */\nexport interface Token {\n /**\n * DTO.TOKEN.METADATA.CHAIN\n * @type {string}\n * @memberof Token\n */\n chain: string;\n /**\n * DTO.TOKEN.METADATA.DECIMALS\n * @type {number}\n * @memberof Token\n */\n decimals: number;\n /**\n * DTO.TOKEN.METADATA.NAME\n * @type {string}\n * @memberof Token\n */\n name: string;\n /**\n * DTO.TOKEN.METADATA.SYMBOL\n * @type {string}\n * @memberof Token\n */\n symbol: string;\n /**\n * DTO.TOKEN.METADATA.METADATA_ADDRESS\n * @type {string}\n * @memberof Token\n */\n metadataAddress?: string;\n /**\n * DTO.TOKEN.METADATA.ADDRESS\n * @type {string}\n * @memberof Token\n */\n address: string;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATORS\n * @type {Array<TokenCreatorsDTO>}\n * @memberof Token\n */\n tokenCreators?: Array<TokenCreatorsDTO>;\n /**\n * DTO.TOKEN.METADATA.IMAGE_URL\n * @type {string}\n * @memberof Token\n */\n imageUrl?: string;\n /**\n * DTO.TOKEN.METADATA.URI\n * @type {string}\n * @memberof Token\n */\n uri?: string;\n /**\n * DTO.TOKEN.METADATA.EXTRA\n * @type {TokenExtraDTO}\n * @memberof Token\n */\n extra?: TokenExtraDTO;\n /**\n * DTO.TOKEN.METADATA.SOCIAL_MEDIAS\n * @type {TokenSocialMediasDTO}\n * @memberof Token\n */\n socialMedias?: TokenSocialMediasDTO;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATED_AT\n * @type {number}\n * @memberof Token\n */\n tokenCreatedAt?: number;\n /**\n * DTO.TOKEN.METADATA.DESCRIPTION\n * @type {string}\n * @memberof Token\n */\n description?: string;\n /**\n * DTO.TOKEN.METADATA.DEV_TOTAL_TOKENS\n * @type {number}\n * @memberof Token\n */\n devTotalTokens?: number;\n /**\n * DTO.TOKEN.METADATA.DEV_LAST_TOKEN_CREATED_AT\n * @type {string}\n * @memberof Token\n */\n devLastTokenCreatedAt?: string;\n /**\n * DTO.TOKEN.MARKET_ID\n * @type {string}\n * @memberof Token\n */\n market?: string;\n /**\n * DTO.TOKEN.EXTENSION\n * @type {object}\n * @memberof Token\n */\n extension?: object;\n /**\n * DTO.TOKEN.STATS\n * @type {TokenStat}\n * @memberof Token\n */\n stats?: TokenStat;\n /**\n * DTO.TOKEN.LIQUIDITY\n * @type {Array<DexPoolDTO>}\n * @memberof Token\n */\n liquidity?: Array<DexPoolDTO>;\n /**\n * DTO.TOKEN.MARKET_CAP_INFO\n * @type {TokenMarketData}\n * @memberof Token\n */\n marketData: TokenMarketData;\n}\n\n/**\n * Check if a given object implements the Token interface.\n */\nexport function instanceOfToken(value: object): value is Token {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('decimals' in value) || value['decimals'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('marketData' in value) || value['marketData'] === undefined) return false;\n return true;\n}\n\nexport function TokenFromJSON(json: any): Token {\n return TokenFromJSONTyped(json, false);\n}\n\nexport function TokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): Token {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'decimals': json['decimals'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'metadataAddress': json['metadataAddress'] == null ? undefined : json['metadataAddress'],\n 'address': json['address'],\n 'tokenCreators': json['tokenCreators'] == null ? undefined : ((json['tokenCreators'] as Array<any>).map(TokenCreatorsDTOFromJSON)),\n 'imageUrl': json['imageUrl'] == null ? undefined : json['imageUrl'],\n 'uri': json['uri'] == null ? undefined : json['uri'],\n 'extra': json['extra'] == null ? undefined : TokenExtraDTOFromJSON(json['extra']),\n 'socialMedias': json['socialMedias'] == null ? undefined : TokenSocialMediasDTOFromJSON(json['socialMedias']),\n 'tokenCreatedAt': json['tokenCreatedAt'] == null ? undefined : json['tokenCreatedAt'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'devTotalTokens': json['devTotalTokens'] == null ? undefined : json['devTotalTokens'],\n 'devLastTokenCreatedAt': json['devLastTokenCreatedAt'] == null ? undefined : json['devLastTokenCreatedAt'],\n 'market': json['market'] == null ? undefined : json['market'],\n 'extension': json['extension'] == null ? undefined : json['extension'],\n 'stats': json['stats'] == null ? undefined : TokenStatFromJSON(json['stats']),\n 'liquidity': json['liquidity'] == null ? undefined : ((json['liquidity'] as Array<any>).map(DexPoolDTOFromJSON)),\n 'marketData': TokenMarketDataFromJSON(json['marketData']),\n };\n}\n\nexport function TokenToJSON(json: any): Token {\n return TokenToJSONTyped(json, false);\n}\n\nexport function TokenToJSONTyped(value?: Token | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'decimals': value['decimals'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'metadataAddress': value['metadataAddress'],\n 'address': value['address'],\n 'tokenCreators': value['tokenCreators'] == null ? undefined : ((value['tokenCreators'] as Array<any>).map(TokenCreatorsDTOToJSON)),\n 'imageUrl': value['imageUrl'],\n 'uri': value['uri'],\n 'extra': TokenExtraDTOToJSON(value['extra']),\n 'socialMedias': TokenSocialMediasDTOToJSON(value['socialMedias']),\n 'tokenCreatedAt': value['tokenCreatedAt'],\n 'description': value['description'],\n 'devTotalTokens': value['devTotalTokens'],\n 'devLastTokenCreatedAt': value['devLastTokenCreatedAt'],\n 'market': value['market'],\n 'extension': value['extension'],\n 'stats': TokenStatToJSON(value['stats']),\n 'liquidity': value['liquidity'] == null ? undefined : ((value['liquidity'] as Array<any>).map(DexPoolDTOToJSON)),\n 'marketData': TokenMarketDataToJSON(value['marketData']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenCreationDTO\n */\nexport interface TokenCreationDTO {\n /**\n * DTO.TOKEN.CREATION.TOKEN_ADDRESS\n * @type {string}\n * @memberof TokenCreationDTO\n */\n tokenAddress: string;\n /**\n * DTO.TOKEN.CREATION.BLOCK_HEIGHT\n * @type {number}\n * @memberof TokenCreationDTO\n */\n blockHeight: number;\n /**\n * DTO.TOKEN.CREATION.BLOCK_SLOT\n * @type {number}\n * @memberof TokenCreationDTO\n */\n blockSlot: number;\n /**\n * DTO.TOKEN.CREATION.BLOCK_HASH\n * @type {string}\n * @memberof TokenCreationDTO\n */\n blockHash: string;\n /**\n * DTO.TOKEN.CREATION.BLOCK_TIMESTAMP\n * @type {number}\n * @memberof TokenCreationDTO\n */\n blockTimestamp?: number;\n /**\n * DTO.TOKEN.CREATION.TRANSACTION_SIGNATURE\n * @type {string}\n * @memberof TokenCreationDTO\n */\n transactionSignature: string;\n /**\n * DTO.TOKEN.CREATION.TYPE\n * @type {string}\n * @memberof TokenCreationDTO\n */\n type: TokenCreationDTOTypeEnum;\n}\n\n\n/**\n * @export\n */\nexport const TokenCreationDTOTypeEnum = {\n Create: 'create',\n Mint: 'mint',\n Burn: 'burn'\n} as const;\nexport type TokenCreationDTOTypeEnum = typeof TokenCreationDTOTypeEnum[keyof typeof TokenCreationDTOTypeEnum];\n\n\n/**\n * Check if a given object implements the TokenCreationDTO interface.\n */\nexport function instanceOfTokenCreationDTO(value: object): value is TokenCreationDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('blockHeight' in value) || value['blockHeight'] === undefined) return false;\n if (!('blockSlot' in value) || value['blockSlot'] === undefined) return false;\n if (!('blockHash' in value) || value['blockHash'] === undefined) return false;\n if (!('transactionSignature' in value) || value['transactionSignature'] === undefined) return false;\n if (!('type' in value) || value['type'] === undefined) return false;\n return true;\n}\n\nexport function TokenCreationDTOFromJSON(json: any): TokenCreationDTO {\n return TokenCreationDTOFromJSONTyped(json, false);\n}\n\nexport function TokenCreationDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenCreationDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'blockHeight': json['blockHeight'],\n 'blockSlot': json['blockSlot'],\n 'blockHash': json['blockHash'],\n 'blockTimestamp': json['blockTimestamp'] == null ? undefined : json['blockTimestamp'],\n 'transactionSignature': json['transactionSignature'],\n 'type': json['type'],\n };\n}\n\nexport function TokenCreationDTOToJSON(json: any): TokenCreationDTO {\n return TokenCreationDTOToJSONTyped(json, false);\n}\n\nexport function TokenCreationDTOToJSONTyped(value?: TokenCreationDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'blockHeight': value['blockHeight'],\n 'blockSlot': value['blockSlot'],\n 'blockHash': value['blockHash'],\n 'blockTimestamp': value['blockTimestamp'],\n 'transactionSignature': value['transactionSignature'],\n 'type': value['type'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenCreationDTO } from './TokenCreationDTO';\nimport {\n TokenCreationDTOFromJSON,\n TokenCreationDTOFromJSONTyped,\n TokenCreationDTOToJSON,\n TokenCreationDTOToJSONTyped,\n} from './TokenCreationDTO';\n\n/**\n * \n * @export\n * @interface TokenCreationPage\n */\nexport interface TokenCreationPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenCreationPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenCreationPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenCreationPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenCreationPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenCreationPage\n */\n total?: number;\n /**\n * DTO.TOKEN.CREATION.PAGE.DATA\n * @type {Array<TokenCreationDTO>}\n * @memberof TokenCreationPage\n */\n data: Array<TokenCreationDTO>;\n}\n\n/**\n * Check if a given object implements the TokenCreationPage interface.\n */\nexport function instanceOfTokenCreationPage(value: object): value is TokenCreationPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenCreationPageFromJSON(json: any): TokenCreationPage {\n return TokenCreationPageFromJSONTyped(json, false);\n}\n\nexport function TokenCreationPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenCreationPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenCreationDTOFromJSON)),\n };\n}\n\nexport function TokenCreationPageToJSON(json: any): TokenCreationPage {\n return TokenCreationPageToJSONTyped(json, false);\n}\n\nexport function TokenCreationPageToJSONTyped(value?: TokenCreationPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenCreationDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenHolder\n */\nexport interface TokenHolder {\n /**\n * DTO.TOKEN_HOLDER.WALLET_ADDRESS\n * @type {string}\n * @memberof TokenHolder\n */\n walletAddress: string;\n /**\n * DTO.TOKEN_HOLDER.AMOUNT\n * @type {number}\n * @memberof TokenHolder\n */\n amount: number;\n /**\n * DTO.TOKEN_HOLDER.AMOUNT_USD\n * @type {number}\n * @memberof TokenHolder\n */\n amountInUsd: number;\n /**\n * DTO.TOKEN_HOLDER.PERCENTAGE\n * @type {string}\n * @memberof TokenHolder\n */\n percentage: string;\n}\n\n/**\n * Check if a given object implements the TokenHolder interface.\n */\nexport function instanceOfTokenHolder(value: object): value is TokenHolder {\n if (!('walletAddress' in value) || value['walletAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('amountInUsd' in value) || value['amountInUsd'] === undefined) return false;\n if (!('percentage' in value) || value['percentage'] === undefined) return false;\n return true;\n}\n\nexport function TokenHolderFromJSON(json: any): TokenHolder {\n return TokenHolderFromJSONTyped(json, false);\n}\n\nexport function TokenHolderFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenHolder {\n if (json == null) {\n return json;\n }\n return {\n \n 'walletAddress': json['walletAddress'],\n 'amount': json['amount'],\n 'amountInUsd': json['amountInUsd'],\n 'percentage': json['percentage'],\n };\n}\n\nexport function TokenHolderToJSON(json: any): TokenHolder {\n return TokenHolderToJSONTyped(json, false);\n}\n\nexport function TokenHolderToJSONTyped(value?: TokenHolder | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'walletAddress': value['walletAddress'],\n 'amount': value['amount'],\n 'amountInUsd': value['amountInUsd'],\n 'percentage': value['percentage'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenHolder } from './TokenHolder';\nimport {\n TokenHolderFromJSON,\n TokenHolderFromJSONTyped,\n TokenHolderToJSON,\n TokenHolderToJSONTyped,\n} from './TokenHolder';\n\n/**\n * \n * @export\n * @interface TokenHolderPage\n */\nexport interface TokenHolderPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenHolderPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenHolderPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenHolderPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenHolderPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenHolderPage\n */\n total?: number;\n /**\n * DTO.TOKEN_HOLDER.PAGE.DATA\n * @type {Array<TokenHolder>}\n * @memberof TokenHolderPage\n */\n data: Array<TokenHolder>;\n}\n\n/**\n * Check if a given object implements the TokenHolderPage interface.\n */\nexport function instanceOfTokenHolderPage(value: object): value is TokenHolderPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenHolderPageFromJSON(json: any): TokenHolderPage {\n return TokenHolderPageFromJSONTyped(json, false);\n}\n\nexport function TokenHolderPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenHolderPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenHolderFromJSON)),\n };\n}\n\nexport function TokenHolderPageToJSON(json: any): TokenHolderPage {\n return TokenHolderPageToJSONTyped(json, false);\n}\n\nexport function TokenHolderPageToJSONTyped(value?: TokenHolderPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenHolderToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Token } from './Token';\nimport {\n TokenFromJSON,\n TokenFromJSONTyped,\n TokenToJSON,\n TokenToJSONTyped,\n} from './Token';\n\n/**\n * \n * @export\n * @interface TokenListPage\n */\nexport interface TokenListPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenListPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenListPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenListPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenListPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenListPage\n */\n total?: number;\n /**\n * DTO.TOKEN.PAGE.DATA\n * @type {Array<Token>}\n * @memberof TokenListPage\n */\n data: Array<Token>;\n}\n\n/**\n * Check if a given object implements the TokenListPage interface.\n */\nexport function instanceOfTokenListPage(value: object): value is TokenListPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenListPageFromJSON(json: any): TokenListPage {\n return TokenListPageFromJSONTyped(json, false);\n}\n\nexport function TokenListPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenListPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenFromJSON)),\n };\n}\n\nexport function TokenListPageToJSON(json: any): TokenListPage {\n return TokenListPageToJSONTyped(json, false);\n}\n\nexport function TokenListPageToJSONTyped(value?: TokenListPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Token } from './Token';\nimport {\n TokenFromJSON,\n TokenFromJSONTyped,\n TokenToJSON,\n TokenToJSONTyped,\n} from './Token';\n\n/**\n * \n * @export\n * @interface TokenPage\n */\nexport interface TokenPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenPage\n */\n total?: number;\n /**\n * DTO.TOKEN.PAGE.COUNTS_BY_PROTOCOLS\n * @type {object}\n * @memberof TokenPage\n */\n countsByProtocols?: object;\n /**\n * DTO.TOKEN.PAGE.DATA\n * @type {Array<Token>}\n * @memberof TokenPage\n */\n data: Array<Token>;\n}\n\n/**\n * Check if a given object implements the TokenPage interface.\n */\nexport function instanceOfTokenPage(value: object): value is TokenPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenPageFromJSON(json: any): TokenPage {\n return TokenPageFromJSONTyped(json, false);\n}\n\nexport function TokenPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'countsByProtocols': json['countsByProtocols'] == null ? undefined : json['countsByProtocols'],\n 'data': ((json['data'] as Array<any>).map(TokenFromJSON)),\n };\n}\n\nexport function TokenPageToJSON(json: any): TokenPage {\n return TokenPageToJSONTyped(json, false);\n}\n\nexport function TokenPageToJSONTyped(value?: TokenPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'countsByProtocols': value['countsByProtocols'],\n 'data': ((value['data'] as Array<any>).map(TokenToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenPriceDTO\n */\nexport interface TokenPriceDTO {\n /**\n * DTO.TOKEN.PRICE.TOKEN_ADDRESS\n * @type {string}\n * @memberof TokenPriceDTO\n */\n tokenAddress: string;\n /**\n * DTO.TOKEN.PRICE.PRICE_IN_USD\n * @type {string}\n * @memberof TokenPriceDTO\n */\n priceInUsd: string;\n /**\n * DTO.TOKEN.PRICE.PRICE_IN_NATIVE\n * @type {string}\n * @memberof TokenPriceDTO\n */\n priceInNative: string;\n /**\n * DTO.TOKEN.PRICE.TIMESTAMP\n * @type {number}\n * @memberof TokenPriceDTO\n */\n timestamp: number;\n}\n\n/**\n * Check if a given object implements the TokenPriceDTO interface.\n */\nexport function instanceOfTokenPriceDTO(value: object): value is TokenPriceDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('priceInUsd' in value) || value['priceInUsd'] === undefined) return false;\n if (!('priceInNative' in value) || value['priceInNative'] === undefined) return false;\n if (!('timestamp' in value) || value['timestamp'] === undefined) return false;\n return true;\n}\n\nexport function TokenPriceDTOFromJSON(json: any): TokenPriceDTO {\n return TokenPriceDTOFromJSONTyped(json, false);\n}\n\nexport function TokenPriceDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenPriceDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'priceInUsd': json['priceInUsd'],\n 'priceInNative': json['priceInNative'],\n 'timestamp': json['timestamp'],\n };\n}\n\nexport function TokenPriceDTOToJSON(json: any): TokenPriceDTO {\n return TokenPriceDTOToJSONTyped(json, false);\n}\n\nexport function TokenPriceDTOToJSONTyped(value?: TokenPriceDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'priceInUsd': value['priceInUsd'],\n 'priceInNative': value['priceInNative'],\n 'timestamp': value['timestamp'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenPriceDTO } from './TokenPriceDTO';\nimport {\n TokenPriceDTOFromJSON,\n TokenPriceDTOFromJSONTyped,\n TokenPriceDTOToJSON,\n TokenPriceDTOToJSONTyped,\n} from './TokenPriceDTO';\n\n/**\n * \n * @export\n * @interface TokenPricePage\n */\nexport interface TokenPricePage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenPricePage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenPricePage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenPricePage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenPricePage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenPricePage\n */\n total?: number;\n /**\n * DTO.TOKEN.PRICE.PAGE.DATA\n * @type {Array<TokenPriceDTO>}\n * @memberof TokenPricePage\n */\n data: Array<TokenPriceDTO>;\n}\n\n/**\n * Check if a given object implements the TokenPricePage interface.\n */\nexport function instanceOfTokenPricePage(value: object): value is TokenPricePage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenPricePageFromJSON(json: any): TokenPricePage {\n return TokenPricePageFromJSONTyped(json, false);\n}\n\nexport function TokenPricePageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenPricePage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenPriceDTOFromJSON)),\n };\n}\n\nexport function TokenPricePageToJSON(json: any): TokenPricePage {\n return TokenPricePageToJSONTyped(json, false);\n}\n\nexport function TokenPricePageToJSONTyped(value?: TokenPricePage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenPriceDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenTrader\n */\nexport interface TokenTrader {\n /**\n * DTO.TOKEN_TRADER.ADDRESS\n * @type {string}\n * @memberof TokenTrader\n */\n address: string;\n /**\n * DTO.TOKEN_TRADER.TRANSACTION_SIGNATURE\n * @type {string}\n * @memberof TokenTrader\n */\n transactionSignature?: string;\n /**\n * DTO.TOKEN_TRADER.BLOCK_HASH\n * @type {string}\n * @memberof TokenTrader\n */\n blockHash?: string;\n /**\n * DTO.TOKEN_TRADER.BLOCK_HEIGHT\n * @type {number}\n * @memberof TokenTrader\n */\n blockHeight?: number;\n /**\n * DTO.TOKEN_TRADER.BLOCK_SLOT\n * @type {number}\n * @memberof TokenTrader\n */\n blockSlot?: number;\n /**\n * DTO.TOKEN_TRADER.BLOCK_TIMESTAMP\n * @type {Date}\n * @memberof TokenTrader\n */\n blockTimestamp?: Date;\n /**\n * DTO.TOKEN_TRADER.ONCHAIN_CREATED_AT\n * @type {object}\n * @memberof TokenTrader\n */\n onchainCreatedAt?: object;\n /**\n * DTO.TOKEN_TRADER.TRADE_COUNT\n * @type {number}\n * @memberof TokenTrader\n */\n tradeCount?: number;\n /**\n * DTO.TOKEN_TRADER.TRADE_AMOUNT_IN_NATIVE\n * @type {number}\n * @memberof TokenTrader\n */\n tradeAmountInNative?: number;\n /**\n * DTO.TOKEN_TRADER.TRADE_AMOUNT_IN_USD\n * @type {number}\n * @memberof TokenTrader\n */\n tradeAmountInUsd?: number;\n /**\n * DTO.TOKEN_TRADER.PERCENTILE_RANK_TRADE_COUNT\n * @type {number}\n * @memberof TokenTrader\n */\n percentileRankTradeCount?: number;\n /**\n * DTO.TOKEN_TRADER.PERCENTILE_RANK_TRADE_AMOUNT_IN_USD\n * @type {number}\n * @memberof TokenTrader\n */\n percentileRankTradeAmountInUsd?: number;\n /**\n * DTO.TOKEN_TRADER.RANK_TRADE_AMOUNT_IN_USD\n * @type {number}\n * @memberof TokenTrader\n */\n rankTradeAmountInUsd?: number;\n}\n\n/**\n * Check if a given object implements the TokenTrader interface.\n */\nexport function instanceOfTokenTrader(value: object): value is TokenTrader {\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function TokenTraderFromJSON(json: any): TokenTrader {\n return TokenTraderFromJSONTyped(json, false);\n}\n\nexport function TokenTraderFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenTrader {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'transactionSignature': json['transactionSignature'] == null ? undefined : json['transactionSignature'],\n 'blockHash': json['blockHash'] == null ? undefined : json['blockHash'],\n 'blockHeight': json['blockHeight'] == null ? undefined : json['blockHeight'],\n 'blockSlot': json['blockSlot'] == null ? undefined : json['blockSlot'],\n 'blockTimestamp': json['blockTimestamp'] == null ? undefined : (new Date(json['blockTimestamp'])),\n 'onchainCreatedAt': json['onchainCreatedAt'] == null ? undefined : json['onchainCreatedAt'],\n 'tradeCount': json['tradeCount'] == null ? undefined : json['tradeCount'],\n 'tradeAmountInNative': json['tradeAmountInNative'] == null ? undefined : json['tradeAmountInNative'],\n 'tradeAmountInUsd': json['tradeAmountInUsd'] == null ? undefined : json['tradeAmountInUsd'],\n 'percentileRankTradeCount': json['percentileRankTradeCount'] == null ? undefined : json['percentileRankTradeCount'],\n 'percentileRankTradeAmountInUsd': json['percentileRankTradeAmountInUsd'] == null ? undefined : json['percentileRankTradeAmountInUsd'],\n 'rankTradeAmountInUsd': json['rankTradeAmountInUsd'] == null ? undefined : json['rankTradeAmountInUsd'],\n };\n}\n\nexport function TokenTraderToJSON(json: any): TokenTrader {\n return TokenTraderToJSONTyped(json, false);\n}\n\nexport function TokenTraderToJSONTyped(value?: TokenTrader | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'transactionSignature': value['transactionSignature'],\n 'blockHash': value['blockHash'],\n 'blockHeight': value['blockHeight'],\n 'blockSlot': value['blockSlot'],\n 'blockTimestamp': value['blockTimestamp'] == null ? value['blockTimestamp'] : value['blockTimestamp'].toISOString(),\n 'onchainCreatedAt': value['onchainCreatedAt'],\n 'tradeCount': value['tradeCount'],\n 'tradeAmountInNative': value['tradeAmountInNative'],\n 'tradeAmountInUsd': value['tradeAmountInUsd'],\n 'percentileRankTradeCount': value['percentileRankTradeCount'],\n 'percentileRankTradeAmountInUsd': value['percentileRankTradeAmountInUsd'],\n 'rankTradeAmountInUsd': value['rankTradeAmountInUsd'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TopTradersDTO\n */\nexport interface TopTradersDTO {\n /**\n * DTO.TRADE.TOP_TRADERS.TOKEN_ADDRESS\n * @type {string}\n * @memberof TopTradersDTO\n */\n tokenAddress: string;\n /**\n * DTO.TRADE.TOP_TRADERS.OWNER\n * @type {string}\n * @memberof TopTradersDTO\n */\n owner: string;\n /**\n * DTO.TRADE.TOP_TRADERS.TAGS\n * @type {Array<string>}\n * @memberof TopTradersDTO\n */\n tags: Array<string>;\n /**\n * DTO.TRADE.TOP_TRADERS.TYPE\n * @type {string}\n * @memberof TopTradersDTO\n */\n type: string;\n /**\n * DTO.TRADE.TOP_TRADERS.VOLUME\n * @type {number}\n * @memberof TopTradersDTO\n */\n volume: number;\n /**\n * DTO.TRADE.TOP_TRADERS.TRADE\n * @type {number}\n * @memberof TopTradersDTO\n */\n trade: number;\n /**\n * DTO.TRADE.TOP_TRADERS.TRADE_BUY\n * @type {number}\n * @memberof TopTradersDTO\n */\n tradeBuy: number;\n /**\n * DTO.TRADE.TOP_TRADERS.TRADE_SELL\n * @type {number}\n * @memberof TopTradersDTO\n */\n tradeSell: number;\n /**\n * DTO.TRADE.TOP_TRADERS.VOLUME_BUY\n * @type {number}\n * @memberof TopTradersDTO\n */\n volumeBuy: number;\n /**\n * DTO.TRADE.TOP_TRADERS.VOLUME_SELL\n * @type {number}\n * @memberof TopTradersDTO\n */\n volumeSell: number;\n /**\n * DTO.TRADE.TOP_TRADERS.IS_SCALED_UI_TOKEN\n * @type {boolean}\n * @memberof TopTradersDTO\n */\n isScaledUiToken: boolean;\n /**\n * DTO.TRADE.TOP_TRADERS.MULTIPLIER\n * @type {string}\n * @memberof TopTradersDTO\n */\n multiplier?: string;\n}\n\n/**\n * Check if a given object implements the TopTradersDTO interface.\n */\nexport function instanceOfTopTradersDTO(value: object): value is TopTradersDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('owner' in value) || value['owner'] === undefined) return false;\n if (!('tags' in value) || value['tags'] === undefined) return false;\n if (!('type' in value) || value['type'] === undefined) return false;\n if (!('volume' in value) || value['volume'] === undefined) return false;\n if (!('trade' in value) || value['trade'] === undefined) return false;\n if (!('tradeBuy' in value) || value['tradeBuy'] === undefined) return false;\n if (!('tradeSell' in value) || value['tradeSell'] === undefined) return false;\n if (!('volumeBuy' in value) || value['volumeBuy'] === undefined) return false;\n if (!('volumeSell' in value) || value['volumeSell'] === undefined) return false;\n if (!('isScaledUiToken' in value) || value['isScaledUiToken'] === undefined) return false;\n return true;\n}\n\nexport function TopTradersDTOFromJSON(json: any): TopTradersDTO {\n return TopTradersDTOFromJSONTyped(json, false);\n}\n\nexport function TopTradersDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TopTradersDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'owner': json['owner'],\n 'tags': json['tags'],\n 'type': json['type'],\n 'volume': json['volume'],\n 'trade': json['trade'],\n 'tradeBuy': json['tradeBuy'],\n 'tradeSell': json['tradeSell'],\n 'volumeBuy': json['volumeBuy'],\n 'volumeSell': json['volumeSell'],\n 'isScaledUiToken': json['isScaledUiToken'],\n 'multiplier': json['multiplier'] == null ? undefined : json['multiplier'],\n };\n}\n\nexport function TopTradersDTOToJSON(json: any): TopTradersDTO {\n return TopTradersDTOToJSONTyped(json, false);\n}\n\nexport function TopTradersDTOToJSONTyped(value?: TopTradersDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'owner': value['owner'],\n 'tags': value['tags'],\n 'type': value['type'],\n 'volume': value['volume'],\n 'trade': value['trade'],\n 'tradeBuy': value['tradeBuy'],\n 'tradeSell': value['tradeSell'],\n 'volumeBuy': value['volumeBuy'],\n 'volumeSell': value['volumeSell'],\n 'isScaledUiToken': value['isScaledUiToken'],\n 'multiplier': value['multiplier'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TopTradersDTO } from './TopTradersDTO';\nimport {\n TopTradersDTOFromJSON,\n TopTradersDTOFromJSONTyped,\n TopTradersDTOToJSON,\n TopTradersDTOToJSONTyped,\n} from './TopTradersDTO';\n\n/**\n * \n * @export\n * @interface TopTradersPage\n */\nexport interface TopTradersPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TopTradersPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TopTradersPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TopTradersPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TopTradersPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TopTradersPage\n */\n total?: number;\n /**\n * DTO.TRADE.TOP_TRADERS.PAGE.DATA\n * @type {Array<TopTradersDTO>}\n * @memberof TopTradersPage\n */\n data: Array<TopTradersDTO>;\n}\n\n/**\n * Check if a given object implements the TopTradersPage interface.\n */\nexport function instanceOfTopTradersPage(value: object): value is TopTradersPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TopTradersPageFromJSON(json: any): TopTradersPage {\n return TopTradersPageFromJSONTyped(json, false);\n}\n\nexport function TopTradersPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TopTradersPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TopTradersDTOFromJSON)),\n };\n}\n\nexport function TopTradersPageToJSON(json: any): TopTradersPage {\n return TopTradersPageToJSONTyped(json, false);\n}\n\nexport function TopTradersPageToJSONTyped(value?: TopTradersPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TopTradersDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TradeDetailDTO\n */\nexport interface TradeDetailDTO {\n /**\n * DTO.TRADE.DETAIL.CHAIN\n * @type {string}\n * @memberof TradeDetailDTO\n */\n chain: string;\n /**\n * DTO.TRADE.DETAIL.BLOCK_HEIGHT\n * @type {number}\n * @memberof TradeDetailDTO\n */\n blockHeight: number;\n /**\n * DTO.TRADE.DETAIL.BLOCK_TIMESTAMP\n * @type {number}\n * @memberof TradeDetailDTO\n */\n blockTimestamp: number;\n /**\n * DTO.TRADE.DETAIL.ACCOUNT_OWNER_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n accountOwnerAddress: string;\n /**\n * DTO.TRADE.DETAIL.TRANSACTION_SIGNATURE\n * @type {string}\n * @memberof TradeDetailDTO\n */\n transactionSignature: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_NAME\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenName: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_SYMBOL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenSymbol: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_IMAGE_URL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenImageUrl: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenAddress: string;\n /**\n * DTO.TRADE.DETAIL.POOL_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n poolAddress: string;\n /**\n * DTO.TRADE.DETAIL.DEX_PROGRAM_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n dexProgramAddress: string;\n /**\n * DTO.TRADE.DETAIL.DEX_PROTOCOL_FAMILY\n * @type {string}\n * @memberof TradeDetailDTO\n */\n dexProtocolFamily: string;\n /**\n * DTO.TRADE.DETAIL.DEX_IMAGE\n * @type {string}\n * @memberof TradeDetailDTO\n */\n dexImage: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_AMOUNT\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenAmount: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_PRICE_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenPriceInUsd: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_AMOUNT_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenAmountInUsd: string;\n /**\n * DTO.TRADE.DETAIL.TYPE\n * @type {string}\n * @memberof TradeDetailDTO\n */\n type: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_NAME\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenName: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_SYMBOL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenSymbol: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_IMAGE_URL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenImageUrl: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenAddress: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_PRICE_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenPriceInUsd: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_AMOUNT\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenAmount: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_AMOUNT_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenAmountInUsd: string;\n /**\n * DTO.TRADE.DETAIL.STATUS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n status: string;\n}\n\n/**\n * Check if a given object implements the TradeDetailDTO interface.\n */\nexport function instanceOfTradeDetailDTO(value: object): value is TradeDetailDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('blockHeight' in value) || value['blockHeight'] === undefined) return false;\n if (!('blockTimestamp' in value) || value['blockTimestamp'] === undefined) return false;\n if (!('accountOwnerAddress' in value) || value['accountOwnerAddress'] === undefined) return false;\n if (!('transactionSignature' in value) || value['transactionSignature'] === undefined) return false;\n if (!('tokenName' in value) || value['tokenName'] === undefined) return false;\n if (!('tokenSymbol' in value) || value['tokenSymbol'] === undefined) return false;\n if (!('tokenImageUrl' in value) || value['tokenImageUrl'] === undefined) return false;\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('poolAddress' in value) || value['poolAddress'] === undefined) return false;\n if (!('dexProgramAddress' in value) || value['dexProgramAddress'] === undefined) return false;\n if (!('dexProtocolFamily' in value) || value['dexProtocolFamily'] === undefined) return false;\n if (!('dexImage' in value) || value['dexImage'] === undefined) return false;\n if (!('tokenAmount' in value) || value['tokenAmount'] === undefined) return false;\n if (!('tokenPriceInUsd' in value) || value['tokenPriceInUsd'] === undefined) return false;\n if (!('tokenAmountInUsd' in value) || value['tokenAmountInUsd'] === undefined) return false;\n if (!('type' in value) || value['type'] === undefined) return false;\n if (!('sideTokenName' in value) || value['sideTokenName'] === undefined) return false;\n if (!('sideTokenSymbol' in value) || value['sideTokenSymbol'] === undefined) return false;\n if (!('sideTokenImageUrl' in value) || value['sideTokenImageUrl'] === undefined) return false;\n if (!('sideTokenAddress' in value) || value['sideTokenAddress'] === undefined) return false;\n if (!('sideTokenPriceInUsd' in value) || value['sideTokenPriceInUsd'] === undefined) return false;\n if (!('sideTokenAmount' in value) || value['sideTokenAmount'] === undefined) return false;\n if (!('sideTokenAmountInUsd' in value) || value['sideTokenAmountInUsd'] === undefined) return false;\n if (!('status' in value) || value['status'] === undefined) return false;\n return true;\n}\n\nexport function TradeDetailDTOFromJSON(json: any): TradeDetailDTO {\n return TradeDetailDTOFromJSONTyped(json, false);\n}\n\nexport function TradeDetailDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TradeDetailDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'blockHeight': json['blockHeight'],\n 'blockTimestamp': json['blockTimestamp'],\n 'accountOwnerAddress': json['accountOwnerAddress'],\n 'transactionSignature': json['transactionSignature'],\n 'tokenName': json['tokenName'],\n 'tokenSymbol': json['tokenSymbol'],\n 'tokenImageUrl': json['tokenImageUrl'],\n 'tokenAddress': json['tokenAddress'],\n 'poolAddress': json['poolAddress'],\n 'dexProgramAddress': json['dexProgramAddress'],\n 'dexProtocolFamily': json['dexProtocolFamily'],\n 'dexImage': json['dexImage'],\n 'tokenAmount': json['tokenAmount'],\n 'tokenPriceInUsd': json['tokenPriceInUsd'],\n 'tokenAmountInUsd': json['tokenAmountInUsd'],\n 'type': json['type'],\n 'sideTokenName': json['sideTokenName'],\n 'sideTokenSymbol': json['sideTokenSymbol'],\n 'sideTokenImageUrl': json['sideTokenImageUrl'],\n 'sideTokenAddress': json['sideTokenAddress'],\n 'sideTokenPriceInUsd': json['sideTokenPriceInUsd'],\n 'sideTokenAmount': json['sideTokenAmount'],\n 'sideTokenAmountInUsd': json['sideTokenAmountInUsd'],\n 'status': json['status'],\n };\n}\n\nexport function TradeDetailDTOToJSON(json: any): TradeDetailDTO {\n return TradeDetailDTOToJSONTyped(json, false);\n}\n\nexport function TradeDetailDTOToJSONTyped(value?: TradeDetailDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'blockHeight': value['blockHeight'],\n 'blockTimestamp': value['blockTimestamp'],\n 'accountOwnerAddress': value['accountOwnerAddress'],\n 'transactionSignature': value['transactionSignature'],\n 'tokenName': value['tokenName'],\n 'tokenSymbol': value['tokenSymbol'],\n 'tokenImageUrl': value['tokenImageUrl'],\n 'tokenAddress': value['tokenAddress'],\n 'poolAddress': value['poolAddress'],\n 'dexProgramAddress': value['dexProgramAddress'],\n 'dexProtocolFamily': value['dexProtocolFamily'],\n 'dexImage': value['dexImage'],\n 'tokenAmount': value['tokenAmount'],\n 'tokenPriceInUsd': value['tokenPriceInUsd'],\n 'tokenAmountInUsd': value['tokenAmountInUsd'],\n 'type': value['type'],\n 'sideTokenName': value['sideTokenName'],\n 'sideTokenSymbol': value['sideTokenSymbol'],\n 'sideTokenImageUrl': value['sideTokenImageUrl'],\n 'sideTokenAddress': value['sideTokenAddress'],\n 'sideTokenPriceInUsd': value['sideTokenPriceInUsd'],\n 'sideTokenAmount': value['sideTokenAmount'],\n 'sideTokenAmountInUsd': value['sideTokenAmountInUsd'],\n 'status': value['status'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TradeDetailDTO } from './TradeDetailDTO';\nimport {\n TradeDetailDTOFromJSON,\n TradeDetailDTOFromJSONTyped,\n TradeDetailDTOToJSON,\n TradeDetailDTOToJSONTyped,\n} from './TradeDetailDTO';\n\n/**\n * \n * @export\n * @interface TradePage\n */\nexport interface TradePage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TradePage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TradePage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TradePage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TradePage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TradePage\n */\n total?: number;\n /**\n * DTO.TRADE.PAGE.DATA\n * @type {Array<TradeDetailDTO>}\n * @memberof TradePage\n */\n data: Array<TradeDetailDTO>;\n}\n\n/**\n * Check if a given object implements the TradePage interface.\n */\nexport function instanceOfTradePage(value: object): value is TradePage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TradePageFromJSON(json: any): TradePage {\n return TradePageFromJSONTyped(json, false);\n}\n\nexport function TradePageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TradePage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TradeDetailDTOFromJSON)),\n };\n}\n\nexport function TradePageToJSON(json: any): TradePage {\n return TradePageToJSONTyped(json, false);\n}\n\nexport function TradePageToJSONTyped(value?: TradePage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TradeDetailDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AlertDetail } from './AlertDetail';\nimport {\n AlertDetailFromJSON,\n AlertDetailFromJSONTyped,\n AlertDetailToJSON,\n AlertDetailToJSONTyped,\n} from './AlertDetail';\n\n/**\n * \n * @export\n * @interface TransferAlertsResponseDTO\n */\nexport interface TransferAlertsResponseDTO {\n /**\n * DTO.KYT.TRANSFER_ALERTS_RESPONSE.ALERTS\n * @type {Array<AlertDetail>}\n * @memberof TransferAlertsResponseDTO\n */\n alerts: Array<AlertDetail>;\n}\n\n/**\n * Check if a given object implements the TransferAlertsResponseDTO interface.\n */\nexport function instanceOfTransferAlertsResponseDTO(value: object): value is TransferAlertsResponseDTO {\n if (!('alerts' in value) || value['alerts'] === undefined) return false;\n return true;\n}\n\nexport function TransferAlertsResponseDTOFromJSON(json: any): TransferAlertsResponseDTO {\n return TransferAlertsResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferAlertsResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferAlertsResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'alerts': ((json['alerts'] as Array<any>).map(AlertDetailFromJSON)),\n };\n}\n\nexport function TransferAlertsResponseDTOToJSON(json: any): TransferAlertsResponseDTO {\n return TransferAlertsResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferAlertsResponseDTOToJSONTyped(value?: TransferAlertsResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'alerts': ((value['alerts'] as Array<any>).map(AlertDetailToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TransferBaseResponseDTO\n */\nexport interface TransferBaseResponseDTO {\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.UPDATED_AT\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n updatedAt: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.ASSET\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n asset: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.ASSET_ID\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n assetId: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.NETWORK\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n network: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.TRANSFER_REFERENCE\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n transferReference: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.MEMO\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n memo: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.TX\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n tx: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.IDX\n * @type {number}\n * @memberof TransferBaseResponseDTO\n */\n idx: number;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.USD_AMOUNT\n * @type {number}\n * @memberof TransferBaseResponseDTO\n */\n usdAmount: number;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.ASSET_AMOUNT\n * @type {number}\n * @memberof TransferBaseResponseDTO\n */\n assetAmount: number;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.TIMESTAMP\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n timestamp: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.OUTPUT_ADDRESS\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n outputAddress: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.EXTERNAL_ID\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n externalId: string;\n}\n\n/**\n * Check if a given object implements the TransferBaseResponseDTO interface.\n */\nexport function instanceOfTransferBaseResponseDTO(value: object): value is TransferBaseResponseDTO {\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('assetId' in value) || value['assetId'] === undefined) return false;\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('transferReference' in value) || value['transferReference'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n if (!('tx' in value) || value['tx'] === undefined) return false;\n if (!('idx' in value) || value['idx'] === undefined) return false;\n if (!('usdAmount' in value) || value['usdAmount'] === undefined) return false;\n if (!('assetAmount' in value) || value['assetAmount'] === undefined) return false;\n if (!('timestamp' in value) || value['timestamp'] === undefined) return false;\n if (!('outputAddress' in value) || value['outputAddress'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n return true;\n}\n\nexport function TransferBaseResponseDTOFromJSON(json: any): TransferBaseResponseDTO {\n return TransferBaseResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferBaseResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferBaseResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'updatedAt': json['updatedAt'],\n 'asset': json['asset'],\n 'assetId': json['assetId'],\n 'network': json['network'],\n 'transferReference': json['transferReference'],\n 'memo': json['memo'],\n 'tx': json['tx'],\n 'idx': json['idx'],\n 'usdAmount': json['usdAmount'],\n 'assetAmount': json['assetAmount'],\n 'timestamp': json['timestamp'],\n 'outputAddress': json['outputAddress'],\n 'externalId': json['externalId'],\n };\n}\n\nexport function TransferBaseResponseDTOToJSON(json: any): TransferBaseResponseDTO {\n return TransferBaseResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferBaseResponseDTOToJSONTyped(value?: TransferBaseResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'updatedAt': value['updatedAt'],\n 'asset': value['asset'],\n 'assetId': value['assetId'],\n 'network': value['network'],\n 'transferReference': value['transferReference'],\n 'memo': value['memo'],\n 'tx': value['tx'],\n 'idx': value['idx'],\n 'usdAmount': value['usdAmount'],\n 'assetAmount': value['assetAmount'],\n 'timestamp': value['timestamp'],\n 'outputAddress': value['outputAddress'],\n 'externalId': value['externalId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { DirectExposureDetail } from './DirectExposureDetail';\nimport {\n DirectExposureDetailFromJSON,\n DirectExposureDetailFromJSONTyped,\n DirectExposureDetailToJSON,\n DirectExposureDetailToJSONTyped,\n} from './DirectExposureDetail';\n\n/**\n * \n * @export\n * @interface TransferDirectExposureResponseDTO\n */\nexport interface TransferDirectExposureResponseDTO {\n /**\n * DTO.KYT.TRANSFER_DIRECT_EXPOSURE_RESPONSE.DIRECT\n * @type {DirectExposureDetail}\n * @memberof TransferDirectExposureResponseDTO\n */\n direct: DirectExposureDetail;\n}\n\n/**\n * Check if a given object implements the TransferDirectExposureResponseDTO interface.\n */\nexport function instanceOfTransferDirectExposureResponseDTO(value: object): value is TransferDirectExposureResponseDTO {\n if (!('direct' in value) || value['direct'] === undefined) return false;\n return true;\n}\n\nexport function TransferDirectExposureResponseDTOFromJSON(json: any): TransferDirectExposureResponseDTO {\n return TransferDirectExposureResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferDirectExposureResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferDirectExposureResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'direct': DirectExposureDetailFromJSON(json['direct']),\n };\n}\n\nexport function TransferDirectExposureResponseDTOToJSON(json: any): TransferDirectExposureResponseDTO {\n return TransferDirectExposureResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferDirectExposureResponseDTOToJSONTyped(value?: TransferDirectExposureResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'direct': DirectExposureDetailToJSON(value['direct']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { NetworkIdentificationOrg } from './NetworkIdentificationOrg';\nimport {\n NetworkIdentificationOrgFromJSON,\n NetworkIdentificationOrgFromJSONTyped,\n NetworkIdentificationOrgToJSON,\n NetworkIdentificationOrgToJSONTyped,\n} from './NetworkIdentificationOrg';\n\n/**\n * \n * @export\n * @interface TransferNetworkIdentificationsResponseDTO\n */\nexport interface TransferNetworkIdentificationsResponseDTO {\n /**\n * DTO.KYT.TRANSFER_NETWORK_IDENTIFICATIONS_RESPONSE.COUNT\n * @type {number}\n * @memberof TransferNetworkIdentificationsResponseDTO\n */\n count: number;\n /**\n * DTO.KYT.TRANSFER_NETWORK_IDENTIFICATIONS_RESPONSE.NETWORK_IDENTIFICATION_ORGS\n * @type {Array<NetworkIdentificationOrg>}\n * @memberof TransferNetworkIdentificationsResponseDTO\n */\n networkIdentificationOrgs: Array<NetworkIdentificationOrg>;\n}\n\n/**\n * Check if a given object implements the TransferNetworkIdentificationsResponseDTO interface.\n */\nexport function instanceOfTransferNetworkIdentificationsResponseDTO(value: object): value is TransferNetworkIdentificationsResponseDTO {\n if (!('count' in value) || value['count'] === undefined) return false;\n if (!('networkIdentificationOrgs' in value) || value['networkIdentificationOrgs'] === undefined) return false;\n return true;\n}\n\nexport function TransferNetworkIdentificationsResponseDTOFromJSON(json: any): TransferNetworkIdentificationsResponseDTO {\n return TransferNetworkIdentificationsResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferNetworkIdentificationsResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferNetworkIdentificationsResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'count': json['count'],\n 'networkIdentificationOrgs': ((json['networkIdentificationOrgs'] as Array<any>).map(NetworkIdentificationOrgFromJSON)),\n };\n}\n\nexport function TransferNetworkIdentificationsResponseDTOToJSON(json: any): TransferNetworkIdentificationsResponseDTO {\n return TransferNetworkIdentificationsResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferNetworkIdentificationsResponseDTOToJSONTyped(value?: TransferNetworkIdentificationsResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'count': value['count'],\n 'networkIdentificationOrgs': ((value['networkIdentificationOrgs'] as Array<any>).map(NetworkIdentificationOrgToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface UpdateEndpointInput\n */\nexport interface UpdateEndpointInput {\n /**\n * DTO.ENDPOINT.ENDPOINT_ID\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n endpointId?: string;\n /**\n * DTO.ENDPOINT.CHANNELS\n * @type {Array<string>}\n * @memberof UpdateEndpointInput\n */\n channels?: Array<string>;\n /**\n * DTO.ENDPOINT.DESCRIPTION\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n description?: string;\n /**\n * DTO.ENDPOINT.DISABLED\n * @type {boolean}\n * @memberof UpdateEndpointInput\n */\n disabled?: boolean;\n /**\n * DTO.ENDPOINT.FILTER_TYPES\n * @type {Array<string>}\n * @memberof UpdateEndpointInput\n */\n filterTypes?: Array<string>;\n /**\n * DTO.ENDPOINT.METADATA\n * @type {object}\n * @memberof UpdateEndpointInput\n */\n metadata?: object;\n /**\n * DTO.ENDPOINT.RATE_LIMIT\n * @type {number}\n * @memberof UpdateEndpointInput\n */\n rateLimit?: number;\n /**\n * DTO.ENDPOINT.URL\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n url?: string;\n /**\n * DTO.ENDPOINT.FILTER\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n filter?: string;\n}\n\n/**\n * Check if a given object implements the UpdateEndpointInput interface.\n */\nexport function instanceOfUpdateEndpointInput(value: object): value is UpdateEndpointInput {\n return true;\n}\n\nexport function UpdateEndpointInputFromJSON(json: any): UpdateEndpointInput {\n return UpdateEndpointInputFromJSONTyped(json, false);\n}\n\nexport function UpdateEndpointInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateEndpointInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'endpointId': json['endpointId'] == null ? undefined : json['endpointId'],\n 'channels': json['channels'] == null ? undefined : json['channels'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'disabled': json['disabled'] == null ? undefined : json['disabled'],\n 'filterTypes': json['filterTypes'] == null ? undefined : json['filterTypes'],\n 'metadata': json['metadata'] == null ? undefined : json['metadata'],\n 'rateLimit': json['rateLimit'] == null ? undefined : json['rateLimit'],\n 'url': json['url'] == null ? undefined : json['url'],\n 'filter': json['filter'] == null ? undefined : json['filter'],\n };\n}\n\nexport function UpdateEndpointInputToJSON(json: any): UpdateEndpointInput {\n return UpdateEndpointInputToJSONTyped(json, false);\n}\n\nexport function UpdateEndpointInputToJSONTyped(value?: UpdateEndpointInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'endpointId': value['endpointId'],\n 'channels': value['channels'],\n 'description': value['description'],\n 'disabled': value['disabled'],\n 'filterTypes': value['filterTypes'],\n 'metadata': value['metadata'],\n 'rateLimit': value['rateLimit'],\n 'url': value['url'],\n 'filter': value['filter'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface WalletBalanceDetailDTO\n */\nexport interface WalletBalanceDetailDTO {\n /**\n * DTO.WALLET.BALANCE.TOKEN_ADDRESS\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n tokenAddress: string;\n /**\n * DTO.WALLET.BALANCE.AMOUNT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n amount: string;\n /**\n * DTO.WALLET.BALANCE.AMOUNT_IN_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n valueInUsd: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_NAME\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n name: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_SYMBOL\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n symbol: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_IMAGE_URL\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n imageUrl: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_PRICE_IN_SOL\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n priceInSol: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_PRICE_IN_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n priceInUsd: string;\n /**\n * DTO.WALLET.BALANCE.PRICE_CHANGE_24H\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n priceChangeRatioInUsd24h: string;\n /**\n * DTO.WALLET.BALANCE.UNREALIZED_PROFIT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n unrealizedProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCE.UNREALIZED_PROFIT_RATIO\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n unrealizedProfitRatio: string;\n /**\n * DTO.WALLET.BALANCE.OPEN_TIME\n * @type {number}\n * @memberof WalletBalanceDetailDTO\n */\n openTime: number;\n /**\n * DTO.WALLET.BALANCE.CLOSE_TIME\n * @type {number}\n * @memberof WalletBalanceDetailDTO\n */\n closeTime: number;\n /**\n * DTO.WALLET.BALANCE.BUYS\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n buys: string;\n /**\n * DTO.WALLET.BALANCE.BUY_AMOUNT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n buyAmount: string;\n /**\n * DTO.WALLET.BALANCE.BUY_AMOUNT_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n buyAmountInUsd: string;\n /**\n * DTO.WALLET.BALANCE.SELLS\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n sells: string;\n /**\n * DTO.WALLET.BALANCE.SELL_AMOUNT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n sellAmount: string;\n /**\n * DTO.WALLET.BALANCE.SELL_AMOUNT_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n sellAmountInUsd: string;\n /**\n * DTO.WALLET.BALANCE.AVERAGE_BUY_PRICE\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n averageBuyPriceInUsd: string;\n /**\n * DTO.WALLET.BALANCE.AVERAGE_SELL_PRICE\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n averageSellPriceInUsd: string;\n /**\n * DTO.WALLET.BALANCE.REALIZED_PROFIT_IN_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n realizedProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCE.REALIZED_PROFIT_RATIO\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n realizedProfitRatio: string;\n /**\n * DTO.WALLET.BALANCE.TOTAL_REALIZED_PROFIT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n totalRealizedProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCE.TOTAL_REALIZED_PROFIT_RATIO\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n totalRealizedProfitRatio: string;\n}\n\n/**\n * Check if a given object implements the WalletBalanceDetailDTO interface.\n */\nexport function instanceOfWalletBalanceDetailDTO(value: object): value is WalletBalanceDetailDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('valueInUsd' in value) || value['valueInUsd'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('imageUrl' in value) || value['imageUrl'] === undefined) return false;\n if (!('priceInSol' in value) || value['priceInSol'] === undefined) return false;\n if (!('priceInUsd' in value) || value['priceInUsd'] === undefined) return false;\n if (!('priceChangeRatioInUsd24h' in value) || value['priceChangeRatioInUsd24h'] === undefined) return false;\n if (!('unrealizedProfitInUsd' in value) || value['unrealizedProfitInUsd'] === undefined) return false;\n if (!('unrealizedProfitRatio' in value) || value['unrealizedProfitRatio'] === undefined) return false;\n if (!('openTime' in value) || value['openTime'] === undefined) return false;\n if (!('closeTime' in value) || value['closeTime'] === undefined) return false;\n if (!('buys' in value) || value['buys'] === undefined) return false;\n if (!('buyAmount' in value) || value['buyAmount'] === undefined) return false;\n if (!('buyAmountInUsd' in value) || value['buyAmountInUsd'] === undefined) return false;\n if (!('sells' in value) || value['sells'] === undefined) return false;\n if (!('sellAmount' in value) || value['sellAmount'] === undefined) return false;\n if (!('sellAmountInUsd' in value) || value['sellAmountInUsd'] === undefined) return false;\n if (!('averageBuyPriceInUsd' in value) || value['averageBuyPriceInUsd'] === undefined) return false;\n if (!('averageSellPriceInUsd' in value) || value['averageSellPriceInUsd'] === undefined) return false;\n if (!('realizedProfitInUsd' in value) || value['realizedProfitInUsd'] === undefined) return false;\n if (!('realizedProfitRatio' in value) || value['realizedProfitRatio'] === undefined) return false;\n if (!('totalRealizedProfitInUsd' in value) || value['totalRealizedProfitInUsd'] === undefined) return false;\n if (!('totalRealizedProfitRatio' in value) || value['totalRealizedProfitRatio'] === undefined) return false;\n return true;\n}\n\nexport function WalletBalanceDetailDTOFromJSON(json: any): WalletBalanceDetailDTO {\n return WalletBalanceDetailDTOFromJSONTyped(json, false);\n}\n\nexport function WalletBalanceDetailDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WalletBalanceDetailDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'amount': json['amount'],\n 'valueInUsd': json['valueInUsd'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'imageUrl': json['imageUrl'],\n 'priceInSol': json['priceInSol'],\n 'priceInUsd': json['priceInUsd'],\n 'priceChangeRatioInUsd24h': json['priceChangeRatioInUsd24h'],\n 'unrealizedProfitInUsd': json['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': json['unrealizedProfitRatio'],\n 'openTime': json['openTime'],\n 'closeTime': json['closeTime'],\n 'buys': json['buys'],\n 'buyAmount': json['buyAmount'],\n 'buyAmountInUsd': json['buyAmountInUsd'],\n 'sells': json['sells'],\n 'sellAmount': json['sellAmount'],\n 'sellAmountInUsd': json['sellAmountInUsd'],\n 'averageBuyPriceInUsd': json['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': json['averageSellPriceInUsd'],\n 'realizedProfitInUsd': json['realizedProfitInUsd'],\n 'realizedProfitRatio': json['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': json['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': json['totalRealizedProfitRatio'],\n };\n}\n\nexport function WalletBalanceDetailDTOToJSON(json: any): WalletBalanceDetailDTO {\n return WalletBalanceDetailDTOToJSONTyped(json, false);\n}\n\nexport function WalletBalanceDetailDTOToJSONTyped(value?: WalletBalanceDetailDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'amount': value['amount'],\n 'valueInUsd': value['valueInUsd'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'imageUrl': value['imageUrl'],\n 'priceInSol': value['priceInSol'],\n 'priceInUsd': value['priceInUsd'],\n 'priceChangeRatioInUsd24h': value['priceChangeRatioInUsd24h'],\n 'unrealizedProfitInUsd': value['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': value['unrealizedProfitRatio'],\n 'openTime': value['openTime'],\n 'closeTime': value['closeTime'],\n 'buys': value['buys'],\n 'buyAmount': value['buyAmount'],\n 'buyAmountInUsd': value['buyAmountInUsd'],\n 'sells': value['sells'],\n 'sellAmount': value['sellAmount'],\n 'sellAmountInUsd': value['sellAmountInUsd'],\n 'averageBuyPriceInUsd': value['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': value['averageSellPriceInUsd'],\n 'realizedProfitInUsd': value['realizedProfitInUsd'],\n 'realizedProfitRatio': value['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': value['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': value['totalRealizedProfitRatio'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { WalletBalanceDetailDTO } from './WalletBalanceDetailDTO';\nimport {\n WalletBalanceDetailDTOFromJSON,\n WalletBalanceDetailDTOFromJSONTyped,\n WalletBalanceDetailDTOToJSON,\n WalletBalanceDetailDTOToJSONTyped,\n} from './WalletBalanceDetailDTO';\n\n/**\n * \n * @export\n * @interface WalletBalancesDTO\n */\nexport interface WalletBalancesDTO {\n /**\n * DTO.WALLET.BALANCES.TOTAL_BALANCES_IN_USD\n * @type {string}\n * @memberof WalletBalancesDTO\n */\n totalBalancesInUsd: string;\n /**\n * DTO.WALLET.BALANCES.TOTAL_PROFIT_IN_USD\n * @type {string}\n * @memberof WalletBalancesDTO\n */\n totalProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCES.BALANCES.DETAIL\n * @type {Array<WalletBalanceDetailDTO>}\n * @memberof WalletBalancesDTO\n */\n balances: Array<WalletBalanceDetailDTO>;\n}\n\n/**\n * Check if a given object implements the WalletBalancesDTO interface.\n */\nexport function instanceOfWalletBalancesDTO(value: object): value is WalletBalancesDTO {\n if (!('totalBalancesInUsd' in value) || value['totalBalancesInUsd'] === undefined) return false;\n if (!('totalProfitInUsd' in value) || value['totalProfitInUsd'] === undefined) return false;\n if (!('balances' in value) || value['balances'] === undefined) return false;\n return true;\n}\n\nexport function WalletBalancesDTOFromJSON(json: any): WalletBalancesDTO {\n return WalletBalancesDTOFromJSONTyped(json, false);\n}\n\nexport function WalletBalancesDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WalletBalancesDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'totalBalancesInUsd': json['totalBalancesInUsd'],\n 'totalProfitInUsd': json['totalProfitInUsd'],\n 'balances': ((json['balances'] as Array<any>).map(WalletBalanceDetailDTOFromJSON)),\n };\n}\n\nexport function WalletBalancesDTOToJSON(json: any): WalletBalancesDTO {\n return WalletBalancesDTOToJSONTyped(json, false);\n}\n\nexport function WalletBalancesDTOToJSONTyped(value?: WalletBalancesDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'totalBalancesInUsd': value['totalBalancesInUsd'],\n 'totalProfitInUsd': value['totalProfitInUsd'],\n 'balances': ((value['balances'] as Array<any>).map(WalletBalanceDetailDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface WalletPnlDTO\n */\nexport interface WalletPnlDTO {\n /**\n * DTO.WALLET.PNL.ID\n * @type {number}\n * @memberof WalletPnlDTO\n */\n id: number;\n /**\n * DTO.WALLET.PNL.CHAIN\n * @type {string}\n * @memberof WalletPnlDTO\n */\n chain: string;\n /**\n * DTO.WALLET.PNL.WALLET_ADDRESS\n * @type {string}\n * @memberof WalletPnlDTO\n */\n walletAddress: string;\n /**\n * DTO.WALLET.PNL.TOKEN_ADDRESS\n * @type {string}\n * @memberof WalletPnlDTO\n */\n tokenAddress: string;\n /**\n * DTO.WALLET.PNL.TOKEN_PRICE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n tokenPriceInUsd: number;\n /**\n * DTO.WALLET.PNL.OPEN_TIME\n * @type {number}\n * @memberof WalletPnlDTO\n */\n openTime: number;\n /**\n * DTO.WALLET.PNL.CLOSE_TIME\n * @type {number}\n * @memberof WalletPnlDTO\n */\n closeTime: number;\n /**\n * DTO.WALLET.PNL.LAST_TIME\n * @type {number}\n * @memberof WalletPnlDTO\n */\n lastTime: number;\n /**\n * DTO.WALLET.PNL.BALANCE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n balance: number;\n /**\n * DTO.WALLET.PNL.BUY_AMOUNT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n buyAmount: number;\n /**\n * DTO.WALLET.PNL.BUY_AMOUNT_USD\n * @type {number}\n * @memberof WalletPnlDTO\n */\n buyAmountInUsd: number;\n /**\n * DTO.WALLET.PNL.BUYS\n * @type {number}\n * @memberof WalletPnlDTO\n */\n buys: number;\n /**\n * DTO.WALLET.PNL.SELL_AMOUNT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n sellAmount: number;\n /**\n * DTO.WALLET.PNL.SELL_AMOUNT_USD\n * @type {number}\n * @memberof WalletPnlDTO\n */\n sellAmountInUsd: number;\n /**\n * DTO.WALLET.PNL.SELLS\n * @type {number}\n * @memberof WalletPnlDTO\n */\n sells: number;\n /**\n * DTO.WALLET.PNL.AVERAGE_BUY_PRICE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n averageBuyPriceInUsd: number;\n /**\n * DTO.WALLET.PNL.AVERAGE_SELL_PRICE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n averageSellPriceInUsd: number;\n /**\n * DTO.WALLET.PNL.UNREALIZED_PROFIT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n unrealizedProfitInUsd: number;\n /**\n * DTO.WALLET.PNL.UNREALIZED_PROFIT_RATIO\n * @type {number}\n * @memberof WalletPnlDTO\n */\n unrealizedProfitRatio: number;\n /**\n * DTO.WALLET.PNL.REALIZED_PROFIT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n realizedProfitInUsd: number;\n /**\n * DTO.WALLET.PNL.REALIZED_PROFIT_RATIO\n * @type {number}\n * @memberof WalletPnlDTO\n */\n realizedProfitRatio: number;\n /**\n * DTO.WALLET.PNL.TOTAL_REALIZED_PROFIT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n totalRealizedProfitInUsd: number;\n /**\n * DTO.WALLET.PNL.TOTAL_REALIZED_PROFIT_RATIO\n * @type {number}\n * @memberof WalletPnlDTO\n */\n totalRealizedProfitRatio: number;\n}\n\n/**\n * Check if a given object implements the WalletPnlDTO interface.\n */\nexport function instanceOfWalletPnlDTO(value: object): value is WalletPnlDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('walletAddress' in value) || value['walletAddress'] === undefined) return false;\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('tokenPriceInUsd' in value) || value['tokenPriceInUsd'] === undefined) return false;\n if (!('openTime' in value) || value['openTime'] === undefined) return false;\n if (!('closeTime' in value) || value['closeTime'] === undefined) return false;\n if (!('lastTime' in value) || value['lastTime'] === undefined) return false;\n if (!('balance' in value) || value['balance'] === undefined) return false;\n if (!('buyAmount' in value) || value['buyAmount'] === undefined) return false;\n if (!('buyAmountInUsd' in value) || value['buyAmountInUsd'] === undefined) return false;\n if (!('buys' in value) || value['buys'] === undefined) return false;\n if (!('sellAmount' in value) || value['sellAmount'] === undefined) return false;\n if (!('sellAmountInUsd' in value) || value['sellAmountInUsd'] === undefined) return false;\n if (!('sells' in value) || value['sells'] === undefined) return false;\n if (!('averageBuyPriceInUsd' in value) || value['averageBuyPriceInUsd'] === undefined) return false;\n if (!('averageSellPriceInUsd' in value) || value['averageSellPriceInUsd'] === undefined) return false;\n if (!('unrealizedProfitInUsd' in value) || value['unrealizedProfitInUsd'] === undefined) return false;\n if (!('unrealizedProfitRatio' in value) || value['unrealizedProfitRatio'] === undefined) return false;\n if (!('realizedProfitInUsd' in value) || value['realizedProfitInUsd'] === undefined) return false;\n if (!('realizedProfitRatio' in value) || value['realizedProfitRatio'] === undefined) return false;\n if (!('totalRealizedProfitInUsd' in value) || value['totalRealizedProfitInUsd'] === undefined) return false;\n if (!('totalRealizedProfitRatio' in value) || value['totalRealizedProfitRatio'] === undefined) return false;\n return true;\n}\n\nexport function WalletPnlDTOFromJSON(json: any): WalletPnlDTO {\n return WalletPnlDTOFromJSONTyped(json, false);\n}\n\nexport function WalletPnlDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WalletPnlDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'chain': json['chain'],\n 'walletAddress': json['walletAddress'],\n 'tokenAddress': json['tokenAddress'],\n 'tokenPriceInUsd': json['tokenPriceInUsd'],\n 'openTime': json['openTime'],\n 'closeTime': json['closeTime'],\n 'lastTime': json['lastTime'],\n 'balance': json['balance'],\n 'buyAmount': json['buyAmount'],\n 'buyAmountInUsd': json['buyAmountInUsd'],\n 'buys': json['buys'],\n 'sellAmount': json['sellAmount'],\n 'sellAmountInUsd': json['sellAmountInUsd'],\n 'sells': json['sells'],\n 'averageBuyPriceInUsd': json['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': json['averageSellPriceInUsd'],\n 'unrealizedProfitInUsd': json['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': json['unrealizedProfitRatio'],\n 'realizedProfitInUsd': json['realizedProfitInUsd'],\n 'realizedProfitRatio': json['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': json['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': json['totalRealizedProfitRatio'],\n };\n}\n\nexport function WalletPnlDTOToJSON(json: any): WalletPnlDTO {\n return WalletPnlDTOToJSONTyped(json, false);\n}\n\nexport function WalletPnlDTOToJSONTyped(value?: WalletPnlDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'chain': value['chain'],\n 'walletAddress': value['walletAddress'],\n 'tokenAddress': value['tokenAddress'],\n 'tokenPriceInUsd': value['tokenPriceInUsd'],\n 'openTime': value['openTime'],\n 'closeTime': value['closeTime'],\n 'lastTime': value['lastTime'],\n 'balance': value['balance'],\n 'buyAmount': value['buyAmount'],\n 'buyAmountInUsd': value['buyAmountInUsd'],\n 'buys': value['buys'],\n 'sellAmount': value['sellAmount'],\n 'sellAmountInUsd': value['sellAmountInUsd'],\n 'sells': value['sells'],\n 'averageBuyPriceInUsd': value['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': value['averageSellPriceInUsd'],\n 'unrealizedProfitInUsd': value['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': value['unrealizedProfitRatio'],\n 'realizedProfitInUsd': value['realizedProfitInUsd'],\n 'realizedProfitRatio': value['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': value['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': value['totalRealizedProfitRatio'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { ChainalysisAddressIdentification } from './ChainalysisAddressIdentification';\nimport {\n ChainalysisAddressIdentificationFromJSON,\n ChainalysisAddressIdentificationFromJSONTyped,\n ChainalysisAddressIdentificationToJSON,\n ChainalysisAddressIdentificationToJSONTyped,\n} from './ChainalysisAddressIdentification';\n\n/**\n * \n * @export\n * @interface WithdrawalAddressIdentificationsResponseDTO\n */\nexport interface WithdrawalAddressIdentificationsResponseDTO {\n /**\n * DTO.KYT.WITHDRAWAL_ADDRESS_IDENTIFICATIONS_RESPONSE.CHAINALYSIS_IDENTIFICATIONS\n * @type {Array<ChainalysisAddressIdentification>}\n * @memberof WithdrawalAddressIdentificationsResponseDTO\n */\n chainalysisIdentifications: Array<ChainalysisAddressIdentification>;\n /**\n * DTO.KYT.WITHDRAWAL_ADDRESS_IDENTIFICATIONS_RESPONSE.CUSTOM_ADDRESSES\n * @type {Array<string>}\n * @memberof WithdrawalAddressIdentificationsResponseDTO\n */\n customAddresses: Array<string>;\n}\n\n/**\n * Check if a given object implements the WithdrawalAddressIdentificationsResponseDTO interface.\n */\nexport function instanceOfWithdrawalAddressIdentificationsResponseDTO(value: object): value is WithdrawalAddressIdentificationsResponseDTO {\n if (!('chainalysisIdentifications' in value) || value['chainalysisIdentifications'] === undefined) return false;\n if (!('customAddresses' in value) || value['customAddresses'] === undefined) return false;\n return true;\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOFromJSON(json: any): WithdrawalAddressIdentificationsResponseDTO {\n return WithdrawalAddressIdentificationsResponseDTOFromJSONTyped(json, false);\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WithdrawalAddressIdentificationsResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'chainalysisIdentifications': ((json['chainalysisIdentifications'] as Array<any>).map(ChainalysisAddressIdentificationFromJSON)),\n 'customAddresses': json['customAddresses'],\n };\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOToJSON(json: any): WithdrawalAddressIdentificationsResponseDTO {\n return WithdrawalAddressIdentificationsResponseDTOToJSONTyped(json, false);\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOToJSONTyped(value?: WithdrawalAddressIdentificationsResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chainalysisIdentifications': ((value['chainalysisIdentifications'] as Array<any>).map(ChainalysisAddressIdentificationToJSON)),\n 'customAddresses': value['customAddresses'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface WithdrawalBaseResponseDTO\n */\nexport interface WithdrawalBaseResponseDTO {\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ASSET\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n asset: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ASSET_ID\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n assetId: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.NETWORK\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n network: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ADDRESS\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n address: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.MEMO\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n memo: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ATTEMPT_IDENTIFIER\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n attemptIdentifier: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ASSET_AMOUNT\n * @type {number}\n * @memberof WithdrawalBaseResponseDTO\n */\n assetAmount: number;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.EXTERNAL_ID\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n externalId: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.USD_AMOUNT\n * @type {number}\n * @memberof WithdrawalBaseResponseDTO\n */\n usdAmount: number;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.UPDATED_AT\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n updatedAt: string;\n}\n\n/**\n * Check if a given object implements the WithdrawalBaseResponseDTO interface.\n */\nexport function instanceOfWithdrawalBaseResponseDTO(value: object): value is WithdrawalBaseResponseDTO {\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('assetId' in value) || value['assetId'] === undefined) return false;\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n if (!('attemptIdentifier' in value) || value['attemptIdentifier'] === undefined) return false;\n if (!('assetAmount' in value) || value['assetAmount'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('usdAmount' in value) || value['usdAmount'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function WithdrawalBaseResponseDTOFromJSON(json: any): WithdrawalBaseResponseDTO {\n return WithdrawalBaseResponseDTOFromJSONTyped(json, false);\n}\n\nexport function WithdrawalBaseResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WithdrawalBaseResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'asset': json['asset'],\n 'assetId': json['assetId'],\n 'network': json['network'],\n 'address': json['address'],\n 'memo': json['memo'],\n 'attemptIdentifier': json['attemptIdentifier'],\n 'assetAmount': json['assetAmount'],\n 'externalId': json['externalId'],\n 'usdAmount': json['usdAmount'],\n 'updatedAt': json['updatedAt'],\n };\n}\n\nexport function WithdrawalBaseResponseDTOToJSON(json: any): WithdrawalBaseResponseDTO {\n return WithdrawalBaseResponseDTOToJSONTyped(json, false);\n}\n\nexport function WithdrawalBaseResponseDTOToJSONTyped(value?: WithdrawalBaseResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'asset': value['asset'],\n 'assetId': value['assetId'],\n 'network': value['network'],\n 'address': value['address'],\n 'memo': value['memo'],\n 'attemptIdentifier': value['attemptIdentifier'],\n 'assetAmount': value['assetAmount'],\n 'externalId': value['externalId'],\n 'usdAmount': value['usdAmount'],\n 'updatedAt': value['updatedAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AlteryaIdentification } from './AlteryaIdentification';\nimport {\n AlteryaIdentificationFromJSON,\n AlteryaIdentificationFromJSONTyped,\n AlteryaIdentificationToJSON,\n AlteryaIdentificationToJSONTyped,\n} from './AlteryaIdentification';\n\n/**\n * \n * @export\n * @interface WithdrawalFraudAssessmentResponseDTO\n */\nexport interface WithdrawalFraudAssessmentResponseDTO {\n /**\n * DTO.KYT.WITHDRAWAL_FRAUD_ASSESSMENT_RESPONSE.ALTERYA_IDENTIFICATIONS\n * @type {Array<AlteryaIdentification>}\n * @memberof WithdrawalFraudAssessmentResponseDTO\n */\n alteryaIdentifications: Array<AlteryaIdentification>;\n}\n\n/**\n * Check if a given object implements the WithdrawalFraudAssessmentResponseDTO interface.\n */\nexport function instanceOfWithdrawalFraudAssessmentResponseDTO(value: object): value is WithdrawalFraudAssessmentResponseDTO {\n if (!('alteryaIdentifications' in value) || value['alteryaIdentifications'] === undefined) return false;\n return true;\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOFromJSON(json: any): WithdrawalFraudAssessmentResponseDTO {\n return WithdrawalFraudAssessmentResponseDTOFromJSONTyped(json, false);\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WithdrawalFraudAssessmentResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'alteryaIdentifications': ((json['alteryaIdentifications'] as Array<any>).map(AlteryaIdentificationFromJSON)),\n };\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOToJSON(json: any): WithdrawalFraudAssessmentResponseDTO {\n return WithdrawalFraudAssessmentResponseDTOToJSONTyped(json, false);\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOToJSONTyped(value?: WithdrawalFraudAssessmentResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'alteryaIdentifications': ((value['alteryaIdentifications'] as Array<any>).map(AlteryaIdentificationToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BlockchainDTO,\n BlockchainLatestBlockDTO,\n ChainSymbol,\n} from '../models/index';\nimport {\n BlockchainDTOFromJSON,\n BlockchainDTOToJSON,\n BlockchainLatestBlockDTOFromJSON,\n BlockchainLatestBlockDTOToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n} from '../models/index';\n\nexport interface GetLatestBlockRequest {\n chain: ChainSymbol;\n}\n\n/**\n * \n */\nexport class BlockchainApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.GET_LATEST_BLOCK.DESCRIPTION\n * CONTROLLER.GET_LATEST_BLOCK.SUMMARY\n */\n async getLatestBlockRaw(requestParameters: GetLatestBlockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BlockchainLatestBlockDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getLatestBlock().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/blockchain/{chain}/latest_block`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BlockchainLatestBlockDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.GET_LATEST_BLOCK.DESCRIPTION\n * CONTROLLER.GET_LATEST_BLOCK.SUMMARY\n */\n async getLatestBlock(requestParameters: GetLatestBlockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BlockchainLatestBlockDTO> {\n const response = await this.getLatestBlockRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.DESCRIPTION\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.SUMMARY\n */\n async getSupportedBlockchainsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<BlockchainDTO>>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/blockchain`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(BlockchainDTOFromJSON));\n }\n\n /**\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.DESCRIPTION\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.SUMMARY\n */\n async getSupportedBlockchains(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<BlockchainDTO>> {\n const response = await this.getSupportedBlockchainsRaw(initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n MoonshotCreateTokenInput,\n MoonshotCreateTokenReply,\n MoonshotSubmitCreateToken200Response,\n MoonshotSubmitCreateTokenInput,\n} from '../models/index';\nimport {\n MoonshotCreateTokenInputFromJSON,\n MoonshotCreateTokenInputToJSON,\n MoonshotCreateTokenReplyFromJSON,\n MoonshotCreateTokenReplyToJSON,\n MoonshotSubmitCreateToken200ResponseFromJSON,\n MoonshotSubmitCreateToken200ResponseToJSON,\n MoonshotSubmitCreateTokenInputFromJSON,\n MoonshotSubmitCreateTokenInputToJSON,\n} from '../models/index';\n\nexport interface MoonshotCreateTokenRequest {\n moonshotCreateTokenInput: MoonshotCreateTokenInput;\n}\n\nexport interface MoonshotSubmitCreateTokenRequest {\n moonshotSubmitCreateTokenInput: MoonshotSubmitCreateTokenInput;\n}\n\n/**\n * \n */\nexport class DefiSolanaMoonshotApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.SUMMARY\n */\n async moonshotCreateTokenRaw(requestParameters: MoonshotCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MoonshotCreateTokenReply>> {\n if (requestParameters['moonshotCreateTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'moonshotCreateTokenInput',\n 'Required parameter \"moonshotCreateTokenInput\" was null or undefined when calling moonshotCreateToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/solana/moonshot/create`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MoonshotCreateTokenInputToJSON(requestParameters['moonshotCreateTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MoonshotCreateTokenReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.SUMMARY\n */\n async moonshotCreateToken(requestParameters: MoonshotCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MoonshotCreateTokenReply> {\n const response = await this.moonshotCreateTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.SUMMARY\n */\n async moonshotSubmitCreateTokenRaw(requestParameters: MoonshotSubmitCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MoonshotSubmitCreateToken200Response>> {\n if (requestParameters['moonshotSubmitCreateTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'moonshotSubmitCreateTokenInput',\n 'Required parameter \"moonshotSubmitCreateTokenInput\" was null or undefined when calling moonshotSubmitCreateToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/solana/moonshot/submitCreateToken`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MoonshotSubmitCreateTokenInputToJSON(requestParameters['moonshotSubmitCreateTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MoonshotSubmitCreateToken200ResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.SUMMARY\n */\n async moonshotSubmitCreateToken(requestParameters: MoonshotSubmitCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MoonshotSubmitCreateToken200Response> {\n const response = await this.moonshotSubmitCreateTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n PumpCreateTokenInput,\n PumpCreateTokenReply,\n} from '../models/index';\nimport {\n PumpCreateTokenInputFromJSON,\n PumpCreateTokenInputToJSON,\n PumpCreateTokenReplyFromJSON,\n PumpCreateTokenReplyToJSON,\n} from '../models/index';\n\nexport interface PumpfunCreateTokenRequest {\n pumpCreateTokenInput: PumpCreateTokenInput;\n}\n\n/**\n * \n */\nexport class DefiSolanaPumpfunApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.SUMMARY\n */\n async pumpfunCreateTokenRaw(requestParameters: PumpfunCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PumpCreateTokenReply>> {\n if (requestParameters['pumpCreateTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'pumpCreateTokenInput',\n 'Required parameter \"pumpCreateTokenInput\" was null or undefined when calling pumpfunCreateToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/solana/pumpfun/create`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PumpCreateTokenInputToJSON(requestParameters['pumpCreateTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PumpCreateTokenReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.SUMMARY\n */\n async pumpfunCreateToken(requestParameters: PumpfunCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PumpCreateTokenReply> {\n const response = await this.pumpfunCreateTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n CreateTokenInput,\n CreateTokenReply,\n DexPage,\n QuoteResponse,\n SwapInput,\n SwapReply,\n SwapRouteInput,\n SwapRouteResponse,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n CreateTokenInputFromJSON,\n CreateTokenInputToJSON,\n CreateTokenReplyFromJSON,\n CreateTokenReplyToJSON,\n DexPageFromJSON,\n DexPageToJSON,\n QuoteResponseFromJSON,\n QuoteResponseToJSON,\n SwapInputFromJSON,\n SwapInputToJSON,\n SwapReplyFromJSON,\n SwapReplyToJSON,\n SwapRouteInputFromJSON,\n SwapRouteInputToJSON,\n SwapRouteResponseFromJSON,\n SwapRouteResponseToJSON,\n} from '../models/index';\n\nexport interface CreateTokenRequest {\n chain: ChainSymbol;\n createTokenInput: CreateTokenInput;\n}\n\nexport interface ListDexRequest {\n chains?: Array<string>;\n limit?: number;\n dexProgram?: string;\n}\n\nexport interface QuoteRequest {\n chain: ChainSymbol;\n dex: QuoteDexEnum;\n amount: string;\n inputMint: string;\n outputMint: string;\n exactIn: boolean;\n slippage: number;\n}\n\nexport interface RouteRequest {\n chain: ChainSymbol;\n swapRouteInput: SwapRouteInput;\n}\n\nexport interface SwapRequest {\n chain: ChainSymbol;\n swapInput: SwapInput;\n}\n\n/**\n * \n */\nexport class DexApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.DEX.CREATE.DESCRIPTION\n * CONTROLLER.DEX.CREATE.SUMMARY\n */\n async createTokenRaw(requestParameters: CreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateTokenReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling createToken().'\n );\n }\n\n if (requestParameters['createTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'createTokenInput',\n 'Required parameter \"createTokenInput\" was null or undefined when calling createToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/create`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CreateTokenInputToJSON(requestParameters['createTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CreateTokenReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.CREATE.DESCRIPTION\n * CONTROLLER.DEX.CREATE.SUMMARY\n */\n async createToken(requestParameters: CreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateTokenReply> {\n const response = await this.createTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.LIST.DESCRIPTION\n * CONTROLLER.DEX.LIST.SUMMARY\n */\n async listDexRaw(requestParameters: ListDexRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DexPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['chains'] != null) {\n queryParameters['chains'] = requestParameters['chains'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['dexProgram'] != null) {\n queryParameters['dexProgram'] = requestParameters['dexProgram'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DexPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.LIST.DESCRIPTION\n * CONTROLLER.DEX.LIST.SUMMARY\n */\n async listDex(requestParameters: ListDexRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DexPage> {\n const response = await this.listDexRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.QUOTE.DESCRIPTION\n * CONTROLLER.DEX.QUOTE.SUMMARY\n */\n async quoteRaw(requestParameters: QuoteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QuoteResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['dex'] == null) {\n throw new runtime.RequiredError(\n 'dex',\n 'Required parameter \"dex\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['amount'] == null) {\n throw new runtime.RequiredError(\n 'amount',\n 'Required parameter \"amount\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['inputMint'] == null) {\n throw new runtime.RequiredError(\n 'inputMint',\n 'Required parameter \"inputMint\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['outputMint'] == null) {\n throw new runtime.RequiredError(\n 'outputMint',\n 'Required parameter \"outputMint\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['exactIn'] == null) {\n throw new runtime.RequiredError(\n 'exactIn',\n 'Required parameter \"exactIn\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['slippage'] == null) {\n throw new runtime.RequiredError(\n 'slippage',\n 'Required parameter \"slippage\" was null or undefined when calling quote().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['dex'] != null) {\n queryParameters['dex'] = requestParameters['dex'];\n }\n\n if (requestParameters['amount'] != null) {\n queryParameters['amount'] = requestParameters['amount'];\n }\n\n if (requestParameters['inputMint'] != null) {\n queryParameters['inputMint'] = requestParameters['inputMint'];\n }\n\n if (requestParameters['outputMint'] != null) {\n queryParameters['outputMint'] = requestParameters['outputMint'];\n }\n\n if (requestParameters['exactIn'] != null) {\n queryParameters['exactIn'] = requestParameters['exactIn'];\n }\n\n if (requestParameters['slippage'] != null) {\n queryParameters['slippage'] = requestParameters['slippage'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/quote`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => QuoteResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.QUOTE.DESCRIPTION\n * CONTROLLER.DEX.QUOTE.SUMMARY\n */\n async quote(requestParameters: QuoteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuoteResponse> {\n const response = await this.quoteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.ROUTE.DESCRIPTION\n * CONTROLLER.DEX.ROUTE.SUMMARY\n */\n async routeRaw(requestParameters: RouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SwapRouteResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling route().'\n );\n }\n\n if (requestParameters['swapRouteInput'] == null) {\n throw new runtime.RequiredError(\n 'swapRouteInput',\n 'Required parameter \"swapRouteInput\" was null or undefined when calling route().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/route`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SwapRouteInputToJSON(requestParameters['swapRouteInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SwapRouteResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.ROUTE.DESCRIPTION\n * CONTROLLER.DEX.ROUTE.SUMMARY\n */\n async route(requestParameters: RouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SwapRouteResponse> {\n const response = await this.routeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.SWAP.DESCRIPTION\n * CONTROLLER.DEX.SWAP.SUMMARY\n */\n async swapRaw(requestParameters: SwapRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SwapReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling swap().'\n );\n }\n\n if (requestParameters['swapInput'] == null) {\n throw new runtime.RequiredError(\n 'swapInput',\n 'Required parameter \"swapInput\" was null or undefined when calling swap().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/swap`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SwapInputToJSON(requestParameters['swapInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SwapReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.SWAP.DESCRIPTION\n * CONTROLLER.DEX.SWAP.SUMMARY\n */\n async swap(requestParameters: SwapRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SwapReply> {\n const response = await this.swapRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const QuoteDexEnum = {\n Raydium: 'raydium',\n Pumpfun: 'pumpfun'\n} as const;\nexport type QuoteDexEnum = typeof QuoteDexEnum[keyof typeof QuoteDexEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n DexPoolDTO,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n DexPoolDTOFromJSON,\n DexPoolDTOToJSON,\n} from '../models/index';\n\nexport interface GetDexpoolRequest {\n chain: ChainSymbol;\n poolAddress: string;\n}\n\n/**\n * \n */\nexport class DexPoolApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.DEXPOOL.GET.DESCRIPTION\n * CONTROLLER.DEXPOOL.GET.SUMMARY\n */\n async getDexpoolRaw(requestParameters: GetDexpoolRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DexPoolDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getDexpool().'\n );\n }\n\n if (requestParameters['poolAddress'] == null) {\n throw new runtime.RequiredError(\n 'poolAddress',\n 'Required parameter \"poolAddress\" was null or undefined when calling getDexpool().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dexpools/{chain}/{poolAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"poolAddress\"}}`, encodeURIComponent(String(requestParameters['poolAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DexPoolDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEXPOOL.GET.DESCRIPTION\n * CONTROLLER.DEXPOOL.GET.SUMMARY\n */\n async getDexpool(requestParameters: GetDexpoolRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DexPoolDTO> {\n const response = await this.getDexpoolRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n CreateEndpointInput,\n EndpointListResponse,\n EndpointOperationResponse,\n EndpointResponse,\n EndpointSecretResponse,\n UpdateEndpointInput,\n} from '../models/index';\nimport {\n CreateEndpointInputFromJSON,\n CreateEndpointInputToJSON,\n EndpointListResponseFromJSON,\n EndpointListResponseToJSON,\n EndpointOperationResponseFromJSON,\n EndpointOperationResponseToJSON,\n EndpointResponseFromJSON,\n EndpointResponseToJSON,\n EndpointSecretResponseFromJSON,\n EndpointSecretResponseToJSON,\n UpdateEndpointInputFromJSON,\n UpdateEndpointInputToJSON,\n} from '../models/index';\n\nexport interface CreateEndpointRequest {\n createEndpointInput: CreateEndpointInput;\n}\n\nexport interface DeleteEndpointRequest {\n id: string;\n}\n\nexport interface GetEndpointRequest {\n id: string;\n}\n\nexport interface GetEndpointSecretRequest {\n id: string;\n}\n\nexport interface ListEndpointsRequest {\n limit?: number;\n iterator?: string;\n order?: ListEndpointsOrderEnum;\n}\n\nexport interface RotateEndpointSecretRequest {\n id: string;\n}\n\nexport interface UpdateEndpointRequest {\n updateEndpointInput: UpdateEndpointInput;\n}\n\n/**\n * \n */\nexport class EndpointApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.ENDPOINT.CREATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.CREATE.SUMMARY\n */\n async createEndpointRaw(requestParameters: CreateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointResponse>> {\n if (requestParameters['createEndpointInput'] == null) {\n throw new runtime.RequiredError(\n 'createEndpointInput',\n 'Required parameter \"createEndpointInput\" was null or undefined when calling createEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CreateEndpointInputToJSON(requestParameters['createEndpointInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.CREATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.CREATE.SUMMARY\n */\n async createEndpoint(requestParameters: CreateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointResponse> {\n const response = await this.createEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.DELETE.DESCRIPTION\n * CONTROLLER.ENDPOINT.DELETE.SUMMARY\n */\n async deleteEndpointRaw(requestParameters: DeleteEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointOperationResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling deleteEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointOperationResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.DELETE.DESCRIPTION\n * CONTROLLER.ENDPOINT.DELETE.SUMMARY\n */\n async deleteEndpoint(requestParameters: DeleteEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointOperationResponse> {\n const response = await this.deleteEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SUMMARY\n */\n async getEndpointRaw(requestParameters: GetEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SUMMARY\n */\n async getEndpoint(requestParameters: GetEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointResponse> {\n const response = await this.getEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.SECRET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SECRET.SUMMARY\n */\n async getEndpointSecretRaw(requestParameters: GetEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointSecretResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getEndpointSecret().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}/secret`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointSecretResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.SECRET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SECRET.SUMMARY\n */\n async getEndpointSecret(requestParameters: GetEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointSecretResponse> {\n const response = await this.getEndpointSecretRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.LIST.DESCRIPTION\n * CONTROLLER.ENDPOINT.LIST.SUMMARY\n */\n async listEndpointsRaw(requestParameters: ListEndpointsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointListResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['iterator'] != null) {\n queryParameters['iterator'] = requestParameters['iterator'];\n }\n\n if (requestParameters['order'] != null) {\n queryParameters['order'] = requestParameters['order'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointListResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.LIST.DESCRIPTION\n * CONTROLLER.ENDPOINT.LIST.SUMMARY\n */\n async listEndpoints(requestParameters: ListEndpointsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointListResponse> {\n const response = await this.listEndpointsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.ROTATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.ROTATE.SUMMARY\n */\n async rotateEndpointSecretRaw(requestParameters: RotateEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointOperationResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling rotateEndpointSecret().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}/secret/rotate`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointOperationResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.ROTATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.ROTATE.SUMMARY\n */\n async rotateEndpointSecret(requestParameters: RotateEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointOperationResponse> {\n const response = await this.rotateEndpointSecretRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.UPDATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.UPDATE.SUMMARY\n */\n async updateEndpointRaw(requestParameters: UpdateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointResponse>> {\n if (requestParameters['updateEndpointInput'] == null) {\n throw new runtime.RequiredError(\n 'updateEndpointInput',\n 'Required parameter \"updateEndpointInput\" was null or undefined when calling updateEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}`;\n\n const response = await this.request({\n path: urlPath,\n method: 'PATCH',\n headers: headerParameters,\n query: queryParameters,\n body: UpdateEndpointInputToJSON(requestParameters['updateEndpointInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.UPDATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.UPDATE.SUMMARY\n */\n async updateEndpoint(requestParameters: UpdateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointResponse> {\n const response = await this.updateEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const ListEndpointsOrderEnum = {\n Ascending: 'ascending',\n Descending: 'descending'\n} as const;\nexport type ListEndpointsOrderEnum = typeof ListEndpointsOrderEnum[keyof typeof ListEndpointsOrderEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\n\n/**\n * \n */\nexport class IpfsApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.IPFS.PRESIGN.DESCRIPTION\n * CONTROLLER.IPFS.PRESIGN.SUMMARY\n */\n async presignRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ipfs/presign`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse<string>(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n * CONTROLLER.IPFS.PRESIGN.DESCRIPTION\n * CONTROLLER.IPFS.PRESIGN.SUMMARY\n */\n async presign(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {\n const response = await this.presignRaw(initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n JobDTO,\n JobStreamingDTO,\n} from '../models/index';\nimport {\n JobDTOFromJSON,\n JobDTOToJSON,\n JobStreamingDTOFromJSON,\n JobStreamingDTOToJSON,\n} from '../models/index';\n\nexport interface GetRequest {\n id: string;\n}\n\nexport interface StreamingRequest {\n id: string;\n}\n\n/**\n * \n */\nexport class JobsApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.JOB.GET.DESCRIPTION\n * CONTROLLER.JOB.GET.SUMMARY\n */\n async getRaw(requestParameters: GetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<JobDTO>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling get().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/jobs/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => JobDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.JOB.GET.DESCRIPTION\n * CONTROLLER.JOB.GET.SUMMARY\n */\n async get(requestParameters: GetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<JobDTO> {\n const response = await this.getRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.JOB.STREAMING.DESCRIPTION\n * CONTROLLER.JOB.STREAMING.SUMMARY\n */\n async streamingRaw(requestParameters: StreamingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<JobStreamingDTO>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling streaming().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/jobs/{id}/streaming`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => JobStreamingDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.JOB.STREAMING.DESCRIPTION\n * CONTROLLER.JOB.STREAMING.SUMMARY\n */\n async streaming(requestParameters: StreamingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<JobStreamingDTO> {\n const response = await this.streamingRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AddressRiskResponseDTO,\n KYTRegisterTransferRequest,\n KYTRegisterWithdrawalRequest,\n KytAddressPage,\n KytTransferPage,\n KytWithdrawalPage,\n RegisterAddressRequest,\n RegisterAddressResponseDTO,\n TransferAlertsResponseDTO,\n TransferBaseResponseDTO,\n TransferDirectExposureResponseDTO,\n TransferNetworkIdentificationsResponseDTO,\n WithdrawalAddressIdentificationsResponseDTO,\n WithdrawalBaseResponseDTO,\n WithdrawalFraudAssessmentResponseDTO,\n} from '../models/index';\nimport {\n AddressRiskResponseDTOFromJSON,\n AddressRiskResponseDTOToJSON,\n KYTRegisterTransferRequestFromJSON,\n KYTRegisterTransferRequestToJSON,\n KYTRegisterWithdrawalRequestFromJSON,\n KYTRegisterWithdrawalRequestToJSON,\n KytAddressPageFromJSON,\n KytAddressPageToJSON,\n KytTransferPageFromJSON,\n KytTransferPageToJSON,\n KytWithdrawalPageFromJSON,\n KytWithdrawalPageToJSON,\n RegisterAddressRequestFromJSON,\n RegisterAddressRequestToJSON,\n RegisterAddressResponseDTOFromJSON,\n RegisterAddressResponseDTOToJSON,\n TransferAlertsResponseDTOFromJSON,\n TransferAlertsResponseDTOToJSON,\n TransferBaseResponseDTOFromJSON,\n TransferBaseResponseDTOToJSON,\n TransferDirectExposureResponseDTOFromJSON,\n TransferDirectExposureResponseDTOToJSON,\n TransferNetworkIdentificationsResponseDTOFromJSON,\n TransferNetworkIdentificationsResponseDTOToJSON,\n WithdrawalAddressIdentificationsResponseDTOFromJSON,\n WithdrawalAddressIdentificationsResponseDTOToJSON,\n WithdrawalBaseResponseDTOFromJSON,\n WithdrawalBaseResponseDTOToJSON,\n WithdrawalFraudAssessmentResponseDTOFromJSON,\n WithdrawalFraudAssessmentResponseDTOToJSON,\n} from '../models/index';\n\nexport interface GetAddressRiskRequest {\n address: string;\n}\n\nexport interface GetKytAddressesRequest {\n page?: number;\n pageSize?: number;\n}\n\nexport interface GetKytTransfersRequest {\n page?: number;\n pageSize?: number;\n}\n\nexport interface GetKytWithdrawalsRequest {\n page?: number;\n pageSize?: number;\n}\n\nexport interface GetTransferAlertsRequest {\n transferId: string;\n}\n\nexport interface GetTransferDirectExposureRequest {\n transferId: string;\n}\n\nexport interface GetTransferNetworkIdentificationsRequest {\n transferId: string;\n}\n\nexport interface GetTransferSummaryRequest {\n transferId: string;\n}\n\nexport interface GetWithdrawalAddressIdentificationsRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalAlertsRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalDirectExposureRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalFraudAssessmentRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalNetworkIdentificationsRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalSummaryRequest {\n withdrawalId: string;\n}\n\nexport interface RegisterAddressOperationRequest {\n registerAddressRequest: RegisterAddressRequest;\n}\n\nexport interface RegisterTransferRequest {\n kYTRegisterTransferRequest: KYTRegisterTransferRequest;\n}\n\nexport interface RegisterWithdrawalRequest {\n kYTRegisterWithdrawalRequest: KYTRegisterWithdrawalRequest;\n}\n\n/**\n * \n */\nexport class KYTApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.KYT.GET_ADDRESS_RISK.DESCRIPTION\n * CONTROLLER.KYT.GET_ADDRESS_RISK.SUMMARY\n */\n async getAddressRiskRaw(requestParameters: GetAddressRiskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddressRiskResponseDTO>> {\n if (requestParameters['address'] == null) {\n throw new runtime.RequiredError(\n 'address',\n 'Required parameter \"address\" was null or undefined when calling getAddressRisk().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/addresses/{address}/risk`;\n urlPath = urlPath.replace(`{${\"address\"}}`, encodeURIComponent(String(requestParameters['address'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AddressRiskResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_ADDRESS_RISK.DESCRIPTION\n * CONTROLLER.KYT.GET_ADDRESS_RISK.SUMMARY\n */\n async getAddressRisk(requestParameters: GetAddressRiskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddressRiskResponseDTO> {\n const response = await this.getAddressRiskRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.SUMMARY\n */\n async getKytAddressesRaw(requestParameters: GetKytAddressesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KytAddressPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['page'] != null) {\n queryParameters['page'] = requestParameters['page'];\n }\n\n if (requestParameters['pageSize'] != null) {\n queryParameters['pageSize'] = requestParameters['pageSize'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/addresses`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => KytAddressPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.SUMMARY\n */\n async getKytAddresses(requestParameters: GetKytAddressesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KytAddressPage> {\n const response = await this.getKytAddressesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.SUMMARY\n */\n async getKytTransfersRaw(requestParameters: GetKytTransfersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KytTransferPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['page'] != null) {\n queryParameters['page'] = requestParameters['page'];\n }\n\n if (requestParameters['pageSize'] != null) {\n queryParameters['pageSize'] = requestParameters['pageSize'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => KytTransferPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.SUMMARY\n */\n async getKytTransfers(requestParameters: GetKytTransfersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KytTransferPage> {\n const response = await this.getKytTransfersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.SUMMARY\n */\n async getKytWithdrawalsRaw(requestParameters: GetKytWithdrawalsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KytWithdrawalPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['page'] != null) {\n queryParameters['page'] = requestParameters['page'];\n }\n\n if (requestParameters['pageSize'] != null) {\n queryParameters['pageSize'] = requestParameters['pageSize'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawals`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => KytWithdrawalPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.SUMMARY\n */\n async getKytWithdrawals(requestParameters: GetKytWithdrawalsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KytWithdrawalPage> {\n const response = await this.getKytWithdrawalsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.SUMMARY\n */\n async getTransferAlertsRaw(requestParameters: GetTransferAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferAlertsResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferAlerts().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/alerts`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferAlertsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.SUMMARY\n */\n async getTransferAlerts(requestParameters: GetTransferAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferAlertsResponseDTO> {\n const response = await this.getTransferAlertsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.SUMMARY\n */\n async getTransferDirectExposureRaw(requestParameters: GetTransferDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferDirectExposureResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferDirectExposure().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/exposures/direct`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferDirectExposureResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.SUMMARY\n */\n async getTransferDirectExposure(requestParameters: GetTransferDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferDirectExposureResponseDTO> {\n const response = await this.getTransferDirectExposureRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getTransferNetworkIdentificationsRaw(requestParameters: GetTransferNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferNetworkIdentificationsResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferNetworkIdentifications().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/network-identifications`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferNetworkIdentificationsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getTransferNetworkIdentifications(requestParameters: GetTransferNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferNetworkIdentificationsResponseDTO> {\n const response = await this.getTransferNetworkIdentificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.SUMMARY\n */\n async getTransferSummaryRaw(requestParameters: GetTransferSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferBaseResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferSummary().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/summary`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.SUMMARY\n */\n async getTransferSummary(requestParameters: GetTransferSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferBaseResponseDTO> {\n const response = await this.getTransferSummaryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalAddressIdentificationsRaw(requestParameters: GetWithdrawalAddressIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalAddressIdentificationsResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalAddressIdentifications().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/address-identifications`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalAddressIdentificationsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalAddressIdentifications(requestParameters: GetWithdrawalAddressIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalAddressIdentificationsResponseDTO> {\n const response = await this.getWithdrawalAddressIdentificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.SUMMARY\n */\n async getWithdrawalAlertsRaw(requestParameters: GetWithdrawalAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferAlertsResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalAlerts().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/alerts`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferAlertsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.SUMMARY\n */\n async getWithdrawalAlerts(requestParameters: GetWithdrawalAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferAlertsResponseDTO> {\n const response = await this.getWithdrawalAlertsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.SUMMARY\n */\n async getWithdrawalDirectExposureRaw(requestParameters: GetWithdrawalDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferDirectExposureResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalDirectExposure().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/exposures/direct`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferDirectExposureResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.SUMMARY\n */\n async getWithdrawalDirectExposure(requestParameters: GetWithdrawalDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferDirectExposureResponseDTO> {\n const response = await this.getWithdrawalDirectExposureRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.SUMMARY\n */\n async getWithdrawalFraudAssessmentRaw(requestParameters: GetWithdrawalFraudAssessmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalFraudAssessmentResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalFraudAssessment().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/fraud-assessment`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalFraudAssessmentResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.SUMMARY\n */\n async getWithdrawalFraudAssessment(requestParameters: GetWithdrawalFraudAssessmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalFraudAssessmentResponseDTO> {\n const response = await this.getWithdrawalFraudAssessmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalNetworkIdentificationsRaw(requestParameters: GetWithdrawalNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferNetworkIdentificationsResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalNetworkIdentifications().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/network-identifications`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferNetworkIdentificationsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalNetworkIdentifications(requestParameters: GetWithdrawalNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferNetworkIdentificationsResponseDTO> {\n const response = await this.getWithdrawalNetworkIdentificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.SUMMARY\n */\n async getWithdrawalSummaryRaw(requestParameters: GetWithdrawalSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalBaseResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalSummary().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/summary`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.SUMMARY\n */\n async getWithdrawalSummary(requestParameters: GetWithdrawalSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalBaseResponseDTO> {\n const response = await this.getWithdrawalSummaryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_ADDRESS.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_ADDRESS.SUMMARY\n */\n async registerAddressRaw(requestParameters: RegisterAddressOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RegisterAddressResponseDTO>> {\n if (requestParameters['registerAddressRequest'] == null) {\n throw new runtime.RequiredError(\n 'registerAddressRequest',\n 'Required parameter \"registerAddressRequest\" was null or undefined when calling registerAddress().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/address`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RegisterAddressRequestToJSON(requestParameters['registerAddressRequest']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RegisterAddressResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_ADDRESS.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_ADDRESS.SUMMARY\n */\n async registerAddress(requestParameters: RegisterAddressOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RegisterAddressResponseDTO> {\n const response = await this.registerAddressRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_TRANSFER.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_TRANSFER.SUMMARY\n */\n async registerTransferRaw(requestParameters: RegisterTransferRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferBaseResponseDTO>> {\n if (requestParameters['kYTRegisterTransferRequest'] == null) {\n throw new runtime.RequiredError(\n 'kYTRegisterTransferRequest',\n 'Required parameter \"kYTRegisterTransferRequest\" was null or undefined when calling registerTransfer().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfer`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: KYTRegisterTransferRequestToJSON(requestParameters['kYTRegisterTransferRequest']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_TRANSFER.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_TRANSFER.SUMMARY\n */\n async registerTransfer(requestParameters: RegisterTransferRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferBaseResponseDTO> {\n const response = await this.registerTransferRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.SUMMARY\n */\n async registerWithdrawalRaw(requestParameters: RegisterWithdrawalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalBaseResponseDTO>> {\n if (requestParameters['kYTRegisterWithdrawalRequest'] == null) {\n throw new runtime.RequiredError(\n 'kYTRegisterWithdrawalRequest',\n 'Required parameter \"kYTRegisterWithdrawalRequest\" was null or undefined when calling registerWithdrawal().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: KYTRegisterWithdrawalRequestToJSON(requestParameters['kYTRegisterWithdrawalRequest']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.SUMMARY\n */\n async registerWithdrawal(requestParameters: RegisterWithdrawalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalBaseResponseDTO> {\n const response = await this.registerWithdrawalRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n FilterCondition,\n Token,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n FilterConditionFromJSON,\n FilterConditionToJSON,\n TokenFromJSON,\n TokenToJSON,\n} from '../models/index';\n\nexport interface GetFinalStretchTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetFinalStretchTokensSortByEnum;\n sortDirection?: GetFinalStretchTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetFinalStretchTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetHotTokensRequest {\n chain: ChainSymbol;\n duration: GetHotTokensDurationEnum;\n sortBy?: GetHotTokensSortByEnum;\n sortDirection?: GetHotTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetHotTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetMigratedTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetMigratedTokensSortByEnum;\n sortDirection?: GetMigratedTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetMigratedTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetNewTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetNewTokensSortByEnum;\n sortDirection?: GetNewTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetNewTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetStocksTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetStocksTokensSortByEnum;\n sortDirection?: GetStocksTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetStocksTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\n/**\n * \n */\nexport class RankingApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.SUMMARY\n */\n async getFinalStretchTokensRaw(requestParameters: GetFinalStretchTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getFinalStretchTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/finalStretch`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.SUMMARY\n */\n async getFinalStretchTokens(requestParameters: GetFinalStretchTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getFinalStretchTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.HOT_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.HOT_TOKENS.SUMMARY\n */\n async getHotTokensRaw(requestParameters: GetHotTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getHotTokens().'\n );\n }\n\n if (requestParameters['duration'] == null) {\n throw new runtime.RequiredError(\n 'duration',\n 'Required parameter \"duration\" was null or undefined when calling getHotTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/hotTokens/{duration}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"duration\"}}`, encodeURIComponent(String(requestParameters['duration'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.HOT_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.HOT_TOKENS.SUMMARY\n */\n async getHotTokens(requestParameters: GetHotTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getHotTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.MIGRATED_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.MIGRATED_TOKENS.SUMMARY\n */\n async getMigratedTokensRaw(requestParameters: GetMigratedTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMigratedTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/migrated`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.MIGRATED_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.MIGRATED_TOKENS.SUMMARY\n */\n async getMigratedTokens(requestParameters: GetMigratedTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getMigratedTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.NEW_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.NEW_TOKENS.SUMMARY\n */\n async getNewTokensRaw(requestParameters: GetNewTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getNewTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/newTokens`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.NEW_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.NEW_TOKENS.SUMMARY\n */\n async getNewTokens(requestParameters: GetNewTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getNewTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.STOCKS_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.STOCKS_TOKENS.SUMMARY\n */\n async getStocksTokensRaw(requestParameters: GetStocksTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getStocksTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/stocks`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.STOCKS_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.STOCKS_TOKENS.SUMMARY\n */\n async getStocksTokens(requestParameters: GetStocksTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getStocksTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetFinalStretchTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetFinalStretchTokensSortByEnum = typeof GetFinalStretchTokensSortByEnum[keyof typeof GetFinalStretchTokensSortByEnum];\n/**\n * @export\n */\nexport const GetFinalStretchTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetFinalStretchTokensSortDirectionEnum = typeof GetFinalStretchTokensSortDirectionEnum[keyof typeof GetFinalStretchTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetFinalStretchTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetFinalStretchTokensTagEnum = typeof GetFinalStretchTokensTagEnum[keyof typeof GetFinalStretchTokensTagEnum];\n/**\n * @export\n */\nexport const GetHotTokensDurationEnum = {\n _1m: '1m',\n _5m: '5m',\n _1h: '1h',\n _4h: '4h',\n _24h: '24h'\n} as const;\nexport type GetHotTokensDurationEnum = typeof GetHotTokensDurationEnum[keyof typeof GetHotTokensDurationEnum];\n/**\n * @export\n */\nexport const GetHotTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetHotTokensSortByEnum = typeof GetHotTokensSortByEnum[keyof typeof GetHotTokensSortByEnum];\n/**\n * @export\n */\nexport const GetHotTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetHotTokensSortDirectionEnum = typeof GetHotTokensSortDirectionEnum[keyof typeof GetHotTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetHotTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetHotTokensTagEnum = typeof GetHotTokensTagEnum[keyof typeof GetHotTokensTagEnum];\n/**\n * @export\n */\nexport const GetMigratedTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetMigratedTokensSortByEnum = typeof GetMigratedTokensSortByEnum[keyof typeof GetMigratedTokensSortByEnum];\n/**\n * @export\n */\nexport const GetMigratedTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetMigratedTokensSortDirectionEnum = typeof GetMigratedTokensSortDirectionEnum[keyof typeof GetMigratedTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetMigratedTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetMigratedTokensTagEnum = typeof GetMigratedTokensTagEnum[keyof typeof GetMigratedTokensTagEnum];\n/**\n * @export\n */\nexport const GetNewTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetNewTokensSortByEnum = typeof GetNewTokensSortByEnum[keyof typeof GetNewTokensSortByEnum];\n/**\n * @export\n */\nexport const GetNewTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetNewTokensSortDirectionEnum = typeof GetNewTokensSortDirectionEnum[keyof typeof GetNewTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetNewTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetNewTokensTagEnum = typeof GetNewTokensTagEnum[keyof typeof GetNewTokensTagEnum];\n/**\n * @export\n */\nexport const GetStocksTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetStocksTokensSortByEnum = typeof GetStocksTokensSortByEnum[keyof typeof GetStocksTokensSortByEnum];\n/**\n * @export\n */\nexport const GetStocksTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetStocksTokensSortDirectionEnum = typeof GetStocksTokensSortDirectionEnum[keyof typeof GetStocksTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetStocksTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetStocksTokensTagEnum = typeof GetStocksTokensTagEnum[keyof typeof GetStocksTokensTagEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n ClaimRedPacketInput,\n CreateRedPacketInput,\n CreateRedPacketReply,\n RedPacketClaimsPage,\n RedPacketDTO,\n RedPacketReply,\n RedPacketSendTxInput,\n RedPacketSendTxResponse,\n RedPacketsPage,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n ClaimRedPacketInputFromJSON,\n ClaimRedPacketInputToJSON,\n CreateRedPacketInputFromJSON,\n CreateRedPacketInputToJSON,\n CreateRedPacketReplyFromJSON,\n CreateRedPacketReplyToJSON,\n RedPacketClaimsPageFromJSON,\n RedPacketClaimsPageToJSON,\n RedPacketDTOFromJSON,\n RedPacketDTOToJSON,\n RedPacketReplyFromJSON,\n RedPacketReplyToJSON,\n RedPacketSendTxInputFromJSON,\n RedPacketSendTxInputToJSON,\n RedPacketSendTxResponseFromJSON,\n RedPacketSendTxResponseToJSON,\n RedPacketsPageFromJSON,\n RedPacketsPageToJSON,\n} from '../models/index';\n\nexport interface ClaimRedpacketRequest {\n chain: ChainSymbol;\n claimRedPacketInput: ClaimRedPacketInput;\n}\n\nexport interface CreateRedpacketRequest {\n chain: ChainSymbol;\n createRedPacketInput: CreateRedPacketInput;\n}\n\nexport interface GetClaimsRequest {\n id: string;\n cursor?: string;\n limit?: number;\n direction?: string;\n}\n\nexport interface GetClaimsByAddressRequest {\n address: string;\n cursor?: string;\n limit?: number;\n direction?: string;\n}\n\nexport interface GetRedpacketRequest {\n id: string;\n}\n\nexport interface GetRedpacketsRequest {\n cursor?: string;\n limit?: number;\n direction?: string;\n creator?: string;\n chain?: GetRedpacketsChainEnum;\n}\n\nexport interface GetRedpacketsByAddressRequest {\n address: string;\n cursor?: string;\n limit?: number;\n direction?: string;\n}\n\nexport interface RedpacketSendRequest {\n chain: ChainSymbol;\n redPacketSendTxInput: RedPacketSendTxInput;\n}\n\n/**\n * \n */\nexport class RedPacketApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.RED_PACKET.CLAIM.DESCRIPTION\n * CONTROLLER.RED_PACKET.CLAIM.SUMMARY\n */\n async claimRedpacketRaw(requestParameters: ClaimRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling claimRedpacket().'\n );\n }\n\n if (requestParameters['claimRedPacketInput'] == null) {\n throw new runtime.RequiredError(\n 'claimRedPacketInput',\n 'Required parameter \"claimRedPacketInput\" was null or undefined when calling claimRedpacket().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{chain}/claim`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClaimRedPacketInputToJSON(requestParameters['claimRedPacketInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.CLAIM.DESCRIPTION\n * CONTROLLER.RED_PACKET.CLAIM.SUMMARY\n */\n async claimRedpacket(requestParameters: ClaimRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketReply> {\n const response = await this.claimRedpacketRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.CREATE.DESCRIPTION\n * CONTROLLER.RED_PACKET.CREATE.SUMMARY\n */\n async createRedpacketRaw(requestParameters: CreateRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateRedPacketReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling createRedpacket().'\n );\n }\n\n if (requestParameters['createRedPacketInput'] == null) {\n throw new runtime.RequiredError(\n 'createRedPacketInput',\n 'Required parameter \"createRedPacketInput\" was null or undefined when calling createRedpacket().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{chain}/create`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CreateRedPacketInputToJSON(requestParameters['createRedPacketInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CreateRedPacketReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.CREATE.DESCRIPTION\n * CONTROLLER.RED_PACKET.CREATE.SUMMARY\n */\n async createRedpacket(requestParameters: CreateRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateRedPacketReply> {\n const response = await this.createRedpacketRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS.SUMMARY\n */\n async getClaimsRaw(requestParameters: GetClaimsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketClaimsPage>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getClaims().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{id}/claims`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketClaimsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS.SUMMARY\n */\n async getClaims(requestParameters: GetClaimsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketClaimsPage> {\n const response = await this.getClaimsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.SUMMARY\n */\n async getClaimsByAddressRaw(requestParameters: GetClaimsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketClaimsPage>> {\n if (requestParameters['address'] == null) {\n throw new runtime.RequiredError(\n 'address',\n 'Required parameter \"address\" was null or undefined when calling getClaimsByAddress().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/wallet/{address}/claims`;\n urlPath = urlPath.replace(`{${\"address\"}}`, encodeURIComponent(String(requestParameters['address'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketClaimsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.SUMMARY\n */\n async getClaimsByAddress(requestParameters: GetClaimsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketClaimsPage> {\n const response = await this.getClaimsByAddressRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET.SUMMARY\n */\n async getRedpacketRaw(requestParameters: GetRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketDTO>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getRedpacket().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET.SUMMARY\n */\n async getRedpacket(requestParameters: GetRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketDTO> {\n const response = await this.getRedpacketRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.SUMMARY\n */\n async getRedpacketsRaw(requestParameters: GetRedpacketsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketsPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['creator'] != null) {\n queryParameters['creator'] = requestParameters['creator'];\n }\n\n if (requestParameters['chain'] != null) {\n queryParameters['chain'] = requestParameters['chain'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.SUMMARY\n */\n async getRedpackets(requestParameters: GetRedpacketsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketsPage> {\n const response = await this.getRedpacketsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.SUMMARY\n */\n async getRedpacketsByAddressRaw(requestParameters: GetRedpacketsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketsPage>> {\n if (requestParameters['address'] == null) {\n throw new runtime.RequiredError(\n 'address',\n 'Required parameter \"address\" was null or undefined when calling getRedpacketsByAddress().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/wallet/{address}/redpackets`;\n urlPath = urlPath.replace(`{${\"address\"}}`, encodeURIComponent(String(requestParameters['address'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.SUMMARY\n */\n async getRedpacketsByAddress(requestParameters: GetRedpacketsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketsPage> {\n const response = await this.getRedpacketsByAddressRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.SEND.DESCRIPTION\n * CONTROLLER.RED_PACKET.SEND.SUMMARY\n */\n async redpacketSendRaw(requestParameters: RedpacketSendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketSendTxResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling redpacketSend().'\n );\n }\n\n if (requestParameters['redPacketSendTxInput'] == null) {\n throw new runtime.RequiredError(\n 'redPacketSendTxInput',\n 'Required parameter \"redPacketSendTxInput\" was null or undefined when calling redpacketSend().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{chain}/send`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RedPacketSendTxInputToJSON(requestParameters['redPacketSendTxInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketSendTxResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.SEND.DESCRIPTION\n * CONTROLLER.RED_PACKET.SEND.SUMMARY\n */\n async redpacketSend(requestParameters: RedpacketSendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketSendTxResponse> {\n const response = await this.redpacketSendRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetRedpacketsChainEnum = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type GetRedpacketsChainEnum = typeof GetRedpacketsChainEnum[keyof typeof GetRedpacketsChainEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n Candle,\n ChainSymbol,\n DevTokenDTO,\n DexPoolDTO,\n FilterCondition,\n Resolution,\n Token,\n TokenCreationDTO,\n TokenCreationPage,\n TokenHolder,\n TokenHolderPage,\n TokenListPage,\n TokenMarketData,\n TokenMetadata,\n TokenPage,\n TokenPriceDTO,\n TokenPricePage,\n TokenStat,\n TokenTrader,\n TokenTraderTag,\n} from '../models/index';\nimport {\n CandleFromJSON,\n CandleToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n DevTokenDTOFromJSON,\n DevTokenDTOToJSON,\n DexPoolDTOFromJSON,\n DexPoolDTOToJSON,\n FilterConditionFromJSON,\n FilterConditionToJSON,\n ResolutionFromJSON,\n ResolutionToJSON,\n TokenFromJSON,\n TokenToJSON,\n TokenCreationDTOFromJSON,\n TokenCreationDTOToJSON,\n TokenCreationPageFromJSON,\n TokenCreationPageToJSON,\n TokenHolderFromJSON,\n TokenHolderToJSON,\n TokenHolderPageFromJSON,\n TokenHolderPageToJSON,\n TokenListPageFromJSON,\n TokenListPageToJSON,\n TokenMarketDataFromJSON,\n TokenMarketDataToJSON,\n TokenMetadataFromJSON,\n TokenMetadataToJSON,\n TokenPageFromJSON,\n TokenPageToJSON,\n TokenPriceDTOFromJSON,\n TokenPriceDTOToJSON,\n TokenPricePageFromJSON,\n TokenPricePageToJSON,\n TokenStatFromJSON,\n TokenStatToJSON,\n TokenTraderFromJSON,\n TokenTraderToJSON,\n TokenTraderTagFromJSON,\n TokenTraderTagToJSON,\n} from '../models/index';\n\nexport interface GetCandlesRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n resolution: Resolution;\n from?: number;\n to?: number;\n limit?: number;\n}\n\nexport interface GetCreationRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetDevTokensRequest {\n chain: ChainSymbol;\n devAddress: string;\n}\n\nexport interface GetHoldersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetHoldersDirectionEnum;\n}\n\nexport interface GetHoldersMultiRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n walletAddresses: string;\n}\n\nexport interface GetMarketDataRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetMarketDataMultiRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n}\n\nexport interface GetMetadataRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetMetadataMultiRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n}\n\nexport interface GetMintAndBurnRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetMintAndBurnDirectionEnum;\n type?: GetMintAndBurnTypeEnum;\n}\n\nexport interface GetPoolsRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetPriceByTimeRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n timestamp: number;\n}\n\nexport interface GetPricesRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetPricesDirectionEnum;\n}\n\nexport interface GetSecurityRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetStatsRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetStatsMultiRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n}\n\nexport interface GetTokenRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetTokenTradersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n tag: TokenTraderTag;\n}\n\nexport interface GetTokensRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n sortBy?: GetTokensSortByEnum;\n sortDirection?: GetTokensSortDirectionEnum;\n filterBy?: Array<FilterCondition>;\n}\n\nexport interface GetTopHoldersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface ListTokenRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: ListTokenDirectionEnum;\n sort?: ListTokenSortEnum;\n sortBy?: ListTokenSortByEnum;\n minH24VolumeInUsd?: string;\n maxH24VolumeInUsd?: string;\n minH24PriceChangeRatio?: string;\n maxH24PriceChangeRatio?: string;\n minH24Buys?: string;\n maxH24Buys?: string;\n minH24Sells?: string;\n maxH24Sells?: string;\n minH24Trades?: string;\n maxH24Trades?: string;\n minH24Buyers?: string;\n maxH24Buyers?: string;\n minH24Sellers?: string;\n maxH24Sellers?: string;\n minH24BuyVolumeInUsd?: string;\n maxH24BuyVolumeInUsd?: string;\n minH24SellVolumeInUsd?: string;\n maxH24SellVolumeInUsd?: string;\n minH4VolumeInUsd?: string;\n maxH4VolumeInUsd?: string;\n minH4PriceChangeRatio?: string;\n maxH4PriceChangeRatio?: string;\n minH4Buys?: string;\n maxH4Buys?: string;\n minH4Sells?: string;\n maxH4Sells?: string;\n minH4Trades?: string;\n maxH4Trades?: string;\n minH4Buyers?: string;\n maxH4Buyers?: string;\n minH4Sellers?: string;\n maxH4Sellers?: string;\n minH4BuyVolumeInUsd?: string;\n maxH4BuyVolumeInUsd?: string;\n minH4SellVolumeInUsd?: string;\n maxH4SellVolumeInUsd?: string;\n minH1VolumeInUsd?: string;\n maxH1VolumeInUsd?: string;\n minH1PriceChangeRatio?: string;\n maxH1PriceChangeRatio?: string;\n minH1Buys?: string;\n maxH1Buys?: string;\n minH1Sells?: string;\n maxH1Sells?: string;\n minH1Trades?: string;\n maxH1Trades?: string;\n minH1Buyers?: string;\n maxH1Buyers?: string;\n minH1Sellers?: string;\n maxH1Sellers?: string;\n minH1BuyVolumeInUsd?: string;\n maxH1BuyVolumeInUsd?: string;\n minH1SellVolumeInUsd?: string;\n maxH1SellVolumeInUsd?: string;\n minM30VolumeInUsd?: string;\n maxM30VolumeInUsd?: string;\n minM30PriceChangeRatio?: string;\n maxM30PriceChangeRatio?: string;\n minM30Buys?: string;\n maxM30Buys?: string;\n minM30Sells?: string;\n maxM30Sells?: string;\n minM30Trades?: string;\n maxM30Trades?: string;\n minM30Buyers?: string;\n maxM30Buyers?: string;\n minM30Sellers?: string;\n maxM30Sellers?: string;\n minM30BuyVolumeInUsd?: string;\n maxM30BuyVolumeInUsd?: string;\n minM30SellVolumeInUsd?: string;\n maxM30SellVolumeInUsd?: string;\n minM15VolumeInUsd?: string;\n maxM15VolumeInUsd?: string;\n minM15PriceChangeRatio?: string;\n maxM15PriceChangeRatio?: string;\n minM15Buys?: string;\n maxM15Buys?: string;\n minM15Sells?: string;\n maxM15Sells?: string;\n minM15Trades?: string;\n maxM15Trades?: string;\n minM15Buyers?: string;\n maxM15Buyers?: string;\n minM15Sellers?: string;\n maxM15Sellers?: string;\n minM15BuyVolumeInUsd?: string;\n maxM15BuyVolumeInUsd?: string;\n minM15SellVolumeInUsd?: string;\n maxM15SellVolumeInUsd?: string;\n minM5VolumeInUsd?: string;\n maxM5VolumeInUsd?: string;\n minM5PriceChangeRatio?: string;\n maxM5PriceChangeRatio?: string;\n minM5Buys?: string;\n maxM5Buys?: string;\n minM5Sells?: string;\n maxM5Sells?: string;\n minM5Trades?: string;\n maxM5Trades?: string;\n minM5Buyers?: string;\n maxM5Buyers?: string;\n minM5Sellers?: string;\n maxM5Sellers?: string;\n minM5BuyVolumeInUsd?: string;\n maxM5BuyVolumeInUsd?: string;\n minM5SellVolumeInUsd?: string;\n maxM5SellVolumeInUsd?: string;\n minM1VolumeInUsd?: string;\n maxM1VolumeInUsd?: string;\n minM1PriceChangeRatio?: string;\n maxM1PriceChangeRatio?: string;\n minM1Buys?: string;\n maxM1Buys?: string;\n minM1Sells?: string;\n maxM1Sells?: string;\n minM1Trades?: string;\n maxM1Trades?: string;\n minM1Buyers?: string;\n maxM1Buyers?: string;\n minM1Sellers?: string;\n maxM1Sellers?: string;\n minM1BuyVolumeInUsd?: string;\n maxM1BuyVolumeInUsd?: string;\n minM1SellVolumeInUsd?: string;\n maxM1SellVolumeInUsd?: string;\n}\n\nexport interface SearchRequest {\n chains?: Array<string>;\n q?: string;\n limit?: number;\n sort?: SearchSortEnum;\n protocols?: Array<string>;\n cursor?: string;\n sortBy?: SearchSortByEnum;\n}\n\n/**\n * \n */\nexport class TokenApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.TOKEN.GET_CANDLES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CANDLES.SUMMARY\n */\n async getCandlesRaw(requestParameters: GetCandlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Candle>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getCandles().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getCandles().'\n );\n }\n\n if (requestParameters['resolution'] == null) {\n throw new runtime.RequiredError(\n 'resolution',\n 'Required parameter \"resolution\" was null or undefined when calling getCandles().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['resolution'] != null) {\n queryParameters['resolution'] = requestParameters['resolution'];\n }\n\n if (requestParameters['from'] != null) {\n queryParameters['from'] = requestParameters['from'];\n }\n\n if (requestParameters['to'] != null) {\n queryParameters['to'] = requestParameters['to'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/candles`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(CandleFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_CANDLES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CANDLES.SUMMARY\n */\n async getCandles(requestParameters: GetCandlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Candle>> {\n const response = await this.getCandlesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_CREATION.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CREATION.SUMMARY\n */\n async getCreationRaw(requestParameters: GetCreationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenCreationDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getCreation().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getCreation().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/creation`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenCreationDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_CREATION.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CREATION.SUMMARY\n */\n async getCreation(requestParameters: GetCreationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenCreationDTO> {\n const response = await this.getCreationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.SUMMARY\n */\n async getDevTokensRaw(requestParameters: GetDevTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<DevTokenDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getDevTokens().'\n );\n }\n\n if (requestParameters['devAddress'] == null) {\n throw new runtime.RequiredError(\n 'devAddress',\n 'Required parameter \"devAddress\" was null or undefined when calling getDevTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/dev/{devAddress}/tokens`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"devAddress\"}}`, encodeURIComponent(String(requestParameters['devAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DevTokenDTOFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.SUMMARY\n */\n async getDevTokens(requestParameters: GetDevTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<DevTokenDTO>> {\n const response = await this.getDevTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS.SUMMARY\n */\n async getHoldersRaw(requestParameters: GetHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenHolderPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getHolders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getHolders().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/holders`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenHolderPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS.SUMMARY\n */\n async getHolders(requestParameters: GetHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenHolderPage> {\n const response = await this.getHoldersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.SUMMARY\n */\n async getHoldersMultiRaw(requestParameters: GetHoldersMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<TokenHolder>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getHoldersMulti().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getHoldersMulti().'\n );\n }\n\n if (requestParameters['walletAddresses'] == null) {\n throw new runtime.RequiredError(\n 'walletAddresses',\n 'Required parameter \"walletAddresses\" was null or undefined when calling getHoldersMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['walletAddresses'] != null) {\n queryParameters['walletAddresses'] = requestParameters['walletAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/holders/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenHolderFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.SUMMARY\n */\n async getHoldersMulti(requestParameters: GetHoldersMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<TokenHolder>> {\n const response = await this.getHoldersMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_CAP.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_CAP.SUMMARY\n */\n async getMarketDataRaw(requestParameters: GetMarketDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenMarketData>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMarketData().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getMarketData().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/marketData`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenMarketDataFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_CAP.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_CAP.SUMMARY\n */\n async getMarketData(requestParameters: GetMarketDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenMarketData> {\n const response = await this.getMarketDataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.SUMMARY\n */\n async getMarketDataMultiRaw(requestParameters: GetMarketDataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: TokenMarketData; }>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMarketDataMulti().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getMarketDataMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/marketData/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, TokenMarketDataFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.SUMMARY\n */\n async getMarketDataMulti(requestParameters: GetMarketDataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: TokenMarketData; }> {\n const response = await this.getMarketDataMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA.SUMMARY\n */\n async getMetadataRaw(requestParameters: GetMetadataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenMetadata>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMetadata().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getMetadata().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/metadata`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenMetadataFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA.SUMMARY\n */\n async getMetadata(requestParameters: GetMetadataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenMetadata> {\n const response = await this.getMetadataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.SUMMARY\n */\n async getMetadataMultiRaw(requestParameters: GetMetadataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: TokenMetadata; }>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMetadataMulti().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getMetadataMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/metadata/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, TokenMetadataFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.SUMMARY\n */\n async getMetadataMulti(requestParameters: GetMetadataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: TokenMetadata; }> {\n const response = await this.getMetadataMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.SUMMARY\n */\n async getMintAndBurnRaw(requestParameters: GetMintAndBurnRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenCreationPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMintAndBurn().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getMintAndBurn().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/mintAndBurn`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenCreationPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.SUMMARY\n */\n async getMintAndBurn(requestParameters: GetMintAndBurnRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenCreationPage> {\n const response = await this.getMintAndBurnRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_POOLS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_POOLS.SUMMARY\n */\n async getPoolsRaw(requestParameters: GetPoolsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<DexPoolDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPools().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getPools().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/pools`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DexPoolDTOFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_POOLS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_POOLS.SUMMARY\n */\n async getPools(requestParameters: GetPoolsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<DexPoolDTO>> {\n const response = await this.getPoolsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.SUMMARY\n */\n async getPriceByTimeRaw(requestParameters: GetPriceByTimeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenPriceDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPriceByTime().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getPriceByTime().'\n );\n }\n\n if (requestParameters['timestamp'] == null) {\n throw new runtime.RequiredError(\n 'timestamp',\n 'Required parameter \"timestamp\" was null or undefined when calling getPriceByTime().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['timestamp'] != null) {\n queryParameters['timestamp'] = requestParameters['timestamp'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/price`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenPriceDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.SUMMARY\n */\n async getPriceByTime(requestParameters: GetPriceByTimeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenPriceDTO> {\n const response = await this.getPriceByTimeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICES.SUMMARY\n */\n async getPricesRaw(requestParameters: GetPricesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenPricePage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPrices().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getPrices().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/prices`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenPricePageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICES.SUMMARY\n */\n async getPrices(requestParameters: GetPricesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenPricePage> {\n const response = await this.getPricesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_SECURITY.DESCRIPTION\n * CONTROLLER.TOKEN.GET_SECURITY.SUMMARY\n */\n async getSecurityRaw(requestParameters: GetSecurityRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getSecurity().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getSecurity().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/security`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * CONTROLLER.TOKEN.GET_SECURITY.DESCRIPTION\n * CONTROLLER.TOKEN.GET_SECURITY.SUMMARY\n */\n async getSecurity(requestParameters: GetSecurityRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {\n const response = await this.getSecurityRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS.SUMMARY\n */\n async getStatsRaw(requestParameters: GetStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenStat>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getStats().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getStats().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/stats`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenStatFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS.SUMMARY\n */\n async getStats(requestParameters: GetStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenStat> {\n const response = await this.getStatsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS_MULTI.SUMMARY\n */\n async getStatsMultiRaw(requestParameters: GetStatsMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: TokenStat; }>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getStatsMulti().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getStatsMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/stats/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, TokenStatFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS_MULTI.SUMMARY\n */\n async getStatsMulti(requestParameters: GetStatsMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: TokenStat; }> {\n const response = await this.getStatsMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET.DESCRIPTION\n * CONTROLLER.TOKEN.GET.SUMMARY\n */\n async getTokenRaw(requestParameters: GetTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Token>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getToken().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET.DESCRIPTION\n * CONTROLLER.TOKEN.GET.SUMMARY\n */\n async getToken(requestParameters: GetTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Token> {\n const response = await this.getTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.SUMMARY\n */\n async getTokenTradersRaw(requestParameters: GetTokenTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<TokenTrader>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTokenTraders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getTokenTraders().'\n );\n }\n\n if (requestParameters['tag'] == null) {\n throw new runtime.RequiredError(\n 'tag',\n 'Required parameter \"tag\" was null or undefined when calling getTokenTraders().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/traders/{tag}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n urlPath = urlPath.replace(`{${\"tag\"}}`, encodeURIComponent(String(requestParameters['tag'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenTraderFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.SUMMARY\n */\n async getTokenTraders(requestParameters: GetTokenTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<TokenTrader>> {\n const response = await this.getTokenTradersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKENS.SUMMARY\n */\n async getTokensRaw(requestParameters: GetTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTokens().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['filterBy'] != null) {\n queryParameters['filterBy'] = requestParameters['filterBy'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKENS.SUMMARY\n */\n async getTokens(requestParameters: GetTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.SUMMARY\n */\n async getTopHoldersRaw(requestParameters: GetTopHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenHolderPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTopHolders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getTopHolders().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/topHolders`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenHolderPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.SUMMARY\n */\n async getTopHolders(requestParameters: GetTopHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenHolderPage> {\n const response = await this.getTopHoldersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.SUMMARY\n */\n async listTokenRaw(requestParameters: ListTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenListPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling listToken().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['sort'] != null) {\n queryParameters['sort'] = requestParameters['sort'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['minH24VolumeInUsd'] != null) {\n queryParameters['min_h24_volume_in_usd'] = requestParameters['minH24VolumeInUsd'];\n }\n\n if (requestParameters['maxH24VolumeInUsd'] != null) {\n queryParameters['max_h24_volume_in_usd'] = requestParameters['maxH24VolumeInUsd'];\n }\n\n if (requestParameters['minH24PriceChangeRatio'] != null) {\n queryParameters['min_h24_price_change_ratio'] = requestParameters['minH24PriceChangeRatio'];\n }\n\n if (requestParameters['maxH24PriceChangeRatio'] != null) {\n queryParameters['max_h24_price_change_ratio'] = requestParameters['maxH24PriceChangeRatio'];\n }\n\n if (requestParameters['minH24Buys'] != null) {\n queryParameters['min_h24_buys'] = requestParameters['minH24Buys'];\n }\n\n if (requestParameters['maxH24Buys'] != null) {\n queryParameters['max_h24_buys'] = requestParameters['maxH24Buys'];\n }\n\n if (requestParameters['minH24Sells'] != null) {\n queryParameters['min_h24_sells'] = requestParameters['minH24Sells'];\n }\n\n if (requestParameters['maxH24Sells'] != null) {\n queryParameters['max_h24_sells'] = requestParameters['maxH24Sells'];\n }\n\n if (requestParameters['minH24Trades'] != null) {\n queryParameters['min_h24_trades'] = requestParameters['minH24Trades'];\n }\n\n if (requestParameters['maxH24Trades'] != null) {\n queryParameters['max_h24_trades'] = requestParameters['maxH24Trades'];\n }\n\n if (requestParameters['minH24Buyers'] != null) {\n queryParameters['min_h24_buyers'] = requestParameters['minH24Buyers'];\n }\n\n if (requestParameters['maxH24Buyers'] != null) {\n queryParameters['max_h24_buyers'] = requestParameters['maxH24Buyers'];\n }\n\n if (requestParameters['minH24Sellers'] != null) {\n queryParameters['min_h24_sellers'] = requestParameters['minH24Sellers'];\n }\n\n if (requestParameters['maxH24Sellers'] != null) {\n queryParameters['max_h24_sellers'] = requestParameters['maxH24Sellers'];\n }\n\n if (requestParameters['minH24BuyVolumeInUsd'] != null) {\n queryParameters['min_h24_buy_volume_in_usd'] = requestParameters['minH24BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxH24BuyVolumeInUsd'] != null) {\n queryParameters['max_h24_buy_volume_in_usd'] = requestParameters['maxH24BuyVolumeInUsd'];\n }\n\n if (requestParameters['minH24SellVolumeInUsd'] != null) {\n queryParameters['min_h24_sell_volume_in_usd'] = requestParameters['minH24SellVolumeInUsd'];\n }\n\n if (requestParameters['maxH24SellVolumeInUsd'] != null) {\n queryParameters['max_h24_sell_volume_in_usd'] = requestParameters['maxH24SellVolumeInUsd'];\n }\n\n if (requestParameters['minH4VolumeInUsd'] != null) {\n queryParameters['min_h4_volume_in_usd'] = requestParameters['minH4VolumeInUsd'];\n }\n\n if (requestParameters['maxH4VolumeInUsd'] != null) {\n queryParameters['max_h4_volume_in_usd'] = requestParameters['maxH4VolumeInUsd'];\n }\n\n if (requestParameters['minH4PriceChangeRatio'] != null) {\n queryParameters['min_h4_price_change_ratio'] = requestParameters['minH4PriceChangeRatio'];\n }\n\n if (requestParameters['maxH4PriceChangeRatio'] != null) {\n queryParameters['max_h4_price_change_ratio'] = requestParameters['maxH4PriceChangeRatio'];\n }\n\n if (requestParameters['minH4Buys'] != null) {\n queryParameters['min_h4_buys'] = requestParameters['minH4Buys'];\n }\n\n if (requestParameters['maxH4Buys'] != null) {\n queryParameters['max_h4_buys'] = requestParameters['maxH4Buys'];\n }\n\n if (requestParameters['minH4Sells'] != null) {\n queryParameters['min_h4_sells'] = requestParameters['minH4Sells'];\n }\n\n if (requestParameters['maxH4Sells'] != null) {\n queryParameters['max_h4_sells'] = requestParameters['maxH4Sells'];\n }\n\n if (requestParameters['minH4Trades'] != null) {\n queryParameters['min_h4_trades'] = requestParameters['minH4Trades'];\n }\n\n if (requestParameters['maxH4Trades'] != null) {\n queryParameters['max_h4_trades'] = requestParameters['maxH4Trades'];\n }\n\n if (requestParameters['minH4Buyers'] != null) {\n queryParameters['min_h4_buyers'] = requestParameters['minH4Buyers'];\n }\n\n if (requestParameters['maxH4Buyers'] != null) {\n queryParameters['max_h4_buyers'] = requestParameters['maxH4Buyers'];\n }\n\n if (requestParameters['minH4Sellers'] != null) {\n queryParameters['min_h4_sellers'] = requestParameters['minH4Sellers'];\n }\n\n if (requestParameters['maxH4Sellers'] != null) {\n queryParameters['max_h4_sellers'] = requestParameters['maxH4Sellers'];\n }\n\n if (requestParameters['minH4BuyVolumeInUsd'] != null) {\n queryParameters['min_h4_buy_volume_in_usd'] = requestParameters['minH4BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxH4BuyVolumeInUsd'] != null) {\n queryParameters['max_h4_buy_volume_in_usd'] = requestParameters['maxH4BuyVolumeInUsd'];\n }\n\n if (requestParameters['minH4SellVolumeInUsd'] != null) {\n queryParameters['min_h4_sell_volume_in_usd'] = requestParameters['minH4SellVolumeInUsd'];\n }\n\n if (requestParameters['maxH4SellVolumeInUsd'] != null) {\n queryParameters['max_h4_sell_volume_in_usd'] = requestParameters['maxH4SellVolumeInUsd'];\n }\n\n if (requestParameters['minH1VolumeInUsd'] != null) {\n queryParameters['min_h1_volume_in_usd'] = requestParameters['minH1VolumeInUsd'];\n }\n\n if (requestParameters['maxH1VolumeInUsd'] != null) {\n queryParameters['max_h1_volume_in_usd'] = requestParameters['maxH1VolumeInUsd'];\n }\n\n if (requestParameters['minH1PriceChangeRatio'] != null) {\n queryParameters['min_h1_price_change_ratio'] = requestParameters['minH1PriceChangeRatio'];\n }\n\n if (requestParameters['maxH1PriceChangeRatio'] != null) {\n queryParameters['max_h1_price_change_ratio'] = requestParameters['maxH1PriceChangeRatio'];\n }\n\n if (requestParameters['minH1Buys'] != null) {\n queryParameters['min_h1_buys'] = requestParameters['minH1Buys'];\n }\n\n if (requestParameters['maxH1Buys'] != null) {\n queryParameters['max_h1_buys'] = requestParameters['maxH1Buys'];\n }\n\n if (requestParameters['minH1Sells'] != null) {\n queryParameters['min_h1_sells'] = requestParameters['minH1Sells'];\n }\n\n if (requestParameters['maxH1Sells'] != null) {\n queryParameters['max_h1_sells'] = requestParameters['maxH1Sells'];\n }\n\n if (requestParameters['minH1Trades'] != null) {\n queryParameters['min_h1_trades'] = requestParameters['minH1Trades'];\n }\n\n if (requestParameters['maxH1Trades'] != null) {\n queryParameters['max_h1_trades'] = requestParameters['maxH1Trades'];\n }\n\n if (requestParameters['minH1Buyers'] != null) {\n queryParameters['min_h1_buyers'] = requestParameters['minH1Buyers'];\n }\n\n if (requestParameters['maxH1Buyers'] != null) {\n queryParameters['max_h1_buyers'] = requestParameters['maxH1Buyers'];\n }\n\n if (requestParameters['minH1Sellers'] != null) {\n queryParameters['min_h1_sellers'] = requestParameters['minH1Sellers'];\n }\n\n if (requestParameters['maxH1Sellers'] != null) {\n queryParameters['max_h1_sellers'] = requestParameters['maxH1Sellers'];\n }\n\n if (requestParameters['minH1BuyVolumeInUsd'] != null) {\n queryParameters['min_h1_buy_volume_in_usd'] = requestParameters['minH1BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxH1BuyVolumeInUsd'] != null) {\n queryParameters['max_h1_buy_volume_in_usd'] = requestParameters['maxH1BuyVolumeInUsd'];\n }\n\n if (requestParameters['minH1SellVolumeInUsd'] != null) {\n queryParameters['min_h1_sell_volume_in_usd'] = requestParameters['minH1SellVolumeInUsd'];\n }\n\n if (requestParameters['maxH1SellVolumeInUsd'] != null) {\n queryParameters['max_h1_sell_volume_in_usd'] = requestParameters['maxH1SellVolumeInUsd'];\n }\n\n if (requestParameters['minM30VolumeInUsd'] != null) {\n queryParameters['min_m30_volume_in_usd'] = requestParameters['minM30VolumeInUsd'];\n }\n\n if (requestParameters['maxM30VolumeInUsd'] != null) {\n queryParameters['max_m30_volume_in_usd'] = requestParameters['maxM30VolumeInUsd'];\n }\n\n if (requestParameters['minM30PriceChangeRatio'] != null) {\n queryParameters['min_m30_price_change_ratio'] = requestParameters['minM30PriceChangeRatio'];\n }\n\n if (requestParameters['maxM30PriceChangeRatio'] != null) {\n queryParameters['max_m30_price_change_ratio'] = requestParameters['maxM30PriceChangeRatio'];\n }\n\n if (requestParameters['minM30Buys'] != null) {\n queryParameters['min_m30_buys'] = requestParameters['minM30Buys'];\n }\n\n if (requestParameters['maxM30Buys'] != null) {\n queryParameters['max_m30_buys'] = requestParameters['maxM30Buys'];\n }\n\n if (requestParameters['minM30Sells'] != null) {\n queryParameters['min_m30_sells'] = requestParameters['minM30Sells'];\n }\n\n if (requestParameters['maxM30Sells'] != null) {\n queryParameters['max_m30_sells'] = requestParameters['maxM30Sells'];\n }\n\n if (requestParameters['minM30Trades'] != null) {\n queryParameters['min_m30_trades'] = requestParameters['minM30Trades'];\n }\n\n if (requestParameters['maxM30Trades'] != null) {\n queryParameters['max_m30_trades'] = requestParameters['maxM30Trades'];\n }\n\n if (requestParameters['minM30Buyers'] != null) {\n queryParameters['min_m30_buyers'] = requestParameters['minM30Buyers'];\n }\n\n if (requestParameters['maxM30Buyers'] != null) {\n queryParameters['max_m30_buyers'] = requestParameters['maxM30Buyers'];\n }\n\n if (requestParameters['minM30Sellers'] != null) {\n queryParameters['min_m30_sellers'] = requestParameters['minM30Sellers'];\n }\n\n if (requestParameters['maxM30Sellers'] != null) {\n queryParameters['max_m30_sellers'] = requestParameters['maxM30Sellers'];\n }\n\n if (requestParameters['minM30BuyVolumeInUsd'] != null) {\n queryParameters['min_m30_buy_volume_in_usd'] = requestParameters['minM30BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM30BuyVolumeInUsd'] != null) {\n queryParameters['max_m30_buy_volume_in_usd'] = requestParameters['maxM30BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM30SellVolumeInUsd'] != null) {\n queryParameters['min_m30_sell_volume_in_usd'] = requestParameters['minM30SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM30SellVolumeInUsd'] != null) {\n queryParameters['max_m30_sell_volume_in_usd'] = requestParameters['maxM30SellVolumeInUsd'];\n }\n\n if (requestParameters['minM15VolumeInUsd'] != null) {\n queryParameters['min_m15_volume_in_usd'] = requestParameters['minM15VolumeInUsd'];\n }\n\n if (requestParameters['maxM15VolumeInUsd'] != null) {\n queryParameters['max_m15_volume_in_usd'] = requestParameters['maxM15VolumeInUsd'];\n }\n\n if (requestParameters['minM15PriceChangeRatio'] != null) {\n queryParameters['min_m15_price_change_ratio'] = requestParameters['minM15PriceChangeRatio'];\n }\n\n if (requestParameters['maxM15PriceChangeRatio'] != null) {\n queryParameters['max_m15_price_change_ratio'] = requestParameters['maxM15PriceChangeRatio'];\n }\n\n if (requestParameters['minM15Buys'] != null) {\n queryParameters['min_m15_buys'] = requestParameters['minM15Buys'];\n }\n\n if (requestParameters['maxM15Buys'] != null) {\n queryParameters['max_m15_buys'] = requestParameters['maxM15Buys'];\n }\n\n if (requestParameters['minM15Sells'] != null) {\n queryParameters['min_m15_sells'] = requestParameters['minM15Sells'];\n }\n\n if (requestParameters['maxM15Sells'] != null) {\n queryParameters['max_m15_sells'] = requestParameters['maxM15Sells'];\n }\n\n if (requestParameters['minM15Trades'] != null) {\n queryParameters['min_m15_trades'] = requestParameters['minM15Trades'];\n }\n\n if (requestParameters['maxM15Trades'] != null) {\n queryParameters['max_m15_trades'] = requestParameters['maxM15Trades'];\n }\n\n if (requestParameters['minM15Buyers'] != null) {\n queryParameters['min_m15_buyers'] = requestParameters['minM15Buyers'];\n }\n\n if (requestParameters['maxM15Buyers'] != null) {\n queryParameters['max_m15_buyers'] = requestParameters['maxM15Buyers'];\n }\n\n if (requestParameters['minM15Sellers'] != null) {\n queryParameters['min_m15_sellers'] = requestParameters['minM15Sellers'];\n }\n\n if (requestParameters['maxM15Sellers'] != null) {\n queryParameters['max_m15_sellers'] = requestParameters['maxM15Sellers'];\n }\n\n if (requestParameters['minM15BuyVolumeInUsd'] != null) {\n queryParameters['min_m15_buy_volume_in_usd'] = requestParameters['minM15BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM15BuyVolumeInUsd'] != null) {\n queryParameters['max_m15_buy_volume_in_usd'] = requestParameters['maxM15BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM15SellVolumeInUsd'] != null) {\n queryParameters['min_m15_sell_volume_in_usd'] = requestParameters['minM15SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM15SellVolumeInUsd'] != null) {\n queryParameters['max_m15_sell_volume_in_usd'] = requestParameters['maxM15SellVolumeInUsd'];\n }\n\n if (requestParameters['minM5VolumeInUsd'] != null) {\n queryParameters['min_m5_volume_in_usd'] = requestParameters['minM5VolumeInUsd'];\n }\n\n if (requestParameters['maxM5VolumeInUsd'] != null) {\n queryParameters['max_m5_volume_in_usd'] = requestParameters['maxM5VolumeInUsd'];\n }\n\n if (requestParameters['minM5PriceChangeRatio'] != null) {\n queryParameters['min_m5_price_change_ratio'] = requestParameters['minM5PriceChangeRatio'];\n }\n\n if (requestParameters['maxM5PriceChangeRatio'] != null) {\n queryParameters['max_m5_price_change_ratio'] = requestParameters['maxM5PriceChangeRatio'];\n }\n\n if (requestParameters['minM5Buys'] != null) {\n queryParameters['min_m5_buys'] = requestParameters['minM5Buys'];\n }\n\n if (requestParameters['maxM5Buys'] != null) {\n queryParameters['max_m5_buys'] = requestParameters['maxM5Buys'];\n }\n\n if (requestParameters['minM5Sells'] != null) {\n queryParameters['min_m5_sells'] = requestParameters['minM5Sells'];\n }\n\n if (requestParameters['maxM5Sells'] != null) {\n queryParameters['max_m5_sells'] = requestParameters['maxM5Sells'];\n }\n\n if (requestParameters['minM5Trades'] != null) {\n queryParameters['min_m5_trades'] = requestParameters['minM5Trades'];\n }\n\n if (requestParameters['maxM5Trades'] != null) {\n queryParameters['max_m5_trades'] = requestParameters['maxM5Trades'];\n }\n\n if (requestParameters['minM5Buyers'] != null) {\n queryParameters['min_m5_buyers'] = requestParameters['minM5Buyers'];\n }\n\n if (requestParameters['maxM5Buyers'] != null) {\n queryParameters['max_m5_buyers'] = requestParameters['maxM5Buyers'];\n }\n\n if (requestParameters['minM5Sellers'] != null) {\n queryParameters['min_m5_sellers'] = requestParameters['minM5Sellers'];\n }\n\n if (requestParameters['maxM5Sellers'] != null) {\n queryParameters['max_m5_sellers'] = requestParameters['maxM5Sellers'];\n }\n\n if (requestParameters['minM5BuyVolumeInUsd'] != null) {\n queryParameters['min_m5_buy_volume_in_usd'] = requestParameters['minM5BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM5BuyVolumeInUsd'] != null) {\n queryParameters['max_m5_buy_volume_in_usd'] = requestParameters['maxM5BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM5SellVolumeInUsd'] != null) {\n queryParameters['min_m5_sell_volume_in_usd'] = requestParameters['minM5SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM5SellVolumeInUsd'] != null) {\n queryParameters['max_m5_sell_volume_in_usd'] = requestParameters['maxM5SellVolumeInUsd'];\n }\n\n if (requestParameters['minM1VolumeInUsd'] != null) {\n queryParameters['min_m1_volume_in_usd'] = requestParameters['minM1VolumeInUsd'];\n }\n\n if (requestParameters['maxM1VolumeInUsd'] != null) {\n queryParameters['max_m1_volume_in_usd'] = requestParameters['maxM1VolumeInUsd'];\n }\n\n if (requestParameters['minM1PriceChangeRatio'] != null) {\n queryParameters['min_m1_price_change_ratio'] = requestParameters['minM1PriceChangeRatio'];\n }\n\n if (requestParameters['maxM1PriceChangeRatio'] != null) {\n queryParameters['max_m1_price_change_ratio'] = requestParameters['maxM1PriceChangeRatio'];\n }\n\n if (requestParameters['minM1Buys'] != null) {\n queryParameters['min_m1_buys'] = requestParameters['minM1Buys'];\n }\n\n if (requestParameters['maxM1Buys'] != null) {\n queryParameters['max_m1_buys'] = requestParameters['maxM1Buys'];\n }\n\n if (requestParameters['minM1Sells'] != null) {\n queryParameters['min_m1_sells'] = requestParameters['minM1Sells'];\n }\n\n if (requestParameters['maxM1Sells'] != null) {\n queryParameters['max_m1_sells'] = requestParameters['maxM1Sells'];\n }\n\n if (requestParameters['minM1Trades'] != null) {\n queryParameters['min_m1_trades'] = requestParameters['minM1Trades'];\n }\n\n if (requestParameters['maxM1Trades'] != null) {\n queryParameters['max_m1_trades'] = requestParameters['maxM1Trades'];\n }\n\n if (requestParameters['minM1Buyers'] != null) {\n queryParameters['min_m1_buyers'] = requestParameters['minM1Buyers'];\n }\n\n if (requestParameters['maxM1Buyers'] != null) {\n queryParameters['max_m1_buyers'] = requestParameters['maxM1Buyers'];\n }\n\n if (requestParameters['minM1Sellers'] != null) {\n queryParameters['min_m1_sellers'] = requestParameters['minM1Sellers'];\n }\n\n if (requestParameters['maxM1Sellers'] != null) {\n queryParameters['max_m1_sellers'] = requestParameters['maxM1Sellers'];\n }\n\n if (requestParameters['minM1BuyVolumeInUsd'] != null) {\n queryParameters['min_m1_buy_volume_in_usd'] = requestParameters['minM1BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM1BuyVolumeInUsd'] != null) {\n queryParameters['max_m1_buy_volume_in_usd'] = requestParameters['maxM1BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM1SellVolumeInUsd'] != null) {\n queryParameters['min_m1_sell_volume_in_usd'] = requestParameters['minM1SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM1SellVolumeInUsd'] != null) {\n queryParameters['max_m1_sell_volume_in_usd'] = requestParameters['maxM1SellVolumeInUsd'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/list`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenListPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.SUMMARY\n */\n async listToken(requestParameters: ListTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenListPage> {\n const response = await this.listTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.SEARCH.DESCRIPTION\n * CONTROLLER.TOKEN.SEARCH.SUMMARY\n */\n async searchRaw(requestParameters: SearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['chains'] != null) {\n queryParameters['chains'] = requestParameters['chains'];\n }\n\n if (requestParameters['q'] != null) {\n queryParameters['q'] = requestParameters['q'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['sort'] != null) {\n queryParameters['sort'] = requestParameters['sort'];\n }\n\n if (requestParameters['protocols'] != null) {\n queryParameters['protocols'] = requestParameters['protocols'];\n }\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/search`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.SEARCH.DESCRIPTION\n * CONTROLLER.TOKEN.SEARCH.SUMMARY\n */\n async search(requestParameters: SearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenPage> {\n const response = await this.searchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetHoldersDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetHoldersDirectionEnum = typeof GetHoldersDirectionEnum[keyof typeof GetHoldersDirectionEnum];\n/**\n * @export\n */\nexport const GetMintAndBurnDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetMintAndBurnDirectionEnum = typeof GetMintAndBurnDirectionEnum[keyof typeof GetMintAndBurnDirectionEnum];\n/**\n * @export\n */\nexport const GetMintAndBurnTypeEnum = {\n All: 'all',\n Mint: 'mint',\n Burn: 'burn'\n} as const;\nexport type GetMintAndBurnTypeEnum = typeof GetMintAndBurnTypeEnum[keyof typeof GetMintAndBurnTypeEnum];\n/**\n * @export\n */\nexport const GetPricesDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetPricesDirectionEnum = typeof GetPricesDirectionEnum[keyof typeof GetPricesDirectionEnum];\n/**\n * @export\n */\nexport const GetTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetTokensSortByEnum = typeof GetTokensSortByEnum[keyof typeof GetTokensSortByEnum];\n/**\n * @export\n */\nexport const GetTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetTokensSortDirectionEnum = typeof GetTokensSortDirectionEnum[keyof typeof GetTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const ListTokenDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type ListTokenDirectionEnum = typeof ListTokenDirectionEnum[keyof typeof ListTokenDirectionEnum];\n/**\n * @export\n */\nexport const ListTokenSortEnum = {\n Asc: 'asc',\n Desc: 'desc'\n} as const;\nexport type ListTokenSortEnum = typeof ListTokenSortEnum[keyof typeof ListTokenSortEnum];\n/**\n * @export\n */\nexport const ListTokenSortByEnum = {\n H24VolumeInUsd: 'h24VolumeInUsd',\n H24PriceChangeRatio: 'h24PriceChangeRatio',\n H24Buys: 'h24Buys',\n H24Sells: 'h24Sells',\n H24Trades: 'h24Trades',\n H24Buyers: 'h24Buyers',\n H24Sellers: 'h24Sellers',\n H24BuyVolumeInUsd: 'h24BuyVolumeInUsd',\n H24SellVolumeInUsd: 'h24SellVolumeInUsd',\n H4VolumeInUsd: 'h4VolumeInUsd',\n H4PriceChangeRatio: 'h4PriceChangeRatio',\n H4Buys: 'h4Buys',\n H4Sells: 'h4Sells',\n H4Trades: 'h4Trades',\n H4Buyers: 'h4Buyers',\n H4Sellers: 'h4Sellers',\n H4BuyVolumeInUsd: 'h4BuyVolumeInUsd',\n H4SellVolumeInUsd: 'h4SellVolumeInUsd',\n H1VolumeInUsd: 'h1VolumeInUsd',\n H1PriceChangeRatio: 'h1PriceChangeRatio',\n H1Buys: 'h1Buys',\n H1Sells: 'h1Sells',\n H1Trades: 'h1Trades',\n H1Buyers: 'h1Buyers',\n H1Sellers: 'h1Sellers',\n H1BuyVolumeInUsd: 'h1BuyVolumeInUsd',\n H1SellVolumeInUsd: 'h1SellVolumeInUsd',\n M30VolumeInUsd: 'm30VolumeInUsd',\n M30PriceChangeRatio: 'm30PriceChangeRatio',\n M30Buys: 'm30Buys',\n M30Sells: 'm30Sells',\n M30Trades: 'm30Trades',\n M30Buyers: 'm30Buyers',\n M30Sellers: 'm30Sellers',\n M30BuyVolumeInUsd: 'm30BuyVolumeInUsd',\n M30SellVolumeInUsd: 'm30SellVolumeInUsd',\n M15VolumeInUsd: 'm15VolumeInUsd',\n M15PriceChangeRatio: 'm15PriceChangeRatio',\n M15Buys: 'm15Buys',\n M15Sells: 'm15Sells',\n M15Trades: 'm15Trades',\n M15Buyers: 'm15Buyers',\n M15Sellers: 'm15Sellers',\n M15BuyVolumeInUsd: 'm15BuyVolumeInUsd',\n M15SellVolumeInUsd: 'm15SellVolumeInUsd',\n M5VolumeInUsd: 'm5VolumeInUsd',\n M5PriceChangeRatio: 'm5PriceChangeRatio',\n M5Buys: 'm5Buys',\n M5Sells: 'm5Sells',\n M5Trades: 'm5Trades',\n M5Buyers: 'm5Buyers',\n M5Sellers: 'm5Sellers',\n M5BuyVolumeInUsd: 'm5BuyVolumeInUsd',\n M5SellVolumeInUsd: 'm5SellVolumeInUsd',\n M1VolumeInUsd: 'm1VolumeInUsd',\n M1PriceChangeRatio: 'm1PriceChangeRatio',\n M1Buys: 'm1Buys',\n M1Sells: 'm1Sells',\n M1Trades: 'm1Trades',\n M1Buyers: 'm1Buyers',\n M1Sellers: 'm1Sellers',\n M1BuyVolumeInUsd: 'm1BuyVolumeInUsd',\n M1SellVolumeInUsd: 'm1SellVolumeInUsd'\n} as const;\nexport type ListTokenSortByEnum = typeof ListTokenSortByEnum[keyof typeof ListTokenSortByEnum];\n/**\n * @export\n */\nexport const SearchSortEnum = {\n Asc: 'asc',\n Desc: 'desc'\n} as const;\nexport type SearchSortEnum = typeof SearchSortEnum[keyof typeof SearchSortEnum];\n/**\n * @export\n */\nexport const SearchSortByEnum = {\n MarketCapInUsd: 'marketCapInUsd',\n LiquidityInUsd: 'liquidityInUsd',\n PriceInUsd: 'priceInUsd',\n HolderCount: 'holderCount',\n H24VolumeInUsd: 'h24VolumeInUsd',\n H24Transactions: 'h24Transactions',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type SearchSortByEnum = typeof SearchSortByEnum[keyof typeof SearchSortByEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n GainersAndLosersPage,\n TopTradersPage,\n TradePage,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n GainersAndLosersPageFromJSON,\n GainersAndLosersPageToJSON,\n TopTradersPageFromJSON,\n TopTradersPageToJSON,\n TradePageFromJSON,\n TradePageToJSON,\n} from '../models/index';\n\nexport interface GetActivitiesRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: GetActivitiesDirectionEnum;\n tokenAddress?: string;\n walletAddress?: string;\n poolAddress?: string;\n beforeTimestamp?: number;\n afterTimestamp?: number;\n beforeBlockHeight?: number;\n afterBlockHeight?: number;\n transactionsSignature?: string;\n type?: GetActivitiesTypeEnum;\n}\n\nexport interface GetGainersLosersRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: GetGainersLosersDirectionEnum;\n type?: GetGainersLosersTypeEnum;\n sortBy?: GetGainersLosersSortByEnum;\n sortType?: GetGainersLosersSortTypeEnum;\n}\n\nexport interface GetTopTradersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetTopTradersDirectionEnum;\n timeFrame?: GetTopTradersTimeFrameEnum;\n sortType?: GetTopTradersSortTypeEnum;\n sortBy?: GetTopTradersSortByEnum;\n}\n\nexport interface GetTradesRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: GetTradesDirectionEnum;\n tokenAddress?: string;\n walletAddress?: string;\n poolAddress?: string;\n beforeTimestamp?: number;\n afterTimestamp?: number;\n beforeBlockHeight?: number;\n afterBlockHeight?: number;\n transactionsSignature?: string;\n type?: GetTradesTypeEnum;\n}\n\n/**\n * \n */\nexport class TradeApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.SUMMARY\n */\n async getActivitiesRaw(requestParameters: GetActivitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TradePage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getActivities().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n if (requestParameters['walletAddress'] != null) {\n queryParameters['walletAddress'] = requestParameters['walletAddress'];\n }\n\n if (requestParameters['poolAddress'] != null) {\n queryParameters['poolAddress'] = requestParameters['poolAddress'];\n }\n\n if (requestParameters['beforeTimestamp'] != null) {\n queryParameters['beforeTimestamp'] = requestParameters['beforeTimestamp'];\n }\n\n if (requestParameters['afterTimestamp'] != null) {\n queryParameters['afterTimestamp'] = requestParameters['afterTimestamp'];\n }\n\n if (requestParameters['beforeBlockHeight'] != null) {\n queryParameters['beforeBlockHeight'] = requestParameters['beforeBlockHeight'];\n }\n\n if (requestParameters['afterBlockHeight'] != null) {\n queryParameters['afterBlockHeight'] = requestParameters['afterBlockHeight'];\n }\n\n if (requestParameters['transactionsSignature'] != null) {\n queryParameters['transactionsSignature'] = requestParameters['transactionsSignature'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}/activities`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TradePageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.SUMMARY\n */\n async getActivities(requestParameters: GetActivitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TradePage> {\n const response = await this.getActivitiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.SUMMARY\n */\n async getGainersLosersRaw(requestParameters: GetGainersLosersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GainersAndLosersPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getGainersLosers().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortType'] != null) {\n queryParameters['sortType'] = requestParameters['sortType'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}/gainers-losers`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => GainersAndLosersPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.SUMMARY\n */\n async getGainersLosers(requestParameters: GetGainersLosersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GainersAndLosersPage> {\n const response = await this.getGainersLosersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOP_TRADERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOP_TRADERS.SUMMARY\n */\n async getTopTradersRaw(requestParameters: GetTopTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TopTradersPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTopTraders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getTopTraders().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n if (requestParameters['timeFrame'] != null) {\n queryParameters['timeFrame'] = requestParameters['timeFrame'];\n }\n\n if (requestParameters['sortType'] != null) {\n queryParameters['sortType'] = requestParameters['sortType'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}/top-traders`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TopTradersPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOP_TRADERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOP_TRADERS.SUMMARY\n */\n async getTopTraders(requestParameters: GetTopTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TopTradersPage> {\n const response = await this.getTopTradersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN.SUMMARY\n */\n async getTradesRaw(requestParameters: GetTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TradePage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTrades().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n if (requestParameters['walletAddress'] != null) {\n queryParameters['walletAddress'] = requestParameters['walletAddress'];\n }\n\n if (requestParameters['poolAddress'] != null) {\n queryParameters['poolAddress'] = requestParameters['poolAddress'];\n }\n\n if (requestParameters['beforeTimestamp'] != null) {\n queryParameters['beforeTimestamp'] = requestParameters['beforeTimestamp'];\n }\n\n if (requestParameters['afterTimestamp'] != null) {\n queryParameters['afterTimestamp'] = requestParameters['afterTimestamp'];\n }\n\n if (requestParameters['beforeBlockHeight'] != null) {\n queryParameters['beforeBlockHeight'] = requestParameters['beforeBlockHeight'];\n }\n\n if (requestParameters['afterBlockHeight'] != null) {\n queryParameters['afterBlockHeight'] = requestParameters['afterBlockHeight'];\n }\n\n if (requestParameters['transactionsSignature'] != null) {\n queryParameters['transactionsSignature'] = requestParameters['transactionsSignature'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TradePageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN.SUMMARY\n */\n async getTrades(requestParameters: GetTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TradePage> {\n const response = await this.getTradesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetActivitiesDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetActivitiesDirectionEnum = typeof GetActivitiesDirectionEnum[keyof typeof GetActivitiesDirectionEnum];\n/**\n * @export\n */\nexport const GetActivitiesTypeEnum = {\n Buy: 'BUY',\n Sell: 'SELL',\n LiquidityInitialize: 'LIQUIDITY_INITIALIZE',\n LiquidityAdd: 'LIQUIDITY_ADD',\n LiquidityRemove: 'LIQUIDITY_REMOVE',\n RedPacketCreate: 'RED_PACKET_CREATE',\n RedPacketClaim: 'RED_PACKET_CLAIM',\n RedPacketComplete: 'RED_PACKET_COMPLETE',\n RedPacketRefund: 'RED_PACKET_REFUND'\n} as const;\nexport type GetActivitiesTypeEnum = typeof GetActivitiesTypeEnum[keyof typeof GetActivitiesTypeEnum];\n/**\n * @export\n */\nexport const GetGainersLosersDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetGainersLosersDirectionEnum = typeof GetGainersLosersDirectionEnum[keyof typeof GetGainersLosersDirectionEnum];\n/**\n * @export\n */\nexport const GetGainersLosersTypeEnum = {\n _1W: '1W',\n Today: 'today',\n Yesterday: 'yesterday'\n} as const;\nexport type GetGainersLosersTypeEnum = typeof GetGainersLosersTypeEnum[keyof typeof GetGainersLosersTypeEnum];\n/**\n * @export\n */\nexport const GetGainersLosersSortByEnum = {\n PnL: 'PnL'\n} as const;\nexport type GetGainersLosersSortByEnum = typeof GetGainersLosersSortByEnum[keyof typeof GetGainersLosersSortByEnum];\n/**\n * @export\n */\nexport const GetGainersLosersSortTypeEnum = {\n Desc: 'desc',\n Asc: 'asc'\n} as const;\nexport type GetGainersLosersSortTypeEnum = typeof GetGainersLosersSortTypeEnum[keyof typeof GetGainersLosersSortTypeEnum];\n/**\n * @export\n */\nexport const GetTopTradersDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetTopTradersDirectionEnum = typeof GetTopTradersDirectionEnum[keyof typeof GetTopTradersDirectionEnum];\n/**\n * @export\n */\nexport const GetTopTradersTimeFrameEnum = {\n _30m: '30m',\n _1h: '1h',\n _2h: '2h',\n _4h: '4h',\n _6h: '6h',\n _8h: '8h',\n _12h: '12h',\n _24h: '24h'\n} as const;\nexport type GetTopTradersTimeFrameEnum = typeof GetTopTradersTimeFrameEnum[keyof typeof GetTopTradersTimeFrameEnum];\n/**\n * @export\n */\nexport const GetTopTradersSortTypeEnum = {\n Desc: 'desc',\n Asc: 'asc'\n} as const;\nexport type GetTopTradersSortTypeEnum = typeof GetTopTradersSortTypeEnum[keyof typeof GetTopTradersSortTypeEnum];\n/**\n * @export\n */\nexport const GetTopTradersSortByEnum = {\n Volume: 'volume',\n Trade: 'trade'\n} as const;\nexport type GetTopTradersSortByEnum = typeof GetTopTradersSortByEnum[keyof typeof GetTopTradersSortByEnum];\n/**\n * @export\n */\nexport const GetTradesDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetTradesDirectionEnum = typeof GetTradesDirectionEnum[keyof typeof GetTradesDirectionEnum];\n/**\n * @export\n */\nexport const GetTradesTypeEnum = {\n Buy: 'BUY',\n Sell: 'SELL'\n} as const;\nexport type GetTradesTypeEnum = typeof GetTradesTypeEnum[keyof typeof GetTradesTypeEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n EstimateGasLimitInput,\n EstimateGasLimitResponse,\n GasPriceResponse,\n SendTxInput,\n SendTxResponse,\n} from '../models/index';\nimport {\n EstimateGasLimitInputFromJSON,\n EstimateGasLimitInputToJSON,\n EstimateGasLimitResponseFromJSON,\n EstimateGasLimitResponseToJSON,\n GasPriceResponseFromJSON,\n GasPriceResponseToJSON,\n SendTxInputFromJSON,\n SendTxInputToJSON,\n SendTxResponseFromJSON,\n SendTxResponseToJSON,\n} from '../models/index';\n\nexport interface EstimateGasLimitRequest {\n chain: EstimateGasLimitChainEnum;\n estimateGasLimitInput: EstimateGasLimitInput;\n}\n\nexport interface GetGasPriceRequest {\n chain: GetGasPriceChainEnum;\n}\n\nexport interface SendRequest {\n chain: string;\n sendTxInput: SendTxInput;\n}\n\n/**\n * \n */\nexport class TransactionApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.DESCRIPTION\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.SUMMARY\n */\n async estimateGasLimitRaw(requestParameters: EstimateGasLimitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EstimateGasLimitResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling estimateGasLimit().'\n );\n }\n\n if (requestParameters['estimateGasLimitInput'] == null) {\n throw new runtime.RequiredError(\n 'estimateGasLimitInput',\n 'Required parameter \"estimateGasLimitInput\" was null or undefined when calling estimateGasLimit().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/transaction/{chain}/estimate-gas-limit`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EstimateGasLimitInputToJSON(requestParameters['estimateGasLimitInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EstimateGasLimitResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.DESCRIPTION\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.SUMMARY\n */\n async estimateGasLimit(requestParameters: EstimateGasLimitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EstimateGasLimitResponse> {\n const response = await this.estimateGasLimitRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.DESCRIPTION\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.SUMMARY\n */\n async getGasPriceRaw(requestParameters: GetGasPriceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GasPriceResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getGasPrice().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/transaction/{chain}/gas-price`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => GasPriceResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.DESCRIPTION\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.SUMMARY\n */\n async getGasPrice(requestParameters: GetGasPriceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GasPriceResponse> {\n const response = await this.getGasPriceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRANSACTION.SEND.DESCRIPTION\n * CONTROLLER.TRANSACTION.SEND.SUMMARY\n */\n async sendRaw(requestParameters: SendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SendTxResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling send().'\n );\n }\n\n if (requestParameters['sendTxInput'] == null) {\n throw new runtime.RequiredError(\n 'sendTxInput',\n 'Required parameter \"sendTxInput\" was null or undefined when calling send().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/transaction/{chain}/send`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SendTxInputToJSON(requestParameters['sendTxInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SendTxResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRANSACTION.SEND.DESCRIPTION\n * CONTROLLER.TRANSACTION.SEND.SUMMARY\n */\n async send(requestParameters: SendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SendTxResponse> {\n const response = await this.sendRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const EstimateGasLimitChainEnum = {\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync'\n} as const;\nexport type EstimateGasLimitChainEnum = typeof EstimateGasLimitChainEnum[keyof typeof EstimateGasLimitChainEnum];\n/**\n * @export\n */\nexport const GetGasPriceChainEnum = {\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync'\n} as const;\nexport type GetGasPriceChainEnum = typeof GetGasPriceChainEnum[keyof typeof GetGasPriceChainEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanResultDTO,\n CalculatePnlInput,\n ChainSymbol,\n WalletBalancesDTO,\n WalletPnlDTO,\n} from '../models/index';\nimport {\n BooleanResultDTOFromJSON,\n BooleanResultDTOToJSON,\n CalculatePnlInputFromJSON,\n CalculatePnlInputToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n WalletBalancesDTOFromJSON,\n WalletBalancesDTOToJSON,\n WalletPnlDTOFromJSON,\n WalletPnlDTOToJSON,\n} from '../models/index';\n\nexport interface CalculatePnlRequest {\n chain: ChainSymbol;\n walletAddress: string;\n calculatePnlInput: CalculatePnlInput;\n}\n\nexport interface GetBalanceRequest {\n chain: ChainSymbol;\n walletAddress: string;\n tokenAddress?: string;\n}\n\nexport interface GetPnlRequest {\n chain: ChainSymbol;\n walletAddress: string;\n tokenAddress?: string;\n}\n\nexport interface GetPnlStatsRequest {\n chain: ChainSymbol;\n walletAddress: string;\n}\n\n/**\n * \n */\nexport class WalletApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.WALLET.CALCULATE_PNL.DESCRIPTION\n * CONTROLLER.WALLET.CALCULATE_PNL.SUMMARY\n */\n async calculatePnlRaw(requestParameters: CalculatePnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BooleanResultDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling calculatePnl().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling calculatePnl().'\n );\n }\n\n if (requestParameters['calculatePnlInput'] == null) {\n throw new runtime.RequiredError(\n 'calculatePnlInput',\n 'Required parameter \"calculatePnlInput\" was null or undefined when calling calculatePnl().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}/calculate-pnl`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CalculatePnlInputToJSON(requestParameters['calculatePnlInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanResultDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.WALLET.CALCULATE_PNL.DESCRIPTION\n * CONTROLLER.WALLET.CALCULATE_PNL.SUMMARY\n */\n async calculatePnl(requestParameters: CalculatePnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BooleanResultDTO> {\n const response = await this.calculatePnlRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.WALLET.GET_BALANCES.DESCRIPTION\n * CONTROLLER.WALLET.GET_BALANCES.SUMMARY\n */\n async getBalanceRaw(requestParameters: GetBalanceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WalletBalancesDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getBalance().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling getBalance().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}/balance`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WalletBalancesDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.WALLET.GET_BALANCES.DESCRIPTION\n * CONTROLLER.WALLET.GET_BALANCES.SUMMARY\n */\n async getBalance(requestParameters: GetBalanceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WalletBalancesDTO> {\n const response = await this.getBalanceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL.SUMMARY\n */\n async getPnlRaw(requestParameters: GetPnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<WalletPnlDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPnl().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling getPnl().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WalletPnlDTOFromJSON));\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL.SUMMARY\n */\n async getPnl(requestParameters: GetPnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<WalletPnlDTO>> {\n const response = await this.getPnlRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL_STATS.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL_STATS.SUMMARY\n */\n async getPnlStatsRaw(requestParameters: GetPnlStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<WalletPnlDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPnlStats().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling getPnlStats().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}/stats`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WalletPnlDTOFromJSON));\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL_STATS.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL_STATS.SUMMARY\n */\n async getPnlStats(requestParameters: GetPnlStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<WalletPnlDTO>> {\n const response = await this.getPnlStatsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanResultDTO,\n ChainSymbol,\n} from '../models/index';\nimport {\n BooleanResultDTOFromJSON,\n BooleanResultDTOToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n} from '../models/index';\n\nexport interface WatchlistAddRequest {\n chain: ChainSymbol;\n walletAddress: string;\n}\n\n/**\n * \n */\nexport class WatchlistApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.WATCHLIST.ADD.DESCRIPTION\n * CONTROLLER.WATCHLIST.ADD.SUMMARY\n */\n async watchlistAddRaw(requestParameters: WatchlistAddRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BooleanResultDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling watchlistAdd().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling watchlistAdd().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/watchlist/{chain}/{walletAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanResultDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.WATCHLIST.ADD.DESCRIPTION\n * CONTROLLER.WATCHLIST.ADD.SUMMARY\n */\n async watchlistAdd(requestParameters: WatchlistAddRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BooleanResultDTO> {\n const response = await this.watchlistAddRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/stream/stream.ts","../src/stream/stream.fields.ts","../src/openapi/runtime.ts","../src/openapi/models/AddressExposure.ts","../src/openapi/models/AddressRiskResponseDTO.ts","../src/openapi/models/AlertDetail.ts","../src/openapi/models/OnChainActivity.ts","../src/openapi/models/AlteryaIdentification.ts","../src/openapi/models/BlockchainDTO.ts","../src/openapi/models/BlockchainLatestBlockDTO.ts","../src/openapi/models/BooleanResultDTO.ts","../src/openapi/models/CalculatePnlInput.ts","../src/openapi/models/Resolution.ts","../src/openapi/models/Candle.ts","../src/openapi/models/Chain.ts","../src/openapi/models/ChainalysisAddressIdentification.ts","../src/openapi/models/ClaimRedPacketInput.ts","../src/openapi/models/CreateEndpointInput.ts","../src/openapi/models/CreateRedPacketInput.ts","../src/openapi/models/CreateRedPacketReply.ts","../src/openapi/models/CreateTokenInput.ts","../src/openapi/models/CreateTokenReply.ts","../src/openapi/models/TokenMarketData.ts","../src/openapi/models/TokenExtraDTO.ts","../src/openapi/models/TokenCreatorsDTO.ts","../src/openapi/models/TokenSocialMediasDTO.ts","../src/openapi/models/TokenMetadata.ts","../src/openapi/models/TokenStat.ts","../src/openapi/models/DevTokenDTO.ts","../src/openapi/models/DexDTO.ts","../src/openapi/models/DexPage.ts","../src/openapi/models/DexPoolDTO.ts","../src/openapi/models/DirectExposureDetail.ts","../src/openapi/models/EndpointResponse.ts","../src/openapi/models/EndpointListResponse.ts","../src/openapi/models/EndpointOperationResponse.ts","../src/openapi/models/EndpointSecretResponse.ts","../src/openapi/models/EstimateGasLimitInput.ts","../src/openapi/models/EstimateGasLimitResponse.ts","../src/openapi/models/GainersAndLosersDTO.ts","../src/openapi/models/GainersAndLosersPage.ts","../src/openapi/models/GasPriceResponse.ts","../src/openapi/models/JobDTO.ts","../src/openapi/models/JobStreamingDTO.ts","../src/openapi/models/KYTRegisterTransferRequest.ts","../src/openapi/models/KYTRegisterWithdrawalRequest.ts","../src/openapi/models/KytAddressDTO.ts","../src/openapi/models/KytAddressPage.ts","../src/openapi/models/KytTransferDTO.ts","../src/openapi/models/KytTransferPage.ts","../src/openapi/models/KytWithdrawalDTO.ts","../src/openapi/models/KytWithdrawalPage.ts","../src/openapi/models/Link.ts","../src/openapi/models/MoonshotCreateTokenInput.ts","../src/openapi/models/MoonshotCreateTokenReply.ts","../src/openapi/models/MoonshotSubmitCreateToken200Response.ts","../src/openapi/models/MoonshotSubmitCreateTokenInput.ts","../src/openapi/models/NetworkIdentificationOrg.ts","../src/openapi/models/PumpCreateTokenInput.ts","../src/openapi/models/PumpCreateTokenReply.ts","../src/openapi/models/QuoteResponse.ts","../src/openapi/models/RedPacketClaimDTO.ts","../src/openapi/models/RedPacketClaimsPage.ts","../src/openapi/models/RedPacketDTO.ts","../src/openapi/models/RedPacketReply.ts","../src/openapi/models/RedPacketSendTxInput.ts","../src/openapi/models/RedPacketSendTxResponse.ts","../src/openapi/models/RedPacketsPage.ts","../src/openapi/models/RegisterAddressRequest.ts","../src/openapi/models/RegisterAddressResponseDTO.ts","../src/openapi/models/SendTxInput.ts","../src/openapi/models/SendTxResponse.ts","../src/openapi/models/SwapInput.ts","../src/openapi/models/SwapReply.ts","../src/openapi/models/SwapRouteInput.ts","../src/openapi/models/SwapRouteResponse.ts","../src/openapi/models/Token.ts","../src/openapi/models/TokenCreationDTO.ts","../src/openapi/models/TokenCreationPage.ts","../src/openapi/models/TokenHolder.ts","../src/openapi/models/TokenHolderPage.ts","../src/openapi/models/TokenListPage.ts","../src/openapi/models/TokenPage.ts","../src/openapi/models/TokenPriceDTO.ts","../src/openapi/models/TokenPricePage.ts","../src/openapi/models/TokenTrader.ts","../src/openapi/models/TopTradersDTO.ts","../src/openapi/models/TopTradersPage.ts","../src/openapi/models/TradeDetailDTO.ts","../src/openapi/models/TradePage.ts","../src/openapi/models/TransferAlertsResponseDTO.ts","../src/openapi/models/TransferBaseResponseDTO.ts","../src/openapi/models/TransferDirectExposureResponseDTO.ts","../src/openapi/models/TransferNetworkIdentificationsResponseDTO.ts","../src/openapi/models/UpdateEndpointInput.ts","../src/openapi/models/WalletBalanceDetailDTO.ts","../src/openapi/models/WalletBalancesDTO.ts","../src/openapi/models/WalletPnlDTO.ts","../src/openapi/models/WithdrawalAddressIdentificationsResponseDTO.ts","../src/openapi/models/WithdrawalBaseResponseDTO.ts","../src/openapi/models/WithdrawalFraudAssessmentResponseDTO.ts","../src/openapi/apis/BlockchainApi.ts","../src/openapi/apis/DefiSolanaMoonshotApi.ts","../src/openapi/apis/DefiSolanaPumpfunApi.ts","../src/openapi/apis/DexApi.ts","../src/openapi/apis/DexPoolApi.ts","../src/openapi/apis/EndpointApi.ts","../src/openapi/apis/IpfsApi.ts","../src/openapi/apis/JobsApi.ts","../src/openapi/apis/KYTApi.ts","../src/openapi/apis/RankingApi.ts","../src/openapi/apis/RedPacketApi.ts","../src/openapi/apis/TokenApi.ts","../src/openapi/apis/TradeApi.ts","../src/openapi/apis/TransactionApi.ts","../src/openapi/apis/WalletApi.ts","../src/openapi/apis/WatchlistApi.ts"],"sourcesContent":["import { StreamApi } from \"./stream\";\nimport {\n DexApi,\n Configuration,\n TransactionApi,\n DefiSolanaMoonshotApi,\n DefiSolanaPumpfunApi,\n DexPoolApi,\n TokenApi,\n RankingApi,\n TradeApi,\n WalletApi,\n RedPacketApi,\n IpfsApi,\n WatchlistApi,\n BlockchainApi,\n JobsApi,\n KYTApi,\n EndpointApi,\n Middleware,\n RequestContext,\n ResponseContext,\n} from \"./openapi\";\nimport { EventSourcePolyfill } from \"event-source-polyfill\";\n\nexport interface TokenProvider {\n getToken(): Promise<string> | string;\n}\n\nexport interface DexRequestContext {\n baseUrl: string;\n streamUrl: string;\n accessToken: string | TokenProvider;\n}\n\nexport interface DexAggregatorOptions {\n debug?: boolean;\n serverUrl?: string;\n streamUrl?: string;\n}\n\nexport const LIB_VERSION = \"0.1.20\";\n\nclass UserAgentMiddleware implements Middleware {\n public async pre(context: RequestContext): Promise<void> {\n if (!context.init.headers) {\n context.init.headers = {};\n }\n\n if (context.init.headers instanceof Headers) {\n context.init.headers.set(\"User-Agent\", `dex/${LIB_VERSION}/javascript`);\n } else {\n (context.init.headers as any)[\n \"User-Agent\"\n ] = `dex/${LIB_VERSION}/javascript`;\n }\n }\n\n public async post(context: ResponseContext): Promise<void> {}\n}\n\nexport class DexClient {\n public readonly requestCtx: DexRequestContext;\n public readonly _configuration: Configuration;\n public readonly dex: DexApi;\n public readonly dexpool: DexPoolApi;\n public readonly token: TokenApi;\n public readonly wallet: WalletApi;\n public readonly trade: TradeApi;\n public readonly ranking: RankingApi;\n public readonly transaction: TransactionApi;\n public readonly moonshot: DefiSolanaMoonshotApi;\n public readonly pumpfun: DefiSolanaPumpfunApi;\n public readonly stream: StreamApi;\n public readonly redPacket: RedPacketApi;\n public readonly ipfs: IpfsApi;\n public readonly blockchain: BlockchainApi;\n public readonly watchlist: WatchlistApi;\n public readonly jobs: JobsApi;\n public readonly kyt: KYTApi;\n public readonly endpoint: EndpointApi;\n public constructor(\n accessToken: string | TokenProvider,\n options: DexAggregatorOptions = {}\n ) {\n const baseUrl: string =\n options.serverUrl ?? \"https://api-dex.chainstream.io\";\n const streamUrl: string =\n options.streamUrl ??\n \"wss://realtime-dex.chainstream.io/connection/websocket\";\n\n const tokenProvider =\n typeof accessToken === \"string\"\n ? {\n getToken: () => accessToken,\n }\n : accessToken;\n\n this.requestCtx = { baseUrl, streamUrl, accessToken };\n\n const config = new Configuration({\n basePath: baseUrl,\n middleware: [new UserAgentMiddleware()],\n accessToken: async () => {\n return typeof accessToken === \"string\"\n ? accessToken\n : await accessToken.getToken();\n },\n headers: {\n \"User-Agent\": `dex/${LIB_VERSION}/javascript`,\n },\n });\n\n this._configuration = config;\n this.dex = new DexApi(config);\n this.dexpool = new DexPoolApi(config);\n this.token = new TokenApi(config);\n this.trade = new TradeApi(config);\n this.ranking = new RankingApi(config);\n this.transaction = new TransactionApi(config);\n this.moonshot = new DefiSolanaMoonshotApi(config);\n this.pumpfun = new DefiSolanaPumpfunApi(config);\n this.stream = new StreamApi(this.requestCtx);\n this.wallet = new WalletApi(config);\n this.redPacket = new RedPacketApi(config);\n this.ipfs = new IpfsApi(config);\n this.blockchain = new BlockchainApi(config);\n this.watchlist = new WatchlistApi(config);\n this.jobs = new JobsApi(config);\n this.kyt = new KYTApi(config);\n this.endpoint = new EndpointApi(config);\n this.stream.connect();\n }\n\n async waitForJob<T>(jobId: string, timeout = 60000): Promise<T> {\n const accessToken =\n typeof this.requestCtx.accessToken === \"string\"\n ? this.requestCtx.accessToken\n : await this.requestCtx.accessToken.getToken();\n\n return new Promise((resolve, reject) => {\n const sse = new EventSourcePolyfill(\n `${this.requestCtx.baseUrl}/jobs/${jobId}/streaming`,\n {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n }\n );\n\n const timeoutId = setTimeout(() => {\n sse.close();\n reject(new Error(`Job ${jobId} timed out after ${timeout}ms`));\n }, timeout);\n\n sse.onmessage = (event: any) => {\n try {\n console.log(\"event.data: \", event.data);\n const data = JSON.parse(event.data);\n\n if (data.status === \"error\") {\n sse.close();\n reject(new Error(`Error: ${data.message}`));\n } else if (data.status === \"completed\") {\n clearTimeout(timeoutId);\n sse.close();\n resolve(data as T);\n }\n } catch (e) {\n clearTimeout(timeoutId);\n sse.close();\n reject(new Error(\"Error parsing event data\"));\n }\n };\n\n sse.onopen = () => {\n console.log(\"SSE connection opened\");\n };\n\n sse.onerror = (error: any) => {\n if (error.message?.includes(\"No activity within\")) {\n console.log(\"SSE reconnecting due to inactivity...\");\n return;\n }\n\n clearTimeout(timeoutId);\n\n sse.close();\n reject(new Error(`Error in SSE connection: ${error}`));\n };\n });\n }\n}\n\nexport interface PostOptions {\n idempotencyKey?: string;\n}\n","import { Centrifuge, ConnectionTokenContext } from \"@chainstream-io/centrifuge\";\nimport { DexRequestContext } from \"..\";\nimport { Resolution } from \"../openapi\";\nimport { createRequire } from \"module\";\nimport {\n DexPoolBalance,\n NewToken,\n TokenMetadata,\n TokenHolder,\n TokenStat,\n TokenLiquidity,\n WalletBalance,\n TokenSupply,\n WalletPnl,\n ChannelType,\n TokenCandle,\n TradeActivity,\n WalletTokenPnl,\n RankingType,\n Dex,\n RankingTokenList,\n TokenBondingCurve,\n} from \"./stream.model\";\nimport { replaceFilterFields } from \"./stream.fields\";\n\nexport interface Unsubscrible {\n unsubscribe(): void;\n}\n\nexport class StreamApi {\n private realtimeClient: Centrifuge;\n private listenersMap: Map<string, Set<(data: any) => void>>;\n private getTokenValue: () => Promise<string>;\n\n constructor(context: DexRequestContext) {\n const realtimeEndpoint = context.streamUrl;\n\n this.getTokenValue = async () => {\n return typeof context.accessToken === \"string\"\n ? context.accessToken\n : await context.accessToken.getToken();\n };\n\n // Get WebSocket implementation - use 'ws' library in Node.js for HTTP headers support\n let wsImpl: any = undefined;\n if (typeof process !== 'undefined' && process.versions?.node) {\n try {\n const require = createRequire(import.meta.url);\n wsImpl = require('ws');\n } catch {\n // ws not available, fall back to global WebSocket\n }\n }\n if (!wsImpl && typeof WebSocket !== 'undefined') {\n wsImpl = WebSocket;\n }\n\n this.realtimeClient = new Centrifuge(realtimeEndpoint, {\n ...(wsImpl && { websocket: wsImpl }),\n getToken: async (_ctx: ConnectionTokenContext) => {\n const token = await this.getTokenValue();\n // Update HTTP headers for WebSocket handshake (Node.js only)\n this.realtimeClient.setHttpHeaders({\n Authorization: `Bearer ${token}`,\n \"User-Agent\": `chainstream-io/sdk/javascript`,\n });\n return token;\n },\n });\n\n this.realtimeClient\n .on(\"connected\", () => {\n console.log(\"[streaming] connected\");\n })\n .on(\"disconnected\", (err) => {\n console.warn(\"[streaming] disconnected\", err);\n })\n .on(\"error\", (err) => {\n console.error(\"[streaming] error: \", err);\n });\n\n this.listenersMap = new Map();\n }\n\n async connect() {\n // Set HTTP headers before initial connection\n const token = await this.getTokenValue();\n this.realtimeClient.setHttpHeaders({\n Authorization: `Bearer ${token}`,\n });\n this.realtimeClient.connect();\n }\n\n /**\n * Start batching commands for efficient bulk operations\n * All subscription commands after this call will be batched until stopBatching is called\n */\n startBatching() {\n this.realtimeClient.startBatching();\n }\n\n /**\n * Stop batching and flush all collected commands to the server\n * This will send all batched subscription commands in a single network request\n */\n stopBatching() {\n this.realtimeClient.stopBatching();\n }\n\n /**\n * Batch subscribe method that accepts a function containing subscription calls\n * All subscription methods called within the function will be batched\n * @param batchFunction Function containing subscription method calls\n * @returns Array of unsubscribe functions\n */\n batchSubscribe(batchFunction: () => Unsubscrible[]): Unsubscrible[] {\n // Start batching commands\n this.startBatching();\n\n // Execute the batch function (all subscription calls will be batched)\n const unsubscribles = batchFunction();\n\n // Stop batching and flush all commands\n this.stopBatching();\n\n return unsubscribles;\n }\n\n /**\n * Batch unsubscribe method that accepts an array of unsubscribe functions\n * All unsubscribe calls will be executed at once\n * @param unsubscribles Array of unsubscribe functions to execute\n */\n batchUnsubscribe(unsubscribles: Unsubscrible[]): void {\n if (!unsubscribles || unsubscribles.length === 0) {\n return;\n }\n\n // Execute all unsubscribe calls\n unsubscribles.forEach((unsub) => {\n if (unsub && typeof unsub.unsubscribe === \"function\") {\n unsub.unsubscribe();\n }\n });\n }\n\n subscribe<T = any>(channel: string, fn: (data: T) => void, filter?: string, methodName?: string): Unsubscrible {\n let sub = this.realtimeClient.getSubscription(channel);\n let listeners = this.listenersMap.get(channel);\n\n if (!sub) {\n listeners = new Set();\n this.listenersMap.set(channel, listeners);\n\n console.log(\"[xrealtime] create new sub: \", channel);\n\n // Process filter expression with method-specific field mappings\n const processedFilter = filter && methodName ? replaceFilterFields(filter, methodName) : filter;\n\n sub = this.realtimeClient.newSubscription(channel, {\n delta: \"fossil\",\n ...(processedFilter && { filter: processedFilter }),\n });\n\n sub\n .on(\"subscribed\", () => {\n console.log(\"[xrealtime] subscribed\", channel);\n })\n .on(\"unsubscribed\", () => {\n console.log(\"[xrealtime] unsubscribed\", channel);\n })\n .on(\"publication\", (ctx) => {\n // console.log('[xrealtime] publication, ctx.data: ', ctx.data);\n listeners?.forEach((it) => it(ctx.data));\n })\n .subscribe();\n }\n\n listeners?.add(fn);\n\n return new StreamUnsubscrible<T>(this, channel, fn);\n }\n\n unsubscribe<T = any>(channel: string, fn: (data: T) => void) {\n const listeners = this.listenersMap.get(channel);\n if (!listeners) {\n return;\n }\n\n listeners.delete(fn);\n console.log(\"unsubscribe, remain listeners: \", listeners.size);\n\n if (listeners.size === 0) {\n console.log(\"unsubscribe channel: \", channel);\n\n const sub = this.realtimeClient.getSubscription(channel);\n if (sub) {\n sub.unsubscribe();\n this.realtimeClient.removeSubscription(sub);\n }\n\n this.listenersMap.delete(channel);\n }\n }\n\n private formatScientificNotation(value: any): string {\n if (value === null || value === undefined) {\n return \"0\";\n }\n\n const strValue = value.toString();\n if (strValue.includes(\"e-\") || strValue.includes(\"E-\")) {\n return Number(value)\n .toFixed(20)\n .replace(/\\.?0+$/, \"\");\n }\n\n return strValue;\n }\n\n subscribeTokenCandles({\n chain,\n tokenAddress,\n resolution,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n resolution: Resolution;\n callback: (data: TokenCandle) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-candle:${chain}_${tokenAddress}_${resolution}`;\n return this.subscribe(channel, (data: any) => {\n callback({\n open: data.o,\n close: data.c,\n high: data.h,\n low: data.l,\n volume: data.v,\n resolution: data.r,\n time: data.t,\n number: data.n,\n });\n }, filter, \"subscribeTokenCandles\");\n }\n\n subscribeTokenStats({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenStat) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-stats:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n address: data.a,\n timestamp: data.t,\n buys1m: data.b1m,\n sells1m: data.s1m,\n buyers1m: data.be1m,\n sellers1m: data.se1m,\n buyVolumeInUsd1m: this.formatScientificNotation(data.bviu1m),\n sellVolumeInUsd1m: this.formatScientificNotation(data.sviu1m),\n price1m: this.formatScientificNotation(data.p1m),\n openInUsd1m: this.formatScientificNotation(data.oiu1m),\n closeInUsd1m: this.formatScientificNotation(data.ciu1m),\n\n buys5m: data.b5m,\n sells5m: data.s5m,\n buyers5m: data.be5m,\n sellers5m: data.se5m,\n buyVolumeInUsd5m: this.formatScientificNotation(data.bviu5m),\n sellVolumeInUsd5m: this.formatScientificNotation(data.sviu5m),\n price5m: this.formatScientificNotation(data.p5m),\n openInUsd5m: this.formatScientificNotation(data.oiu5m),\n closeInUsd5m: this.formatScientificNotation(data.ciu5m),\n\n buys15m: data.b15m,\n sells15m: data.s15m,\n buyers15m: data.be15m,\n sellers15m: data.se15m,\n buyVolumeInUsd15m: this.formatScientificNotation(data.bviu15m),\n sellVolumeInUsd15m: this.formatScientificNotation(data.sviu15m),\n price15m: this.formatScientificNotation(data.p15m),\n openInUsd15m: this.formatScientificNotation(data.oiu15m),\n closeInUsd15m: this.formatScientificNotation(data.ciu15m),\n\n buys30m: data.b30m,\n sells30m: data.s30m,\n buyers30m: data.be30m,\n sellers30m: data.se30m,\n buyVolumeInUsd30m: this.formatScientificNotation(data.bviu30m),\n sellVolumeInUsd30m: this.formatScientificNotation(data.sviu30m),\n price30m: this.formatScientificNotation(data.p30m),\n openInUsd30m: this.formatScientificNotation(data.oiu30m),\n closeInUsd30m: this.formatScientificNotation(data.ciu30m),\n\n buys1h: data.b1h,\n sells1h: data.s1h,\n buyers1h: data.be1h,\n sellers1h: data.se1h,\n buyVolumeInUsd1h: this.formatScientificNotation(data.bviu1h),\n sellVolumeInUsd1h: this.formatScientificNotation(data.sviu1h),\n price1h: this.formatScientificNotation(data.p1h),\n openInUsd1h: this.formatScientificNotation(data.oiu1h),\n closeInUsd1h: this.formatScientificNotation(data.ciu1h),\n\n buys4h: data.b4h,\n sells4h: data.s4h,\n buyers4h: data.be4h,\n sellers4h: data.se4h,\n buyVolumeInUsd4h: this.formatScientificNotation(data.bviu4h),\n sellVolumeInUsd4h: this.formatScientificNotation(data.sviu4h),\n price4h: this.formatScientificNotation(data.p4h),\n openInUsd4h: this.formatScientificNotation(data.oiu4h),\n closeInUsd4h: this.formatScientificNotation(data.ciu4h),\n\n buys24h: data.b24h,\n sells24h: data.s24h,\n buyers24h: data.be24h,\n sellers24h: data.se24h,\n buyVolumeInUsd24h: this.formatScientificNotation(data.bviu24h),\n sellVolumeInUsd24h: this.formatScientificNotation(data.sviu24h),\n price24h: this.formatScientificNotation(data.p24h),\n openInUsd24h: this.formatScientificNotation(data.oiu24h),\n closeInUsd24h: this.formatScientificNotation(data.ciu24h),\n\n price: this.formatScientificNotation(data.p),\n }), filter, \"subscribeTokenStats\");\n }\n\n subscribeTokenHolders({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenHolder) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-holding:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n holders: data.h,\n top100HoldersAmount: this.formatScientificNotation(data.t100a),\n top50HoldersAmount: this.formatScientificNotation(data.t50a),\n top10HoldersAmount: this.formatScientificNotation(data.t10a),\n top100Holders: data.t100h,\n top50Holders: data.t50h,\n top10Holders: data.t10h,\n top100HoldersRatio: this.formatScientificNotation(data.t100r),\n top50HoldersRatio: this.formatScientificNotation(data.t50r),\n top10HoldersRatio: this.formatScientificNotation(data.t10r),\n creatorsHolders: data.ch,\n creatorsAmount: this.formatScientificNotation(data.ca),\n creatorsRatio: this.formatScientificNotation(data.cr),\n balanceTagFreshHolders: data.btfh,\n balanceTagFreshAmount: this.formatScientificNotation(data.btfa),\n balanceTagFreshRatio: this.formatScientificNotation(data.btfr),\n balanceTagSandwichHolders: data.btsh,\n balanceTagSandwichAmount: this.formatScientificNotation(data.btsa),\n balanceTagSandwichRatio: this.formatScientificNotation(data.btsr),\n balanceTagBundleHolders: data.btbh,\n balanceTagBundleAmount: this.formatScientificNotation(data.btba),\n balanceTagBundleRatio: this.formatScientificNotation(data.btbr),\n balanceTagSniperHolders: data.btsnh,\n balanceTagSniperAmount: this.formatScientificNotation(data.btsna),\n balanceTagSniperRatio: this.formatScientificNotation(data.btsnr),\n balanceTagDevHolders: data.btdh,\n balanceTagDevAmount: this.formatScientificNotation(data.btda),\n balanceTagDevRatio: this.formatScientificNotation(data.btdr),\n balanceTagProHolders: data.btph,\n balanceTagProAmount: this.formatScientificNotation(data.btpa),\n balanceTagProRatio: this.formatScientificNotation(data.btpr),\n balanceTagInsiderHolders: data.btih,\n balanceTagInsiderAmount: this.formatScientificNotation(data.btia),\n balanceTagInsiderRatio: this.formatScientificNotation(data.btir),\n balanceTagSmartHolders: data.btsmh,\n balanceTagSmartAmount: this.formatScientificNotation(data.btsma),\n balanceTagSmartRatio: this.formatScientificNotation(data.btsmr),\n balanceTagKolHolders: data.btkh,\n balanceTagKolAmount: this.formatScientificNotation(data.btka),\n balanceTagKolRatio: this.formatScientificNotation(data.btkr),\n balanceTagPhishingHolders: data.btphh,\n balanceTagPhishingAmount: this.formatScientificNotation(data.btpha),\n balanceTagPhishingRatio: this.formatScientificNotation(data.btphr),\n balanceTagBluechipHolders: data.btblh,\n balanceTagBluechipAmount: this.formatScientificNotation(data.btbla),\n balanceTagBluechipRatio: this.formatScientificNotation(data.btblr),\n balanceTagRatHolders: data.btrh,\n balanceTagRatAmount: this.formatScientificNotation(data.btra),\n balanceTagRatRatio: this.formatScientificNotation(data.btrr),\n timestamp: data.ts,\n }), filter, \"subscribeTokenHolders\");\n }\n\n subscribeNewToken({\n chain,\n callback,\n filter,\n }: {\n chain: string;\n callback: (data: NewToken) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-new-token:${chain}`;\n return this.subscribe(channel, (data: any) => {\n const result: any = {\n tokenAddress: data.a,\n name: data.n,\n symbol: data.s,\n createdAtMs: data.cts,\n };\n \n if (data.dec) {\n result.decimals = data.dec;\n }\n \n if (data.lf) {\n result.launchFrom = {};\n if (data.lf.pa) { result.launchFrom.programAddress = data.lf.pa }\n if (data.lf.pf) { result.launchFrom.protocolFamily = data.lf.pf }\n if (data.lf.pn) { result.launchFrom.protocolName = data.lf.pn }\n }\n \n callback(result);\n }, filter, \"subscribeNewToken\");\n }\n\n subscribeNewTokensMetadata({\n chain,\n callback,\n }: {\n chain: string;\n callback: (data: TokenMetadata[]) => void;\n }): Unsubscrible {\n const channel = `dex-new-tokens-metadata:${chain}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n name: it.n,\n symbol: it.s,\n imageUrl: it.iu,\n description: it.de,\n socialMedia: (() => {\n const socialMedia: any = {};\n if (it.sm?.tw) { socialMedia.twitter = it.sm.tw }\n if (it.sm?.tg) { socialMedia.telegram = it.sm.tg }\n if (it.sm?.w) { socialMedia.website = it.sm.w }\n if (it.sm?.tt) { socialMedia.tiktok = it.sm.tt }\n if (it.sm?.dc) { socialMedia.discord = it.sm.dc }\n if (it.sm?.fb) { socialMedia.facebook = it.sm.fb }\n if (it.sm?.gh) { socialMedia.github = it.sm.gh }\n if (it.sm?.ig) { socialMedia.instagram = it.sm.ig }\n if (it.sm?.li) { socialMedia.linkedin = it.sm.li }\n if (it.sm?.md) { socialMedia.medium = it.sm.md }\n if (it.sm?.rd) { socialMedia.reddit = it.sm.rd }\n if (it.sm?.yt) { socialMedia.youtube = it.sm.yt }\n if (it.sm?.bb) { socialMedia.bitbucket = it.sm.bb }\n return socialMedia;\n })(),\n createdAtMs: it.cts,\n })\n )\n )\n );\n }\n\n // subscribeNewTokens({\n // chain,\n // callback,\n // }: {\n // chain: string;\n // callback: (data: NewToken[]) => void;\n // }): Unsubscrible {\n // const channel = `dex-new-tokens:${chain}`;\n // return this.subscribe(channel, (data: any[]) =>\n // callback(\n // data.map(\n // (it: any) =>\n // ({\n // tokenAddress: it.a,\n // name: it.n,\n // symbol: it.s,\n // description: it.de,\n // createdAtMs: it.cts,\n // }) as NewToken\n // )\n // )\n // );\n // }\n\n subscribeTokenSupply({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenSupply) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-supply:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n supply: data.s,\n marketCapInUsd: data.mc,\n timestamp: data.ts,\n }), filter, \"subscribeTokenSupply\");\n }\n\n subscribeTokenLiquidity({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TokenLiquidity) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-token-general-stat-num:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n metricType: data.t,\n value: data.v,\n timestamp: data.ts,\n }), filter, \"subscribeTokenLiquidity\");\n }\n\n subscribeRankingTokensLiquidity({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenLiquidity[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-general_stat_num-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n metricType: it.t,\n value: it.v,\n timestamp: it.ts,\n }) as TokenLiquidity\n )\n )\n );\n }\n\n subscribeRankingTokensList({\n chain,\n ranking_type,\n dex,\n callback,\n }: {\n chain: string;\n ranking_type: RankingType;\n dex?: Dex;\n callback: (data: RankingTokenList[]) => void;\n }): Unsubscrible {\n const channel = dex\n ? `dex-ranking-list:${chain}_${ranking_type}_${dex}`\n : `dex-ranking-list:${chain}_${ranking_type}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map((item: any) => {\n const result: RankingTokenList = {} as RankingTokenList;\n\n // TokenMetadata (t)\n if (item.t) {\n result.metadata = {\n tokenAddress: item.t.a,\n };\n if (item.t.n) { result.metadata.name = item.t.n }\n if (item.t.s) { result.metadata.symbol = item.t.s }\n if (item.t.iu) { result.metadata.imageUrl = item.t.iu }\n if (item.t.de) { result.metadata.description = item.t.de }\n if (item.t.d) { result.metadata.decimals = item.t.dec }\n if (item.t.cts) { result.metadata.createdAtMs = item.t.cts }\n if (item.t.lf) {\n result.metadata.launchFrom = {};\n if (item.t.lf.pa) { result.metadata.launchFrom.programAddress = item.t.lf.pa }\n if (item.t.lf.pf) { result.metadata.launchFrom.protocolFamily = item.t.lf.pf }\n if (item.t.lf.pn) { result.metadata.launchFrom.protocolName = item.t.lf.pn }\n }\n if (item.t.mt) {\n result.metadata.migratedTo = {};\n if (item.t.mt.pa) { result.metadata.migratedTo.programAddress = item.t.mt.pa }\n if (item.t.mt.pf) { result.metadata.migratedTo.protocolFamily = item.t.mt.pf }\n if (item.t.mt.pn) { result.metadata.migratedTo.protocolName = item.t.mt.pn }\n }\n if (item.t.sm) {\n result.metadata.socialMedia = {};\n if (item.t.sm.tw) { result.metadata.socialMedia.twitter = item.t.sm.tw }\n if (item.t.sm.tg) { result.metadata.socialMedia.telegram = item.t.sm.tg }\n if (item.t.sm.w) { result.metadata.socialMedia.website = item.t.sm.w }\n if (item.t.sm.tt) { result.metadata.socialMedia.tiktok = item.t.sm.tt }\n if (item.t.sm.dc) { result.metadata.socialMedia.discord = item.t.sm.dc }\n if (item.t.sm.fb) { result.metadata.socialMedia.facebook = item.t.sm.fb }\n if (item.t.sm.gh) { result.metadata.socialMedia.github = item.t.sm.gh }\n if (item.t.sm.ig) { result.metadata.socialMedia.instagram = item.t.sm.ig }\n if (item.t.sm.li) { result.metadata.socialMedia.linkedin = item.t.sm.li }\n if (item.t.sm.md) { result.metadata.socialMedia.medium = item.t.sm.md }\n if (item.t.sm.rd) { result.metadata.socialMedia.reddit = item.t.sm.rd }\n if (item.t.sm.yt) { result.metadata.socialMedia.youtube = item.t.sm.yt }\n if (item.t.sm.bb) { result.metadata.socialMedia.bitbucket = item.t.sm.bb }\n }\n if (item.t.cts) { result.metadata.createdAtMs = item.t.cts }\n }\n\n // TokenBondingCurve (bc)\n if (item.bc) {\n result.bondingCurve = {};\n if (item.bc.pr) { result.bondingCurve.progressRatio = this.formatScientificNotation(item.bc.pr) }\n }\n\n // TokenHolder (h)\n if (item.h) {\n result.holder = {\n tokenAddress: item.h.a,\n timestamp: item.h.ts || 0,\n };\n if (item.h.h) { result.holder.holders = item.h.h }\n if (item.h.t100a) { result.holder.top100HoldersAmount = this.formatScientificNotation(item.h.t100a) }\n if (item.h.t50a) { result.holder.top50HoldersAmount = this.formatScientificNotation(item.h.t50a) }\n if (item.h.t10a) { result.holder.top10HoldersAmount = this.formatScientificNotation(item.h.t10a) }\n if (item.h.t100h) { result.holder.top100Holders = item.h.t100h }\n if (item.h.t50h) { result.holder.top50Holders = item.h.t50h }\n if (item.h.t10h) { result.holder.top10Holders = item.h.t10h }\n if (item.h.t100r) { result.holder.top100HoldersRatio = this.formatScientificNotation(item.h.t100r) }\n if (item.h.t50r) { result.holder.top50HoldersRatio = this.formatScientificNotation(item.h.t50r) }\n if (item.h.t10r) { result.holder.top10HoldersRatio = this.formatScientificNotation(item.h.t10r) }\n if (item.h.ch) { result.holder.creatorsHolders = item.h.ch }\n if (item.h.ca) { result.holder.creatorsAmount = this.formatScientificNotation(item.h.ca) }\n if (item.h.cr) { result.holder.creatorsRatio = this.formatScientificNotation(item.h.cr) }\n if (item.h.btfh) { result.holder.balanceTagFreshHolders = item.h.btfh }\n if (item.h.btfa) { result.holder.balanceTagFreshAmount = this.formatScientificNotation(item.h.btfa) }\n if (item.h.btfr) { result.holder.balanceTagFreshRatio = this.formatScientificNotation(item.h.btfr) }\n if (item.h.btsh) { result.holder.balanceTagSandwichHolders = item.h.btsh }\n if (item.h.btsa) { result.holder.balanceTagSandwichAmount = this.formatScientificNotation(item.h.btsa) }\n if (item.h.btsr) { result.holder.balanceTagSandwichRatio = this.formatScientificNotation(item.h.btsr) }\n if (item.h.btbh) { result.holder.balanceTagBundleHolders = item.h.btbh }\n if (item.h.btba) { result.holder.balanceTagBundleAmount = this.formatScientificNotation(item.h.btba) }\n if (item.h.btbr) { result.holder.balanceTagBundleRatio = this.formatScientificNotation(item.h.btbr) }\n if (item.h.btsnh) { result.holder.balanceTagSniperHolders = item.h.btsnh }\n if (item.h.btsna) { result.holder.balanceTagSniperAmount = this.formatScientificNotation(item.h.btsna) }\n if (item.h.btsnr) { result.holder.balanceTagSniperRatio = this.formatScientificNotation(item.h.btsnr) }\n if (item.h.btdh) { result.holder.balanceTagDevHolders = item.h.btdh }\n if (item.h.btda) { result.holder.balanceTagDevAmount = this.formatScientificNotation(item.h.btda) }\n if (item.h.btdr) { result.holder.balanceTagDevRatio = this.formatScientificNotation(item.h.btdr) }\n if (item.h.btph) { result.holder.balanceTagProHolders = item.h.btph }\n if (item.h.btpa) { result.holder.balanceTagProAmount = this.formatScientificNotation(item.h.btpa) }\n if (item.h.btpr) { result.holder.balanceTagProRatio = this.formatScientificNotation(item.h.btpr) }\n if (item.h.btih) { result.holder.balanceTagInsiderHolders = item.h.btih }\n if (item.h.btia) { result.holder.balanceTagInsiderAmount = this.formatScientificNotation(item.h.btia) }\n if (item.h.btir) { result.holder.balanceTagInsiderRatio = this.formatScientificNotation(item.h.btir) }\n if (item.h.btsmh) { result.holder.balanceTagSmartHolders = item.h.btsmh }\n if (item.h.btsma) { result.holder.balanceTagSmartAmount = this.formatScientificNotation(item.h.btsma) }\n if (item.h.btsmr) { result.holder.balanceTagSmartRatio = this.formatScientificNotation(item.h.btsmr) }\n if (item.h.btkh) { result.holder.balanceTagKolHolders = item.h.btkh }\n if (item.h.btka) { result.holder.balanceTagKolAmount = this.formatScientificNotation(item.h.btka) }\n if (item.h.btkr) { result.holder.balanceTagKolRatio = this.formatScientificNotation(item.h.btkr) }\n if (item.h.btphh) { result.holder.balanceTagPhishingHolders = item.h.btphh }\n if (item.h.btpha) { result.holder.balanceTagPhishingAmount = this.formatScientificNotation(item.h.btpha) }\n if (item.h.btphr) { result.holder.balanceTagPhishingRatio = this.formatScientificNotation(item.h.btphr) }\n if (item.h.btblh) { result.holder.balanceTagBluechipHolders = item.h.btblh }\n if (item.h.btbla) { result.holder.balanceTagBluechipAmount = this.formatScientificNotation(item.h.btbla) }\n if (item.h.btblr) { result.holder.balanceTagBluechipRatio = this.formatScientificNotation(item.h.btblr) }\n if (item.h.btrh) { result.holder.balanceTagRatHolders = item.h.btrh }\n if (item.h.btra) { result.holder.balanceTagRatAmount = this.formatScientificNotation(item.h.btra) }\n if (item.h.btrr) { result.holder.balanceTagRatRatio = this.formatScientificNotation(item.h.btrr) }\n }\n\n // TokenSupply (s)\n if (item.s) {\n result.supply = {\n tokenAddress: item.s.a,\n timestamp: item.s.ts || 0,\n };\n if (item.s.s) { result.supply.supply = item.s.s }\n if (item.s.mc) { result.supply.marketCapInUsd = item.s.mc }\n }\n\n // TokenStat (ts)\n if (item.ts) {\n result.stat = {\n address: item.ts.a,\n timestamp: item.ts.t || 0,\n };\n\n // 1m data\n if (item.ts.b1m) { result.stat.buys1m = item.ts.b1m }\n if (item.ts.s1m) { result.stat.sells1m = item.ts.s1m }\n if (item.ts.be1m) { result.stat.buyers1m = item.ts.be1m }\n if (item.ts.se1m) { result.stat.sellers1m = item.ts.se1m }\n if (item.ts.bviu1m) { result.stat.buyVolumeInUsd1m = this.formatScientificNotation(item.ts.bviu1m) }\n if (item.ts.sviu1m) { result.stat.sellVolumeInUsd1m = this.formatScientificNotation(item.ts.sviu1m) }\n if (item.ts.p1m) { result.stat.price1m = this.formatScientificNotation(item.ts.p1m) }\n if (item.ts.oiu1m) { result.stat.openInUsd1m = this.formatScientificNotation(item.ts.oiu1m) }\n if (item.ts.ciu1m) { result.stat.closeInUsd1m = this.formatScientificNotation(item.ts.ciu1m) }\n\n // 5m data\n if (item.ts.b5m) { result.stat.buys5m = item.ts.b5m }\n if (item.ts.s5m) { result.stat.sells5m = item.ts.s5m }\n if (item.ts.be5m) { result.stat.buyers5m = item.ts.be5m }\n if (item.ts.se5m) { result.stat.sellers5m = item.ts.se5m }\n if (item.ts.bviu5m) { result.stat.buyVolumeInUsd5m = this.formatScientificNotation(item.ts.bviu5m) }\n if (item.ts.sviu5m) { result.stat.sellVolumeInUsd5m = this.formatScientificNotation(item.ts.sviu5m) }\n if (item.ts.p5m) { result.stat.price5m = this.formatScientificNotation(item.ts.p5m) }\n if (item.ts.oiu5m) { result.stat.openInUsd5m = this.formatScientificNotation(item.ts.oiu5m) }\n if (item.ts.ciu5m) { result.stat.closeInUsd5m = this.formatScientificNotation(item.ts.ciu5m) }\n\n // 15m data\n if (item.ts.b15m) { result.stat.buys15m = item.ts.b15m }\n if (item.ts.s15m) { result.stat.sells15m = item.ts.s15m }\n if (item.ts.be15m) { result.stat.buyers15m = item.ts.be15m }\n if (item.ts.se15m) { result.stat.sellers15m = item.ts.se15m }\n if (item.ts.bviu15m) { result.stat.buyVolumeInUsd15m = this.formatScientificNotation(item.ts.bviu15m) }\n if (item.ts.sviu15m) { result.stat.sellVolumeInUsd15m = this.formatScientificNotation(item.ts.sviu15m) }\n if (item.ts.p15m) { result.stat.price15m = this.formatScientificNotation(item.ts.p15m) }\n if (item.ts.oiu15m) { result.stat.openInUsd15m = this.formatScientificNotation(item.ts.oiu15m) }\n if (item.ts.ciu15m) { result.stat.closeInUsd15m = this.formatScientificNotation(item.ts.ciu15m) }\n\n // 30m data\n if (item.ts.b30m) { result.stat.buys30m = item.ts.b30m }\n if (item.ts.s30m) { result.stat.sells30m = item.ts.s30m }\n if (item.ts.be30m) { result.stat.buyers30m = item.ts.be30m }\n if (item.ts.se30m) { result.stat.sellers30m = item.ts.se30m }\n if (item.ts.bviu30m) { result.stat.buyVolumeInUsd30m = this.formatScientificNotation(item.ts.bviu30m) }\n if (item.ts.sviu30m) { result.stat.sellVolumeInUsd30m = this.formatScientificNotation(item.ts.sviu30m) }\n if (item.ts.p30m) { result.stat.price30m = this.formatScientificNotation(item.ts.p30m) }\n if (item.ts.oiu30m) { result.stat.openInUsd30m = this.formatScientificNotation(item.ts.oiu30m) }\n if (item.ts.ciu30m) { result.stat.closeInUsd30m = this.formatScientificNotation(item.ts.ciu30m) }\n\n // 1h data\n if (item.ts.b1h) { result.stat.buys1h = item.ts.b1h }\n if (item.ts.s1h) { result.stat.sells1h = item.ts.s1h }\n if (item.ts.be1h) { result.stat.buyers1h = item.ts.be1h }\n if (item.ts.se1h) { result.stat.sellers1h = item.ts.se1h }\n if (item.ts.bviu1h) { result.stat.buyVolumeInUsd1h = this.formatScientificNotation(item.ts.bviu1h) }\n if (item.ts.sviu1h) { result.stat.sellVolumeInUsd1h = this.formatScientificNotation(item.ts.sviu1h) }\n if (item.ts.p1h) { result.stat.price1h = this.formatScientificNotation(item.ts.p1h) }\n if (item.ts.oiu1h) { result.stat.openInUsd1h = this.formatScientificNotation(item.ts.oiu1h) }\n if (item.ts.ciu1h) { result.stat.closeInUsd1h = this.formatScientificNotation(item.ts.ciu1h) }\n\n // 4h data\n if (item.ts.b4h) { result.stat.buys4h = item.ts.b4h }\n if (item.ts.s4h) { result.stat.sells4h = item.ts.s4h }\n if (item.ts.be4h) { result.stat.buyers4h = item.ts.be4h }\n if (item.ts.se4h) { result.stat.sellers4h = item.ts.se4h }\n if (item.ts.bviu4h) { result.stat.buyVolumeInUsd4h = this.formatScientificNotation(item.ts.bviu4h) }\n if (item.ts.sviu4h) { result.stat.sellVolumeInUsd4h = this.formatScientificNotation(item.ts.sviu4h) }\n if (item.ts.p4h) { result.stat.price4h = this.formatScientificNotation(item.ts.p4h) }\n if (item.ts.oiu4h) { result.stat.openInUsd4h = this.formatScientificNotation(item.ts.oiu4h) }\n if (item.ts.ciu4h) { result.stat.closeInUsd4h = this.formatScientificNotation(item.ts.ciu4h) }\n\n // 24h data\n if (item.ts.b24h) { result.stat.buys24h = item.ts.b24h }\n if (item.ts.s24h) { result.stat.sells24h = item.ts.s24h }\n if (item.ts.be24h) { result.stat.buyers24h = item.ts.be24h }\n if (item.ts.se24h) { result.stat.sellers24h = item.ts.se24h }\n if (item.ts.bviu24h) { result.stat.buyVolumeInUsd24h = this.formatScientificNotation(item.ts.bviu24h) }\n if (item.ts.sviu24h) { result.stat.sellVolumeInUsd24h = this.formatScientificNotation(item.ts.sviu24h) }\n if (item.ts.p24h) { result.stat.price24h = this.formatScientificNotation(item.ts.p24h) }\n if (item.ts.oiu24h) { result.stat.openInUsd24h = this.formatScientificNotation(item.ts.oiu24h) }\n if (item.ts.ciu24h) { result.stat.closeInUsd24h = this.formatScientificNotation(item.ts.ciu24h) }\n\n // Current price\n if (item.ts.p) { result.stat.price = this.formatScientificNotation(item.ts.p) }\n }\n\n return result;\n })\n )\n );\n }\n\n subscribeRankingTokensStats({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenStat[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-stats-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n address: it.a,\n timestamp: it.t,\n buys1m: it.b1m,\n sells1m: it.s1m,\n buyers1m: it.be1m,\n sellers1m: it.se1m,\n buyVolumeInUsd1m: this.formatScientificNotation(it.bviu1m),\n sellVolumeInUsd1m: this.formatScientificNotation(it.sviu1m),\n price1m: this.formatScientificNotation(it.p1m),\n openInUsd1m: this.formatScientificNotation(it.oiu1m),\n closeInUsd1m: this.formatScientificNotation(it.ciu1m),\n buys5m: it.b5m,\n sells5m: it.s5m,\n buyers5m: it.be5m,\n sellers5m: it.se5m,\n buyVolumeInUsd5m: this.formatScientificNotation(it.bviu5m),\n sellVolumeInUsd5m: this.formatScientificNotation(it.sviu5m),\n price5m: this.formatScientificNotation(it.p5m),\n openInUsd5m: this.formatScientificNotation(it.oiu5m),\n closeInUsd5m: this.formatScientificNotation(it.ciu5m),\n buys15m: it.b15m,\n sells15m: it.s15m,\n buyers15m: it.be15m,\n sellers15m: it.se15m,\n buyVolumeInUsd15m: this.formatScientificNotation(it.bviu15m),\n sellVolumeInUsd15m: this.formatScientificNotation(it.sviu15m),\n price15m: this.formatScientificNotation(it.p15m),\n openInUsd15m: this.formatScientificNotation(it.oiu15m),\n closeInUsd15m: this.formatScientificNotation(it.ciu15m),\n buys30m: it.b30m,\n sells30m: it.s30m,\n buyers30m: it.be30m,\n sellers30m: it.se30m,\n buyVolumeInUsd30m: this.formatScientificNotation(it.bviu30m),\n sellVolumeInUsd30m: this.formatScientificNotation(it.sviu30m),\n price30m: this.formatScientificNotation(it.p30m),\n openInUsd30m: this.formatScientificNotation(it.oiu30m),\n closeInUsd30m: this.formatScientificNotation(it.ciu30m),\n buys1h: it.b1h,\n sells1h: it.s1h,\n buyers1h: it.be1h,\n sellers1h: it.se1h,\n buyVolumeInUsd1h: this.formatScientificNotation(it.bviu1h),\n sellVolumeInUsd1h: this.formatScientificNotation(it.sviu1h),\n price1h: this.formatScientificNotation(it.p1h),\n openInUsd1h: this.formatScientificNotation(it.oiu1h),\n closeInUsd1h: this.formatScientificNotation(it.ciu1h),\n buys4h: it.b4h,\n sells4h: it.s4h,\n buyers4h: it.be4h,\n sellers4h: it.se4h,\n buyVolumeInUsd4h: this.formatScientificNotation(it.bviu4h),\n sellVolumeInUsd4h: this.formatScientificNotation(it.sviu4h),\n price4h: this.formatScientificNotation(it.p4h),\n openInUsd4h: this.formatScientificNotation(it.oiu4h),\n closeInUsd4h: this.formatScientificNotation(it.ciu4h),\n buys24h: it.b24h,\n sells24h: it.s24h,\n buyers24h: it.be24h,\n sellers24h: it.se24h,\n buyVolumeInUsd24h: this.formatScientificNotation(it.bviu24h),\n sellVolumeInUsd24h: this.formatScientificNotation(it.sviu24h),\n price24h: this.formatScientificNotation(it.p24h),\n price: this.formatScientificNotation(it.p),\n openInUsd24h: this.formatScientificNotation(it.oiu24h),\n closeInUsd24h: this.formatScientificNotation(it.ciu24h),\n }) as TokenStat\n )\n )\n );\n }\n\n subscribeRankingTokensHolders({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenHolder[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-holding-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n holders: it.h,\n top100HoldersAmount: this.formatScientificNotation(it.t100a),\n top50HoldersAmount: this.formatScientificNotation(it.t50a),\n top10HoldersAmount: this.formatScientificNotation(it.t10a),\n top100Holders: it.t100h,\n top50Holders: it.t50h,\n top10Holders: it.t10h,\n top100HoldersRatio: this.formatScientificNotation(it.t100r),\n top50HoldersRatio: this.formatScientificNotation(it.t50r),\n top10HoldersRatio: this.formatScientificNotation(it.t10r),\n creatorsHolders: it.ch,\n creatorsAmount: this.formatScientificNotation(it.ca),\n creatorsRatio: this.formatScientificNotation(it.cr),\n balanceTagFreshHolders: it.btfh,\n balanceTagFreshAmount: this.formatScientificNotation(it.btfa),\n balanceTagFreshRatio: this.formatScientificNotation(it.btfr),\n balanceTagSandwichHolders: it.btsh,\n balanceTagSandwichAmount: this.formatScientificNotation(it.btsa),\n balanceTagSandwichRatio: this.formatScientificNotation(it.btsr),\n balanceTagBundleHolders: it.btbh,\n balanceTagBundleAmount: this.formatScientificNotation(it.btba),\n balanceTagBundleRatio: this.formatScientificNotation(it.btbr),\n balanceTagSniperHolders: it.btsnh,\n balanceTagSniperAmount: this.formatScientificNotation(it.btsna),\n balanceTagSniperRatio: this.formatScientificNotation(it.btsnr),\n balanceTagDevHolders: it.btdh,\n balanceTagDevAmount: this.formatScientificNotation(it.btda),\n balanceTagDevRatio: this.formatScientificNotation(it.btdr),\n balanceTagProHolders: it.btph,\n balanceTagProAmount: this.formatScientificNotation(it.btpa),\n balanceTagProRatio: this.formatScientificNotation(it.btpr),\n balanceTagInsiderHolders: it.btih,\n balanceTagInsiderAmount: this.formatScientificNotation(it.btia),\n balanceTagInsiderRatio: this.formatScientificNotation(it.btir),\n balanceTagSmartHolders: it.btsmh,\n balanceTagSmartAmount: this.formatScientificNotation(it.btsma),\n balanceTagSmartRatio: this.formatScientificNotation(it.btsmr),\n balanceTagKolHolders: it.btkh,\n balanceTagKolAmount: this.formatScientificNotation(it.btka),\n balanceTagKolRatio: this.formatScientificNotation(it.btkr),\n balanceTagPhishingHolders: it.btphh,\n balanceTagPhishingAmount: this.formatScientificNotation(it.btpha),\n balanceTagPhishingRatio: this.formatScientificNotation(it.btphr),\n balanceTagBluechipHolders: it.btblh,\n balanceTagBluechipAmount: this.formatScientificNotation(it.btbla),\n balanceTagBluechipRatio: this.formatScientificNotation(it.btblr),\n balanceTagRatHolders: it.btrh,\n balanceTagRatAmount: this.formatScientificNotation(it.btra),\n balanceTagRatRatio: this.formatScientificNotation(it.btrr),\n timestamp: it.ts,\n }) as TokenHolder\n )\n )\n );\n }\n\n subscribeRankingTokensSupply({\n chain,\n channelType,\n callback,\n }: {\n chain: string;\n channelType: ChannelType;\n callback: (data: TokenSupply[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-supply-list:${chain}_${channelType}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n supply: it.s,\n marketCapInUsd: it.mc,\n timestamp: it.ts,\n })\n )\n )\n );\n }\n\n subscribeRankingTokensBondingCurve({\n chain,\n callback,\n }: {\n chain: string;\n callback: (data: TokenBondingCurve[]) => void;\n }): Unsubscrible {\n const channel = `dex-ranking-token-bounding-curve-list:${chain}_new`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n tokenAddress: it.a,\n progressRatio: it.pr,\n })\n )\n )\n );\n }\n\n // subscribeTokenTrades({\n // chain,\n // tokenAddress,\n // callback,\n // }: {\n // chain: string;\n // tokenAddress: string;\n // callback: (data: TradeEvent[]) => void;\n // }): Unsubscrible {\n // const channel = `dex-trades:${chain}_${tokenAddress}`;\n // return this.subscribe(channel, (data: any[]) =>\n // callback(\n // data?.map(\n // (it: any) =>\n // ({\n // maker: it.bwa,\n // baseAmount: it.ba,\n // quoteAmount: it.sa,\n // // quoteSymbol: ,\n // quoteAddress: it.swa,\n // amountInUsd: it.baiu,\n // timestamp: it.t,\n // event: it.k,\n // txHash: it.h,\n // // priceInUsd: ,\n // // id: ,\n // // buyCostUsd: it.,\n // tokenAddress: it.a,\n // }) as TradeEvent\n // )\n // )\n // );\n // }\n\n subscribeWalletBalance({\n chain,\n walletAddress,\n callback,\n filter,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: WalletBalance[]) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-wallet-balance:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback([\n {\n walletAddress: data.a,\n tokenAddress: data.ta,\n tokenPriceInUsd: data.tpiu,\n balance: data.b,\n timestamp: data.t,\n },\n ]), filter, \"subscribeWalletBalance\");\n }\n\n subscribeWalletPnl({\n chain,\n walletAddress,\n callback,\n filter,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: WalletTokenPnl) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-wallet-token-pnl:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n walletAddress: data.a,\n tokenAddress: data.ta,\n tokenPriceInUsd: data.tpiu,\n timestamp: data.t,\n opentime: data.ot,\n lasttime: data.lt,\n closetime: data.ct,\n buyAmount: data.ba,\n buyAmountInUsd: data.baiu,\n buyCount: data.bs,\n buyCount30d: data.bs30d,\n buyCount7d: data.bs7d,\n sellAmount: data.sa,\n sellAmountInUsd: data.saiu,\n sellCount: data.ss,\n sellCount30d: data.ss30d,\n sellCount7d: data.ss7d,\n heldDurationTimestamp: data.hdts,\n averageBuyPriceInUsd: data.abpiu,\n averageSellPriceInUsd: data.aspiu,\n unrealizedProfitInUsd: data.upiu,\n unrealizedProfitRatio: data.upr,\n realizedProfitInUsd: data.rpiu,\n realizedProfitRatio: data.rpr,\n totalRealizedProfitInUsd: data.trpiu,\n totalRealizedProfitRatio: data.trr,\n }), filter, \"subscribeWalletPnl\");\n }\n\n subscribeWalletPnlList({\n chain,\n walletAddress,\n callback,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: WalletPnl[]) => void;\n }): Unsubscrible {\n const channel = `dex-wallet-pnl-list:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any[]) =>\n callback(\n data?.map(\n (it: any) =>\n ({\n walletAddress: it.a,\n buys: it.bs,\n buyAmount: it.ba,\n buyAmountInUsd: it.baiu,\n averageBuyPriceInUsd: it.abpiu,\n sellAmount: it.sa,\n sellAmountInUsd: it.saiu,\n sells: it.ss,\n wins: it.ws,\n winRatio: it.wr,\n pnlInUsd: it.piu,\n averagePnlInUsd: it.apiu,\n pnlRatio: it.pr,\n profitableDays: it.pd,\n losingDays: it.ld,\n tokens: it.ts,\n resolution: it.r,\n }) as WalletPnl\n )\n )\n );\n }\n\n subscribeTokenTrade({\n chain,\n tokenAddress,\n callback,\n filter,\n }: {\n chain: string;\n tokenAddress: string;\n callback: (data: TradeActivity) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-trade:${chain}_${tokenAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n timestamp: data.t,\n kind: data.k,\n buyAmount: data.ba,\n buyAmountInUsd: data.baiu,\n buyTokenAddress: data.btma,\n buyTokenName: data.btn,\n buyTokenSymbol: data.bts,\n buyWalletAddress: data.bwa,\n sellAmount: data.sa,\n sellAmountInUsd: data.saiu,\n sellTokenAddress: data.stma,\n sellTokenName: data.stn,\n sellTokenSymbol: data.sts,\n sellWalletAddress: data.swa,\n txHash: data.h,\n }), filter, \"subscribeTokenTrades\");\n }\n\n subscribeWalletTrade({\n chain,\n walletAddress,\n callback,\n filter,\n }: {\n chain: string;\n walletAddress: string;\n callback: (data: TradeActivity) => void;\n filter?: string;\n }): Unsubscrible {\n const channel = `dex-wallet-trade:${chain}_${walletAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n tokenAddress: data.a,\n timestamp: data.t,\n kind: data.k,\n buyAmount: data.ba,\n buyAmountInUsd: data.baiu,\n buyTokenAddress: data.btma,\n buyTokenName: data.btn,\n buyTokenSymbol: data.bts,\n buyWalletAddress: data.bwa,\n sellAmount: data.sa,\n sellAmountInUsd: data.saiu,\n sellTokenAddress: data.stma,\n sellTokenName: data.stn,\n sellTokenSymbol: data.sts,\n sellWalletAddress: data.swa,\n txHash: data.h,\n }), filter, \"subscribeTokenTrades\");\n }\n\n subscribeDexPoolBalance({\n chain,\n poolAddress,\n callback,\n }: {\n chain: string;\n poolAddress: string;\n callback: (data: DexPoolBalance) => void;\n }): Unsubscrible {\n const channel = `dex-pool-balance:${chain}_${poolAddress}`;\n return this.subscribe(channel, (data: any) =>\n callback({\n poolAddress: data.a,\n tokenAAddress: data.taa,\n tokenALiquidityInUsd: data.taliu,\n tokenBAddress: data.tba,\n tokenBLiquidityInUsd: data.tbliu,\n })\n );\n }\n}\nclass StreamUnsubscrible<T> {\n constructor(\n private readonly streamApi: StreamApi,\n private readonly channel: string,\n private readonly fn: (data: T) => void\n ) { }\n\n unsubscribe() {\n this.streamApi.unsubscribe(this.channel, this.fn);\n }\n}","/**\n * Field mappings for CEL filter expressions\n * Maps human-readable field names to short field names used in the API\n * Organized by subscription method to handle field name conflicts\n */\n\nexport interface FieldMapping {\n readonly [key: string]: string;\n}\n\nexport interface MethodFieldMappings {\n readonly [methodName: string]: FieldMapping;\n}\n\n/**\n * Field mappings organized by subscription method\n * Each method can have its own field mappings to handle conflicts\n */\nexport const CEL_FIELD_MAPPINGS: MethodFieldMappings = {\n // Wallet balance subscription fields\n \"subscribeWalletBalance\": {\n \"walletAddress\": \"a\",\n \"tokenAddress\": \"ta\",\n \"tokenPriceInUsd\": \"tpiu\",\n \"balance\": \"b\",\n \"timestamp\": \"t\",\n },\n\n // Token candles subscription fields\n \"subscribeTokenCandles\": {\n \"open\": \"o\",\n \"close\": \"c\",\n \"high\": \"h\",\n \"low\": \"l\",\n \"volume\": \"v\",\n \"resolution\": \"r\",\n \"time\": \"t\",\n \"number\": \"n\",\n },\n\n // Token stats subscription fields\n \"subscribeTokenStats\": {\n \"address\": \"a\",\n \"timestamp\": \"t\",\n \"buys1m\": \"b1m\",\n \"sells1m\": \"s1m\",\n \"buyers1m\": \"be1m\",\n \"sellers1m\": \"se1m\",\n \"buyVolumeInUsd1m\": \"bviu1m\",\n \"sellVolumeInUsd1m\": \"sviu1m\",\n \"price1m\": \"p1m\",\n \"openInUsd1m\": \"oiu1m\",\n \"closeInUsd1m\": \"ciu1m\",\n \"buys5m\": \"b5m\",\n \"sells5m\": \"s5m\",\n \"buyers5m\": \"be5m\",\n \"sellers5m\": \"se5m\",\n \"buyVolumeInUsd5m\": \"bviu5m\",\n \"sellVolumeInUsd5m\": \"sviu5m\",\n \"price5m\": \"p5m\",\n \"openInUsd5m\": \"oiu5m\",\n \"closeInUsd5m\": \"ciu5m\",\n \"buys15m\": \"b15m\",\n \"sells15m\": \"s15m\",\n \"buyers15m\": \"be15m\",\n \"sellers15m\": \"se15m\",\n \"buyVolumeInUsd15m\": \"bviu15m\",\n \"sellVolumeInUsd15m\": \"sviu15m\",\n \"price15m\": \"p15m\",\n \"openInUsd15m\": \"oiu15m\",\n \"closeInUsd15m\": \"ciu15m\",\n \"buys30m\": \"b30m\",\n \"sells30m\": \"s30m\",\n \"buyers30m\": \"be30m\",\n \"sellers30m\": \"se30m\",\n \"buyVolumeInUsd30m\": \"bviu30m\",\n \"sellVolumeInUsd30m\": \"sviu30m\",\n \"price30m\": \"p30m\",\n \"openInUsd30m\": \"oiu30m\",\n \"closeInUsd30m\": \"ciu30m\",\n \"buys1h\": \"b1h\",\n \"sells1h\": \"s1h\",\n \"buyers1h\": \"be1h\",\n \"sellers1h\": \"se1h\",\n \"buyVolumeInUsd1h\": \"bviu1h\",\n \"sellVolumeInUsd1h\": \"sviu1h\",\n \"price1h\": \"p1h\",\n \"openInUsd1h\": \"oiu1h\",\n \"closeInUsd1h\": \"ciu1h\",\n \"buys4h\": \"b4h\",\n \"sells4h\": \"s4h\",\n \"buyers4h\": \"be4h\",\n \"sellers4h\": \"se4h\",\n \"buyVolumeInUsd4h\": \"bviu4h\",\n \"sellVolumeInUsd4h\": \"sviu4h\",\n \"price4h\": \"p4h\",\n \"openInUsd4h\": \"oiu4h\",\n \"closeInUsd4h\": \"ciu4h\",\n \"buys24h\": \"b24h\",\n \"sells24h\": \"s24h\",\n \"buyers24h\": \"be24h\",\n \"sellers24h\": \"se24h\",\n \"buyVolumeInUsd24h\": \"bviu24h\",\n \"sellVolumeInUsd24h\": \"sviu24h\",\n \"price24h\": \"p24h\",\n \"price\": \"p\",\n \"openInUsd24h\": \"oiu24h\",\n \"closeInUsd24h\": \"ciu24h\",\n },\n\n // Token holder subscription fields\n \"subscribeTokenHolders\": {\n \"tokenAddress\": \"a\",\n \"holders\": \"h\",\n \"top100HoldersAmount\": \"t100a\",\n \"top50HoldersAmount\": \"t50a\",\n \"top10HoldersAmount\": \"t10a\",\n \"top100Holders\": \"t100h\",\n \"top50Holders\": \"t50h\",\n \"top10Holders\": \"t10h\",\n \"top100HoldersRatio\": \"t100r\",\n \"top50HoldersRatio\": \"t50r\",\n \"top10HoldersRatio\": \"t10r\",\n \"creatorsHolders\": \"ch\",\n \"creatorsAmount\": \"ca\",\n \"creatorsRatio\": \"cr\",\n \"balanceTagFreshHolders\": \"btfh\",\n \"balanceTagFreshAmount\": \"btfa\",\n \"balanceTagFreshRatio\": \"btfr\",\n \"balanceTagSandwichHolders\": \"btsh\",\n \"balanceTagSandwichAmount\": \"btsa\",\n \"balanceTagSandwichRatio\": \"btsr\",\n \"balanceTagBundleHolders\": \"btbh\",\n \"balanceTagBundleAmount\": \"btba\",\n \"balanceTagBundleRatio\": \"btbr\",\n \"balanceTagSniperHolders\": \"btsnh\",\n \"balanceTagSniperAmount\": \"btsna\",\n \"balanceTagSniperRatio\": \"btsnr\",\n \"balanceTagDevHolders\": \"btdh\",\n \"balanceTagDevAmount\": \"btda\",\n \"balanceTagDevRatio\": \"btdr\",\n \"balanceTagProHolders\": \"btph\",\n \"balanceTagProAmount\": \"btpa\",\n \"balanceTagProRatio\": \"btpr\",\n \"balanceTagInsiderHolders\": \"btih\",\n \"balanceTagInsiderAmount\": \"btia\",\n \"balanceTagInsiderRatio\": \"btir\",\n \"balanceTagSmartHolders\": \"btsmh\",\n \"balanceTagSmartAmount\": \"btsma\",\n \"balanceTagSmartRatio\": \"btsmr\",\n \"balanceTagKolHolders\": \"btkh\",\n \"balanceTagKolAmount\": \"btka\",\n \"balanceTagKolRatio\": \"btkr\",\n \"balanceTagPhishingHolders\": \"btphh\",\n \"balanceTagPhishingAmount\": \"btpha\",\n \"balanceTagPhishingRatio\": \"btphr\",\n \"balanceTagBluechipHolders\": \"btblh\",\n \"balanceTagBluechipAmount\": \"btbla\",\n \"balanceTagBluechipRatio\": \"btblr\",\n \"balanceTagRatHolders\": \"btrh\",\n \"balanceTagRatAmount\": \"btra\",\n \"balanceTagRatRatio\": \"btrr\",\n \"timestamp\": \"ts\",\n },\n\n // New token subscription fields\n \"subscribeNewToken\": {\n \"tokenAddress\": \"a\",\n \"name\": \"n\",\n \"symbol\": \"s\",\n \"createdAtMs\": \"cts\",\n },\n\n // Token supply subscription fields\n \"subscribeTokenSupply\": {\n \"tokenAddress\": \"a\",\n \"supply\": \"s\",\n \"timestamp\": \"ts\",\n },\n\n // Dex pool balance subscription fields\n \"subscribeDexPoolBalance\": {\n \"poolAddress\": \"a\",\n \"tokenAAddress\": \"taa\",\n \"tokenALiquidityInUsd\": \"taliu\",\n \"tokenBAddress\": \"tba\",\n \"tokenBLiquidityInUsd\": \"tbliu\",\n },\n\n // Token liquidity subscription fields\n \"subscribeTokenLiquidity\": {\n \"tokenAddress\": \"a\",\n \"metricType\": \"t\",\n \"value\": \"v\",\n \"timestamp\": \"ts\",\n },\n\n // New token metadata subscription fields\n \"subscribeNewTokensMetadata\": {\n \"tokenAddress\": \"a\",\n \"name\": \"n\",\n \"symbol\": \"s\",\n \"imageUrl\": \"iu\",\n \"description\": \"de\",\n \"socialMedia\": \"sm\",\n \"createdAtMs\": \"cts\",\n },\n\n // Token trades subscription fields\n \"subscribeTokenTrades\": {\n \"tokenAddress\": \"a\",\n \"timestamp\": \"t\",\n \"kind\": \"k\",\n \"buyAmount\": \"ba\",\n \"buyAmountInUsd\": \"baiu\",\n \"buyTokenAddress\": \"btma\",\n \"buyTokenName\": \"btn\",\n \"buyTokenSymbol\": \"bts\",\n \"buyWalletAddress\": \"bwa\",\n \"sellAmount\": \"sa\",\n \"sellAmountInUsd\": \"saiu\",\n \"sellTokenAddress\": \"stma\",\n \"sellTokenName\": \"stn\",\n \"sellTokenSymbol\": \"sts\",\n \"sellWalletAddress\": \"swa\",\n \"txHash\": \"h\",\n },\n\n // Wallet token PnL subscription fields\n \"subscribeWalletPnl\": {\n \"walletAddress\": \"a\",\n \"tokenAddress\": \"ta\",\n \"tokenPriceInUsd\": \"tpiu\",\n \"timestamp\": \"t\",\n \"opentime\": \"ot\",\n \"lasttime\": \"lt\",\n \"closetime\": \"ct\",\n \"buyAmount\": \"ba\",\n \"buyAmountInUsd\": \"baiu\",\n \"buyCount\": \"bs\",\n \"buyCount30d\": \"bs30d\",\n \"buyCount7d\": \"bs7d\",\n \"sellAmount\": \"sa\",\n \"sellAmountInUsd\": \"saiu\",\n \"sellCount\": \"ss\",\n \"sellCount30d\": \"ss30d\",\n \"sellCount7d\": \"ss7d\",\n \"heldDurationTimestamp\": \"hdts\",\n \"averageBuyPriceInUsd\": \"abpiu\",\n \"averageSellPriceInUsd\": \"aspiu\",\n \"unrealizedProfitInUsd\": \"upiu\",\n \"unrealizedProfitRatio\": \"upr\",\n \"realizedProfitInUsd\": \"rpiu\",\n \"realizedProfitRatio\": \"rpr\",\n \"totalRealizedProfitInUsd\": \"trpiu\",\n \"totalRealizedProfitRatio\": \"trr\",\n },\n} as const;\n\n/**\n * Get field mappings for a specific subscription method\n * @param methodName - The name of the subscription method\n * @returns Field mapping object for the method, or empty object if not found\n */\nexport function getFieldMappings(methodName: string): FieldMapping {\n return CEL_FIELD_MAPPINGS[methodName] || {};\n}\n\n/**\n * Replace long field names with short field names in a filter expression\n * Automatically adds meta. prefix if not present\n * @param filter - Original filter expression\n * @param methodName - The name of the subscription method\n * @returns Filter expression with short field names and meta. prefix\n */\nexport function replaceFilterFields(filter: string, methodName: string): string {\n if (!filter) {return filter}\n \n const fieldMappings = getFieldMappings(methodName);\n let result = filter;\n \n // Replace all long field names with short field names\n for (const [longField, shortField] of Object.entries(fieldMappings)) {\n // Handle both cases: with and without meta. prefix\n const patterns = [\n // Pattern 1: fieldName (without meta. prefix)\n new RegExp(`\\\\b${longField}\\\\b`, \"g\"),\n // Pattern 2: meta.fieldName (with meta. prefix)\n new RegExp(`\\\\bmeta\\\\.${longField}\\\\b`, \"g\"),\n ];\n \n patterns.forEach((pattern) => {\n result = result.replace(pattern, `meta.${shortField}`);\n });\n }\n \n return result;\n}\n\n/**\n * Type-safe field mapping for specific subscription methods\n */\nexport type SubscriptionMethod = keyof typeof CEL_FIELD_MAPPINGS;\n\n/**\n * Get available field names for a specific subscription method\n * @param methodName - The name of the subscription method\n * @returns Array of available field names\n */\nexport function getAvailableFields(methodName: string): string[] {\n const mappings = getFieldMappings(methodName);\n return Object.keys(mappings);\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | Promise<string> | ((name: string) => string | Promise<string>); // parameter for apiKey security\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string | Promise<string>) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name?: string, scopes?: string[]) => string | Promise<string>) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n private static readonly jsonRegex = new RegExp('^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$', 'i');\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise<Response> {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && (response.status >= 200 && response.status < 300)) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n }))\n };\n\n let body: any;\n if (isFormData(overriddenInit.body)\n || (overriddenInit.body instanceof URLSearchParams)\n || isBlob(overriddenInit.body)) {\n body = overriddenInit.body;\n } else if (this.isJsonMime(headers['Content-Type'])) {\n body = JSON.stringify(overriddenInit.body);\n } else {\n body = overriddenInit.body;\n }\n\n const init: RequestInit = {\n ...overriddenInit,\n body\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response = await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n }) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n};\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise<RequestInit>\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map(key => querystringSingleKey(key, params[key], prefix))\n .filter(part => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery, keyPrefix: string = ''): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n const result: { [key: string]: any } = {};\n for (const key of Object.keys(data)) {\n result[key] = fn(data[key]);\n }\n return result;\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(public raw: Response, private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AddressExposure\n */\nexport interface AddressExposure {\n /**\n * DTO.KYT.ADDRESS_EXPOSURE.CATEGORY\n * @type {string}\n * @memberof AddressExposure\n */\n category: string;\n /**\n * DTO.KYT.ADDRESS_EXPOSURE.VALUE\n * @type {number}\n * @memberof AddressExposure\n */\n value: number;\n}\n\n/**\n * Check if a given object implements the AddressExposure interface.\n */\nexport function instanceOfAddressExposure(value: object): value is AddressExposure {\n if (!('category' in value) || value['category'] === undefined) return false;\n if (!('value' in value) || value['value'] === undefined) return false;\n return true;\n}\n\nexport function AddressExposureFromJSON(json: any): AddressExposure {\n return AddressExposureFromJSONTyped(json, false);\n}\n\nexport function AddressExposureFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressExposure {\n if (json == null) {\n return json;\n }\n return {\n \n 'category': json['category'],\n 'value': json['value'],\n };\n}\n\nexport function AddressExposureToJSON(json: any): AddressExposure {\n return AddressExposureToJSONTyped(json, false);\n}\n\nexport function AddressExposureToJSONTyped(value?: AddressExposure | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'category': value['category'],\n 'value': value['value'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AddressExposure } from './AddressExposure';\nimport {\n AddressExposureFromJSON,\n AddressExposureFromJSONTyped,\n AddressExposureToJSON,\n AddressExposureToJSONTyped,\n} from './AddressExposure';\n\n/**\n * \n * @export\n * @interface AddressRiskResponseDTO\n */\nexport interface AddressRiskResponseDTO {\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.ADDRESS\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n address: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.RISK\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n risk: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.RISK_REASON\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n riskReason: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.ADDRESS_TYPE\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n addressType: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.CLUSTER\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n cluster: string;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.ADDRESS_IDENTIFICATIONS\n * @type {Array<string>}\n * @memberof AddressRiskResponseDTO\n */\n addressIdentifications: Array<string>;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.EXPOSURES\n * @type {Array<AddressExposure>}\n * @memberof AddressRiskResponseDTO\n */\n exposures: Array<AddressExposure>;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.TRIGGERS\n * @type {Array<string>}\n * @memberof AddressRiskResponseDTO\n */\n triggers: Array<string>;\n /**\n * DTO.KYT.ADDRESS_RISK_RESPONSE.STATUS\n * @type {string}\n * @memberof AddressRiskResponseDTO\n */\n status: string;\n}\n\n/**\n * Check if a given object implements the AddressRiskResponseDTO interface.\n */\nexport function instanceOfAddressRiskResponseDTO(value: object): value is AddressRiskResponseDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('risk' in value) || value['risk'] === undefined) return false;\n if (!('riskReason' in value) || value['riskReason'] === undefined) return false;\n if (!('addressType' in value) || value['addressType'] === undefined) return false;\n if (!('cluster' in value) || value['cluster'] === undefined) return false;\n if (!('addressIdentifications' in value) || value['addressIdentifications'] === undefined) return false;\n if (!('exposures' in value) || value['exposures'] === undefined) return false;\n if (!('triggers' in value) || value['triggers'] === undefined) return false;\n if (!('status' in value) || value['status'] === undefined) return false;\n return true;\n}\n\nexport function AddressRiskResponseDTOFromJSON(json: any): AddressRiskResponseDTO {\n return AddressRiskResponseDTOFromJSONTyped(json, false);\n}\n\nexport function AddressRiskResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressRiskResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'risk': json['risk'],\n 'riskReason': json['riskReason'],\n 'addressType': json['addressType'],\n 'cluster': json['cluster'],\n 'addressIdentifications': json['addressIdentifications'],\n 'exposures': ((json['exposures'] as Array<any>).map(AddressExposureFromJSON)),\n 'triggers': json['triggers'],\n 'status': json['status'],\n };\n}\n\nexport function AddressRiskResponseDTOToJSON(json: any): AddressRiskResponseDTO {\n return AddressRiskResponseDTOToJSONTyped(json, false);\n}\n\nexport function AddressRiskResponseDTOToJSONTyped(value?: AddressRiskResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'risk': value['risk'],\n 'riskReason': value['riskReason'],\n 'addressType': value['addressType'],\n 'cluster': value['cluster'],\n 'addressIdentifications': value['addressIdentifications'],\n 'exposures': ((value['exposures'] as Array<any>).map(AddressExposureToJSON)),\n 'triggers': value['triggers'],\n 'status': value['status'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AlertDetail\n */\nexport interface AlertDetail {\n /**\n * DTO.KYT.ALERT_DETAIL.ALERT_LEVEL\n * @type {string}\n * @memberof AlertDetail\n */\n alertLevel: string;\n /**\n * DTO.KYT.ALERT_DETAIL.SERVICE\n * @type {string}\n * @memberof AlertDetail\n */\n service: string;\n /**\n * DTO.KYT.ALERT_DETAIL.EXTERNAL_ID\n * @type {string}\n * @memberof AlertDetail\n */\n externalId: string;\n /**\n * DTO.KYT.ALERT_DETAIL.ALERT_AMOUNT\n * @type {number}\n * @memberof AlertDetail\n */\n alertAmount: number;\n /**\n * DTO.KYT.ALERT_DETAIL.EXPOSURE_TYPE\n * @type {string}\n * @memberof AlertDetail\n */\n exposureType: string;\n /**\n * DTO.KYT.ALERT_DETAIL.CATEGORY_ID\n * @type {number}\n * @memberof AlertDetail\n */\n categoryId: number;\n /**\n * DTO.KYT.ALERT_DETAIL.MEMO\n * @type {string}\n * @memberof AlertDetail\n */\n memo: string;\n}\n\n/**\n * Check if a given object implements the AlertDetail interface.\n */\nexport function instanceOfAlertDetail(value: object): value is AlertDetail {\n if (!('alertLevel' in value) || value['alertLevel'] === undefined) return false;\n if (!('service' in value) || value['service'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('alertAmount' in value) || value['alertAmount'] === undefined) return false;\n if (!('exposureType' in value) || value['exposureType'] === undefined) return false;\n if (!('categoryId' in value) || value['categoryId'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n return true;\n}\n\nexport function AlertDetailFromJSON(json: any): AlertDetail {\n return AlertDetailFromJSONTyped(json, false);\n}\n\nexport function AlertDetailFromJSONTyped(json: any, ignoreDiscriminator: boolean): AlertDetail {\n if (json == null) {\n return json;\n }\n return {\n \n 'alertLevel': json['alertLevel'],\n 'service': json['service'],\n 'externalId': json['externalId'],\n 'alertAmount': json['alertAmount'],\n 'exposureType': json['exposureType'],\n 'categoryId': json['categoryId'],\n 'memo': json['memo'],\n };\n}\n\nexport function AlertDetailToJSON(json: any): AlertDetail {\n return AlertDetailToJSONTyped(json, false);\n}\n\nexport function AlertDetailToJSONTyped(value?: AlertDetail | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'alertLevel': value['alertLevel'],\n 'service': value['service'],\n 'externalId': value['externalId'],\n 'alertAmount': value['alertAmount'],\n 'exposureType': value['exposureType'],\n 'categoryId': value['categoryId'],\n 'memo': value['memo'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface OnChainActivity\n */\nexport interface OnChainActivity {\n /**\n * DTO.KYT.ON_CHAIN_ACTIVITY.FIRST_TRANSACTION_AT\n * @type {number}\n * @memberof OnChainActivity\n */\n firstTransactionAt: number;\n}\n\n/**\n * Check if a given object implements the OnChainActivity interface.\n */\nexport function instanceOfOnChainActivity(value: object): value is OnChainActivity {\n if (!('firstTransactionAt' in value) || value['firstTransactionAt'] === undefined) return false;\n return true;\n}\n\nexport function OnChainActivityFromJSON(json: any): OnChainActivity {\n return OnChainActivityFromJSONTyped(json, false);\n}\n\nexport function OnChainActivityFromJSONTyped(json: any, ignoreDiscriminator: boolean): OnChainActivity {\n if (json == null) {\n return json;\n }\n return {\n \n 'firstTransactionAt': json['first_transaction_at'],\n };\n}\n\nexport function OnChainActivityToJSON(json: any): OnChainActivity {\n return OnChainActivityToJSONTyped(json, false);\n}\n\nexport function OnChainActivityToJSONTyped(value?: OnChainActivity | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'first_transaction_at': value['firstTransactionAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { OnChainActivity } from './OnChainActivity';\nimport {\n OnChainActivityFromJSON,\n OnChainActivityFromJSONTyped,\n OnChainActivityToJSON,\n OnChainActivityToJSONTyped,\n} from './OnChainActivity';\n\n/**\n * \n * @export\n * @interface AlteryaIdentification\n */\nexport interface AlteryaIdentification {\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.OBJECT\n * @type {string}\n * @memberof AlteryaIdentification\n */\n object: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.ADDRESS\n * @type {string}\n * @memberof AlteryaIdentification\n */\n address: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.CHAIN\n * @type {string}\n * @memberof AlteryaIdentification\n */\n chain: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.RISK_LEVEL\n * @type {string}\n * @memberof AlteryaIdentification\n */\n riskLevel: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.REASON\n * @type {string}\n * @memberof AlteryaIdentification\n */\n reason: string;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.LABELS\n * @type {Array<string>}\n * @memberof AlteryaIdentification\n */\n labels: Array<string>;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.ON_CHAIN_ACTIVITY\n * @type {OnChainActivity}\n * @memberof AlteryaIdentification\n */\n onChainActivity: OnChainActivity;\n /**\n * DTO.KYT.ALTERYA_IDENTIFICATION.RISK_SCORE\n * @type {number}\n * @memberof AlteryaIdentification\n */\n riskScore: number;\n}\n\n/**\n * Check if a given object implements the AlteryaIdentification interface.\n */\nexport function instanceOfAlteryaIdentification(value: object): value is AlteryaIdentification {\n if (!('object' in value) || value['object'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('riskLevel' in value) || value['riskLevel'] === undefined) return false;\n if (!('reason' in value) || value['reason'] === undefined) return false;\n if (!('labels' in value) || value['labels'] === undefined) return false;\n if (!('onChainActivity' in value) || value['onChainActivity'] === undefined) return false;\n if (!('riskScore' in value) || value['riskScore'] === undefined) return false;\n return true;\n}\n\nexport function AlteryaIdentificationFromJSON(json: any): AlteryaIdentification {\n return AlteryaIdentificationFromJSONTyped(json, false);\n}\n\nexport function AlteryaIdentificationFromJSONTyped(json: any, ignoreDiscriminator: boolean): AlteryaIdentification {\n if (json == null) {\n return json;\n }\n return {\n \n 'object': json['object'],\n 'address': json['address'],\n 'chain': json['chain'],\n 'riskLevel': json['risk_level'],\n 'reason': json['reason'],\n 'labels': json['labels'],\n 'onChainActivity': OnChainActivityFromJSON(json['on_chain_activity']),\n 'riskScore': json['risk_score'],\n };\n}\n\nexport function AlteryaIdentificationToJSON(json: any): AlteryaIdentification {\n return AlteryaIdentificationToJSONTyped(json, false);\n}\n\nexport function AlteryaIdentificationToJSONTyped(value?: AlteryaIdentification | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'object': value['object'],\n 'address': value['address'],\n 'chain': value['chain'],\n 'risk_level': value['riskLevel'],\n 'reason': value['reason'],\n 'labels': value['labels'],\n 'on_chain_activity': OnChainActivityToJSON(value['onChainActivity']),\n 'risk_score': value['riskScore'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BlockchainDTO\n */\nexport interface BlockchainDTO {\n /**\n * DTO.BLOCKCHAIN.SYMBOL\n * @type {string}\n * @memberof BlockchainDTO\n */\n symbol: string;\n /**\n * DTO.BLOCKCHAIN.NAME\n * @type {string}\n * @memberof BlockchainDTO\n */\n name: string;\n /**\n * DTO.BLOCKCHAIN.EXPLORER_URL\n * @type {string}\n * @memberof BlockchainDTO\n */\n explorerUrl: string;\n /**\n * DTO.BLOCKCHAIN.CHAIN_ID\n * @type {number}\n * @memberof BlockchainDTO\n */\n chainId: number;\n}\n\n/**\n * Check if a given object implements the BlockchainDTO interface.\n */\nexport function instanceOfBlockchainDTO(value: object): value is BlockchainDTO {\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('explorerUrl' in value) || value['explorerUrl'] === undefined) return false;\n if (!('chainId' in value) || value['chainId'] === undefined) return false;\n return true;\n}\n\nexport function BlockchainDTOFromJSON(json: any): BlockchainDTO {\n return BlockchainDTOFromJSONTyped(json, false);\n}\n\nexport function BlockchainDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): BlockchainDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'symbol': json['symbol'],\n 'name': json['name'],\n 'explorerUrl': json['explorerUrl'],\n 'chainId': json['chainId'],\n };\n}\n\nexport function BlockchainDTOToJSON(json: any): BlockchainDTO {\n return BlockchainDTOToJSONTyped(json, false);\n}\n\nexport function BlockchainDTOToJSONTyped(value?: BlockchainDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'symbol': value['symbol'],\n 'name': value['name'],\n 'explorerUrl': value['explorerUrl'],\n 'chainId': value['chainId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BlockchainLatestBlockDTO\n */\nexport interface BlockchainLatestBlockDTO {\n /**\n * DTO.BLOCKCHAIN.LATEST_BLOCK.BLOCKHASH\n * @type {string}\n * @memberof BlockchainLatestBlockDTO\n */\n blockhash: string;\n /**\n * DTO.BLOCKCHAIN.LATEST_BLOCK.LAST_VALID_BLOCK_HEIGHT\n * @type {number}\n * @memberof BlockchainLatestBlockDTO\n */\n lastValidBlockHeight: number;\n}\n\n/**\n * Check if a given object implements the BlockchainLatestBlockDTO interface.\n */\nexport function instanceOfBlockchainLatestBlockDTO(value: object): value is BlockchainLatestBlockDTO {\n if (!('blockhash' in value) || value['blockhash'] === undefined) return false;\n if (!('lastValidBlockHeight' in value) || value['lastValidBlockHeight'] === undefined) return false;\n return true;\n}\n\nexport function BlockchainLatestBlockDTOFromJSON(json: any): BlockchainLatestBlockDTO {\n return BlockchainLatestBlockDTOFromJSONTyped(json, false);\n}\n\nexport function BlockchainLatestBlockDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): BlockchainLatestBlockDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'blockhash': json['blockhash'],\n 'lastValidBlockHeight': json['lastValidBlockHeight'],\n };\n}\n\nexport function BlockchainLatestBlockDTOToJSON(json: any): BlockchainLatestBlockDTO {\n return BlockchainLatestBlockDTOToJSONTyped(json, false);\n}\n\nexport function BlockchainLatestBlockDTOToJSONTyped(value?: BlockchainLatestBlockDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'blockhash': value['blockhash'],\n 'lastValidBlockHeight': value['lastValidBlockHeight'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface BooleanResultDTO\n */\nexport interface BooleanResultDTO {\n /**\n * DTO.BOOLEAN_RESULT.SUCCESS\n * @type {boolean}\n * @memberof BooleanResultDTO\n */\n success: boolean;\n}\n\n/**\n * Check if a given object implements the BooleanResultDTO interface.\n */\nexport function instanceOfBooleanResultDTO(value: object): value is BooleanResultDTO {\n if (!('success' in value) || value['success'] === undefined) return false;\n return true;\n}\n\nexport function BooleanResultDTOFromJSON(json: any): BooleanResultDTO {\n return BooleanResultDTOFromJSONTyped(json, false);\n}\n\nexport function BooleanResultDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): BooleanResultDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'success': json['success'],\n };\n}\n\nexport function BooleanResultDTOToJSON(json: any): BooleanResultDTO {\n return BooleanResultDTOToJSONTyped(json, false);\n}\n\nexport function BooleanResultDTOToJSONTyped(value?: BooleanResultDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'success': value['success'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CalculatePnlInput\n */\nexport interface CalculatePnlInput {\n /**\n * DTO.WALLET.CALCULATE_PNL.INPUT.TOKEN_ADDRESSES\n * @type {Array<string>}\n * @memberof CalculatePnlInput\n */\n tokenAddresses?: Array<string>;\n}\n\n/**\n * Check if a given object implements the CalculatePnlInput interface.\n */\nexport function instanceOfCalculatePnlInput(value: object): value is CalculatePnlInput {\n return true;\n}\n\nexport function CalculatePnlInputFromJSON(json: any): CalculatePnlInput {\n return CalculatePnlInputFromJSONTyped(json, false);\n}\n\nexport function CalculatePnlInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CalculatePnlInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddresses': json['tokenAddresses'] == null ? undefined : json['tokenAddresses'],\n };\n}\n\nexport function CalculatePnlInputToJSON(json: any): CalculatePnlInput {\n return CalculatePnlInputToJSONTyped(json, false);\n}\n\nexport function CalculatePnlInputToJSONTyped(value?: CalculatePnlInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddresses': value['tokenAddresses'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * \n * @export\n */\nexport const Resolution = {\n _1s: '1s',\n _15s: '15s',\n _30s: '30s',\n _1m: '1m',\n _5m: '5m',\n _15m: '15m',\n _1h: '1h',\n _4h: '4h',\n _12h: '12h',\n _1d: '1d'\n} as const;\nexport type Resolution = typeof Resolution[keyof typeof Resolution];\n\n\nexport function instanceOfResolution(value: any): boolean {\n for (const key in Resolution) {\n if (Object.prototype.hasOwnProperty.call(Resolution, key)) {\n if (Resolution[key as keyof typeof Resolution] === value) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function ResolutionFromJSON(json: any): Resolution {\n return ResolutionFromJSONTyped(json, false);\n}\n\nexport function ResolutionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Resolution {\n return json as Resolution;\n}\n\nexport function ResolutionToJSON(value?: Resolution | null): any {\n return value as any;\n}\n\nexport function ResolutionToJSONTyped(value: any, ignoreDiscriminator: boolean): Resolution {\n return value as Resolution;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Resolution } from './Resolution';\nimport {\n ResolutionFromJSON,\n ResolutionFromJSONTyped,\n ResolutionToJSON,\n ResolutionToJSONTyped,\n} from './Resolution';\n\n/**\n * \n * @export\n * @interface Candle\n */\nexport interface Candle {\n /**\n * DTO.CANDLE.OPEN\n * @type {string}\n * @memberof Candle\n */\n open: string;\n /**\n * DTO.CANDLE.CLOSE\n * @type {string}\n * @memberof Candle\n */\n close: string;\n /**\n * DTO.CANDLE.HIGH\n * @type {string}\n * @memberof Candle\n */\n high: string;\n /**\n * DTO.CANDLE.LOW\n * @type {string}\n * @memberof Candle\n */\n low: string;\n /**\n * DTO.CANDLE.VOLUME\n * @type {string}\n * @memberof Candle\n */\n volume: string;\n /**\n * DTO.CANDLE.RESOLUTION\n * @type {Resolution}\n * @memberof Candle\n */\n resolution: Resolution;\n /**\n * DTO.CANDLE.TIME\n * @type {number}\n * @memberof Candle\n */\n time: number;\n}\n\n\n\n/**\n * Check if a given object implements the Candle interface.\n */\nexport function instanceOfCandle(value: object): value is Candle {\n if (!('open' in value) || value['open'] === undefined) return false;\n if (!('close' in value) || value['close'] === undefined) return false;\n if (!('high' in value) || value['high'] === undefined) return false;\n if (!('low' in value) || value['low'] === undefined) return false;\n if (!('volume' in value) || value['volume'] === undefined) return false;\n if (!('resolution' in value) || value['resolution'] === undefined) return false;\n if (!('time' in value) || value['time'] === undefined) return false;\n return true;\n}\n\nexport function CandleFromJSON(json: any): Candle {\n return CandleFromJSONTyped(json, false);\n}\n\nexport function CandleFromJSONTyped(json: any, ignoreDiscriminator: boolean): Candle {\n if (json == null) {\n return json;\n }\n return {\n \n 'open': json['open'],\n 'close': json['close'],\n 'high': json['high'],\n 'low': json['low'],\n 'volume': json['volume'],\n 'resolution': ResolutionFromJSON(json['resolution']),\n 'time': json['time'],\n };\n}\n\nexport function CandleToJSON(json: any): Candle {\n return CandleToJSONTyped(json, false);\n}\n\nexport function CandleToJSONTyped(value?: Candle | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'open': value['open'],\n 'close': value['close'],\n 'high': value['high'],\n 'low': value['low'],\n 'volume': value['volume'],\n 'resolution': ResolutionToJSON(value['resolution']),\n 'time': value['time'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * \n * @export\n */\nexport const Chain = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type Chain = typeof Chain[keyof typeof Chain];\n\n\nexport function instanceOfChain(value: any): boolean {\n for (const key in Chain) {\n if (Object.prototype.hasOwnProperty.call(Chain, key)) {\n if (Chain[key as keyof typeof Chain] === value) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function ChainFromJSON(json: any): Chain {\n return ChainFromJSONTyped(json, false);\n}\n\nexport function ChainFromJSONTyped(json: any, ignoreDiscriminator: boolean): Chain {\n return json as Chain;\n}\n\nexport function ChainToJSON(value?: Chain | null): any {\n return value as any;\n}\n\nexport function ChainToJSONTyped(value: any, ignoreDiscriminator: boolean): Chain {\n return value as Chain;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ChainalysisAddressIdentification\n */\nexport interface ChainalysisAddressIdentification {\n /**\n * DTO.KYT.CHAINALYSIS_ADDRESS_IDENTIFICATION.ADDRESS_NAME\n * @type {string}\n * @memberof ChainalysisAddressIdentification\n */\n addressName: string;\n /**\n * DTO.KYT.CHAINALYSIS_ADDRESS_IDENTIFICATION.DESCRIPTION\n * @type {string}\n * @memberof ChainalysisAddressIdentification\n */\n description: string;\n /**\n * DTO.KYT.CHAINALYSIS_ADDRESS_IDENTIFICATION.CATEGORY_ID\n * @type {number}\n * @memberof ChainalysisAddressIdentification\n */\n categoryId: number;\n}\n\n/**\n * Check if a given object implements the ChainalysisAddressIdentification interface.\n */\nexport function instanceOfChainalysisAddressIdentification(value: object): value is ChainalysisAddressIdentification {\n if (!('addressName' in value) || value['addressName'] === undefined) return false;\n if (!('description' in value) || value['description'] === undefined) return false;\n if (!('categoryId' in value) || value['categoryId'] === undefined) return false;\n return true;\n}\n\nexport function ChainalysisAddressIdentificationFromJSON(json: any): ChainalysisAddressIdentification {\n return ChainalysisAddressIdentificationFromJSONTyped(json, false);\n}\n\nexport function ChainalysisAddressIdentificationFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChainalysisAddressIdentification {\n if (json == null) {\n return json;\n }\n return {\n \n 'addressName': json['addressName'],\n 'description': json['description'],\n 'categoryId': json['categoryId'],\n };\n}\n\nexport function ChainalysisAddressIdentificationToJSON(json: any): ChainalysisAddressIdentification {\n return ChainalysisAddressIdentificationToJSONTyped(json, false);\n}\n\nexport function ChainalysisAddressIdentificationToJSONTyped(value?: ChainalysisAddressIdentification | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'addressName': value['addressName'],\n 'description': value['description'],\n 'categoryId': value['categoryId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ClaimRedPacketInput\n */\nexport interface ClaimRedPacketInput {\n /**\n * DTO.RED_PACKET.CHAIN\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n chain: ClaimRedPacketInputChainEnum;\n /**\n * DTO.RED_PACKET.PACKET_ID\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n packetId?: string;\n /**\n * DTO.RED_PACKET.SHARE_ID\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n shareId?: string;\n /**\n * DTO.RED_PACKET.PASSWORD\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n password?: string;\n /**\n * DTO.RED_PACKET.CLAIMER\n * @type {string}\n * @memberof ClaimRedPacketInput\n */\n claimer: string;\n}\n\n\n/**\n * @export\n */\nexport const ClaimRedPacketInputChainEnum = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type ClaimRedPacketInputChainEnum = typeof ClaimRedPacketInputChainEnum[keyof typeof ClaimRedPacketInputChainEnum];\n\n\n/**\n * Check if a given object implements the ClaimRedPacketInput interface.\n */\nexport function instanceOfClaimRedPacketInput(value: object): value is ClaimRedPacketInput {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('claimer' in value) || value['claimer'] === undefined) return false;\n return true;\n}\n\nexport function ClaimRedPacketInputFromJSON(json: any): ClaimRedPacketInput {\n return ClaimRedPacketInputFromJSONTyped(json, false);\n}\n\nexport function ClaimRedPacketInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): ClaimRedPacketInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'packetId': json['packetId'] == null ? undefined : json['packetId'],\n 'shareId': json['shareId'] == null ? undefined : json['shareId'],\n 'password': json['password'] == null ? undefined : json['password'],\n 'claimer': json['claimer'],\n };\n}\n\nexport function ClaimRedPacketInputToJSON(json: any): ClaimRedPacketInput {\n return ClaimRedPacketInputToJSONTyped(json, false);\n}\n\nexport function ClaimRedPacketInputToJSONTyped(value?: ClaimRedPacketInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'packetId': value['packetId'],\n 'shareId': value['shareId'],\n 'password': value['password'],\n 'claimer': value['claimer'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateEndpointInput\n */\nexport interface CreateEndpointInput {\n /**\n * DTO.ENDPOINT.CHANNELS\n * @type {Array<string>}\n * @memberof CreateEndpointInput\n */\n channels?: Array<string>;\n /**\n * DTO.ENDPOINT.DESCRIPTION\n * @type {string}\n * @memberof CreateEndpointInput\n */\n description?: string;\n /**\n * DTO.ENDPOINT.DISABLED\n * @type {boolean}\n * @memberof CreateEndpointInput\n */\n disabled?: boolean;\n /**\n * DTO.ENDPOINT.FILTER_TYPES\n * @type {Array<string>}\n * @memberof CreateEndpointInput\n */\n filterTypes?: Array<string>;\n /**\n * DTO.ENDPOINT.METADATA\n * @type {object}\n * @memberof CreateEndpointInput\n */\n metadata?: object;\n /**\n * DTO.ENDPOINT.RATE_LIMIT\n * @type {number}\n * @memberof CreateEndpointInput\n */\n rateLimit?: number;\n /**\n * DTO.ENDPOINT.URL\n * @type {string}\n * @memberof CreateEndpointInput\n */\n url?: string;\n /**\n * DTO.ENDPOINT.FILTER\n * @type {string}\n * @memberof CreateEndpointInput\n */\n filter?: string;\n}\n\n/**\n * Check if a given object implements the CreateEndpointInput interface.\n */\nexport function instanceOfCreateEndpointInput(value: object): value is CreateEndpointInput {\n return true;\n}\n\nexport function CreateEndpointInputFromJSON(json: any): CreateEndpointInput {\n return CreateEndpointInputFromJSONTyped(json, false);\n}\n\nexport function CreateEndpointInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateEndpointInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'channels': json['channels'] == null ? undefined : json['channels'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'disabled': json['disabled'] == null ? undefined : json['disabled'],\n 'filterTypes': json['filterTypes'] == null ? undefined : json['filterTypes'],\n 'metadata': json['metadata'] == null ? undefined : json['metadata'],\n 'rateLimit': json['rateLimit'] == null ? undefined : json['rateLimit'],\n 'url': json['url'] == null ? undefined : json['url'],\n 'filter': json['filter'] == null ? undefined : json['filter'],\n };\n}\n\nexport function CreateEndpointInputToJSON(json: any): CreateEndpointInput {\n return CreateEndpointInputToJSONTyped(json, false);\n}\n\nexport function CreateEndpointInputToJSONTyped(value?: CreateEndpointInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'channels': value['channels'],\n 'description': value['description'],\n 'disabled': value['disabled'],\n 'filterTypes': value['filterTypes'],\n 'metadata': value['metadata'],\n 'rateLimit': value['rateLimit'],\n 'url': value['url'],\n 'filter': value['filter'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateRedPacketInput\n */\nexport interface CreateRedPacketInput {\n /**\n * DTO.RED_PACKET.CHAIN\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n chain: CreateRedPacketInputChainEnum;\n /**\n * DTO.RED_PACKET.CREATOR\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n creator: string;\n /**\n * DTO.RED_PACKET.MINT\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n mint: string;\n /**\n * DTO.RED_PACKET.MAX_CLAIMS\n * @type {number}\n * @memberof CreateRedPacketInput\n */\n maxClaims: number;\n /**\n * DTO.RED_PACKET.TOTAL_AMOUNT\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n totalAmount?: string;\n /**\n * DTO.RED_PACKET.FIXED_AMOUNT\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n fixedAmount?: string;\n /**\n * DTO.RED_PACKET.MEMO\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n memo?: string;\n /**\n * DTO.RED_PACKET.PASSWORD\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n password?: string;\n /**\n * DTO.RED_PACKET.CLAIM_AUTHORITY\n * @type {string}\n * @memberof CreateRedPacketInput\n */\n claimAuthority?: string;\n}\n\n\n/**\n * @export\n */\nexport const CreateRedPacketInputChainEnum = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type CreateRedPacketInputChainEnum = typeof CreateRedPacketInputChainEnum[keyof typeof CreateRedPacketInputChainEnum];\n\n\n/**\n * Check if a given object implements the CreateRedPacketInput interface.\n */\nexport function instanceOfCreateRedPacketInput(value: object): value is CreateRedPacketInput {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('creator' in value) || value['creator'] === undefined) return false;\n if (!('mint' in value) || value['mint'] === undefined) return false;\n if (!('maxClaims' in value) || value['maxClaims'] === undefined) return false;\n return true;\n}\n\nexport function CreateRedPacketInputFromJSON(json: any): CreateRedPacketInput {\n return CreateRedPacketInputFromJSONTyped(json, false);\n}\n\nexport function CreateRedPacketInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRedPacketInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'creator': json['creator'],\n 'mint': json['mint'],\n 'maxClaims': json['maxClaims'],\n 'totalAmount': json['totalAmount'] == null ? undefined : json['totalAmount'],\n 'fixedAmount': json['fixedAmount'] == null ? undefined : json['fixedAmount'],\n 'memo': json['memo'] == null ? undefined : json['memo'],\n 'password': json['password'] == null ? undefined : json['password'],\n 'claimAuthority': json['claimAuthority'] == null ? undefined : json['claimAuthority'],\n };\n}\n\nexport function CreateRedPacketInputToJSON(json: any): CreateRedPacketInput {\n return CreateRedPacketInputToJSONTyped(json, false);\n}\n\nexport function CreateRedPacketInputToJSONTyped(value?: CreateRedPacketInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'creator': value['creator'],\n 'mint': value['mint'],\n 'maxClaims': value['maxClaims'],\n 'totalAmount': value['totalAmount'],\n 'fixedAmount': value['fixedAmount'],\n 'memo': value['memo'],\n 'password': value['password'],\n 'claimAuthority': value['claimAuthority'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateRedPacketReply\n */\nexport interface CreateRedPacketReply {\n /**\n * DTO.RED_PACKET.SERIALIZED_TX\n * @type {string}\n * @memberof CreateRedPacketReply\n */\n txSerialize: string;\n /**\n * DTO.RED_PACKET.SHARE_ID\n * @type {string}\n * @memberof CreateRedPacketReply\n */\n shareId: string;\n}\n\n/**\n * Check if a given object implements the CreateRedPacketReply interface.\n */\nexport function instanceOfCreateRedPacketReply(value: object): value is CreateRedPacketReply {\n if (!('txSerialize' in value) || value['txSerialize'] === undefined) return false;\n if (!('shareId' in value) || value['shareId'] === undefined) return false;\n return true;\n}\n\nexport function CreateRedPacketReplyFromJSON(json: any): CreateRedPacketReply {\n return CreateRedPacketReplyFromJSONTyped(json, false);\n}\n\nexport function CreateRedPacketReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRedPacketReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'txSerialize': json['txSerialize'],\n 'shareId': json['shareId'],\n };\n}\n\nexport function CreateRedPacketReplyToJSON(json: any): CreateRedPacketReply {\n return CreateRedPacketReplyToJSONTyped(json, false);\n}\n\nexport function CreateRedPacketReplyToJSONTyped(value?: CreateRedPacketReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'txSerialize': value['txSerialize'],\n 'shareId': value['shareId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateTokenInput\n */\nexport interface CreateTokenInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof CreateTokenInput\n */\n dex: CreateTokenInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof CreateTokenInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof CreateTokenInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.MINT.NAME\n * @type {string}\n * @memberof CreateTokenInput\n */\n name: string;\n /**\n * DTO.DEX.MINT.SYMBOL\n * @type {string}\n * @memberof CreateTokenInput\n */\n symbol: string;\n /**\n * DTO.DEX.MINT.URI\n * @type {string}\n * @memberof CreateTokenInput\n */\n uri?: string;\n /**\n * DTO.DEX.MINT.IMAGE\n * @type {string}\n * @memberof CreateTokenInput\n */\n image?: string;\n /**\n * DTO.DEX.MINT.EXTRA\n * @type {object}\n * @memberof CreateTokenInput\n */\n extra?: object;\n}\n\n\n/**\n * @export\n */\nexport const CreateTokenInputDexEnum = {\n Raydium: 'raydium',\n Pumpfun: 'pumpfun',\n Moonshot: 'moonshot',\n Candy: 'candy',\n Launchpad: 'launchpad'\n} as const;\nexport type CreateTokenInputDexEnum = typeof CreateTokenInputDexEnum[keyof typeof CreateTokenInputDexEnum];\n\n\n/**\n * Check if a given object implements the CreateTokenInput interface.\n */\nexport function instanceOfCreateTokenInput(value: object): value is CreateTokenInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n return true;\n}\n\nexport function CreateTokenInputFromJSON(json: any): CreateTokenInput {\n return CreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function CreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'uri': json['uri'] == null ? undefined : json['uri'],\n 'image': json['image'] == null ? undefined : json['image'],\n 'extra': json['extra'] == null ? undefined : json['extra'],\n };\n}\n\nexport function CreateTokenInputToJSON(json: any): CreateTokenInput {\n return CreateTokenInputToJSONTyped(json, false);\n}\n\nexport function CreateTokenInputToJSONTyped(value?: CreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'uri': value['uri'],\n 'image': value['image'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateTokenReply\n */\nexport interface CreateTokenReply {\n /**\n * DTO.DEX.CREATE_TOKEN.SERIALIZED_TX\n * @type {string}\n * @memberof CreateTokenReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.CREATE_TOKEN.MINT_ADDRESS\n * @type {string}\n * @memberof CreateTokenReply\n */\n mintAddress: string;\n}\n\n/**\n * Check if a given object implements the CreateTokenReply interface.\n */\nexport function instanceOfCreateTokenReply(value: object): value is CreateTokenReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('mintAddress' in value) || value['mintAddress'] === undefined) return false;\n return true;\n}\n\nexport function CreateTokenReplyFromJSON(json: any): CreateTokenReply {\n return CreateTokenReplyFromJSONTyped(json, false);\n}\n\nexport function CreateTokenReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateTokenReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'mintAddress': json['mintAddress'],\n };\n}\n\nexport function CreateTokenReplyToJSON(json: any): CreateTokenReply {\n return CreateTokenReplyToJSONTyped(json, false);\n}\n\nexport function CreateTokenReplyToJSONTyped(value?: CreateTokenReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'mintAddress': value['mintAddress'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenMarketData\n */\nexport interface TokenMarketData {\n /**\n * DTO.TOKEN.MARKET_CAP.TOTAL_SUPPLY\n * @type {string}\n * @memberof TokenMarketData\n */\n totalSupply: string;\n /**\n * DTO.TOKEN.MARKET_CAP.MARKET_CAP_IN_SOL\n * @type {string}\n * @memberof TokenMarketData\n */\n marketCapInSol?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.MARKET_CAP_IN_USD\n * @type {string}\n * @memberof TokenMarketData\n */\n marketCapInUsd: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP10_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n top10TotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP10_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n top10HoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP100_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n top100TotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP100_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n top100HoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.HOLDERS\n * @type {number}\n * @memberof TokenMarketData\n */\n holders: number;\n /**\n * DTO.TOKEN.MARKET_CAP.PRICE_IN_SOL\n * @type {string}\n * @memberof TokenMarketData\n */\n priceInSol?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRICE_IN_USD\n * @type {string}\n * @memberof TokenMarketData\n */\n priceInUsd: string;\n /**\n * DTO.TOKEN.MARKET_CAP.LIQUIDITY_IN_SOL\n * @type {string}\n * @memberof TokenMarketData\n */\n tvlInSol?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.LIQUIDITY_IN_USD\n * @type {string}\n * @memberof TokenMarketData\n */\n tvlInUsd: string;\n /**\n * DTO.TOKEN.MARKET_CAP.COMPLETION_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n completionRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP50_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n top50TotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.TOP50_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n top50HoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BLUECHIP_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n bluechipTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BLUECHIP_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n bluechipTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BLUECHIP_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n bluechipHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.KOL_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n kolTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.KOL_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n kolTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.KOL_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n kolHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SNIPER_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n sniperTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SNIPER_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n sniperTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SNIPER_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n sniperHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRO_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n proTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRO_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n proTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.PRO_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n proHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.INSIDER_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n insiderTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.INSIDER_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n insiderTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.INSIDER_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n insiderHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SANDWISH_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n sandwishTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SANDWISH_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n sandwishTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.SANDWISH_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n sandwishHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.FRESH_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n freshTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.FRESH_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n freshTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.FRESH_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n freshHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BUNDLE_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n bundleTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BUNDLE_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n bundleTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.BUNDLE_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n bundleHoldingsRatio?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.DEV_TOTAL_HOLDERS\n * @type {string}\n * @memberof TokenMarketData\n */\n devTotalHolders?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.DEV_TOTAL_HOLDINGS\n * @type {string}\n * @memberof TokenMarketData\n */\n devTotalHoldings?: string;\n /**\n * DTO.TOKEN.MARKET_CAP.DEV_HOLDINGS_RATIO\n * @type {string}\n * @memberof TokenMarketData\n */\n devHoldingsRatio?: string;\n}\n\n/**\n * Check if a given object implements the TokenMarketData interface.\n */\nexport function instanceOfTokenMarketData(value: object): value is TokenMarketData {\n if (!('totalSupply' in value) || value['totalSupply'] === undefined) return false;\n if (!('marketCapInUsd' in value) || value['marketCapInUsd'] === undefined) return false;\n if (!('holders' in value) || value['holders'] === undefined) return false;\n if (!('priceInUsd' in value) || value['priceInUsd'] === undefined) return false;\n if (!('tvlInUsd' in value) || value['tvlInUsd'] === undefined) return false;\n return true;\n}\n\nexport function TokenMarketDataFromJSON(json: any): TokenMarketData {\n return TokenMarketDataFromJSONTyped(json, false);\n}\n\nexport function TokenMarketDataFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenMarketData {\n if (json == null) {\n return json;\n }\n return {\n \n 'totalSupply': json['totalSupply'],\n 'marketCapInSol': json['marketCapInSol'] == null ? undefined : json['marketCapInSol'],\n 'marketCapInUsd': json['marketCapInUsd'],\n 'top10TotalHoldings': json['top10TotalHoldings'] == null ? undefined : json['top10TotalHoldings'],\n 'top10HoldingsRatio': json['top10HoldingsRatio'] == null ? undefined : json['top10HoldingsRatio'],\n 'top100TotalHoldings': json['top100TotalHoldings'] == null ? undefined : json['top100TotalHoldings'],\n 'top100HoldingsRatio': json['top100HoldingsRatio'] == null ? undefined : json['top100HoldingsRatio'],\n 'holders': json['holders'],\n 'priceInSol': json['priceInSol'] == null ? undefined : json['priceInSol'],\n 'priceInUsd': json['priceInUsd'],\n 'tvlInSol': json['tvlInSol'] == null ? undefined : json['tvlInSol'],\n 'tvlInUsd': json['tvlInUsd'],\n 'completionRatio': json['completionRatio'] == null ? undefined : json['completionRatio'],\n 'top50TotalHoldings': json['top50TotalHoldings'] == null ? undefined : json['top50TotalHoldings'],\n 'top50HoldingsRatio': json['top50HoldingsRatio'] == null ? undefined : json['top50HoldingsRatio'],\n 'bluechipTotalHolders': json['bluechipTotalHolders'] == null ? undefined : json['bluechipTotalHolders'],\n 'bluechipTotalHoldings': json['bluechipTotalHoldings'] == null ? undefined : json['bluechipTotalHoldings'],\n 'bluechipHoldingsRatio': json['bluechipHoldingsRatio'] == null ? undefined : json['bluechipHoldingsRatio'],\n 'kolTotalHolders': json['kolTotalHolders'] == null ? undefined : json['kolTotalHolders'],\n 'kolTotalHoldings': json['kolTotalHoldings'] == null ? undefined : json['kolTotalHoldings'],\n 'kolHoldingsRatio': json['kolHoldingsRatio'] == null ? undefined : json['kolHoldingsRatio'],\n 'sniperTotalHolders': json['sniperTotalHolders'] == null ? undefined : json['sniperTotalHolders'],\n 'sniperTotalHoldings': json['sniperTotalHoldings'] == null ? undefined : json['sniperTotalHoldings'],\n 'sniperHoldingsRatio': json['sniperHoldingsRatio'] == null ? undefined : json['sniperHoldingsRatio'],\n 'proTotalHolders': json['proTotalHolders'] == null ? undefined : json['proTotalHolders'],\n 'proTotalHoldings': json['proTotalHoldings'] == null ? undefined : json['proTotalHoldings'],\n 'proHoldingsRatio': json['proHoldingsRatio'] == null ? undefined : json['proHoldingsRatio'],\n 'insiderTotalHolders': json['insiderTotalHolders'] == null ? undefined : json['insiderTotalHolders'],\n 'insiderTotalHoldings': json['insiderTotalHoldings'] == null ? undefined : json['insiderTotalHoldings'],\n 'insiderHoldingsRatio': json['insiderHoldingsRatio'] == null ? undefined : json['insiderHoldingsRatio'],\n 'sandwishTotalHolders': json['sandwishTotalHolders'] == null ? undefined : json['sandwishTotalHolders'],\n 'sandwishTotalHoldings': json['sandwishTotalHoldings'] == null ? undefined : json['sandwishTotalHoldings'],\n 'sandwishHoldingsRatio': json['sandwishHoldingsRatio'] == null ? undefined : json['sandwishHoldingsRatio'],\n 'freshTotalHolders': json['freshTotalHolders'] == null ? undefined : json['freshTotalHolders'],\n 'freshTotalHoldings': json['freshTotalHoldings'] == null ? undefined : json['freshTotalHoldings'],\n 'freshHoldingsRatio': json['freshHoldingsRatio'] == null ? undefined : json['freshHoldingsRatio'],\n 'bundleTotalHolders': json['bundleTotalHolders'] == null ? undefined : json['bundleTotalHolders'],\n 'bundleTotalHoldings': json['bundleTotalHoldings'] == null ? undefined : json['bundleTotalHoldings'],\n 'bundleHoldingsRatio': json['bundleHoldingsRatio'] == null ? undefined : json['bundleHoldingsRatio'],\n 'devTotalHolders': json['devTotalHolders'] == null ? undefined : json['devTotalHolders'],\n 'devTotalHoldings': json['devTotalHoldings'] == null ? undefined : json['devTotalHoldings'],\n 'devHoldingsRatio': json['devHoldingsRatio'] == null ? undefined : json['devHoldingsRatio'],\n };\n}\n\nexport function TokenMarketDataToJSON(json: any): TokenMarketData {\n return TokenMarketDataToJSONTyped(json, false);\n}\n\nexport function TokenMarketDataToJSONTyped(value?: TokenMarketData | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'totalSupply': value['totalSupply'],\n 'marketCapInSol': value['marketCapInSol'],\n 'marketCapInUsd': value['marketCapInUsd'],\n 'top10TotalHoldings': value['top10TotalHoldings'],\n 'top10HoldingsRatio': value['top10HoldingsRatio'],\n 'top100TotalHoldings': value['top100TotalHoldings'],\n 'top100HoldingsRatio': value['top100HoldingsRatio'],\n 'holders': value['holders'],\n 'priceInSol': value['priceInSol'],\n 'priceInUsd': value['priceInUsd'],\n 'tvlInSol': value['tvlInSol'],\n 'tvlInUsd': value['tvlInUsd'],\n 'completionRatio': value['completionRatio'],\n 'top50TotalHoldings': value['top50TotalHoldings'],\n 'top50HoldingsRatio': value['top50HoldingsRatio'],\n 'bluechipTotalHolders': value['bluechipTotalHolders'],\n 'bluechipTotalHoldings': value['bluechipTotalHoldings'],\n 'bluechipHoldingsRatio': value['bluechipHoldingsRatio'],\n 'kolTotalHolders': value['kolTotalHolders'],\n 'kolTotalHoldings': value['kolTotalHoldings'],\n 'kolHoldingsRatio': value['kolHoldingsRatio'],\n 'sniperTotalHolders': value['sniperTotalHolders'],\n 'sniperTotalHoldings': value['sniperTotalHoldings'],\n 'sniperHoldingsRatio': value['sniperHoldingsRatio'],\n 'proTotalHolders': value['proTotalHolders'],\n 'proTotalHoldings': value['proTotalHoldings'],\n 'proHoldingsRatio': value['proHoldingsRatio'],\n 'insiderTotalHolders': value['insiderTotalHolders'],\n 'insiderTotalHoldings': value['insiderTotalHoldings'],\n 'insiderHoldingsRatio': value['insiderHoldingsRatio'],\n 'sandwishTotalHolders': value['sandwishTotalHolders'],\n 'sandwishTotalHoldings': value['sandwishTotalHoldings'],\n 'sandwishHoldingsRatio': value['sandwishHoldingsRatio'],\n 'freshTotalHolders': value['freshTotalHolders'],\n 'freshTotalHoldings': value['freshTotalHoldings'],\n 'freshHoldingsRatio': value['freshHoldingsRatio'],\n 'bundleTotalHolders': value['bundleTotalHolders'],\n 'bundleTotalHoldings': value['bundleTotalHoldings'],\n 'bundleHoldingsRatio': value['bundleHoldingsRatio'],\n 'devTotalHolders': value['devTotalHolders'],\n 'devTotalHoldings': value['devTotalHoldings'],\n 'devHoldingsRatio': value['devHoldingsRatio'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenExtraDTO\n */\nexport interface TokenExtraDTO {\n /**\n * DTO.TOKEN.EXTRA.COLLECTION_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n collectionAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.EDITION_NONCE\n * @type {number}\n * @memberof TokenExtraDTO\n */\n editionNonce?: number;\n /**\n * DTO.TOKEN.EXTRA.FUNGIBLE\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n fungible?: boolean;\n /**\n * DTO.TOKEN.EXTRA.IS_MUTABLE\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isMutable?: boolean;\n /**\n * DTO.TOKEN.EXTRA.KEY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n key?: string;\n /**\n * DTO.TOKEN.EXTRA.IS_NATIVE\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isNative?: boolean;\n /**\n * DTO.TOKEN.EXTRA.PRIMARY_SALE_HAPPENED\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n primarySaleHappened?: boolean;\n /**\n * DTO.TOKEN.EXTRA.LAUNCH_FROM_PROGRAM_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n launchFromProgramAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.LAUNCH_FROM_PROTOCOL_FAMILY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n launchFromProtocolFamily?: string;\n /**\n * DTO.TOKEN.EXTRA.PROGRAM_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n programAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_TO_PROGRAM_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n migratedToProgramAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_TO_PROTOCOL_FAMILY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n migratedToProtocolFamily?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_TO_POOL_ADDRESS\n * @type {string}\n * @memberof TokenExtraDTO\n */\n migratedToPoolAddress?: string;\n /**\n * DTO.TOKEN.EXTRA.MIGRATED_AT\n * @type {number}\n * @memberof TokenExtraDTO\n */\n migratedAt?: number;\n /**\n * DTO.TOKEN.EXTRA.SELLER_FEE_BASIS_POINTS\n * @type {number}\n * @memberof TokenExtraDTO\n */\n sellerFeeBasisPoints?: number;\n /**\n * DTO.TOKEN.EXTRA.TOKEN_STANDARD\n * @type {string}\n * @memberof TokenExtraDTO\n */\n tokenStandard?: string;\n /**\n * DTO.TOKEN.EXTRA.MINT_AUTHORITY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n mintAuthority?: string;\n /**\n * DTO.TOKEN.EXTRA.FREEZE_AUTHORITY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n freezeAuthority?: string;\n /**\n * DTO.TOKEN.EXTRA.UPDATE_AUTHORITY\n * @type {string}\n * @memberof TokenExtraDTO\n */\n updateAuthority?: string;\n /**\n * DTO.TOKEN.EXTRA.IS_VERIFIED_COLLECTION\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isVerifiedCollection?: boolean;\n /**\n * DTO.TOKEN.EXTRA.IS_WRAPPED\n * @type {boolean}\n * @memberof TokenExtraDTO\n */\n isWrapped?: boolean;\n}\n\n/**\n * Check if a given object implements the TokenExtraDTO interface.\n */\nexport function instanceOfTokenExtraDTO(value: object): value is TokenExtraDTO {\n return true;\n}\n\nexport function TokenExtraDTOFromJSON(json: any): TokenExtraDTO {\n return TokenExtraDTOFromJSONTyped(json, false);\n}\n\nexport function TokenExtraDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenExtraDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'collectionAddress': json['collectionAddress'] == null ? undefined : json['collectionAddress'],\n 'editionNonce': json['editionNonce'] == null ? undefined : json['editionNonce'],\n 'fungible': json['fungible'] == null ? undefined : json['fungible'],\n 'isMutable': json['isMutable'] == null ? undefined : json['isMutable'],\n 'key': json['key'] == null ? undefined : json['key'],\n 'isNative': json['isNative'] == null ? undefined : json['isNative'],\n 'primarySaleHappened': json['primarySaleHappened'] == null ? undefined : json['primarySaleHappened'],\n 'launchFromProgramAddress': json['launchFromProgramAddress'] == null ? undefined : json['launchFromProgramAddress'],\n 'launchFromProtocolFamily': json['launchFromProtocolFamily'] == null ? undefined : json['launchFromProtocolFamily'],\n 'programAddress': json['programAddress'] == null ? undefined : json['programAddress'],\n 'migratedToProgramAddress': json['migratedToProgramAddress'] == null ? undefined : json['migratedToProgramAddress'],\n 'migratedToProtocolFamily': json['migratedToProtocolFamily'] == null ? undefined : json['migratedToProtocolFamily'],\n 'migratedToPoolAddress': json['migratedToPoolAddress'] == null ? undefined : json['migratedToPoolAddress'],\n 'migratedAt': json['migratedAt'] == null ? undefined : json['migratedAt'],\n 'sellerFeeBasisPoints': json['sellerFeeBasisPoints'] == null ? undefined : json['sellerFeeBasisPoints'],\n 'tokenStandard': json['tokenStandard'] == null ? undefined : json['tokenStandard'],\n 'mintAuthority': json['mintAuthority'] == null ? undefined : json['mintAuthority'],\n 'freezeAuthority': json['freezeAuthority'] == null ? undefined : json['freezeAuthority'],\n 'updateAuthority': json['updateAuthority'] == null ? undefined : json['updateAuthority'],\n 'isVerifiedCollection': json['isVerifiedCollection'] == null ? undefined : json['isVerifiedCollection'],\n 'isWrapped': json['isWrapped'] == null ? undefined : json['isWrapped'],\n };\n}\n\nexport function TokenExtraDTOToJSON(json: any): TokenExtraDTO {\n return TokenExtraDTOToJSONTyped(json, false);\n}\n\nexport function TokenExtraDTOToJSONTyped(value?: TokenExtraDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'collectionAddress': value['collectionAddress'],\n 'editionNonce': value['editionNonce'],\n 'fungible': value['fungible'],\n 'isMutable': value['isMutable'],\n 'key': value['key'],\n 'isNative': value['isNative'],\n 'primarySaleHappened': value['primarySaleHappened'],\n 'launchFromProgramAddress': value['launchFromProgramAddress'],\n 'launchFromProtocolFamily': value['launchFromProtocolFamily'],\n 'programAddress': value['programAddress'],\n 'migratedToProgramAddress': value['migratedToProgramAddress'],\n 'migratedToProtocolFamily': value['migratedToProtocolFamily'],\n 'migratedToPoolAddress': value['migratedToPoolAddress'],\n 'migratedAt': value['migratedAt'],\n 'sellerFeeBasisPoints': value['sellerFeeBasisPoints'],\n 'tokenStandard': value['tokenStandard'],\n 'mintAuthority': value['mintAuthority'],\n 'freezeAuthority': value['freezeAuthority'],\n 'updateAuthority': value['updateAuthority'],\n 'isVerifiedCollection': value['isVerifiedCollection'],\n 'isWrapped': value['isWrapped'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenCreatorsDTO\n */\nexport interface TokenCreatorsDTO {\n /**\n * DTO.TOKEN.CREATORS.ADDRESS\n * @type {string}\n * @memberof TokenCreatorsDTO\n */\n address?: string;\n /**\n * DTO.TOKEN.CREATORS.SHARE\n * @type {number}\n * @memberof TokenCreatorsDTO\n */\n share?: number;\n /**\n * DTO.TOKEN.CREATORS.IS_VERIFIED\n * @type {boolean}\n * @memberof TokenCreatorsDTO\n */\n isVerified?: boolean;\n}\n\n/**\n * Check if a given object implements the TokenCreatorsDTO interface.\n */\nexport function instanceOfTokenCreatorsDTO(value: object): value is TokenCreatorsDTO {\n return true;\n}\n\nexport function TokenCreatorsDTOFromJSON(json: any): TokenCreatorsDTO {\n return TokenCreatorsDTOFromJSONTyped(json, false);\n}\n\nexport function TokenCreatorsDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenCreatorsDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'] == null ? undefined : json['address'],\n 'share': json['share'] == null ? undefined : json['share'],\n 'isVerified': json['isVerified'] == null ? undefined : json['isVerified'],\n };\n}\n\nexport function TokenCreatorsDTOToJSON(json: any): TokenCreatorsDTO {\n return TokenCreatorsDTOToJSONTyped(json, false);\n}\n\nexport function TokenCreatorsDTOToJSONTyped(value?: TokenCreatorsDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'share': value['share'],\n 'isVerified': value['isVerified'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenSocialMediasDTO\n */\nexport interface TokenSocialMediasDTO {\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.TWITTER\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n twitter?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.TELEGRAM\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n telegram?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.WEBSITE\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n website?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.TIKTOK\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n tiktok?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.DISCORD\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n discord?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.FACEBOOK\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n facebook?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.GITHUB\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n github?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.INSTAGRAM\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n instagram?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.LINKEDIN\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n linkedin?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.MEDIUM\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n medium?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.REDDIT\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n reddit?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.YOUTUBE\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n youtube?: string;\n /**\n * DTO.TOKEN.SOCIAL_MEDIAS.BITBUCKET\n * @type {string}\n * @memberof TokenSocialMediasDTO\n */\n bitbucket?: string;\n}\n\n/**\n * Check if a given object implements the TokenSocialMediasDTO interface.\n */\nexport function instanceOfTokenSocialMediasDTO(value: object): value is TokenSocialMediasDTO {\n return true;\n}\n\nexport function TokenSocialMediasDTOFromJSON(json: any): TokenSocialMediasDTO {\n return TokenSocialMediasDTOFromJSONTyped(json, false);\n}\n\nexport function TokenSocialMediasDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenSocialMediasDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'twitter': json['twitter'] == null ? undefined : json['twitter'],\n 'telegram': json['telegram'] == null ? undefined : json['telegram'],\n 'website': json['website'] == null ? undefined : json['website'],\n 'tiktok': json['tiktok'] == null ? undefined : json['tiktok'],\n 'discord': json['discord'] == null ? undefined : json['discord'],\n 'facebook': json['facebook'] == null ? undefined : json['facebook'],\n 'github': json['github'] == null ? undefined : json['github'],\n 'instagram': json['instagram'] == null ? undefined : json['instagram'],\n 'linkedin': json['linkedin'] == null ? undefined : json['linkedin'],\n 'medium': json['medium'] == null ? undefined : json['medium'],\n 'reddit': json['reddit'] == null ? undefined : json['reddit'],\n 'youtube': json['youtube'] == null ? undefined : json['youtube'],\n 'bitbucket': json['bitbucket'] == null ? undefined : json['bitbucket'],\n };\n}\n\nexport function TokenSocialMediasDTOToJSON(json: any): TokenSocialMediasDTO {\n return TokenSocialMediasDTOToJSONTyped(json, false);\n}\n\nexport function TokenSocialMediasDTOToJSONTyped(value?: TokenSocialMediasDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'twitter': value['twitter'],\n 'telegram': value['telegram'],\n 'website': value['website'],\n 'tiktok': value['tiktok'],\n 'discord': value['discord'],\n 'facebook': value['facebook'],\n 'github': value['github'],\n 'instagram': value['instagram'],\n 'linkedin': value['linkedin'],\n 'medium': value['medium'],\n 'reddit': value['reddit'],\n 'youtube': value['youtube'],\n 'bitbucket': value['bitbucket'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenExtraDTO } from './TokenExtraDTO';\nimport {\n TokenExtraDTOFromJSON,\n TokenExtraDTOFromJSONTyped,\n TokenExtraDTOToJSON,\n TokenExtraDTOToJSONTyped,\n} from './TokenExtraDTO';\nimport type { TokenCreatorsDTO } from './TokenCreatorsDTO';\nimport {\n TokenCreatorsDTOFromJSON,\n TokenCreatorsDTOFromJSONTyped,\n TokenCreatorsDTOToJSON,\n TokenCreatorsDTOToJSONTyped,\n} from './TokenCreatorsDTO';\nimport type { TokenSocialMediasDTO } from './TokenSocialMediasDTO';\nimport {\n TokenSocialMediasDTOFromJSON,\n TokenSocialMediasDTOFromJSONTyped,\n TokenSocialMediasDTOToJSON,\n TokenSocialMediasDTOToJSONTyped,\n} from './TokenSocialMediasDTO';\n\n/**\n * \n * @export\n * @interface TokenMetadata\n */\nexport interface TokenMetadata {\n /**\n * DTO.TOKEN.METADATA.CHAIN\n * @type {string}\n * @memberof TokenMetadata\n */\n chain: string;\n /**\n * DTO.TOKEN.METADATA.DECIMALS\n * @type {number}\n * @memberof TokenMetadata\n */\n decimals: number;\n /**\n * DTO.TOKEN.METADATA.NAME\n * @type {string}\n * @memberof TokenMetadata\n */\n name: string;\n /**\n * DTO.TOKEN.METADATA.SYMBOL\n * @type {string}\n * @memberof TokenMetadata\n */\n symbol: string;\n /**\n * DTO.TOKEN.METADATA.METADATA_ADDRESS\n * @type {string}\n * @memberof TokenMetadata\n */\n metadataAddress?: string;\n /**\n * DTO.TOKEN.METADATA.ADDRESS\n * @type {string}\n * @memberof TokenMetadata\n */\n address: string;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATORS\n * @type {Array<TokenCreatorsDTO>}\n * @memberof TokenMetadata\n */\n tokenCreators?: Array<TokenCreatorsDTO>;\n /**\n * DTO.TOKEN.METADATA.IMAGE_URL\n * @type {string}\n * @memberof TokenMetadata\n */\n imageUrl?: string;\n /**\n * DTO.TOKEN.METADATA.URI\n * @type {string}\n * @memberof TokenMetadata\n */\n uri?: string;\n /**\n * DTO.TOKEN.METADATA.EXTRA\n * @type {TokenExtraDTO}\n * @memberof TokenMetadata\n */\n extra?: TokenExtraDTO;\n /**\n * DTO.TOKEN.METADATA.SOCIAL_MEDIAS\n * @type {TokenSocialMediasDTO}\n * @memberof TokenMetadata\n */\n socialMedias?: TokenSocialMediasDTO;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATED_AT\n * @type {number}\n * @memberof TokenMetadata\n */\n tokenCreatedAt?: number;\n /**\n * DTO.TOKEN.METADATA.DESCRIPTION\n * @type {string}\n * @memberof TokenMetadata\n */\n description?: string;\n /**\n * DTO.TOKEN.METADATA.DEV_TOTAL_TOKENS\n * @type {number}\n * @memberof TokenMetadata\n */\n devTotalTokens?: number;\n /**\n * DTO.TOKEN.METADATA.DEV_LAST_TOKEN_CREATED_AT\n * @type {string}\n * @memberof TokenMetadata\n */\n devLastTokenCreatedAt?: string;\n}\n\n/**\n * Check if a given object implements the TokenMetadata interface.\n */\nexport function instanceOfTokenMetadata(value: object): value is TokenMetadata {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('decimals' in value) || value['decimals'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function TokenMetadataFromJSON(json: any): TokenMetadata {\n return TokenMetadataFromJSONTyped(json, false);\n}\n\nexport function TokenMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenMetadata {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'decimals': json['decimals'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'metadataAddress': json['metadataAddress'] == null ? undefined : json['metadataAddress'],\n 'address': json['address'],\n 'tokenCreators': json['tokenCreators'] == null ? undefined : ((json['tokenCreators'] as Array<any>).map(TokenCreatorsDTOFromJSON)),\n 'imageUrl': json['imageUrl'] == null ? undefined : json['imageUrl'],\n 'uri': json['uri'] == null ? undefined : json['uri'],\n 'extra': json['extra'] == null ? undefined : TokenExtraDTOFromJSON(json['extra']),\n 'socialMedias': json['socialMedias'] == null ? undefined : TokenSocialMediasDTOFromJSON(json['socialMedias']),\n 'tokenCreatedAt': json['tokenCreatedAt'] == null ? undefined : json['tokenCreatedAt'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'devTotalTokens': json['devTotalTokens'] == null ? undefined : json['devTotalTokens'],\n 'devLastTokenCreatedAt': json['devLastTokenCreatedAt'] == null ? undefined : json['devLastTokenCreatedAt'],\n };\n}\n\nexport function TokenMetadataToJSON(json: any): TokenMetadata {\n return TokenMetadataToJSONTyped(json, false);\n}\n\nexport function TokenMetadataToJSONTyped(value?: TokenMetadata | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'decimals': value['decimals'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'metadataAddress': value['metadataAddress'],\n 'address': value['address'],\n 'tokenCreators': value['tokenCreators'] == null ? undefined : ((value['tokenCreators'] as Array<any>).map(TokenCreatorsDTOToJSON)),\n 'imageUrl': value['imageUrl'],\n 'uri': value['uri'],\n 'extra': TokenExtraDTOToJSON(value['extra']),\n 'socialMedias': TokenSocialMediasDTOToJSON(value['socialMedias']),\n 'tokenCreatedAt': value['tokenCreatedAt'],\n 'description': value['description'],\n 'devTotalTokens': value['devTotalTokens'],\n 'devLastTokenCreatedAt': value['devLastTokenCreatedAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenStat\n */\nexport interface TokenStat {\n /**\n * DTO.TOKEN.STAT.ADDRESS\n * @type {string}\n * @memberof TokenStat\n */\n address: string;\n /**\n * DTO.TOKEN.STAT.PRICE_1M\n * @type {string}\n * @memberof TokenStat\n */\n price1m: string;\n /**\n * DTO.TOKEN.STAT.BUYS_1M\n * @type {number}\n * @memberof TokenStat\n */\n buys1m: number;\n /**\n * DTO.TOKEN.STAT.SELLS_1M\n * @type {number}\n * @memberof TokenStat\n */\n sells1m: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_1M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes1m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_1M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes1m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_1M\n * @type {string}\n * @memberof TokenStat\n */\n volumes1m: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_1M\n * @type {number}\n * @memberof TokenStat\n */\n buyers1m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_1M\n * @type {number}\n * @memberof TokenStat\n */\n sellers1m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd1m: string;\n /**\n * DTO.TOKEN.STAT.TRADES_1M\n * @type {number}\n * @memberof TokenStat\n */\n trades1m: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_1M\n * @type {number}\n * @memberof TokenStat\n */\n traders1m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd1m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_1M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd1m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_5M\n * @type {string}\n * @memberof TokenStat\n */\n price5m: string;\n /**\n * DTO.TOKEN.STAT.BUYS_5M\n * @type {number}\n * @memberof TokenStat\n */\n buys5m: number;\n /**\n * DTO.TOKEN.STAT.SELLS_5M\n * @type {number}\n * @memberof TokenStat\n */\n sells5m: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_5M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes5m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_5M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes5m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_5M\n * @type {string}\n * @memberof TokenStat\n */\n volumes5m: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_5M\n * @type {number}\n * @memberof TokenStat\n */\n buyers5m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_5M\n * @type {number}\n * @memberof TokenStat\n */\n sellers5m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd5m: string;\n /**\n * DTO.TOKEN.STAT.TRADES_5M\n * @type {number}\n * @memberof TokenStat\n */\n trades5m: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_5M\n * @type {number}\n * @memberof TokenStat\n */\n traders5m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd5m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_5M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd5m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_15M\n * @type {string}\n * @memberof TokenStat\n */\n price15m?: string;\n /**\n * DTO.TOKEN.STAT.BUYS_15M\n * @type {number}\n * @memberof TokenStat\n */\n buys15m?: number;\n /**\n * DTO.TOKEN.STAT.SELLS_15M\n * @type {number}\n * @memberof TokenStat\n */\n sells15m?: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_15M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes15m?: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_15M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes15m?: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_15M\n * @type {string}\n * @memberof TokenStat\n */\n volumes15m?: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_15M\n * @type {number}\n * @memberof TokenStat\n */\n buyers15m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_15M\n * @type {number}\n * @memberof TokenStat\n */\n sellers15m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.TRADES_15M\n * @type {number}\n * @memberof TokenStat\n */\n trades15m?: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_15M\n * @type {number}\n * @memberof TokenStat\n */\n traders15m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_15M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd15m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_30M\n * @type {string}\n * @memberof TokenStat\n */\n price30m: string;\n /**\n * DTO.TOKEN.STAT.BUYS_30M\n * @type {number}\n * @memberof TokenStat\n */\n buys30m: number;\n /**\n * DTO.TOKEN.STAT.SELLS_30M\n * @type {number}\n * @memberof TokenStat\n */\n sells30m: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_30M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes30m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_30M\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes30m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_30M\n * @type {string}\n * @memberof TokenStat\n */\n volumes30m: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_30M\n * @type {number}\n * @memberof TokenStat\n */\n buyers30m?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_30M\n * @type {number}\n * @memberof TokenStat\n */\n sellers30m?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd30m: string;\n /**\n * DTO.TOKEN.STAT.TRADES_30M\n * @type {number}\n * @memberof TokenStat\n */\n trades30m: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_30M\n * @type {number}\n * @memberof TokenStat\n */\n traders30m?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd30m?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_30M\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd30m?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_1H\n * @type {string}\n * @memberof TokenStat\n */\n price1h: string;\n /**\n * DTO.TOKEN.STAT.BUYS_1H\n * @type {number}\n * @memberof TokenStat\n */\n buys1h: number;\n /**\n * DTO.TOKEN.STAT.SELLS_1H\n * @type {number}\n * @memberof TokenStat\n */\n sells1h: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_1H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes1h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_1H\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes1h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_1H\n * @type {string}\n * @memberof TokenStat\n */\n volumes1h: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_1H\n * @type {number}\n * @memberof TokenStat\n */\n buyers1h?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_1H\n * @type {number}\n * @memberof TokenStat\n */\n sellers1h?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd1h: string;\n /**\n * DTO.TOKEN.STAT.TRADES_1H\n * @type {number}\n * @memberof TokenStat\n */\n trades1h: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_1H\n * @type {number}\n * @memberof TokenStat\n */\n traders1h?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd1h?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_1H\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd1h?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_4H\n * @type {string}\n * @memberof TokenStat\n */\n price4h: string;\n /**\n * DTO.TOKEN.STAT.BUYS_4H\n * @type {number}\n * @memberof TokenStat\n */\n buys4h: number;\n /**\n * DTO.TOKEN.STAT.SELLS_4H\n * @type {number}\n * @memberof TokenStat\n */\n sells4h: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_4H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes4h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_4H\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes4h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_4H\n * @type {string}\n * @memberof TokenStat\n */\n volumes4h: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_4H\n * @type {number}\n * @memberof TokenStat\n */\n buyers4h?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_4H\n * @type {number}\n * @memberof TokenStat\n */\n sellers4h?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd4h: string;\n /**\n * DTO.TOKEN.STAT.TRADES_4H\n * @type {number}\n * @memberof TokenStat\n */\n trades4h: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_4H\n * @type {number}\n * @memberof TokenStat\n */\n traders4h?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd4h?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_4H\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd4h?: string;\n /**\n * DTO.TOKEN.STAT.PRICE_24H\n * @type {string}\n * @memberof TokenStat\n */\n price24h: string;\n /**\n * DTO.TOKEN.STAT.BUYS_24H\n * @type {number}\n * @memberof TokenStat\n */\n buys24h: number;\n /**\n * DTO.TOKEN.STAT.SELLS_24H\n * @type {number}\n * @memberof TokenStat\n */\n sells24h: number;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_24H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumes24h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_24H\n * @type {string}\n * @memberof TokenStat\n */\n sellsVolumes24h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_24H\n * @type {string}\n * @memberof TokenStat\n */\n volumes24h: string;\n /**\n * DTO.TOKEN.STAT.BUY_VOLUMES_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n buyVolumesInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.SELL_VOLUMES_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n sellVolumesInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.VOLUMES_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n volumesInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.BUYERS_24H\n * @type {number}\n * @memberof TokenStat\n */\n buyers24h?: number;\n /**\n * DTO.TOKEN.STAT.SELLERS_24H\n * @type {number}\n * @memberof TokenStat\n */\n sellers24h?: number;\n /**\n * DTO.TOKEN.STAT.OPEN_PRICE_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n openPriceInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.CLOSE_PRICE_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n closePriceInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.PRICE_CHANGE_RATIO_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n priceChangeRatioInUsd24h: string;\n /**\n * DTO.TOKEN.STAT.TRADES_24H\n * @type {number}\n * @memberof TokenStat\n */\n trades24h: number;\n /**\n * DTO.TOKEN.STAT.TRADERS_24H\n * @type {number}\n * @memberof TokenStat\n */\n traders24h?: number;\n /**\n * DTO.TOKEN.STAT.HIGH_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n highInUsd24h?: string;\n /**\n * DTO.TOKEN.STAT.LOW_IN_USD_24H\n * @type {string}\n * @memberof TokenStat\n */\n lowInUsd24h?: string;\n}\n\n/**\n * Check if a given object implements the TokenStat interface.\n */\nexport function instanceOfTokenStat(value: object): value is TokenStat {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('price1m' in value) || value['price1m'] === undefined) return false;\n if (!('buys1m' in value) || value['buys1m'] === undefined) return false;\n if (!('sells1m' in value) || value['sells1m'] === undefined) return false;\n if (!('buyVolumes1m' in value) || value['buyVolumes1m'] === undefined) return false;\n if (!('sellsVolumes1m' in value) || value['sellsVolumes1m'] === undefined) return false;\n if (!('volumes1m' in value) || value['volumes1m'] === undefined) return false;\n if (!('buyVolumesInUsd1m' in value) || value['buyVolumesInUsd1m'] === undefined) return false;\n if (!('sellVolumesInUsd1m' in value) || value['sellVolumesInUsd1m'] === undefined) return false;\n if (!('volumesInUsd1m' in value) || value['volumesInUsd1m'] === undefined) return false;\n if (!('openPriceInUsd1m' in value) || value['openPriceInUsd1m'] === undefined) return false;\n if (!('closePriceInUsd1m' in value) || value['closePriceInUsd1m'] === undefined) return false;\n if (!('priceChangeRatioInUsd1m' in value) || value['priceChangeRatioInUsd1m'] === undefined) return false;\n if (!('trades1m' in value) || value['trades1m'] === undefined) return false;\n if (!('price5m' in value) || value['price5m'] === undefined) return false;\n if (!('buys5m' in value) || value['buys5m'] === undefined) return false;\n if (!('sells5m' in value) || value['sells5m'] === undefined) return false;\n if (!('buyVolumes5m' in value) || value['buyVolumes5m'] === undefined) return false;\n if (!('sellsVolumes5m' in value) || value['sellsVolumes5m'] === undefined) return false;\n if (!('volumes5m' in value) || value['volumes5m'] === undefined) return false;\n if (!('buyVolumesInUsd5m' in value) || value['buyVolumesInUsd5m'] === undefined) return false;\n if (!('sellVolumesInUsd5m' in value) || value['sellVolumesInUsd5m'] === undefined) return false;\n if (!('volumesInUsd5m' in value) || value['volumesInUsd5m'] === undefined) return false;\n if (!('openPriceInUsd5m' in value) || value['openPriceInUsd5m'] === undefined) return false;\n if (!('closePriceInUsd5m' in value) || value['closePriceInUsd5m'] === undefined) return false;\n if (!('priceChangeRatioInUsd5m' in value) || value['priceChangeRatioInUsd5m'] === undefined) return false;\n if (!('trades5m' in value) || value['trades5m'] === undefined) return false;\n if (!('price30m' in value) || value['price30m'] === undefined) return false;\n if (!('buys30m' in value) || value['buys30m'] === undefined) return false;\n if (!('sells30m' in value) || value['sells30m'] === undefined) return false;\n if (!('buyVolumes30m' in value) || value['buyVolumes30m'] === undefined) return false;\n if (!('sellsVolumes30m' in value) || value['sellsVolumes30m'] === undefined) return false;\n if (!('volumes30m' in value) || value['volumes30m'] === undefined) return false;\n if (!('buyVolumesInUsd30m' in value) || value['buyVolumesInUsd30m'] === undefined) return false;\n if (!('sellVolumesInUsd30m' in value) || value['sellVolumesInUsd30m'] === undefined) return false;\n if (!('volumesInUsd30m' in value) || value['volumesInUsd30m'] === undefined) return false;\n if (!('openPriceInUsd30m' in value) || value['openPriceInUsd30m'] === undefined) return false;\n if (!('closePriceInUsd30m' in value) || value['closePriceInUsd30m'] === undefined) return false;\n if (!('priceChangeRatioInUsd30m' in value) || value['priceChangeRatioInUsd30m'] === undefined) return false;\n if (!('trades30m' in value) || value['trades30m'] === undefined) return false;\n if (!('price1h' in value) || value['price1h'] === undefined) return false;\n if (!('buys1h' in value) || value['buys1h'] === undefined) return false;\n if (!('sells1h' in value) || value['sells1h'] === undefined) return false;\n if (!('buyVolumes1h' in value) || value['buyVolumes1h'] === undefined) return false;\n if (!('sellsVolumes1h' in value) || value['sellsVolumes1h'] === undefined) return false;\n if (!('volumes1h' in value) || value['volumes1h'] === undefined) return false;\n if (!('buyVolumesInUsd1h' in value) || value['buyVolumesInUsd1h'] === undefined) return false;\n if (!('sellVolumesInUsd1h' in value) || value['sellVolumesInUsd1h'] === undefined) return false;\n if (!('volumesInUsd1h' in value) || value['volumesInUsd1h'] === undefined) return false;\n if (!('openPriceInUsd1h' in value) || value['openPriceInUsd1h'] === undefined) return false;\n if (!('closePriceInUsd1h' in value) || value['closePriceInUsd1h'] === undefined) return false;\n if (!('priceChangeRatioInUsd1h' in value) || value['priceChangeRatioInUsd1h'] === undefined) return false;\n if (!('trades1h' in value) || value['trades1h'] === undefined) return false;\n if (!('price4h' in value) || value['price4h'] === undefined) return false;\n if (!('buys4h' in value) || value['buys4h'] === undefined) return false;\n if (!('sells4h' in value) || value['sells4h'] === undefined) return false;\n if (!('buyVolumes4h' in value) || value['buyVolumes4h'] === undefined) return false;\n if (!('sellsVolumes4h' in value) || value['sellsVolumes4h'] === undefined) return false;\n if (!('volumes4h' in value) || value['volumes4h'] === undefined) return false;\n if (!('buyVolumesInUsd4h' in value) || value['buyVolumesInUsd4h'] === undefined) return false;\n if (!('sellVolumesInUsd4h' in value) || value['sellVolumesInUsd4h'] === undefined) return false;\n if (!('volumesInUsd4h' in value) || value['volumesInUsd4h'] === undefined) return false;\n if (!('openPriceInUsd4h' in value) || value['openPriceInUsd4h'] === undefined) return false;\n if (!('closePriceInUsd4h' in value) || value['closePriceInUsd4h'] === undefined) return false;\n if (!('priceChangeRatioInUsd4h' in value) || value['priceChangeRatioInUsd4h'] === undefined) return false;\n if (!('trades4h' in value) || value['trades4h'] === undefined) return false;\n if (!('price24h' in value) || value['price24h'] === undefined) return false;\n if (!('buys24h' in value) || value['buys24h'] === undefined) return false;\n if (!('sells24h' in value) || value['sells24h'] === undefined) return false;\n if (!('buyVolumes24h' in value) || value['buyVolumes24h'] === undefined) return false;\n if (!('sellsVolumes24h' in value) || value['sellsVolumes24h'] === undefined) return false;\n if (!('volumes24h' in value) || value['volumes24h'] === undefined) return false;\n if (!('buyVolumesInUsd24h' in value) || value['buyVolumesInUsd24h'] === undefined) return false;\n if (!('sellVolumesInUsd24h' in value) || value['sellVolumesInUsd24h'] === undefined) return false;\n if (!('volumesInUsd24h' in value) || value['volumesInUsd24h'] === undefined) return false;\n if (!('openPriceInUsd24h' in value) || value['openPriceInUsd24h'] === undefined) return false;\n if (!('closePriceInUsd24h' in value) || value['closePriceInUsd24h'] === undefined) return false;\n if (!('priceChangeRatioInUsd24h' in value) || value['priceChangeRatioInUsd24h'] === undefined) return false;\n if (!('trades24h' in value) || value['trades24h'] === undefined) return false;\n return true;\n}\n\nexport function TokenStatFromJSON(json: any): TokenStat {\n return TokenStatFromJSONTyped(json, false);\n}\n\nexport function TokenStatFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenStat {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'price1m': json['price1m'],\n 'buys1m': json['buys1m'],\n 'sells1m': json['sells1m'],\n 'buyVolumes1m': json['buyVolumes1m'],\n 'sellsVolumes1m': json['sellsVolumes1m'],\n 'volumes1m': json['volumes1m'],\n 'buyVolumesInUsd1m': json['buyVolumesInUsd1m'],\n 'sellVolumesInUsd1m': json['sellVolumesInUsd1m'],\n 'volumesInUsd1m': json['volumesInUsd1m'],\n 'buyers1m': json['buyers1m'] == null ? undefined : json['buyers1m'],\n 'sellers1m': json['sellers1m'] == null ? undefined : json['sellers1m'],\n 'openPriceInUsd1m': json['openPriceInUsd1m'],\n 'closePriceInUsd1m': json['closePriceInUsd1m'],\n 'priceChangeRatioInUsd1m': json['priceChangeRatioInUsd1m'],\n 'trades1m': json['trades1m'],\n 'traders1m': json['traders1m'] == null ? undefined : json['traders1m'],\n 'highInUsd1m': json['highInUsd1m'] == null ? undefined : json['highInUsd1m'],\n 'lowInUsd1m': json['lowInUsd1m'] == null ? undefined : json['lowInUsd1m'],\n 'price5m': json['price5m'],\n 'buys5m': json['buys5m'],\n 'sells5m': json['sells5m'],\n 'buyVolumes5m': json['buyVolumes5m'],\n 'sellsVolumes5m': json['sellsVolumes5m'],\n 'volumes5m': json['volumes5m'],\n 'buyVolumesInUsd5m': json['buyVolumesInUsd5m'],\n 'sellVolumesInUsd5m': json['sellVolumesInUsd5m'],\n 'volumesInUsd5m': json['volumesInUsd5m'],\n 'buyers5m': json['buyers5m'] == null ? undefined : json['buyers5m'],\n 'sellers5m': json['sellers5m'] == null ? undefined : json['sellers5m'],\n 'openPriceInUsd5m': json['openPriceInUsd5m'],\n 'closePriceInUsd5m': json['closePriceInUsd5m'],\n 'priceChangeRatioInUsd5m': json['priceChangeRatioInUsd5m'],\n 'trades5m': json['trades5m'],\n 'traders5m': json['traders5m'] == null ? undefined : json['traders5m'],\n 'highInUsd5m': json['highInUsd5m'] == null ? undefined : json['highInUsd5m'],\n 'lowInUsd5m': json['lowInUsd5m'] == null ? undefined : json['lowInUsd5m'],\n 'price15m': json['price15m'] == null ? undefined : json['price15m'],\n 'buys15m': json['buys15m'] == null ? undefined : json['buys15m'],\n 'sells15m': json['sells15m'] == null ? undefined : json['sells15m'],\n 'buyVolumes15m': json['buyVolumes15m'] == null ? undefined : json['buyVolumes15m'],\n 'sellsVolumes15m': json['sellsVolumes15m'] == null ? undefined : json['sellsVolumes15m'],\n 'volumes15m': json['volumes15m'] == null ? undefined : json['volumes15m'],\n 'buyVolumesInUsd15m': json['buyVolumesInUsd15m'] == null ? undefined : json['buyVolumesInUsd15m'],\n 'sellVolumesInUsd15m': json['sellVolumesInUsd15m'] == null ? undefined : json['sellVolumesInUsd15m'],\n 'volumesInUsd15m': json['volumesInUsd15m'] == null ? undefined : json['volumesInUsd15m'],\n 'buyers15m': json['buyers15m'] == null ? undefined : json['buyers15m'],\n 'sellers15m': json['sellers15m'] == null ? undefined : json['sellers15m'],\n 'openPriceInUsd15m': json['openPriceInUsd15m'] == null ? undefined : json['openPriceInUsd15m'],\n 'closePriceInUsd15m': json['closePriceInUsd15m'] == null ? undefined : json['closePriceInUsd15m'],\n 'priceChangeRatioInUsd15m': json['priceChangeRatioInUsd15m'] == null ? undefined : json['priceChangeRatioInUsd15m'],\n 'trades15m': json['trades15m'] == null ? undefined : json['trades15m'],\n 'traders15m': json['traders15m'] == null ? undefined : json['traders15m'],\n 'highInUsd15m': json['highInUsd15m'] == null ? undefined : json['highInUsd15m'],\n 'lowInUsd15m': json['lowInUsd15m'] == null ? undefined : json['lowInUsd15m'],\n 'price30m': json['price30m'],\n 'buys30m': json['buys30m'],\n 'sells30m': json['sells30m'],\n 'buyVolumes30m': json['buyVolumes30m'],\n 'sellsVolumes30m': json['sellsVolumes30m'],\n 'volumes30m': json['volumes30m'],\n 'buyVolumesInUsd30m': json['buyVolumesInUsd30m'],\n 'sellVolumesInUsd30m': json['sellVolumesInUsd30m'],\n 'volumesInUsd30m': json['volumesInUsd30m'],\n 'buyers30m': json['buyers30m'] == null ? undefined : json['buyers30m'],\n 'sellers30m': json['sellers30m'] == null ? undefined : json['sellers30m'],\n 'openPriceInUsd30m': json['openPriceInUsd30m'],\n 'closePriceInUsd30m': json['closePriceInUsd30m'],\n 'priceChangeRatioInUsd30m': json['priceChangeRatioInUsd30m'],\n 'trades30m': json['trades30m'],\n 'traders30m': json['traders30m'] == null ? undefined : json['traders30m'],\n 'highInUsd30m': json['highInUsd30m'] == null ? undefined : json['highInUsd30m'],\n 'lowInUsd30m': json['lowInUsd30m'] == null ? undefined : json['lowInUsd30m'],\n 'price1h': json['price1h'],\n 'buys1h': json['buys1h'],\n 'sells1h': json['sells1h'],\n 'buyVolumes1h': json['buyVolumes1h'],\n 'sellsVolumes1h': json['sellsVolumes1h'],\n 'volumes1h': json['volumes1h'],\n 'buyVolumesInUsd1h': json['buyVolumesInUsd1h'],\n 'sellVolumesInUsd1h': json['sellVolumesInUsd1h'],\n 'volumesInUsd1h': json['volumesInUsd1h'],\n 'buyers1h': json['buyers1h'] == null ? undefined : json['buyers1h'],\n 'sellers1h': json['sellers1h'] == null ? undefined : json['sellers1h'],\n 'openPriceInUsd1h': json['openPriceInUsd1h'],\n 'closePriceInUsd1h': json['closePriceInUsd1h'],\n 'priceChangeRatioInUsd1h': json['priceChangeRatioInUsd1h'],\n 'trades1h': json['trades1h'],\n 'traders1h': json['traders1h'] == null ? undefined : json['traders1h'],\n 'highInUsd1h': json['highInUsd1h'] == null ? undefined : json['highInUsd1h'],\n 'lowInUsd1h': json['lowInUsd1h'] == null ? undefined : json['lowInUsd1h'],\n 'price4h': json['price4h'],\n 'buys4h': json['buys4h'],\n 'sells4h': json['sells4h'],\n 'buyVolumes4h': json['buyVolumes4h'],\n 'sellsVolumes4h': json['sellsVolumes4h'],\n 'volumes4h': json['volumes4h'],\n 'buyVolumesInUsd4h': json['buyVolumesInUsd4h'],\n 'sellVolumesInUsd4h': json['sellVolumesInUsd4h'],\n 'volumesInUsd4h': json['volumesInUsd4h'],\n 'buyers4h': json['buyers4h'] == null ? undefined : json['buyers4h'],\n 'sellers4h': json['sellers4h'] == null ? undefined : json['sellers4h'],\n 'openPriceInUsd4h': json['openPriceInUsd4h'],\n 'closePriceInUsd4h': json['closePriceInUsd4h'],\n 'priceChangeRatioInUsd4h': json['priceChangeRatioInUsd4h'],\n 'trades4h': json['trades4h'],\n 'traders4h': json['traders4h'] == null ? undefined : json['traders4h'],\n 'highInUsd4h': json['highInUsd4h'] == null ? undefined : json['highInUsd4h'],\n 'lowInUsd4h': json['lowInUsd4h'] == null ? undefined : json['lowInUsd4h'],\n 'price24h': json['price24h'],\n 'buys24h': json['buys24h'],\n 'sells24h': json['sells24h'],\n 'buyVolumes24h': json['buyVolumes24h'],\n 'sellsVolumes24h': json['sellsVolumes24h'],\n 'volumes24h': json['volumes24h'],\n 'buyVolumesInUsd24h': json['buyVolumesInUsd24h'],\n 'sellVolumesInUsd24h': json['sellVolumesInUsd24h'],\n 'volumesInUsd24h': json['volumesInUsd24h'],\n 'buyers24h': json['buyers24h'] == null ? undefined : json['buyers24h'],\n 'sellers24h': json['sellers24h'] == null ? undefined : json['sellers24h'],\n 'openPriceInUsd24h': json['openPriceInUsd24h'],\n 'closePriceInUsd24h': json['closePriceInUsd24h'],\n 'priceChangeRatioInUsd24h': json['priceChangeRatioInUsd24h'],\n 'trades24h': json['trades24h'],\n 'traders24h': json['traders24h'] == null ? undefined : json['traders24h'],\n 'highInUsd24h': json['highInUsd24h'] == null ? undefined : json['highInUsd24h'],\n 'lowInUsd24h': json['lowInUsd24h'] == null ? undefined : json['lowInUsd24h'],\n };\n}\n\nexport function TokenStatToJSON(json: any): TokenStat {\n return TokenStatToJSONTyped(json, false);\n}\n\nexport function TokenStatToJSONTyped(value?: TokenStat | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'price1m': value['price1m'],\n 'buys1m': value['buys1m'],\n 'sells1m': value['sells1m'],\n 'buyVolumes1m': value['buyVolumes1m'],\n 'sellsVolumes1m': value['sellsVolumes1m'],\n 'volumes1m': value['volumes1m'],\n 'buyVolumesInUsd1m': value['buyVolumesInUsd1m'],\n 'sellVolumesInUsd1m': value['sellVolumesInUsd1m'],\n 'volumesInUsd1m': value['volumesInUsd1m'],\n 'buyers1m': value['buyers1m'],\n 'sellers1m': value['sellers1m'],\n 'openPriceInUsd1m': value['openPriceInUsd1m'],\n 'closePriceInUsd1m': value['closePriceInUsd1m'],\n 'priceChangeRatioInUsd1m': value['priceChangeRatioInUsd1m'],\n 'trades1m': value['trades1m'],\n 'traders1m': value['traders1m'],\n 'highInUsd1m': value['highInUsd1m'],\n 'lowInUsd1m': value['lowInUsd1m'],\n 'price5m': value['price5m'],\n 'buys5m': value['buys5m'],\n 'sells5m': value['sells5m'],\n 'buyVolumes5m': value['buyVolumes5m'],\n 'sellsVolumes5m': value['sellsVolumes5m'],\n 'volumes5m': value['volumes5m'],\n 'buyVolumesInUsd5m': value['buyVolumesInUsd5m'],\n 'sellVolumesInUsd5m': value['sellVolumesInUsd5m'],\n 'volumesInUsd5m': value['volumesInUsd5m'],\n 'buyers5m': value['buyers5m'],\n 'sellers5m': value['sellers5m'],\n 'openPriceInUsd5m': value['openPriceInUsd5m'],\n 'closePriceInUsd5m': value['closePriceInUsd5m'],\n 'priceChangeRatioInUsd5m': value['priceChangeRatioInUsd5m'],\n 'trades5m': value['trades5m'],\n 'traders5m': value['traders5m'],\n 'highInUsd5m': value['highInUsd5m'],\n 'lowInUsd5m': value['lowInUsd5m'],\n 'price15m': value['price15m'],\n 'buys15m': value['buys15m'],\n 'sells15m': value['sells15m'],\n 'buyVolumes15m': value['buyVolumes15m'],\n 'sellsVolumes15m': value['sellsVolumes15m'],\n 'volumes15m': value['volumes15m'],\n 'buyVolumesInUsd15m': value['buyVolumesInUsd15m'],\n 'sellVolumesInUsd15m': value['sellVolumesInUsd15m'],\n 'volumesInUsd15m': value['volumesInUsd15m'],\n 'buyers15m': value['buyers15m'],\n 'sellers15m': value['sellers15m'],\n 'openPriceInUsd15m': value['openPriceInUsd15m'],\n 'closePriceInUsd15m': value['closePriceInUsd15m'],\n 'priceChangeRatioInUsd15m': value['priceChangeRatioInUsd15m'],\n 'trades15m': value['trades15m'],\n 'traders15m': value['traders15m'],\n 'highInUsd15m': value['highInUsd15m'],\n 'lowInUsd15m': value['lowInUsd15m'],\n 'price30m': value['price30m'],\n 'buys30m': value['buys30m'],\n 'sells30m': value['sells30m'],\n 'buyVolumes30m': value['buyVolumes30m'],\n 'sellsVolumes30m': value['sellsVolumes30m'],\n 'volumes30m': value['volumes30m'],\n 'buyVolumesInUsd30m': value['buyVolumesInUsd30m'],\n 'sellVolumesInUsd30m': value['sellVolumesInUsd30m'],\n 'volumesInUsd30m': value['volumesInUsd30m'],\n 'buyers30m': value['buyers30m'],\n 'sellers30m': value['sellers30m'],\n 'openPriceInUsd30m': value['openPriceInUsd30m'],\n 'closePriceInUsd30m': value['closePriceInUsd30m'],\n 'priceChangeRatioInUsd30m': value['priceChangeRatioInUsd30m'],\n 'trades30m': value['trades30m'],\n 'traders30m': value['traders30m'],\n 'highInUsd30m': value['highInUsd30m'],\n 'lowInUsd30m': value['lowInUsd30m'],\n 'price1h': value['price1h'],\n 'buys1h': value['buys1h'],\n 'sells1h': value['sells1h'],\n 'buyVolumes1h': value['buyVolumes1h'],\n 'sellsVolumes1h': value['sellsVolumes1h'],\n 'volumes1h': value['volumes1h'],\n 'buyVolumesInUsd1h': value['buyVolumesInUsd1h'],\n 'sellVolumesInUsd1h': value['sellVolumesInUsd1h'],\n 'volumesInUsd1h': value['volumesInUsd1h'],\n 'buyers1h': value['buyers1h'],\n 'sellers1h': value['sellers1h'],\n 'openPriceInUsd1h': value['openPriceInUsd1h'],\n 'closePriceInUsd1h': value['closePriceInUsd1h'],\n 'priceChangeRatioInUsd1h': value['priceChangeRatioInUsd1h'],\n 'trades1h': value['trades1h'],\n 'traders1h': value['traders1h'],\n 'highInUsd1h': value['highInUsd1h'],\n 'lowInUsd1h': value['lowInUsd1h'],\n 'price4h': value['price4h'],\n 'buys4h': value['buys4h'],\n 'sells4h': value['sells4h'],\n 'buyVolumes4h': value['buyVolumes4h'],\n 'sellsVolumes4h': value['sellsVolumes4h'],\n 'volumes4h': value['volumes4h'],\n 'buyVolumesInUsd4h': value['buyVolumesInUsd4h'],\n 'sellVolumesInUsd4h': value['sellVolumesInUsd4h'],\n 'volumesInUsd4h': value['volumesInUsd4h'],\n 'buyers4h': value['buyers4h'],\n 'sellers4h': value['sellers4h'],\n 'openPriceInUsd4h': value['openPriceInUsd4h'],\n 'closePriceInUsd4h': value['closePriceInUsd4h'],\n 'priceChangeRatioInUsd4h': value['priceChangeRatioInUsd4h'],\n 'trades4h': value['trades4h'],\n 'traders4h': value['traders4h'],\n 'highInUsd4h': value['highInUsd4h'],\n 'lowInUsd4h': value['lowInUsd4h'],\n 'price24h': value['price24h'],\n 'buys24h': value['buys24h'],\n 'sells24h': value['sells24h'],\n 'buyVolumes24h': value['buyVolumes24h'],\n 'sellsVolumes24h': value['sellsVolumes24h'],\n 'volumes24h': value['volumes24h'],\n 'buyVolumesInUsd24h': value['buyVolumesInUsd24h'],\n 'sellVolumesInUsd24h': value['sellVolumesInUsd24h'],\n 'volumesInUsd24h': value['volumesInUsd24h'],\n 'buyers24h': value['buyers24h'],\n 'sellers24h': value['sellers24h'],\n 'openPriceInUsd24h': value['openPriceInUsd24h'],\n 'closePriceInUsd24h': value['closePriceInUsd24h'],\n 'priceChangeRatioInUsd24h': value['priceChangeRatioInUsd24h'],\n 'trades24h': value['trades24h'],\n 'traders24h': value['traders24h'],\n 'highInUsd24h': value['highInUsd24h'],\n 'lowInUsd24h': value['lowInUsd24h'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenMarketData } from './TokenMarketData';\nimport {\n TokenMarketDataFromJSON,\n TokenMarketDataFromJSONTyped,\n TokenMarketDataToJSON,\n TokenMarketDataToJSONTyped,\n} from './TokenMarketData';\nimport type { TokenMetadata } from './TokenMetadata';\nimport {\n TokenMetadataFromJSON,\n TokenMetadataFromJSONTyped,\n TokenMetadataToJSON,\n TokenMetadataToJSONTyped,\n} from './TokenMetadata';\nimport type { TokenStat } from './TokenStat';\nimport {\n TokenStatFromJSON,\n TokenStatFromJSONTyped,\n TokenStatToJSON,\n TokenStatToJSONTyped,\n} from './TokenStat';\n\n/**\n * \n * @export\n * @interface DevTokenDTO\n */\nexport interface DevTokenDTO {\n /**\n * DTO.DEV_TOKEN.ADDRESS\n * @type {string}\n * @memberof DevTokenDTO\n */\n address: string;\n /**\n * DTO.DEV_TOKEN.METADATA\n * @type {TokenMetadata}\n * @memberof DevTokenDTO\n */\n metadata: TokenMetadata;\n /**\n * DTO.DEV_TOKEN.MARKET_DATA\n * @type {TokenMarketData}\n * @memberof DevTokenDTO\n */\n marketData: TokenMarketData;\n /**\n * DTO.DEV_TOKEN.STATS\n * @type {TokenStat}\n * @memberof DevTokenDTO\n */\n stats: TokenStat;\n}\n\n/**\n * Check if a given object implements the DevTokenDTO interface.\n */\nexport function instanceOfDevTokenDTO(value: object): value is DevTokenDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('metadata' in value) || value['metadata'] === undefined) return false;\n if (!('marketData' in value) || value['marketData'] === undefined) return false;\n if (!('stats' in value) || value['stats'] === undefined) return false;\n return true;\n}\n\nexport function DevTokenDTOFromJSON(json: any): DevTokenDTO {\n return DevTokenDTOFromJSONTyped(json, false);\n}\n\nexport function DevTokenDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): DevTokenDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'metadata': TokenMetadataFromJSON(json['metadata']),\n 'marketData': TokenMarketDataFromJSON(json['marketData']),\n 'stats': TokenStatFromJSON(json['stats']),\n };\n}\n\nexport function DevTokenDTOToJSON(json: any): DevTokenDTO {\n return DevTokenDTOToJSONTyped(json, false);\n}\n\nexport function DevTokenDTOToJSONTyped(value?: DevTokenDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'metadata': TokenMetadataToJSON(value['metadata']),\n 'marketData': TokenMarketDataToJSON(value['marketData']),\n 'stats': TokenStatToJSON(value['stats']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DexDTO\n */\nexport interface DexDTO {\n /**\n * DTO.DEX.PROGRAM_ADDRESS\n * @type {string}\n * @memberof DexDTO\n */\n programAddress?: string;\n /**\n * DTO.DEX.PROTOCOL_FAMILY\n * @type {string}\n * @memberof DexDTO\n */\n protocolFamily?: string;\n /**\n * DTO.DEX.IMAGE\n * @type {string}\n * @memberof DexDTO\n */\n image?: string;\n /**\n * DTO.DEX.CHAIN\n * @type {string}\n * @memberof DexDTO\n */\n chain: string;\n}\n\n/**\n * Check if a given object implements the DexDTO interface.\n */\nexport function instanceOfDexDTO(value: object): value is DexDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n return true;\n}\n\nexport function DexDTOFromJSON(json: any): DexDTO {\n return DexDTOFromJSONTyped(json, false);\n}\n\nexport function DexDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): DexDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'programAddress': json['programAddress'] == null ? undefined : json['programAddress'],\n 'protocolFamily': json['protocolFamily'] == null ? undefined : json['protocolFamily'],\n 'image': json['image'] == null ? undefined : json['image'],\n 'chain': json['chain'],\n };\n}\n\nexport function DexDTOToJSON(json: any): DexDTO {\n return DexDTOToJSONTyped(json, false);\n}\n\nexport function DexDTOToJSONTyped(value?: DexDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'programAddress': value['programAddress'],\n 'protocolFamily': value['protocolFamily'],\n 'image': value['image'],\n 'chain': value['chain'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { DexDTO } from './DexDTO';\nimport {\n DexDTOFromJSON,\n DexDTOFromJSONTyped,\n DexDTOToJSON,\n DexDTOToJSONTyped,\n} from './DexDTO';\n\n/**\n * \n * @export\n * @interface DexPage\n */\nexport interface DexPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof DexPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof DexPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof DexPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof DexPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof DexPage\n */\n total?: number;\n /**\n * DTO.DEX.PAGE.DATA\n * @type {Array<DexDTO>}\n * @memberof DexPage\n */\n data: Array<DexDTO>;\n}\n\n/**\n * Check if a given object implements the DexPage interface.\n */\nexport function instanceOfDexPage(value: object): value is DexPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function DexPageFromJSON(json: any): DexPage {\n return DexPageFromJSONTyped(json, false);\n}\n\nexport function DexPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): DexPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(DexDTOFromJSON)),\n };\n}\n\nexport function DexPageToJSON(json: any): DexPage {\n return DexPageToJSONTyped(json, false);\n}\n\nexport function DexPageToJSONTyped(value?: DexPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(DexDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DexPoolDTO\n */\nexport interface DexPoolDTO {\n /**\n * DTO.DEX.PROGRAM_ADDRESS\n * @type {string}\n * @memberof DexPoolDTO\n */\n programAddress?: string;\n /**\n * DTO.DEX.PROTOCOL_FAMILY\n * @type {string}\n * @memberof DexPoolDTO\n */\n protocolFamily?: string;\n /**\n * DTO.DEX.IMAGE\n * @type {string}\n * @memberof DexPoolDTO\n */\n image?: string;\n /**\n * DTO.DEX.CHAIN\n * @type {string}\n * @memberof DexPoolDTO\n */\n chain: string;\n /**\n * DTO.DEXPOOL.POOL_ADDRESS\n * @type {string}\n * @memberof DexPoolDTO\n */\n poolAddress: string;\n /**\n * DTO.DEXPOOL.PROTOCOL_NAME\n * @type {string}\n * @memberof DexPoolDTO\n */\n protocolName?: string;\n /**\n * DTO.DEXPOOL.TOKEN_A\n * @type {string}\n * @memberof DexPoolDTO\n */\n tokenAAddress: string;\n /**\n * DTO.DEXPOOL.TOKEN_B\n * @type {string}\n * @memberof DexPoolDTO\n */\n tokenBAddress: string;\n /**\n * DTO.DEXPOOL.TVL_USD\n * @type {string}\n * @memberof DexPoolDTO\n */\n tvlInUsd?: string;\n /**\n * DTO.DEXPOOL.TVL_SOL\n * @type {string}\n * @memberof DexPoolDTO\n */\n tvlInSol?: string;\n}\n\n/**\n * Check if a given object implements the DexPoolDTO interface.\n */\nexport function instanceOfDexPoolDTO(value: object): value is DexPoolDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('poolAddress' in value) || value['poolAddress'] === undefined) return false;\n if (!('tokenAAddress' in value) || value['tokenAAddress'] === undefined) return false;\n if (!('tokenBAddress' in value) || value['tokenBAddress'] === undefined) return false;\n return true;\n}\n\nexport function DexPoolDTOFromJSON(json: any): DexPoolDTO {\n return DexPoolDTOFromJSONTyped(json, false);\n}\n\nexport function DexPoolDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): DexPoolDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'programAddress': json['programAddress'] == null ? undefined : json['programAddress'],\n 'protocolFamily': json['protocolFamily'] == null ? undefined : json['protocolFamily'],\n 'image': json['image'] == null ? undefined : json['image'],\n 'chain': json['chain'],\n 'poolAddress': json['poolAddress'],\n 'protocolName': json['protocolName'] == null ? undefined : json['protocolName'],\n 'tokenAAddress': json['tokenAAddress'],\n 'tokenBAddress': json['tokenBAddress'],\n 'tvlInUsd': json['tvlInUsd'] == null ? undefined : json['tvlInUsd'],\n 'tvlInSol': json['tvlInSol'] == null ? undefined : json['tvlInSol'],\n };\n}\n\nexport function DexPoolDTOToJSON(json: any): DexPoolDTO {\n return DexPoolDTOToJSONTyped(json, false);\n}\n\nexport function DexPoolDTOToJSONTyped(value?: DexPoolDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'programAddress': value['programAddress'],\n 'protocolFamily': value['protocolFamily'],\n 'image': value['image'],\n 'chain': value['chain'],\n 'poolAddress': value['poolAddress'],\n 'protocolName': value['protocolName'],\n 'tokenAAddress': value['tokenAAddress'],\n 'tokenBAddress': value['tokenBAddress'],\n 'tvlInUsd': value['tvlInUsd'],\n 'tvlInSol': value['tvlInSol'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface DirectExposureDetail\n */\nexport interface DirectExposureDetail {\n /**\n * DTO.KYT.DIRECT_EXPOSURE_DETAIL.NAME\n * @type {string}\n * @memberof DirectExposureDetail\n */\n name: string;\n /**\n * DTO.KYT.DIRECT_EXPOSURE_DETAIL.CATEGORY_ID\n * @type {number}\n * @memberof DirectExposureDetail\n */\n categoryId: number;\n}\n\n/**\n * Check if a given object implements the DirectExposureDetail interface.\n */\nexport function instanceOfDirectExposureDetail(value: object): value is DirectExposureDetail {\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('categoryId' in value) || value['categoryId'] === undefined) return false;\n return true;\n}\n\nexport function DirectExposureDetailFromJSON(json: any): DirectExposureDetail {\n return DirectExposureDetailFromJSONTyped(json, false);\n}\n\nexport function DirectExposureDetailFromJSONTyped(json: any, ignoreDiscriminator: boolean): DirectExposureDetail {\n if (json == null) {\n return json;\n }\n return {\n \n 'name': json['name'],\n 'categoryId': json['categoryId'],\n };\n}\n\nexport function DirectExposureDetailToJSON(json: any): DirectExposureDetail {\n return DirectExposureDetailToJSONTyped(json, false);\n}\n\nexport function DirectExposureDetailToJSONTyped(value?: DirectExposureDetail | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'name': value['name'],\n 'categoryId': value['categoryId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EndpointResponse\n */\nexport interface EndpointResponse {\n /**\n * DTO.ENDPOINT.ID\n * @type {string}\n * @memberof EndpointResponse\n */\n id?: string;\n /**\n * DTO.ENDPOINT.URL\n * @type {string}\n * @memberof EndpointResponse\n */\n url?: string;\n /**\n * DTO.ENDPOINT.DESCRIPTION\n * @type {string}\n * @memberof EndpointResponse\n */\n description?: string;\n /**\n * DTO.ENDPOINT.FILTER_TYPES\n * @type {Array<string>}\n * @memberof EndpointResponse\n */\n filterTypes?: Array<string>;\n /**\n * DTO.ENDPOINT.CHANNELS\n * @type {Array<string>}\n * @memberof EndpointResponse\n */\n channels?: Array<string>;\n /**\n * DTO.ENDPOINT.DISABLED\n * @type {boolean}\n * @memberof EndpointResponse\n */\n disabled?: boolean;\n /**\n * DTO.ENDPOINT.METADATA\n * @type {object}\n * @memberof EndpointResponse\n */\n metadata?: object;\n /**\n * DTO.ENDPOINT.RATE_LIMIT\n * @type {number}\n * @memberof EndpointResponse\n */\n rateLimit?: number;\n /**\n * DTO.ENDPOINT.FILTER\n * @type {string}\n * @memberof EndpointResponse\n */\n filter?: string;\n /**\n * DTO.ENDPOINT.CREATED_AT\n * @type {string}\n * @memberof EndpointResponse\n */\n createdAt?: string;\n /**\n * DTO.ENDPOINT.UPDATED_AT\n * @type {string}\n * @memberof EndpointResponse\n */\n updatedAt?: string;\n}\n\n/**\n * Check if a given object implements the EndpointResponse interface.\n */\nexport function instanceOfEndpointResponse(value: object): value is EndpointResponse {\n return true;\n}\n\nexport function EndpointResponseFromJSON(json: any): EndpointResponse {\n return EndpointResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n 'url': json['url'] == null ? undefined : json['url'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'filterTypes': json['filterTypes'] == null ? undefined : json['filterTypes'],\n 'channels': json['channels'] == null ? undefined : json['channels'],\n 'disabled': json['disabled'] == null ? undefined : json['disabled'],\n 'metadata': json['metadata'] == null ? undefined : json['metadata'],\n 'rateLimit': json['rateLimit'] == null ? undefined : json['rateLimit'],\n 'filter': json['filter'] == null ? undefined : json['filter'],\n 'createdAt': json['createdAt'] == null ? undefined : json['createdAt'],\n 'updatedAt': json['updatedAt'] == null ? undefined : json['updatedAt'],\n };\n}\n\nexport function EndpointResponseToJSON(json: any): EndpointResponse {\n return EndpointResponseToJSONTyped(json, false);\n}\n\nexport function EndpointResponseToJSONTyped(value?: EndpointResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'url': value['url'],\n 'description': value['description'],\n 'filterTypes': value['filterTypes'],\n 'channels': value['channels'],\n 'disabled': value['disabled'],\n 'metadata': value['metadata'],\n 'rateLimit': value['rateLimit'],\n 'filter': value['filter'],\n 'createdAt': value['createdAt'],\n 'updatedAt': value['updatedAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { EndpointResponse } from './EndpointResponse';\nimport {\n EndpointResponseFromJSON,\n EndpointResponseFromJSONTyped,\n EndpointResponseToJSON,\n EndpointResponseToJSONTyped,\n} from './EndpointResponse';\n\n/**\n * \n * @export\n * @interface EndpointListResponse\n */\nexport interface EndpointListResponse {\n /**\n * DTO.ENDPOINT.PAGE.DATA\n * @type {Array<EndpointResponse>}\n * @memberof EndpointListResponse\n */\n data?: Array<EndpointResponse>;\n /**\n * DTO.ENDPOINT.PAGE.DONE\n * @type {boolean}\n * @memberof EndpointListResponse\n */\n done?: boolean;\n /**\n * DTO.ENDPOINT.PAGE.ITERATOR\n * @type {string}\n * @memberof EndpointListResponse\n */\n iterator?: string;\n /**\n * DTO.ENDPOINT.PAGE.PREV_ITERATOR\n * @type {string}\n * @memberof EndpointListResponse\n */\n prevIterator?: string;\n}\n\n/**\n * Check if a given object implements the EndpointListResponse interface.\n */\nexport function instanceOfEndpointListResponse(value: object): value is EndpointListResponse {\n return true;\n}\n\nexport function EndpointListResponseFromJSON(json: any): EndpointListResponse {\n return EndpointListResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointListResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'data': json['data'] == null ? undefined : ((json['data'] as Array<any>).map(EndpointResponseFromJSON)),\n 'done': json['done'] == null ? undefined : json['done'],\n 'iterator': json['iterator'] == null ? undefined : json['iterator'],\n 'prevIterator': json['prevIterator'] == null ? undefined : json['prevIterator'],\n };\n}\n\nexport function EndpointListResponseToJSON(json: any): EndpointListResponse {\n return EndpointListResponseToJSONTyped(json, false);\n}\n\nexport function EndpointListResponseToJSONTyped(value?: EndpointListResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'data': value['data'] == null ? undefined : ((value['data'] as Array<any>).map(EndpointResponseToJSON)),\n 'done': value['done'],\n 'iterator': value['iterator'],\n 'prevIterator': value['prevIterator'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EndpointOperationResponse\n */\nexport interface EndpointOperationResponse {\n /**\n * DTO.ENDPOINT.SUCCESS\n * @type {boolean}\n * @memberof EndpointOperationResponse\n */\n success?: boolean;\n}\n\n/**\n * Check if a given object implements the EndpointOperationResponse interface.\n */\nexport function instanceOfEndpointOperationResponse(value: object): value is EndpointOperationResponse {\n return true;\n}\n\nexport function EndpointOperationResponseFromJSON(json: any): EndpointOperationResponse {\n return EndpointOperationResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointOperationResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointOperationResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'success': json['success'] == null ? undefined : json['success'],\n };\n}\n\nexport function EndpointOperationResponseToJSON(json: any): EndpointOperationResponse {\n return EndpointOperationResponseToJSONTyped(json, false);\n}\n\nexport function EndpointOperationResponseToJSONTyped(value?: EndpointOperationResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'success': value['success'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EndpointSecretResponse\n */\nexport interface EndpointSecretResponse {\n /**\n * DTO.ENDPOINT.SECRET\n * @type {string}\n * @memberof EndpointSecretResponse\n */\n secret?: string;\n}\n\n/**\n * Check if a given object implements the EndpointSecretResponse interface.\n */\nexport function instanceOfEndpointSecretResponse(value: object): value is EndpointSecretResponse {\n return true;\n}\n\nexport function EndpointSecretResponseFromJSON(json: any): EndpointSecretResponse {\n return EndpointSecretResponseFromJSONTyped(json, false);\n}\n\nexport function EndpointSecretResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EndpointSecretResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'secret': json['secret'] == null ? undefined : json['secret'],\n };\n}\n\nexport function EndpointSecretResponseToJSON(json: any): EndpointSecretResponse {\n return EndpointSecretResponseToJSONTyped(json, false);\n}\n\nexport function EndpointSecretResponseToJSONTyped(value?: EndpointSecretResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'secret': value['secret'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EstimateGasLimitInput\n */\nexport interface EstimateGasLimitInput {\n /**\n * From address\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n from: string;\n /**\n * To address\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n to: string;\n /**\n * Transaction data (hex)\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n data: string;\n /**\n * Value to send (in wei, hex string)\n * @type {string}\n * @memberof EstimateGasLimitInput\n */\n value?: string;\n}\n\n/**\n * Check if a given object implements the EstimateGasLimitInput interface.\n */\nexport function instanceOfEstimateGasLimitInput(value: object): value is EstimateGasLimitInput {\n if (!('from' in value) || value['from'] === undefined) return false;\n if (!('to' in value) || value['to'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function EstimateGasLimitInputFromJSON(json: any): EstimateGasLimitInput {\n return EstimateGasLimitInputFromJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): EstimateGasLimitInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'from': json['from'],\n 'to': json['to'],\n 'data': json['data'],\n 'value': json['value'] == null ? undefined : json['value'],\n };\n}\n\nexport function EstimateGasLimitInputToJSON(json: any): EstimateGasLimitInput {\n return EstimateGasLimitInputToJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitInputToJSONTyped(value?: EstimateGasLimitInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'from': value['from'],\n 'to': value['to'],\n 'data': value['data'],\n 'value': value['value'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface EstimateGasLimitResponse\n */\nexport interface EstimateGasLimitResponse {\n /**\n * Estimated gas limit (hex string)\n * @type {string}\n * @memberof EstimateGasLimitResponse\n */\n gasLimit: string;\n /**\n * Chain symbol\n * @type {string}\n * @memberof EstimateGasLimitResponse\n */\n chain: string;\n}\n\n/**\n * Check if a given object implements the EstimateGasLimitResponse interface.\n */\nexport function instanceOfEstimateGasLimitResponse(value: object): value is EstimateGasLimitResponse {\n if (!('gasLimit' in value) || value['gasLimit'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n return true;\n}\n\nexport function EstimateGasLimitResponseFromJSON(json: any): EstimateGasLimitResponse {\n return EstimateGasLimitResponseFromJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): EstimateGasLimitResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'gasLimit': json['gasLimit'],\n 'chain': json['chain'],\n };\n}\n\nexport function EstimateGasLimitResponseToJSON(json: any): EstimateGasLimitResponse {\n return EstimateGasLimitResponseToJSONTyped(json, false);\n}\n\nexport function EstimateGasLimitResponseToJSONTyped(value?: EstimateGasLimitResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'gasLimit': value['gasLimit'],\n 'chain': value['chain'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface GainersAndLosersDTO\n */\nexport interface GainersAndLosersDTO {\n /**\n * GLOBAL.WALLETADDRESS.DESCRIPTION\n * @type {string}\n * @memberof GainersAndLosersDTO\n */\n address: string;\n /**\n * DTO.TRADE.GAINERS_LOSERS.PNL\n * @type {number}\n * @memberof GainersAndLosersDTO\n */\n pnl: number;\n /**\n * DTO.TRADE.GAINERS_LOSERS.TRADE_COUNT\n * @type {number}\n * @memberof GainersAndLosersDTO\n */\n tradeCount: number;\n /**\n * DTO.TRADE.GAINERS_LOSERS.VOLUME\n * @type {number}\n * @memberof GainersAndLosersDTO\n */\n volume: number;\n}\n\n/**\n * Check if a given object implements the GainersAndLosersDTO interface.\n */\nexport function instanceOfGainersAndLosersDTO(value: object): value is GainersAndLosersDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('pnl' in value) || value['pnl'] === undefined) return false;\n if (!('tradeCount' in value) || value['tradeCount'] === undefined) return false;\n if (!('volume' in value) || value['volume'] === undefined) return false;\n return true;\n}\n\nexport function GainersAndLosersDTOFromJSON(json: any): GainersAndLosersDTO {\n return GainersAndLosersDTOFromJSONTyped(json, false);\n}\n\nexport function GainersAndLosersDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): GainersAndLosersDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'pnl': json['pnl'],\n 'tradeCount': json['tradeCount'],\n 'volume': json['volume'],\n };\n}\n\nexport function GainersAndLosersDTOToJSON(json: any): GainersAndLosersDTO {\n return GainersAndLosersDTOToJSONTyped(json, false);\n}\n\nexport function GainersAndLosersDTOToJSONTyped(value?: GainersAndLosersDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'pnl': value['pnl'],\n 'tradeCount': value['tradeCount'],\n 'volume': value['volume'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { GainersAndLosersDTO } from './GainersAndLosersDTO';\nimport {\n GainersAndLosersDTOFromJSON,\n GainersAndLosersDTOFromJSONTyped,\n GainersAndLosersDTOToJSON,\n GainersAndLosersDTOToJSONTyped,\n} from './GainersAndLosersDTO';\n\n/**\n * \n * @export\n * @interface GainersAndLosersPage\n */\nexport interface GainersAndLosersPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof GainersAndLosersPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof GainersAndLosersPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof GainersAndLosersPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof GainersAndLosersPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof GainersAndLosersPage\n */\n total?: number;\n /**\n * DTO.TRADE.GAINERS_LOSERS.PAGE.DATA\n * @type {Array<GainersAndLosersDTO>}\n * @memberof GainersAndLosersPage\n */\n data: Array<GainersAndLosersDTO>;\n}\n\n/**\n * Check if a given object implements the GainersAndLosersPage interface.\n */\nexport function instanceOfGainersAndLosersPage(value: object): value is GainersAndLosersPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function GainersAndLosersPageFromJSON(json: any): GainersAndLosersPage {\n return GainersAndLosersPageFromJSONTyped(json, false);\n}\n\nexport function GainersAndLosersPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): GainersAndLosersPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(GainersAndLosersDTOFromJSON)),\n };\n}\n\nexport function GainersAndLosersPageToJSON(json: any): GainersAndLosersPage {\n return GainersAndLosersPageToJSONTyped(json, false);\n}\n\nexport function GainersAndLosersPageToJSONTyped(value?: GainersAndLosersPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(GainersAndLosersDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface GasPriceResponse\n */\nexport interface GasPriceResponse {\n /**\n * Current gas price in wei (hex string)\n * @type {string}\n * @memberof GasPriceResponse\n */\n gasPrice: string;\n /**\n * Chain symbol\n * @type {string}\n * @memberof GasPriceResponse\n */\n chain: string;\n}\n\n/**\n * Check if a given object implements the GasPriceResponse interface.\n */\nexport function instanceOfGasPriceResponse(value: object): value is GasPriceResponse {\n if (!('gasPrice' in value) || value['gasPrice'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n return true;\n}\n\nexport function GasPriceResponseFromJSON(json: any): GasPriceResponse {\n return GasPriceResponseFromJSONTyped(json, false);\n}\n\nexport function GasPriceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): GasPriceResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'gasPrice': json['gasPrice'],\n 'chain': json['chain'],\n };\n}\n\nexport function GasPriceResponseToJSON(json: any): GasPriceResponse {\n return GasPriceResponseToJSONTyped(json, false);\n}\n\nexport function GasPriceResponseToJSONTyped(value?: GasPriceResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'gasPrice': value['gasPrice'],\n 'chain': value['chain'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface JobDTO\n */\nexport interface JobDTO {\n /**\n * DTO.JOB.STATE\n * @type {string}\n * @memberof JobDTO\n */\n state: string;\n /**\n * DTO.JOB.RESULT\n * @type {object}\n * @memberof JobDTO\n */\n result: object;\n}\n\n/**\n * Check if a given object implements the JobDTO interface.\n */\nexport function instanceOfJobDTO(value: object): value is JobDTO {\n if (!('state' in value) || value['state'] === undefined) return false;\n if (!('result' in value) || value['result'] === undefined) return false;\n return true;\n}\n\nexport function JobDTOFromJSON(json: any): JobDTO {\n return JobDTOFromJSONTyped(json, false);\n}\n\nexport function JobDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'state': json['state'],\n 'result': json['result'],\n };\n}\n\nexport function JobDTOToJSON(json: any): JobDTO {\n return JobDTOToJSONTyped(json, false);\n}\n\nexport function JobDTOToJSONTyped(value?: JobDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'state': value['state'],\n 'result': value['result'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface JobStreamingDTO\n */\nexport interface JobStreamingDTO {\n /**\n * DTO.JOB.STREAMING.ID\n * @type {number}\n * @memberof JobStreamingDTO\n */\n id: number;\n /**\n * DTO.JOB.STREAMING.DATA\n * @type {object}\n * @memberof JobStreamingDTO\n */\n data: object;\n}\n\n/**\n * Check if a given object implements the JobStreamingDTO interface.\n */\nexport function instanceOfJobStreamingDTO(value: object): value is JobStreamingDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function JobStreamingDTOFromJSON(json: any): JobStreamingDTO {\n return JobStreamingDTOFromJSONTyped(json, false);\n}\n\nexport function JobStreamingDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobStreamingDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'data': json['data'],\n };\n}\n\nexport function JobStreamingDTOToJSON(json: any): JobStreamingDTO {\n return JobStreamingDTOToJSONTyped(json, false);\n}\n\nexport function JobStreamingDTOToJSONTyped(value?: JobStreamingDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'data': value['data'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KYTRegisterTransferRequest\n */\nexport interface KYTRegisterTransferRequest {\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.NETWORK\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n network: KYTRegisterTransferRequestNetworkEnum;\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.ASSET\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n asset: string;\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.TRANSFER_REFERENCE\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n transferReference: string;\n /**\n * DTO.KYT.KYT_REGISTER_TRANSFER_REQUEST.DIRECTION\n * @type {string}\n * @memberof KYTRegisterTransferRequest\n */\n direction: KYTRegisterTransferRequestDirectionEnum;\n}\n\n\n/**\n * @export\n */\nexport const KYTRegisterTransferRequestNetworkEnum = {\n Bitcoin: 'bitcoin',\n Ethereum: 'ethereum',\n Solana: 'Solana'\n} as const;\nexport type KYTRegisterTransferRequestNetworkEnum = typeof KYTRegisterTransferRequestNetworkEnum[keyof typeof KYTRegisterTransferRequestNetworkEnum];\n\n/**\n * @export\n */\nexport const KYTRegisterTransferRequestDirectionEnum = {\n Sent: 'sent',\n Received: 'received'\n} as const;\nexport type KYTRegisterTransferRequestDirectionEnum = typeof KYTRegisterTransferRequestDirectionEnum[keyof typeof KYTRegisterTransferRequestDirectionEnum];\n\n\n/**\n * Check if a given object implements the KYTRegisterTransferRequest interface.\n */\nexport function instanceOfKYTRegisterTransferRequest(value: object): value is KYTRegisterTransferRequest {\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('transferReference' in value) || value['transferReference'] === undefined) return false;\n if (!('direction' in value) || value['direction'] === undefined) return false;\n return true;\n}\n\nexport function KYTRegisterTransferRequestFromJSON(json: any): KYTRegisterTransferRequest {\n return KYTRegisterTransferRequestFromJSONTyped(json, false);\n}\n\nexport function KYTRegisterTransferRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): KYTRegisterTransferRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'network': json['network'],\n 'asset': json['asset'],\n 'transferReference': json['transferReference'],\n 'direction': json['direction'],\n };\n}\n\nexport function KYTRegisterTransferRequestToJSON(json: any): KYTRegisterTransferRequest {\n return KYTRegisterTransferRequestToJSONTyped(json, false);\n}\n\nexport function KYTRegisterTransferRequestToJSONTyped(value?: KYTRegisterTransferRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'network': value['network'],\n 'asset': value['asset'],\n 'transferReference': value['transferReference'],\n 'direction': value['direction'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KYTRegisterWithdrawalRequest\n */\nexport interface KYTRegisterWithdrawalRequest {\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.NETWORK\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n network: KYTRegisterWithdrawalRequestNetworkEnum;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n asset: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ADDRESS\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n address: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_AMOUNT\n * @type {number}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetAmount: number;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ATTEMPT_TIMESTAMP\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n attemptTimestamp: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_PRICE\n * @type {number}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetPrice?: number;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_DENOMINATION\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetDenomination?: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.ASSET_ID\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n assetId?: string;\n /**\n * DTO.KYT.KYT_REGISTER_WITHDRAWAL_REQUEST.MEMO\n * @type {string}\n * @memberof KYTRegisterWithdrawalRequest\n */\n memo?: string;\n}\n\n\n/**\n * @export\n */\nexport const KYTRegisterWithdrawalRequestNetworkEnum = {\n Bitcoin: 'bitcoin',\n Ethereum: 'ethereum',\n Solana: 'Solana'\n} as const;\nexport type KYTRegisterWithdrawalRequestNetworkEnum = typeof KYTRegisterWithdrawalRequestNetworkEnum[keyof typeof KYTRegisterWithdrawalRequestNetworkEnum];\n\n\n/**\n * Check if a given object implements the KYTRegisterWithdrawalRequest interface.\n */\nexport function instanceOfKYTRegisterWithdrawalRequest(value: object): value is KYTRegisterWithdrawalRequest {\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('assetAmount' in value) || value['assetAmount'] === undefined) return false;\n if (!('attemptTimestamp' in value) || value['attemptTimestamp'] === undefined) return false;\n return true;\n}\n\nexport function KYTRegisterWithdrawalRequestFromJSON(json: any): KYTRegisterWithdrawalRequest {\n return KYTRegisterWithdrawalRequestFromJSONTyped(json, false);\n}\n\nexport function KYTRegisterWithdrawalRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): KYTRegisterWithdrawalRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'network': json['network'],\n 'asset': json['asset'],\n 'address': json['address'],\n 'assetAmount': json['assetAmount'],\n 'attemptTimestamp': json['attemptTimestamp'],\n 'assetPrice': json['assetPrice'] == null ? undefined : json['assetPrice'],\n 'assetDenomination': json['assetDenomination'] == null ? undefined : json['assetDenomination'],\n 'assetId': json['assetId'] == null ? undefined : json['assetId'],\n 'memo': json['memo'] == null ? undefined : json['memo'],\n };\n}\n\nexport function KYTRegisterWithdrawalRequestToJSON(json: any): KYTRegisterWithdrawalRequest {\n return KYTRegisterWithdrawalRequestToJSONTyped(json, false);\n}\n\nexport function KYTRegisterWithdrawalRequestToJSONTyped(value?: KYTRegisterWithdrawalRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'network': value['network'],\n 'asset': value['asset'],\n 'address': value['address'],\n 'assetAmount': value['assetAmount'],\n 'attemptTimestamp': value['attemptTimestamp'],\n 'assetPrice': value['assetPrice'],\n 'assetDenomination': value['assetDenomination'],\n 'assetId': value['assetId'],\n 'memo': value['memo'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KytAddressDTO\n */\nexport interface KytAddressDTO {\n /**\n * DTO.KYT.KYT_ADDRESS.ID\n * @type {number}\n * @memberof KytAddressDTO\n */\n id: number;\n /**\n * DTO.KYT.KYT_ADDRESS.ORG_ID\n * @type {string}\n * @memberof KytAddressDTO\n */\n orgId: string;\n /**\n * DTO.KYT.KYT_ADDRESS.ADDRESS\n * @type {string}\n * @memberof KytAddressDTO\n */\n address: string;\n /**\n * DTO.KYT.KYT_ADDRESS.CREATED_AT\n * @type {Date}\n * @memberof KytAddressDTO\n */\n createdAt: Date;\n /**\n * DTO.KYT.KYT_ADDRESS.UPDATED_AT\n * @type {Date}\n * @memberof KytAddressDTO\n */\n updatedAt: Date;\n}\n\n/**\n * Check if a given object implements the KytAddressDTO interface.\n */\nexport function instanceOfKytAddressDTO(value: object): value is KytAddressDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('orgId' in value) || value['orgId'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function KytAddressDTOFromJSON(json: any): KytAddressDTO {\n return KytAddressDTOFromJSONTyped(json, false);\n}\n\nexport function KytAddressDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytAddressDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'orgId': json['orgId'],\n 'address': json['address'],\n 'createdAt': (new Date(json['createdAt'])),\n 'updatedAt': (new Date(json['updatedAt'])),\n };\n}\n\nexport function KytAddressDTOToJSON(json: any): KytAddressDTO {\n return KytAddressDTOToJSONTyped(json, false);\n}\n\nexport function KytAddressDTOToJSONTyped(value?: KytAddressDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'orgId': value['orgId'],\n 'address': value['address'],\n 'createdAt': value['createdAt'].toISOString(),\n 'updatedAt': value['updatedAt'].toISOString(),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { KytAddressDTO } from './KytAddressDTO';\nimport {\n KytAddressDTOFromJSON,\n KytAddressDTOFromJSONTyped,\n KytAddressDTOToJSON,\n KytAddressDTOToJSONTyped,\n} from './KytAddressDTO';\n\n/**\n * \n * @export\n * @interface KytAddressPage\n */\nexport interface KytAddressPage {\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL\n * @type {number}\n * @memberof KytAddressPage\n */\n total: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE\n * @type {number}\n * @memberof KytAddressPage\n */\n page: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE_SIZE\n * @type {number}\n * @memberof KytAddressPage\n */\n pageSize: number;\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL_PAGES\n * @type {number}\n * @memberof KytAddressPage\n */\n totalPages: number;\n /**\n * DTO.KYT.KYT_ADDRESS_PAGE.DATA\n * @type {Array<KytAddressDTO>}\n * @memberof KytAddressPage\n */\n data: Array<KytAddressDTO>;\n}\n\n/**\n * Check if a given object implements the KytAddressPage interface.\n */\nexport function instanceOfKytAddressPage(value: object): value is KytAddressPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('page' in value) || value['page'] === undefined) return false;\n if (!('pageSize' in value) || value['pageSize'] === undefined) return false;\n if (!('totalPages' in value) || value['totalPages'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function KytAddressPageFromJSON(json: any): KytAddressPage {\n return KytAddressPageFromJSONTyped(json, false);\n}\n\nexport function KytAddressPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytAddressPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'page': json['page'],\n 'pageSize': json['pageSize'],\n 'totalPages': json['totalPages'],\n 'data': ((json['data'] as Array<any>).map(KytAddressDTOFromJSON)),\n };\n}\n\nexport function KytAddressPageToJSON(json: any): KytAddressPage {\n return KytAddressPageToJSONTyped(json, false);\n}\n\nexport function KytAddressPageToJSONTyped(value?: KytAddressPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'page': value['page'],\n 'pageSize': value['pageSize'],\n 'totalPages': value['totalPages'],\n 'data': ((value['data'] as Array<any>).map(KytAddressDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KytTransferDTO\n */\nexport interface KytTransferDTO {\n /**\n * DTO.KYT.KYT_TRANSFER.ID\n * @type {number}\n * @memberof KytTransferDTO\n */\n id: number;\n /**\n * DTO.KYT.KYT_TRANSFER.ORG_ID\n * @type {string}\n * @memberof KytTransferDTO\n */\n orgId: string;\n /**\n * DTO.KYT.KYT_TRANSFER.TX_HASH\n * @type {string}\n * @memberof KytTransferDTO\n */\n txHash: string;\n /**\n * DTO.KYT.KYT_TRANSFER.EXTERNAL_ID\n * @type {string}\n * @memberof KytTransferDTO\n */\n externalId: string;\n /**\n * DTO.KYT.KYT_TRANSFER.CREATED_AT\n * @type {Date}\n * @memberof KytTransferDTO\n */\n createdAt: Date;\n /**\n * DTO.KYT.KYT_TRANSFER.UPDATED_AT\n * @type {Date}\n * @memberof KytTransferDTO\n */\n updatedAt: Date;\n}\n\n/**\n * Check if a given object implements the KytTransferDTO interface.\n */\nexport function instanceOfKytTransferDTO(value: object): value is KytTransferDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('orgId' in value) || value['orgId'] === undefined) return false;\n if (!('txHash' in value) || value['txHash'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function KytTransferDTOFromJSON(json: any): KytTransferDTO {\n return KytTransferDTOFromJSONTyped(json, false);\n}\n\nexport function KytTransferDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytTransferDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'orgId': json['orgId'],\n 'txHash': json['txHash'],\n 'externalId': json['externalId'],\n 'createdAt': (new Date(json['createdAt'])),\n 'updatedAt': (new Date(json['updatedAt'])),\n };\n}\n\nexport function KytTransferDTOToJSON(json: any): KytTransferDTO {\n return KytTransferDTOToJSONTyped(json, false);\n}\n\nexport function KytTransferDTOToJSONTyped(value?: KytTransferDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'orgId': value['orgId'],\n 'txHash': value['txHash'],\n 'externalId': value['externalId'],\n 'createdAt': value['createdAt'].toISOString(),\n 'updatedAt': value['updatedAt'].toISOString(),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { KytTransferDTO } from './KytTransferDTO';\nimport {\n KytTransferDTOFromJSON,\n KytTransferDTOFromJSONTyped,\n KytTransferDTOToJSON,\n KytTransferDTOToJSONTyped,\n} from './KytTransferDTO';\n\n/**\n * \n * @export\n * @interface KytTransferPage\n */\nexport interface KytTransferPage {\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL\n * @type {number}\n * @memberof KytTransferPage\n */\n total: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE\n * @type {number}\n * @memberof KytTransferPage\n */\n page: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE_SIZE\n * @type {number}\n * @memberof KytTransferPage\n */\n pageSize: number;\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL_PAGES\n * @type {number}\n * @memberof KytTransferPage\n */\n totalPages: number;\n /**\n * DTO.KYT.KYT_TRANSFER_PAGE.DATA\n * @type {Array<KytTransferDTO>}\n * @memberof KytTransferPage\n */\n data: Array<KytTransferDTO>;\n}\n\n/**\n * Check if a given object implements the KytTransferPage interface.\n */\nexport function instanceOfKytTransferPage(value: object): value is KytTransferPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('page' in value) || value['page'] === undefined) return false;\n if (!('pageSize' in value) || value['pageSize'] === undefined) return false;\n if (!('totalPages' in value) || value['totalPages'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function KytTransferPageFromJSON(json: any): KytTransferPage {\n return KytTransferPageFromJSONTyped(json, false);\n}\n\nexport function KytTransferPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytTransferPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'page': json['page'],\n 'pageSize': json['pageSize'],\n 'totalPages': json['totalPages'],\n 'data': ((json['data'] as Array<any>).map(KytTransferDTOFromJSON)),\n };\n}\n\nexport function KytTransferPageToJSON(json: any): KytTransferPage {\n return KytTransferPageToJSONTyped(json, false);\n}\n\nexport function KytTransferPageToJSONTyped(value?: KytTransferPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'page': value['page'],\n 'pageSize': value['pageSize'],\n 'totalPages': value['totalPages'],\n 'data': ((value['data'] as Array<any>).map(KytTransferDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface KytWithdrawalDTO\n */\nexport interface KytWithdrawalDTO {\n /**\n * DTO.KYT.KYT_WITHDRAWAL.ID\n * @type {number}\n * @memberof KytWithdrawalDTO\n */\n id: number;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.ORG_ID\n * @type {string}\n * @memberof KytWithdrawalDTO\n */\n orgId: string;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.ADDRESS\n * @type {string}\n * @memberof KytWithdrawalDTO\n */\n address: string;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.EXTERNAL_ID\n * @type {string}\n * @memberof KytWithdrawalDTO\n */\n externalId: string;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.CREATED_AT\n * @type {Date}\n * @memberof KytWithdrawalDTO\n */\n createdAt: Date;\n /**\n * DTO.KYT.KYT_WITHDRAWAL.UPDATED_AT\n * @type {Date}\n * @memberof KytWithdrawalDTO\n */\n updatedAt: Date;\n}\n\n/**\n * Check if a given object implements the KytWithdrawalDTO interface.\n */\nexport function instanceOfKytWithdrawalDTO(value: object): value is KytWithdrawalDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('orgId' in value) || value['orgId'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function KytWithdrawalDTOFromJSON(json: any): KytWithdrawalDTO {\n return KytWithdrawalDTOFromJSONTyped(json, false);\n}\n\nexport function KytWithdrawalDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytWithdrawalDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'orgId': json['orgId'],\n 'address': json['address'],\n 'externalId': json['externalId'],\n 'createdAt': (new Date(json['createdAt'])),\n 'updatedAt': (new Date(json['updatedAt'])),\n };\n}\n\nexport function KytWithdrawalDTOToJSON(json: any): KytWithdrawalDTO {\n return KytWithdrawalDTOToJSONTyped(json, false);\n}\n\nexport function KytWithdrawalDTOToJSONTyped(value?: KytWithdrawalDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'orgId': value['orgId'],\n 'address': value['address'],\n 'externalId': value['externalId'],\n 'createdAt': value['createdAt'].toISOString(),\n 'updatedAt': value['updatedAt'].toISOString(),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { KytWithdrawalDTO } from './KytWithdrawalDTO';\nimport {\n KytWithdrawalDTOFromJSON,\n KytWithdrawalDTOFromJSONTyped,\n KytWithdrawalDTOToJSON,\n KytWithdrawalDTOToJSONTyped,\n} from './KytWithdrawalDTO';\n\n/**\n * \n * @export\n * @interface KytWithdrawalPage\n */\nexport interface KytWithdrawalPage {\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n total: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n page: number;\n /**\n * DTO.KYT.STANDARD_PAGE.PAGE_SIZE\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n pageSize: number;\n /**\n * DTO.KYT.STANDARD_PAGE.TOTAL_PAGES\n * @type {number}\n * @memberof KytWithdrawalPage\n */\n totalPages: number;\n /**\n * DTO.KYT.KYT_WITHDRAWAL_PAGE.DATA\n * @type {Array<KytWithdrawalDTO>}\n * @memberof KytWithdrawalPage\n */\n data: Array<KytWithdrawalDTO>;\n}\n\n/**\n * Check if a given object implements the KytWithdrawalPage interface.\n */\nexport function instanceOfKytWithdrawalPage(value: object): value is KytWithdrawalPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('page' in value) || value['page'] === undefined) return false;\n if (!('pageSize' in value) || value['pageSize'] === undefined) return false;\n if (!('totalPages' in value) || value['totalPages'] === undefined) return false;\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function KytWithdrawalPageFromJSON(json: any): KytWithdrawalPage {\n return KytWithdrawalPageFromJSONTyped(json, false);\n}\n\nexport function KytWithdrawalPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): KytWithdrawalPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'page': json['page'],\n 'pageSize': json['pageSize'],\n 'totalPages': json['totalPages'],\n 'data': ((json['data'] as Array<any>).map(KytWithdrawalDTOFromJSON)),\n };\n}\n\nexport function KytWithdrawalPageToJSON(json: any): KytWithdrawalPage {\n return KytWithdrawalPageToJSONTyped(json, false);\n}\n\nexport function KytWithdrawalPageToJSONTyped(value?: KytWithdrawalPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'page': value['page'],\n 'pageSize': value['pageSize'],\n 'totalPages': value['totalPages'],\n 'data': ((value['data'] as Array<any>).map(KytWithdrawalDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Link\n */\nexport interface Link {\n /**\n * DTO.DEX.MOONSHOT.LINK.URL\n * @type {string}\n * @memberof Link\n */\n url: string;\n /**\n * DTO.DEX.MOONSHOT.LINK.LABEL\n * @type {string}\n * @memberof Link\n */\n label: LinkLabelEnum;\n}\n\n\n/**\n * @export\n */\nexport const LinkLabelEnum = {\n Website: 'website',\n Twitter: 'twitter',\n Telegram: 'telegram',\n Discord: 'discord'\n} as const;\nexport type LinkLabelEnum = typeof LinkLabelEnum[keyof typeof LinkLabelEnum];\n\n\n/**\n * Check if a given object implements the Link interface.\n */\nexport function instanceOfLink(value: object): value is Link {\n if (!('url' in value) || value['url'] === undefined) return false;\n if (!('label' in value) || value['label'] === undefined) return false;\n return true;\n}\n\nexport function LinkFromJSON(json: any): Link {\n return LinkFromJSONTyped(json, false);\n}\n\nexport function LinkFromJSONTyped(json: any, ignoreDiscriminator: boolean): Link {\n if (json == null) {\n return json;\n }\n return {\n \n 'url': json['url'],\n 'label': json['label'],\n };\n}\n\nexport function LinkToJSON(json: any): Link {\n return LinkToJSONTyped(json, false);\n}\n\nexport function LinkToJSONTyped(value?: Link | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'url': value['url'],\n 'label': value['label'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Link } from './Link';\nimport {\n LinkFromJSON,\n LinkFromJSONTyped,\n LinkToJSON,\n LinkToJSONTyped,\n} from './Link';\n\n/**\n * \n * @export\n * @interface MoonshotCreateTokenInput\n */\nexport interface MoonshotCreateTokenInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n dex: MoonshotCreateTokenInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.NAME\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n name: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.SYMBOL\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n symbol: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.MIGRATION_DEX\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n migrationDex: MoonshotCreateTokenInputMigrationDexEnum;\n /**\n * DTO.DEX.MOONSHOT.MINT.ICON\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n icon: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.DESCRIPTION\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n description: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.LINKS\n * @type {Array<Link>}\n * @memberof MoonshotCreateTokenInput\n */\n links: Array<Link>;\n /**\n * DTO.DEX.MOONSHOT.MINT.BANNER\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n banner?: string;\n /**\n * DTO.DEX.MOONSHOT.MINT.TOKEN_AMOUNT\n * @type {string}\n * @memberof MoonshotCreateTokenInput\n */\n tokenAmount: string;\n}\n\n\n/**\n * @export\n */\nexport const MoonshotCreateTokenInputDexEnum = {\n Moonshot: 'moonshot'\n} as const;\nexport type MoonshotCreateTokenInputDexEnum = typeof MoonshotCreateTokenInputDexEnum[keyof typeof MoonshotCreateTokenInputDexEnum];\n\n/**\n * @export\n */\nexport const MoonshotCreateTokenInputMigrationDexEnum = {\n Raydium: 'RAYDIUM',\n Meteora: 'METEORA',\n Uniswap: 'UNISWAP'\n} as const;\nexport type MoonshotCreateTokenInputMigrationDexEnum = typeof MoonshotCreateTokenInputMigrationDexEnum[keyof typeof MoonshotCreateTokenInputMigrationDexEnum];\n\n\n/**\n * Check if a given object implements the MoonshotCreateTokenInput interface.\n */\nexport function instanceOfMoonshotCreateTokenInput(value: object): value is MoonshotCreateTokenInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('migrationDex' in value) || value['migrationDex'] === undefined) return false;\n if (!('icon' in value) || value['icon'] === undefined) return false;\n if (!('description' in value) || value['description'] === undefined) return false;\n if (!('links' in value) || value['links'] === undefined) return false;\n if (!('tokenAmount' in value) || value['tokenAmount'] === undefined) return false;\n return true;\n}\n\nexport function MoonshotCreateTokenInputFromJSON(json: any): MoonshotCreateTokenInput {\n return MoonshotCreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotCreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'migrationDex': json['migrationDex'],\n 'icon': json['icon'],\n 'description': json['description'],\n 'links': ((json['links'] as Array<any>).map(LinkFromJSON)),\n 'banner': json['banner'] == null ? undefined : json['banner'],\n 'tokenAmount': json['tokenAmount'],\n };\n}\n\nexport function MoonshotCreateTokenInputToJSON(json: any): MoonshotCreateTokenInput {\n return MoonshotCreateTokenInputToJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenInputToJSONTyped(value?: MoonshotCreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'migrationDex': value['migrationDex'],\n 'icon': value['icon'],\n 'description': value['description'],\n 'links': ((value['links'] as Array<any>).map(LinkToJSON)),\n 'banner': value['banner'],\n 'tokenAmount': value['tokenAmount'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MoonshotCreateTokenReply\n */\nexport interface MoonshotCreateTokenReply {\n /**\n * DTO.DEX.MOONSHOT.CREATE_TOKEN.SERIALIZED_TX\n * @type {string}\n * @memberof MoonshotCreateTokenReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.MOONSHOT.CREATE_TOKEN.EXTRA\n * @type {object}\n * @memberof MoonshotCreateTokenReply\n */\n extra: object;\n}\n\n/**\n * Check if a given object implements the MoonshotCreateTokenReply interface.\n */\nexport function instanceOfMoonshotCreateTokenReply(value: object): value is MoonshotCreateTokenReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('extra' in value) || value['extra'] === undefined) return false;\n return true;\n}\n\nexport function MoonshotCreateTokenReplyFromJSON(json: any): MoonshotCreateTokenReply {\n return MoonshotCreateTokenReplyFromJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotCreateTokenReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'extra': json['extra'],\n };\n}\n\nexport function MoonshotCreateTokenReplyToJSON(json: any): MoonshotCreateTokenReply {\n return MoonshotCreateTokenReplyToJSONTyped(json, false);\n}\n\nexport function MoonshotCreateTokenReplyToJSONTyped(value?: MoonshotCreateTokenReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MoonshotSubmitCreateToken200Response\n */\nexport interface MoonshotSubmitCreateToken200Response {\n /**\n * Transaction signature\n * @type {string}\n * @memberof MoonshotSubmitCreateToken200Response\n */\n signature?: string;\n /**\n * Block slot number\n * @type {number}\n * @memberof MoonshotSubmitCreateToken200Response\n */\n slot?: number;\n}\n\n/**\n * Check if a given object implements the MoonshotSubmitCreateToken200Response interface.\n */\nexport function instanceOfMoonshotSubmitCreateToken200Response(value: object): value is MoonshotSubmitCreateToken200Response {\n return true;\n}\n\nexport function MoonshotSubmitCreateToken200ResponseFromJSON(json: any): MoonshotSubmitCreateToken200Response {\n return MoonshotSubmitCreateToken200ResponseFromJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateToken200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotSubmitCreateToken200Response {\n if (json == null) {\n return json;\n }\n return {\n \n 'signature': json['signature'] == null ? undefined : json['signature'],\n 'slot': json['slot'] == null ? undefined : json['slot'],\n };\n}\n\nexport function MoonshotSubmitCreateToken200ResponseToJSON(json: any): MoonshotSubmitCreateToken200Response {\n return MoonshotSubmitCreateToken200ResponseToJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateToken200ResponseToJSONTyped(value?: MoonshotSubmitCreateToken200Response | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signature': value['signature'],\n 'slot': value['slot'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MoonshotSubmitCreateTokenInput\n */\nexport interface MoonshotSubmitCreateTokenInput {\n /**\n * DTO.DEX.MOONSHOT.SUBMIT.CREATE_TOKEN.SIGNED_TX\n * @type {string}\n * @memberof MoonshotSubmitCreateTokenInput\n */\n signedTx: string;\n /**\n * DTO.DEX.MOONSHOT.SUBMIT.CREATE_TOKEN.EXTRA\n * @type {object}\n * @memberof MoonshotSubmitCreateTokenInput\n */\n extra?: object;\n}\n\n/**\n * Check if a given object implements the MoonshotSubmitCreateTokenInput interface.\n */\nexport function instanceOfMoonshotSubmitCreateTokenInput(value: object): value is MoonshotSubmitCreateTokenInput {\n if (!('signedTx' in value) || value['signedTx'] === undefined) return false;\n return true;\n}\n\nexport function MoonshotSubmitCreateTokenInputFromJSON(json: any): MoonshotSubmitCreateTokenInput {\n return MoonshotSubmitCreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): MoonshotSubmitCreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'signedTx': json['signedTx'],\n 'extra': json['extra'] == null ? undefined : json['extra'],\n };\n}\n\nexport function MoonshotSubmitCreateTokenInputToJSON(json: any): MoonshotSubmitCreateTokenInput {\n return MoonshotSubmitCreateTokenInputToJSONTyped(json, false);\n}\n\nexport function MoonshotSubmitCreateTokenInputToJSONTyped(value?: MoonshotSubmitCreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signedTx': value['signedTx'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface NetworkIdentificationOrg\n */\nexport interface NetworkIdentificationOrg {\n /**\n * DTO.KYT.NETWORK_IDENTIFICATION_ORG.NAME\n * @type {string}\n * @memberof NetworkIdentificationOrg\n */\n name: string;\n}\n\n/**\n * Check if a given object implements the NetworkIdentificationOrg interface.\n */\nexport function instanceOfNetworkIdentificationOrg(value: object): value is NetworkIdentificationOrg {\n if (!('name' in value) || value['name'] === undefined) return false;\n return true;\n}\n\nexport function NetworkIdentificationOrgFromJSON(json: any): NetworkIdentificationOrg {\n return NetworkIdentificationOrgFromJSONTyped(json, false);\n}\n\nexport function NetworkIdentificationOrgFromJSONTyped(json: any, ignoreDiscriminator: boolean): NetworkIdentificationOrg {\n if (json == null) {\n return json;\n }\n return {\n \n 'name': json['name'],\n };\n}\n\nexport function NetworkIdentificationOrgToJSON(json: any): NetworkIdentificationOrg {\n return NetworkIdentificationOrgToJSONTyped(json, false);\n}\n\nexport function NetworkIdentificationOrgToJSONTyped(value?: NetworkIdentificationOrg | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'name': value['name'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PumpCreateTokenInput\n */\nexport interface PumpCreateTokenInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n dex: PumpCreateTokenInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.TWITTER\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n twitter?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.TELEGRAM\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n telegram?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.WEBSITE\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n website?: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.NAME\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n name: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.SYMBOL\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n symbol: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.MIGRATION_DEX\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n migrationDex: PumpCreateTokenInputMigrationDexEnum;\n /**\n * DTO.DEX.PUMPFUN.MINT.IMAGE\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n image: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.MINT_ADDRESS\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n mintAddress: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.DESCRIPTION\n * @type {string}\n * @memberof PumpCreateTokenInput\n */\n description: string;\n}\n\n\n/**\n * @export\n */\nexport const PumpCreateTokenInputDexEnum = {\n Pumpfun: 'pumpfun'\n} as const;\nexport type PumpCreateTokenInputDexEnum = typeof PumpCreateTokenInputDexEnum[keyof typeof PumpCreateTokenInputDexEnum];\n\n/**\n * @export\n */\nexport const PumpCreateTokenInputMigrationDexEnum = {\n Raydium: 'RAYDIUM',\n Meteora: 'METEORA'\n} as const;\nexport type PumpCreateTokenInputMigrationDexEnum = typeof PumpCreateTokenInputMigrationDexEnum[keyof typeof PumpCreateTokenInputMigrationDexEnum];\n\n\n/**\n * Check if a given object implements the PumpCreateTokenInput interface.\n */\nexport function instanceOfPumpCreateTokenInput(value: object): value is PumpCreateTokenInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('migrationDex' in value) || value['migrationDex'] === undefined) return false;\n if (!('image' in value) || value['image'] === undefined) return false;\n if (!('mintAddress' in value) || value['mintAddress'] === undefined) return false;\n if (!('description' in value) || value['description'] === undefined) return false;\n return true;\n}\n\nexport function PumpCreateTokenInputFromJSON(json: any): PumpCreateTokenInput {\n return PumpCreateTokenInputFromJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): PumpCreateTokenInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'twitter': json['twitter'] == null ? undefined : json['twitter'],\n 'telegram': json['telegram'] == null ? undefined : json['telegram'],\n 'website': json['website'] == null ? undefined : json['website'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'migrationDex': json['migrationDex'],\n 'image': json['image'],\n 'mintAddress': json['mintAddress'],\n 'description': json['description'],\n };\n}\n\nexport function PumpCreateTokenInputToJSON(json: any): PumpCreateTokenInput {\n return PumpCreateTokenInputToJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenInputToJSONTyped(value?: PumpCreateTokenInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'twitter': value['twitter'],\n 'telegram': value['telegram'],\n 'website': value['website'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'migrationDex': value['migrationDex'],\n 'image': value['image'],\n 'mintAddress': value['mintAddress'],\n 'description': value['description'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PumpCreateTokenReply\n */\nexport interface PumpCreateTokenReply {\n /**\n * DTO.DEX.PUMPFUN.MINT.SERIALIZED_TX\n * @type {string}\n * @memberof PumpCreateTokenReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.PUMPFUN.MINT.EXTRA\n * @type {object}\n * @memberof PumpCreateTokenReply\n */\n extra?: object;\n}\n\n/**\n * Check if a given object implements the PumpCreateTokenReply interface.\n */\nexport function instanceOfPumpCreateTokenReply(value: object): value is PumpCreateTokenReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n return true;\n}\n\nexport function PumpCreateTokenReplyFromJSON(json: any): PumpCreateTokenReply {\n return PumpCreateTokenReplyFromJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): PumpCreateTokenReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'extra': json['extra'] == null ? undefined : json['extra'],\n };\n}\n\nexport function PumpCreateTokenReplyToJSON(json: any): PumpCreateTokenReply {\n return PumpCreateTokenReplyToJSONTyped(json, false);\n}\n\nexport function PumpCreateTokenReplyToJSONTyped(value?: PumpCreateTokenReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'extra': value['extra'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface QuoteResponse\n */\nexport interface QuoteResponse {\n /**\n * DTO.DEX.QUOTE.AMOUNT_OUT\n * @type {string}\n * @memberof QuoteResponse\n */\n amountOut?: string;\n /**\n * DTO.DEX.QUOTE.MIN_AMOUNT_OUT\n * @type {string}\n * @memberof QuoteResponse\n */\n minAmountOut?: string;\n /**\n * DTO.DEX.QUOTE.CURRENT_PRICE\n * @type {string}\n * @memberof QuoteResponse\n */\n currentPrice?: string;\n /**\n * DTO.DEX.QUOTE.EXECUTION_PRICE\n * @type {string}\n * @memberof QuoteResponse\n */\n executionPrice?: string;\n /**\n * DTO.DEX.QUOTE.PRICE_IMPACT\n * @type {string}\n * @memberof QuoteResponse\n */\n priceImpact?: string;\n /**\n * DTO.DEX.QUOTE.FEE\n * @type {string}\n * @memberof QuoteResponse\n */\n fee?: string;\n}\n\n/**\n * Check if a given object implements the QuoteResponse interface.\n */\nexport function instanceOfQuoteResponse(value: object): value is QuoteResponse {\n return true;\n}\n\nexport function QuoteResponseFromJSON(json: any): QuoteResponse {\n return QuoteResponseFromJSONTyped(json, false);\n}\n\nexport function QuoteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuoteResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'amountOut': json['amountOut'] == null ? undefined : json['amountOut'],\n 'minAmountOut': json['minAmountOut'] == null ? undefined : json['minAmountOut'],\n 'currentPrice': json['currentPrice'] == null ? undefined : json['currentPrice'],\n 'executionPrice': json['executionPrice'] == null ? undefined : json['executionPrice'],\n 'priceImpact': json['priceImpact'] == null ? undefined : json['priceImpact'],\n 'fee': json['fee'] == null ? undefined : json['fee'],\n };\n}\n\nexport function QuoteResponseToJSON(json: any): QuoteResponse {\n return QuoteResponseToJSONTyped(json, false);\n}\n\nexport function QuoteResponseToJSONTyped(value?: QuoteResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'amountOut': value['amountOut'],\n 'minAmountOut': value['minAmountOut'],\n 'currentPrice': value['currentPrice'],\n 'executionPrice': value['executionPrice'],\n 'priceImpact': value['priceImpact'],\n 'fee': value['fee'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Chain } from './Chain';\nimport {\n ChainFromJSON,\n ChainFromJSONTyped,\n ChainToJSON,\n ChainToJSONTyped,\n} from './Chain';\n\n/**\n * \n * @export\n * @interface RedPacketClaimDTO\n */\nexport interface RedPacketClaimDTO {\n /**\n * DTO.RED_PACKET.PACKET_ID\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n packetId: string;\n /**\n * DTO.RED_PACKET.CHAIN\n * @type {Chain}\n * @memberof RedPacketClaimDTO\n */\n chain: Chain;\n /**\n * DTO.RED_PACKET.CLAIMER\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n claimer: string;\n /**\n * DTO.RED_PACKET.MINT\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n mint: string;\n /**\n * DTO.RED_PACKET.AMOUNT\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n amount: string;\n /**\n * DTO.RED_PACKET.CLAIMED_AT\n * @type {number}\n * @memberof RedPacketClaimDTO\n */\n claimedAt: number;\n /**\n * DTO.RED_PACKET.CREATOR\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n creator: string;\n /**\n * DTO.RED_PACKET.TX_HASH\n * @type {string}\n * @memberof RedPacketClaimDTO\n */\n txHash: string;\n}\n\n\n\n/**\n * Check if a given object implements the RedPacketClaimDTO interface.\n */\nexport function instanceOfRedPacketClaimDTO(value: object): value is RedPacketClaimDTO {\n if (!('packetId' in value) || value['packetId'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('claimer' in value) || value['claimer'] === undefined) return false;\n if (!('mint' in value) || value['mint'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('claimedAt' in value) || value['claimedAt'] === undefined) return false;\n if (!('creator' in value) || value['creator'] === undefined) return false;\n if (!('txHash' in value) || value['txHash'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketClaimDTOFromJSON(json: any): RedPacketClaimDTO {\n return RedPacketClaimDTOFromJSONTyped(json, false);\n}\n\nexport function RedPacketClaimDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketClaimDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'packetId': json['packetId'],\n 'chain': ChainFromJSON(json['chain']),\n 'claimer': json['claimer'],\n 'mint': json['mint'],\n 'amount': json['amount'],\n 'claimedAt': json['claimedAt'],\n 'creator': json['creator'],\n 'txHash': json['txHash'],\n };\n}\n\nexport function RedPacketClaimDTOToJSON(json: any): RedPacketClaimDTO {\n return RedPacketClaimDTOToJSONTyped(json, false);\n}\n\nexport function RedPacketClaimDTOToJSONTyped(value?: RedPacketClaimDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'packetId': value['packetId'],\n 'chain': ChainToJSON(value['chain']),\n 'claimer': value['claimer'],\n 'mint': value['mint'],\n 'amount': value['amount'],\n 'claimedAt': value['claimedAt'],\n 'creator': value['creator'],\n 'txHash': value['txHash'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { RedPacketClaimDTO } from './RedPacketClaimDTO';\nimport {\n RedPacketClaimDTOFromJSON,\n RedPacketClaimDTOFromJSONTyped,\n RedPacketClaimDTOToJSON,\n RedPacketClaimDTOToJSONTyped,\n} from './RedPacketClaimDTO';\n\n/**\n * \n * @export\n * @interface RedPacketClaimsPage\n */\nexport interface RedPacketClaimsPage {\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof RedPacketClaimsPage\n */\n total: number;\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof RedPacketClaimsPage\n */\n hasNextPage: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof RedPacketClaimsPage\n */\n startCursor: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof RedPacketClaimsPage\n */\n endCursor: string;\n /**\n * Array of claim records\n * @type {Array<RedPacketClaimDTO>}\n * @memberof RedPacketClaimsPage\n */\n records: Array<RedPacketClaimDTO>;\n}\n\n/**\n * Check if a given object implements the RedPacketClaimsPage interface.\n */\nexport function instanceOfRedPacketClaimsPage(value: object): value is RedPacketClaimsPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('hasNextPage' in value) || value['hasNextPage'] === undefined) return false;\n if (!('startCursor' in value) || value['startCursor'] === undefined) return false;\n if (!('endCursor' in value) || value['endCursor'] === undefined) return false;\n if (!('records' in value) || value['records'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketClaimsPageFromJSON(json: any): RedPacketClaimsPage {\n return RedPacketClaimsPageFromJSONTyped(json, false);\n}\n\nexport function RedPacketClaimsPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketClaimsPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'hasNextPage': json['hasNextPage'],\n 'startCursor': json['startCursor'],\n 'endCursor': json['endCursor'],\n 'records': ((json['records'] as Array<any>).map(RedPacketClaimDTOFromJSON)),\n };\n}\n\nexport function RedPacketClaimsPageToJSON(json: any): RedPacketClaimsPage {\n return RedPacketClaimsPageToJSONTyped(json, false);\n}\n\nexport function RedPacketClaimsPageToJSONTyped(value?: RedPacketClaimsPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'hasNextPage': value['hasNextPage'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'records': ((value['records'] as Array<any>).map(RedPacketClaimDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Chain } from './Chain';\nimport {\n ChainFromJSON,\n ChainFromJSONTyped,\n ChainToJSON,\n ChainToJSONTyped,\n} from './Chain';\n\n/**\n * \n * @export\n * @interface RedPacketDTO\n */\nexport interface RedPacketDTO {\n /**\n * GLOBAL.CHAIN.DESCRIPTION\n * @type {Chain}\n * @memberof RedPacketDTO\n */\n chain: Chain;\n /**\n * DTO.RED_PACKET.ID\n * @type {string}\n * @memberof RedPacketDTO\n */\n id: string;\n /**\n * DTO.RED_PACKET.SHARE_ID\n * @type {string}\n * @memberof RedPacketDTO\n */\n shareId: string;\n /**\n * DTO.RED_PACKET.TX_HASH\n * @type {string}\n * @memberof RedPacketDTO\n */\n txHash: string;\n /**\n * DTO.RED_PACKET.CREATOR\n * @type {string}\n * @memberof RedPacketDTO\n */\n creator: string;\n /**\n * DTO.RED_PACKET.MINT\n * @type {string}\n * @memberof RedPacketDTO\n */\n mint: string;\n /**\n * DTO.RED_PACKET.TOTAL_AMOUNT\n * @type {string}\n * @memberof RedPacketDTO\n */\n totalAmount: string;\n /**\n * DTO.RED_PACKET.MEMO\n * @type {string}\n * @memberof RedPacketDTO\n */\n memo: string;\n /**\n * DTO.RED_PACKET.MAX_CLAIMS\n * @type {number}\n * @memberof RedPacketDTO\n */\n maxClaims: number;\n /**\n * DTO.RED_PACKET.CLAIM_AUTHORITY\n * @type {string}\n * @memberof RedPacketDTO\n */\n claimAuthority: string;\n /**\n * DTO.RED_PACKET.WITHDRAWED\n * @type {boolean}\n * @memberof RedPacketDTO\n */\n expired: boolean;\n /**\n * DTO.RED_PACKET.EXPIRATION\n * @type {number}\n * @memberof RedPacketDTO\n */\n expiration: number;\n /**\n * DTO.RED_PACKET.CREATED_AT\n * @type {number}\n * @memberof RedPacketDTO\n */\n createdAt: number;\n /**\n * DTO.RED_PACKET.EXPIRES_AT\n * @type {number}\n * @memberof RedPacketDTO\n */\n expiredAt: number;\n /**\n * DTO.RED_PACKET.CLAIMED_COUNT\n * @type {number}\n * @memberof RedPacketDTO\n */\n claimedCount: number;\n /**\n * DTO.RED_PACKET.CLAIMED_AMOUNT\n * @type {string}\n * @memberof RedPacketDTO\n */\n claimedAmount: string;\n /**\n * DTO.RED_PACKET.REFUND_AMOUNT\n * @type {string}\n * @memberof RedPacketDTO\n */\n refundedAmount: string;\n}\n\n\n\n/**\n * Check if a given object implements the RedPacketDTO interface.\n */\nexport function instanceOfRedPacketDTO(value: object): value is RedPacketDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('shareId' in value) || value['shareId'] === undefined) return false;\n if (!('txHash' in value) || value['txHash'] === undefined) return false;\n if (!('creator' in value) || value['creator'] === undefined) return false;\n if (!('mint' in value) || value['mint'] === undefined) return false;\n if (!('totalAmount' in value) || value['totalAmount'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n if (!('maxClaims' in value) || value['maxClaims'] === undefined) return false;\n if (!('claimAuthority' in value) || value['claimAuthority'] === undefined) return false;\n if (!('expired' in value) || value['expired'] === undefined) return false;\n if (!('expiration' in value) || value['expiration'] === undefined) return false;\n if (!('createdAt' in value) || value['createdAt'] === undefined) return false;\n if (!('expiredAt' in value) || value['expiredAt'] === undefined) return false;\n if (!('claimedCount' in value) || value['claimedCount'] === undefined) return false;\n if (!('claimedAmount' in value) || value['claimedAmount'] === undefined) return false;\n if (!('refundedAmount' in value) || value['refundedAmount'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketDTOFromJSON(json: any): RedPacketDTO {\n return RedPacketDTOFromJSONTyped(json, false);\n}\n\nexport function RedPacketDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': ChainFromJSON(json['chain']),\n 'id': json['id'],\n 'shareId': json['shareId'],\n 'txHash': json['txHash'],\n 'creator': json['creator'],\n 'mint': json['mint'],\n 'totalAmount': json['totalAmount'],\n 'memo': json['memo'],\n 'maxClaims': json['maxClaims'],\n 'claimAuthority': json['claimAuthority'],\n 'expired': json['expired'],\n 'expiration': json['expiration'],\n 'createdAt': json['createdAt'],\n 'expiredAt': json['expiredAt'],\n 'claimedCount': json['claimedCount'],\n 'claimedAmount': json['claimedAmount'],\n 'refundedAmount': json['refundedAmount'],\n };\n}\n\nexport function RedPacketDTOToJSON(json: any): RedPacketDTO {\n return RedPacketDTOToJSONTyped(json, false);\n}\n\nexport function RedPacketDTOToJSONTyped(value?: RedPacketDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': ChainToJSON(value['chain']),\n 'id': value['id'],\n 'shareId': value['shareId'],\n 'txHash': value['txHash'],\n 'creator': value['creator'],\n 'mint': value['mint'],\n 'totalAmount': value['totalAmount'],\n 'memo': value['memo'],\n 'maxClaims': value['maxClaims'],\n 'claimAuthority': value['claimAuthority'],\n 'expired': value['expired'],\n 'expiration': value['expiration'],\n 'createdAt': value['createdAt'],\n 'expiredAt': value['expiredAt'],\n 'claimedCount': value['claimedCount'],\n 'claimedAmount': value['claimedAmount'],\n 'refundedAmount': value['refundedAmount'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RedPacketReply\n */\nexport interface RedPacketReply {\n /**\n * DTO.RED_PACKET.SERIALIZED_TX\n * @type {string}\n * @memberof RedPacketReply\n */\n txSerialize: string;\n}\n\n/**\n * Check if a given object implements the RedPacketReply interface.\n */\nexport function instanceOfRedPacketReply(value: object): value is RedPacketReply {\n if (!('txSerialize' in value) || value['txSerialize'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketReplyFromJSON(json: any): RedPacketReply {\n return RedPacketReplyFromJSONTyped(json, false);\n}\n\nexport function RedPacketReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'txSerialize': json['txSerialize'],\n };\n}\n\nexport function RedPacketReplyToJSON(json: any): RedPacketReply {\n return RedPacketReplyToJSONTyped(json, false);\n}\n\nexport function RedPacketReplyToJSONTyped(value?: RedPacketReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'txSerialize': value['txSerialize'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RedPacketSendTxInput\n */\nexport interface RedPacketSendTxInput {\n /**\n * DTO.RED_PACKET.SIGNED_TX\n * @type {string}\n * @memberof RedPacketSendTxInput\n */\n signedTx: string;\n}\n\n/**\n * Check if a given object implements the RedPacketSendTxInput interface.\n */\nexport function instanceOfRedPacketSendTxInput(value: object): value is RedPacketSendTxInput {\n if (!('signedTx' in value) || value['signedTx'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketSendTxInputFromJSON(json: any): RedPacketSendTxInput {\n return RedPacketSendTxInputFromJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketSendTxInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'signedTx': json['signedTx'],\n };\n}\n\nexport function RedPacketSendTxInputToJSON(json: any): RedPacketSendTxInput {\n return RedPacketSendTxInputToJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxInputToJSONTyped(value?: RedPacketSendTxInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signedTx': value['signedTx'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RedPacketSendTxResponse\n */\nexport interface RedPacketSendTxResponse {\n /**\n * DTO.RED_PACKET.SIGNATURE\n * @type {string}\n * @memberof RedPacketSendTxResponse\n */\n signature: string;\n}\n\n/**\n * Check if a given object implements the RedPacketSendTxResponse interface.\n */\nexport function instanceOfRedPacketSendTxResponse(value: object): value is RedPacketSendTxResponse {\n if (!('signature' in value) || value['signature'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketSendTxResponseFromJSON(json: any): RedPacketSendTxResponse {\n return RedPacketSendTxResponseFromJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketSendTxResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'signature': json['signature'],\n };\n}\n\nexport function RedPacketSendTxResponseToJSON(json: any): RedPacketSendTxResponse {\n return RedPacketSendTxResponseToJSONTyped(json, false);\n}\n\nexport function RedPacketSendTxResponseToJSONTyped(value?: RedPacketSendTxResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signature': value['signature'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { RedPacketDTO } from './RedPacketDTO';\nimport {\n RedPacketDTOFromJSON,\n RedPacketDTOFromJSONTyped,\n RedPacketDTOToJSON,\n RedPacketDTOToJSONTyped,\n} from './RedPacketDTO';\n\n/**\n * \n * @export\n * @interface RedPacketsPage\n */\nexport interface RedPacketsPage {\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof RedPacketsPage\n */\n total: number;\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof RedPacketsPage\n */\n hasNextPage: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof RedPacketsPage\n */\n startCursor: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof RedPacketsPage\n */\n endCursor: string;\n /**\n * Array of red packets\n * @type {Array<RedPacketDTO>}\n * @memberof RedPacketsPage\n */\n records: Array<RedPacketDTO>;\n}\n\n/**\n * Check if a given object implements the RedPacketsPage interface.\n */\nexport function instanceOfRedPacketsPage(value: object): value is RedPacketsPage {\n if (!('total' in value) || value['total'] === undefined) return false;\n if (!('hasNextPage' in value) || value['hasNextPage'] === undefined) return false;\n if (!('startCursor' in value) || value['startCursor'] === undefined) return false;\n if (!('endCursor' in value) || value['endCursor'] === undefined) return false;\n if (!('records' in value) || value['records'] === undefined) return false;\n return true;\n}\n\nexport function RedPacketsPageFromJSON(json: any): RedPacketsPage {\n return RedPacketsPageFromJSONTyped(json, false);\n}\n\nexport function RedPacketsPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): RedPacketsPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'total': json['total'],\n 'hasNextPage': json['hasNextPage'],\n 'startCursor': json['startCursor'],\n 'endCursor': json['endCursor'],\n 'records': ((json['records'] as Array<any>).map(RedPacketDTOFromJSON)),\n };\n}\n\nexport function RedPacketsPageToJSON(json: any): RedPacketsPage {\n return RedPacketsPageToJSONTyped(json, false);\n}\n\nexport function RedPacketsPageToJSONTyped(value?: RedPacketsPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'total': value['total'],\n 'hasNextPage': value['hasNextPage'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'records': ((value['records'] as Array<any>).map(RedPacketDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RegisterAddressRequest\n */\nexport interface RegisterAddressRequest {\n /**\n * DTO.KYT.REGISTER_ADDRESS_REQUEST.ADDRESS\n * @type {string}\n * @memberof RegisterAddressRequest\n */\n address: string;\n}\n\n/**\n * Check if a given object implements the RegisterAddressRequest interface.\n */\nexport function instanceOfRegisterAddressRequest(value: object): value is RegisterAddressRequest {\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function RegisterAddressRequestFromJSON(json: any): RegisterAddressRequest {\n return RegisterAddressRequestFromJSONTyped(json, false);\n}\n\nexport function RegisterAddressRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RegisterAddressRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n };\n}\n\nexport function RegisterAddressRequestToJSON(json: any): RegisterAddressRequest {\n return RegisterAddressRequestToJSONTyped(json, false);\n}\n\nexport function RegisterAddressRequestToJSONTyped(value?: RegisterAddressRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface RegisterAddressResponseDTO\n */\nexport interface RegisterAddressResponseDTO {\n /**\n * DTO.KYT.REGISTER_ADDRESS_RESPONSE.ADDRESS\n * @type {string}\n * @memberof RegisterAddressResponseDTO\n */\n address: string;\n}\n\n/**\n * Check if a given object implements the RegisterAddressResponseDTO interface.\n */\nexport function instanceOfRegisterAddressResponseDTO(value: object): value is RegisterAddressResponseDTO {\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function RegisterAddressResponseDTOFromJSON(json: any): RegisterAddressResponseDTO {\n return RegisterAddressResponseDTOFromJSONTyped(json, false);\n}\n\nexport function RegisterAddressResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): RegisterAddressResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n };\n}\n\nexport function RegisterAddressResponseDTOToJSON(json: any): RegisterAddressResponseDTO {\n return RegisterAddressResponseDTOToJSONTyped(json, false);\n}\n\nexport function RegisterAddressResponseDTOToJSONTyped(value?: RegisterAddressResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SendTxInput\n */\nexport interface SendTxInput {\n /**\n * DTO.TRANSACTION.SEND.SIGNED_TX\n * @type {string}\n * @memberof SendTxInput\n */\n signedTx: string;\n /**\n * DTO.TRANSACTION.SEND.SUBMIT_TYPE\n * @type {string}\n * @memberof SendTxInput\n */\n submitType?: SendTxInputSubmitTypeEnum;\n /**\n * DTO.TRANSACTION.SEND.OPTIONS\n * @type {object}\n * @memberof SendTxInput\n */\n options?: object;\n}\n\n\n/**\n * @export\n */\nexport const SendTxInputSubmitTypeEnum = {\n Default: 'default',\n Priority: 'priority'\n} as const;\nexport type SendTxInputSubmitTypeEnum = typeof SendTxInputSubmitTypeEnum[keyof typeof SendTxInputSubmitTypeEnum];\n\n\n/**\n * Check if a given object implements the SendTxInput interface.\n */\nexport function instanceOfSendTxInput(value: object): value is SendTxInput {\n if (!('signedTx' in value) || value['signedTx'] === undefined) return false;\n return true;\n}\n\nexport function SendTxInputFromJSON(json: any): SendTxInput {\n return SendTxInputFromJSONTyped(json, false);\n}\n\nexport function SendTxInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): SendTxInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'signedTx': json['signedTx'],\n 'submitType': json['submitType'] == null ? undefined : json['submitType'],\n 'options': json['options'] == null ? undefined : json['options'],\n };\n}\n\nexport function SendTxInputToJSON(json: any): SendTxInput {\n return SendTxInputToJSONTyped(json, false);\n}\n\nexport function SendTxInputToJSONTyped(value?: SendTxInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signedTx': value['signedTx'],\n 'submitType': value['submitType'],\n 'options': value['options'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SendTxResponse\n */\nexport interface SendTxResponse {\n /**\n * DTO.TRANSACTION.SEND.SIGNATURE\n * @type {string}\n * @memberof SendTxResponse\n */\n signature: string;\n /**\n * DTO.TRANSACTION.SEND.ELAPSED_TIME\n * @type {number}\n * @memberof SendTxResponse\n */\n elapsedTime: number;\n /**\n * DTO.TRANSACTION.SEND.JOB_ID\n * @type {string}\n * @memberof SendTxResponse\n */\n jobId: string;\n}\n\n/**\n * Check if a given object implements the SendTxResponse interface.\n */\nexport function instanceOfSendTxResponse(value: object): value is SendTxResponse {\n if (!('signature' in value) || value['signature'] === undefined) return false;\n if (!('elapsedTime' in value) || value['elapsedTime'] === undefined) return false;\n if (!('jobId' in value) || value['jobId'] === undefined) return false;\n return true;\n}\n\nexport function SendTxResponseFromJSON(json: any): SendTxResponse {\n return SendTxResponseFromJSONTyped(json, false);\n}\n\nexport function SendTxResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SendTxResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'signature': json['signature'],\n 'elapsedTime': json['elapsedTime'],\n 'jobId': json['jobId'],\n };\n}\n\nexport function SendTxResponseToJSON(json: any): SendTxResponse {\n return SendTxResponseToJSONTyped(json, false);\n}\n\nexport function SendTxResponseToJSONTyped(value?: SendTxResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'signature': value['signature'],\n 'elapsedTime': value['elapsedTime'],\n 'jobId': value['jobId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SwapInput\n */\nexport interface SwapInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof SwapInput\n */\n dex: SwapInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof SwapInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof SwapInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.SWAP.POOL_ADDRESS\n * @type {string}\n * @memberof SwapInput\n */\n poolAddress?: string;\n /**\n * DTO.DEX.SWAP.AMOUNT\n * @type {string}\n * @memberof SwapInput\n */\n amount: string;\n /**\n * DTO.DEX.SWAP.MODE\n * @type {string}\n * @memberof SwapInput\n */\n swapMode: SwapInputSwapModeEnum;\n /**\n * DTO.DEX.SWAP.SLIPPAGE\n * @type {number}\n * @memberof SwapInput\n */\n slippage: number;\n /**\n * DTO.DEX.SWAP.INPUT_MINT\n * @type {string}\n * @memberof SwapInput\n */\n inputMint?: string;\n /**\n * DTO.DEX.SWAP.OUTPUT_MINT\n * @type {string}\n * @memberof SwapInput\n */\n outputMint?: string;\n}\n\n\n/**\n * @export\n */\nexport const SwapInputDexEnum = {\n Raydium: 'raydium',\n Pumpfun: 'pumpfun',\n Moonshot: 'moonshot',\n Candy: 'candy',\n Launchpad: 'launchpad'\n} as const;\nexport type SwapInputDexEnum = typeof SwapInputDexEnum[keyof typeof SwapInputDexEnum];\n\n/**\n * @export\n */\nexport const SwapInputSwapModeEnum = {\n ExactIn: 'ExactIn',\n ExactOut: 'ExactOut'\n} as const;\nexport type SwapInputSwapModeEnum = typeof SwapInputSwapModeEnum[keyof typeof SwapInputSwapModeEnum];\n\n\n/**\n * Check if a given object implements the SwapInput interface.\n */\nexport function instanceOfSwapInput(value: object): value is SwapInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('swapMode' in value) || value['swapMode'] === undefined) return false;\n if (!('slippage' in value) || value['slippage'] === undefined) return false;\n return true;\n}\n\nexport function SwapInputFromJSON(json: any): SwapInput {\n return SwapInputFromJSONTyped(json, false);\n}\n\nexport function SwapInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'poolAddress': json['poolAddress'] == null ? undefined : json['poolAddress'],\n 'amount': json['amount'],\n 'swapMode': json['swapMode'],\n 'slippage': json['slippage'],\n 'inputMint': json['inputMint'] == null ? undefined : json['inputMint'],\n 'outputMint': json['outputMint'] == null ? undefined : json['outputMint'],\n };\n}\n\nexport function SwapInputToJSON(json: any): SwapInput {\n return SwapInputToJSONTyped(json, false);\n}\n\nexport function SwapInputToJSONTyped(value?: SwapInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'poolAddress': value['poolAddress'],\n 'amount': value['amount'],\n 'swapMode': value['swapMode'],\n 'slippage': value['slippage'],\n 'inputMint': value['inputMint'],\n 'outputMint': value['outputMint'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SwapReply\n */\nexport interface SwapReply {\n /**\n * DTO.DEX.SWAP.SERIALIZED_TX\n * @type {string}\n * @memberof SwapReply\n */\n serializedTx: string;\n /**\n * DTO.DEX.SWAP.ELAPSED_TIME\n * @type {number}\n * @memberof SwapReply\n */\n elapsedTime: number;\n}\n\n/**\n * Check if a given object implements the SwapReply interface.\n */\nexport function instanceOfSwapReply(value: object): value is SwapReply {\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('elapsedTime' in value) || value['elapsedTime'] === undefined) return false;\n return true;\n}\n\nexport function SwapReplyFromJSON(json: any): SwapReply {\n return SwapReplyFromJSONTyped(json, false);\n}\n\nexport function SwapReplyFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapReply {\n if (json == null) {\n return json;\n }\n return {\n \n 'serializedTx': json['serializedTx'],\n 'elapsedTime': json['elapsedTime'],\n };\n}\n\nexport function SwapReplyToJSON(json: any): SwapReply {\n return SwapReplyToJSONTyped(json, false);\n}\n\nexport function SwapReplyToJSONTyped(value?: SwapReply | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'serializedTx': value['serializedTx'],\n 'elapsedTime': value['elapsedTime'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SwapRouteInput\n */\nexport interface SwapRouteInput {\n /**\n * DTO.DEX.IDENTIFIER\n * @type {string}\n * @memberof SwapRouteInput\n */\n dex: SwapRouteInputDexEnum;\n /**\n * DTO.DEX.WALLET\n * @type {string}\n * @memberof SwapRouteInput\n */\n userAddress: string;\n /**\n * DTO.DEX.BASE.PRIORITY_FEE\n * @type {string}\n * @memberof SwapRouteInput\n */\n priorityFee?: string;\n /**\n * DTO.DEX.SWAP.AMOUNT\n * @type {string}\n * @memberof SwapRouteInput\n */\n amount: string;\n /**\n * DTO.DEX.SWAP.MODE\n * @type {string}\n * @memberof SwapRouteInput\n */\n swapMode: SwapRouteInputSwapModeEnum;\n /**\n * DTO.DEX.SWAP.SLIPPAGE\n * @type {number}\n * @memberof SwapRouteInput\n */\n slippage: number;\n /**\n * DTO.DEX.SWAP.INPUT_MINT\n * @type {string}\n * @memberof SwapRouteInput\n */\n inputMint?: string;\n /**\n * DTO.DEX.SWAP.OUTPUT_MINT\n * @type {string}\n * @memberof SwapRouteInput\n */\n outputMint?: string;\n /**\n * DTO.DEX.SWAP.RECIPIENT_ADDRESS\n * @type {string}\n * @memberof SwapRouteInput\n */\n recipientAddress?: string;\n /**\n * DTO.DEX.SWAP.PERMIT\n * @type {string}\n * @memberof SwapRouteInput\n */\n permit?: string;\n /**\n * DTO.DEX.SWAP.DEADLINE\n * @type {number}\n * @memberof SwapRouteInput\n */\n deadline?: number;\n /**\n * DTO.DEX.BASE.TIP_FEE\n * @type {string}\n * @memberof SwapRouteInput\n */\n tipFee?: string;\n /**\n * DTO.DEX.BASE.IS_ANTI_MEV\n * @type {boolean}\n * @memberof SwapRouteInput\n */\n isAntiMev?: boolean;\n}\n\n\n/**\n * @export\n */\nexport const SwapRouteInputDexEnum = {\n Jupiter: 'jupiter',\n Kyberswap: 'kyberswap'\n} as const;\nexport type SwapRouteInputDexEnum = typeof SwapRouteInputDexEnum[keyof typeof SwapRouteInputDexEnum];\n\n/**\n * @export\n */\nexport const SwapRouteInputSwapModeEnum = {\n ExactIn: 'ExactIn',\n ExactOut: 'ExactOut'\n} as const;\nexport type SwapRouteInputSwapModeEnum = typeof SwapRouteInputSwapModeEnum[keyof typeof SwapRouteInputSwapModeEnum];\n\n\n/**\n * Check if a given object implements the SwapRouteInput interface.\n */\nexport function instanceOfSwapRouteInput(value: object): value is SwapRouteInput {\n if (!('dex' in value) || value['dex'] === undefined) return false;\n if (!('userAddress' in value) || value['userAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('swapMode' in value) || value['swapMode'] === undefined) return false;\n if (!('slippage' in value) || value['slippage'] === undefined) return false;\n return true;\n}\n\nexport function SwapRouteInputFromJSON(json: any): SwapRouteInput {\n return SwapRouteInputFromJSONTyped(json, false);\n}\n\nexport function SwapRouteInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapRouteInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'dex': json['dex'],\n 'userAddress': json['userAddress'],\n 'priorityFee': json['priorityFee'] == null ? undefined : json['priorityFee'],\n 'amount': json['amount'],\n 'swapMode': json['swapMode'],\n 'slippage': json['slippage'],\n 'inputMint': json['inputMint'] == null ? undefined : json['inputMint'],\n 'outputMint': json['outputMint'] == null ? undefined : json['outputMint'],\n 'recipientAddress': json['recipientAddress'] == null ? undefined : json['recipientAddress'],\n 'permit': json['permit'] == null ? undefined : json['permit'],\n 'deadline': json['deadline'] == null ? undefined : json['deadline'],\n 'tipFee': json['tipFee'] == null ? undefined : json['tipFee'],\n 'isAntiMev': json['isAntiMev'] == null ? undefined : json['isAntiMev'],\n };\n}\n\nexport function SwapRouteInputToJSON(json: any): SwapRouteInput {\n return SwapRouteInputToJSONTyped(json, false);\n}\n\nexport function SwapRouteInputToJSONTyped(value?: SwapRouteInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'dex': value['dex'],\n 'userAddress': value['userAddress'],\n 'priorityFee': value['priorityFee'],\n 'amount': value['amount'],\n 'swapMode': value['swapMode'],\n 'slippage': value['slippage'],\n 'inputMint': value['inputMint'],\n 'outputMint': value['outputMint'],\n 'recipientAddress': value['recipientAddress'],\n 'permit': value['permit'],\n 'deadline': value['deadline'],\n 'tipFee': value['tipFee'],\n 'isAntiMev': value['isAntiMev'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { SwapRouteInput } from './SwapRouteInput';\nimport {\n SwapRouteInputFromJSON,\n SwapRouteInputFromJSONTyped,\n SwapRouteInputToJSON,\n SwapRouteInputToJSONTyped,\n} from './SwapRouteInput';\n\n/**\n * \n * @export\n * @interface SwapRouteResponse\n */\nexport interface SwapRouteResponse {\n /**\n * DTO.DEX.SWAP.ARGS\n * @type {SwapRouteInput}\n * @memberof SwapRouteResponse\n */\n args: SwapRouteInput;\n /**\n * DTO.DEX.SWAP.SERIALIZED_TX\n * @type {string}\n * @memberof SwapRouteResponse\n */\n serializedTx: string;\n /**\n * DTO.DEX.SWAP.ROUTE_INFO\n * @type {object}\n * @memberof SwapRouteResponse\n */\n routeInfo: object;\n /**\n * DTO.DEX.SWAP.ELAPSED_TIME\n * @type {number}\n * @memberof SwapRouteResponse\n */\n elapsedTime: number;\n}\n\n/**\n * Check if a given object implements the SwapRouteResponse interface.\n */\nexport function instanceOfSwapRouteResponse(value: object): value is SwapRouteResponse {\n if (!('args' in value) || value['args'] === undefined) return false;\n if (!('serializedTx' in value) || value['serializedTx'] === undefined) return false;\n if (!('routeInfo' in value) || value['routeInfo'] === undefined) return false;\n if (!('elapsedTime' in value) || value['elapsedTime'] === undefined) return false;\n return true;\n}\n\nexport function SwapRouteResponseFromJSON(json: any): SwapRouteResponse {\n return SwapRouteResponseFromJSONTyped(json, false);\n}\n\nexport function SwapRouteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SwapRouteResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'args': SwapRouteInputFromJSON(json['args']),\n 'serializedTx': json['serializedTx'],\n 'routeInfo': json['routeInfo'],\n 'elapsedTime': json['elapsedTime'],\n };\n}\n\nexport function SwapRouteResponseToJSON(json: any): SwapRouteResponse {\n return SwapRouteResponseToJSONTyped(json, false);\n}\n\nexport function SwapRouteResponseToJSONTyped(value?: SwapRouteResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'args': SwapRouteInputToJSON(value['args']),\n 'serializedTx': value['serializedTx'],\n 'routeInfo': value['routeInfo'],\n 'elapsedTime': value['elapsedTime'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { DexPoolDTO } from './DexPoolDTO';\nimport {\n DexPoolDTOFromJSON,\n DexPoolDTOFromJSONTyped,\n DexPoolDTOToJSON,\n DexPoolDTOToJSONTyped,\n} from './DexPoolDTO';\nimport type { TokenMarketData } from './TokenMarketData';\nimport {\n TokenMarketDataFromJSON,\n TokenMarketDataFromJSONTyped,\n TokenMarketDataToJSON,\n TokenMarketDataToJSONTyped,\n} from './TokenMarketData';\nimport type { TokenExtraDTO } from './TokenExtraDTO';\nimport {\n TokenExtraDTOFromJSON,\n TokenExtraDTOFromJSONTyped,\n TokenExtraDTOToJSON,\n TokenExtraDTOToJSONTyped,\n} from './TokenExtraDTO';\nimport type { TokenCreatorsDTO } from './TokenCreatorsDTO';\nimport {\n TokenCreatorsDTOFromJSON,\n TokenCreatorsDTOFromJSONTyped,\n TokenCreatorsDTOToJSON,\n TokenCreatorsDTOToJSONTyped,\n} from './TokenCreatorsDTO';\nimport type { TokenStat } from './TokenStat';\nimport {\n TokenStatFromJSON,\n TokenStatFromJSONTyped,\n TokenStatToJSON,\n TokenStatToJSONTyped,\n} from './TokenStat';\nimport type { TokenSocialMediasDTO } from './TokenSocialMediasDTO';\nimport {\n TokenSocialMediasDTOFromJSON,\n TokenSocialMediasDTOFromJSONTyped,\n TokenSocialMediasDTOToJSON,\n TokenSocialMediasDTOToJSONTyped,\n} from './TokenSocialMediasDTO';\n\n/**\n * \n * @export\n * @interface Token\n */\nexport interface Token {\n /**\n * DTO.TOKEN.METADATA.CHAIN\n * @type {string}\n * @memberof Token\n */\n chain: string;\n /**\n * DTO.TOKEN.METADATA.DECIMALS\n * @type {number}\n * @memberof Token\n */\n decimals: number;\n /**\n * DTO.TOKEN.METADATA.NAME\n * @type {string}\n * @memberof Token\n */\n name: string;\n /**\n * DTO.TOKEN.METADATA.SYMBOL\n * @type {string}\n * @memberof Token\n */\n symbol: string;\n /**\n * DTO.TOKEN.METADATA.METADATA_ADDRESS\n * @type {string}\n * @memberof Token\n */\n metadataAddress?: string;\n /**\n * DTO.TOKEN.METADATA.ADDRESS\n * @type {string}\n * @memberof Token\n */\n address: string;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATORS\n * @type {Array<TokenCreatorsDTO>}\n * @memberof Token\n */\n tokenCreators?: Array<TokenCreatorsDTO>;\n /**\n * DTO.TOKEN.METADATA.IMAGE_URL\n * @type {string}\n * @memberof Token\n */\n imageUrl?: string;\n /**\n * DTO.TOKEN.METADATA.URI\n * @type {string}\n * @memberof Token\n */\n uri?: string;\n /**\n * DTO.TOKEN.METADATA.EXTRA\n * @type {TokenExtraDTO}\n * @memberof Token\n */\n extra?: TokenExtraDTO;\n /**\n * DTO.TOKEN.METADATA.SOCIAL_MEDIAS\n * @type {TokenSocialMediasDTO}\n * @memberof Token\n */\n socialMedias?: TokenSocialMediasDTO;\n /**\n * DTO.TOKEN.METADATA.TOKEN_CREATED_AT\n * @type {number}\n * @memberof Token\n */\n tokenCreatedAt?: number;\n /**\n * DTO.TOKEN.METADATA.DESCRIPTION\n * @type {string}\n * @memberof Token\n */\n description?: string;\n /**\n * DTO.TOKEN.METADATA.DEV_TOTAL_TOKENS\n * @type {number}\n * @memberof Token\n */\n devTotalTokens?: number;\n /**\n * DTO.TOKEN.METADATA.DEV_LAST_TOKEN_CREATED_AT\n * @type {string}\n * @memberof Token\n */\n devLastTokenCreatedAt?: string;\n /**\n * DTO.TOKEN.MARKET_ID\n * @type {string}\n * @memberof Token\n */\n market?: string;\n /**\n * DTO.TOKEN.EXTENSION\n * @type {object}\n * @memberof Token\n */\n extension?: object;\n /**\n * DTO.TOKEN.STATS\n * @type {TokenStat}\n * @memberof Token\n */\n stats?: TokenStat;\n /**\n * DTO.TOKEN.LIQUIDITY\n * @type {Array<DexPoolDTO>}\n * @memberof Token\n */\n liquidity?: Array<DexPoolDTO>;\n /**\n * DTO.TOKEN.MARKET_CAP_INFO\n * @type {TokenMarketData}\n * @memberof Token\n */\n marketData: TokenMarketData;\n}\n\n/**\n * Check if a given object implements the Token interface.\n */\nexport function instanceOfToken(value: object): value is Token {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('decimals' in value) || value['decimals'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('marketData' in value) || value['marketData'] === undefined) return false;\n return true;\n}\n\nexport function TokenFromJSON(json: any): Token {\n return TokenFromJSONTyped(json, false);\n}\n\nexport function TokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): Token {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'decimals': json['decimals'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'metadataAddress': json['metadataAddress'] == null ? undefined : json['metadataAddress'],\n 'address': json['address'],\n 'tokenCreators': json['tokenCreators'] == null ? undefined : ((json['tokenCreators'] as Array<any>).map(TokenCreatorsDTOFromJSON)),\n 'imageUrl': json['imageUrl'] == null ? undefined : json['imageUrl'],\n 'uri': json['uri'] == null ? undefined : json['uri'],\n 'extra': json['extra'] == null ? undefined : TokenExtraDTOFromJSON(json['extra']),\n 'socialMedias': json['socialMedias'] == null ? undefined : TokenSocialMediasDTOFromJSON(json['socialMedias']),\n 'tokenCreatedAt': json['tokenCreatedAt'] == null ? undefined : json['tokenCreatedAt'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'devTotalTokens': json['devTotalTokens'] == null ? undefined : json['devTotalTokens'],\n 'devLastTokenCreatedAt': json['devLastTokenCreatedAt'] == null ? undefined : json['devLastTokenCreatedAt'],\n 'market': json['market'] == null ? undefined : json['market'],\n 'extension': json['extension'] == null ? undefined : json['extension'],\n 'stats': json['stats'] == null ? undefined : TokenStatFromJSON(json['stats']),\n 'liquidity': json['liquidity'] == null ? undefined : ((json['liquidity'] as Array<any>).map(DexPoolDTOFromJSON)),\n 'marketData': TokenMarketDataFromJSON(json['marketData']),\n };\n}\n\nexport function TokenToJSON(json: any): Token {\n return TokenToJSONTyped(json, false);\n}\n\nexport function TokenToJSONTyped(value?: Token | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'decimals': value['decimals'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'metadataAddress': value['metadataAddress'],\n 'address': value['address'],\n 'tokenCreators': value['tokenCreators'] == null ? undefined : ((value['tokenCreators'] as Array<any>).map(TokenCreatorsDTOToJSON)),\n 'imageUrl': value['imageUrl'],\n 'uri': value['uri'],\n 'extra': TokenExtraDTOToJSON(value['extra']),\n 'socialMedias': TokenSocialMediasDTOToJSON(value['socialMedias']),\n 'tokenCreatedAt': value['tokenCreatedAt'],\n 'description': value['description'],\n 'devTotalTokens': value['devTotalTokens'],\n 'devLastTokenCreatedAt': value['devLastTokenCreatedAt'],\n 'market': value['market'],\n 'extension': value['extension'],\n 'stats': TokenStatToJSON(value['stats']),\n 'liquidity': value['liquidity'] == null ? undefined : ((value['liquidity'] as Array<any>).map(DexPoolDTOToJSON)),\n 'marketData': TokenMarketDataToJSON(value['marketData']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenCreationDTO\n */\nexport interface TokenCreationDTO {\n /**\n * DTO.TOKEN.CREATION.TOKEN_ADDRESS\n * @type {string}\n * @memberof TokenCreationDTO\n */\n tokenAddress: string;\n /**\n * DTO.TOKEN.CREATION.BLOCK_HEIGHT\n * @type {number}\n * @memberof TokenCreationDTO\n */\n blockHeight: number;\n /**\n * DTO.TOKEN.CREATION.BLOCK_SLOT\n * @type {number}\n * @memberof TokenCreationDTO\n */\n blockSlot: number;\n /**\n * DTO.TOKEN.CREATION.BLOCK_HASH\n * @type {string}\n * @memberof TokenCreationDTO\n */\n blockHash: string;\n /**\n * DTO.TOKEN.CREATION.BLOCK_TIMESTAMP\n * @type {number}\n * @memberof TokenCreationDTO\n */\n blockTimestamp?: number;\n /**\n * DTO.TOKEN.CREATION.TRANSACTION_SIGNATURE\n * @type {string}\n * @memberof TokenCreationDTO\n */\n transactionSignature: string;\n /**\n * DTO.TOKEN.CREATION.TYPE\n * @type {string}\n * @memberof TokenCreationDTO\n */\n type: TokenCreationDTOTypeEnum;\n}\n\n\n/**\n * @export\n */\nexport const TokenCreationDTOTypeEnum = {\n Create: 'create',\n Mint: 'mint',\n Burn: 'burn'\n} as const;\nexport type TokenCreationDTOTypeEnum = typeof TokenCreationDTOTypeEnum[keyof typeof TokenCreationDTOTypeEnum];\n\n\n/**\n * Check if a given object implements the TokenCreationDTO interface.\n */\nexport function instanceOfTokenCreationDTO(value: object): value is TokenCreationDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('blockHeight' in value) || value['blockHeight'] === undefined) return false;\n if (!('blockSlot' in value) || value['blockSlot'] === undefined) return false;\n if (!('blockHash' in value) || value['blockHash'] === undefined) return false;\n if (!('transactionSignature' in value) || value['transactionSignature'] === undefined) return false;\n if (!('type' in value) || value['type'] === undefined) return false;\n return true;\n}\n\nexport function TokenCreationDTOFromJSON(json: any): TokenCreationDTO {\n return TokenCreationDTOFromJSONTyped(json, false);\n}\n\nexport function TokenCreationDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenCreationDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'blockHeight': json['blockHeight'],\n 'blockSlot': json['blockSlot'],\n 'blockHash': json['blockHash'],\n 'blockTimestamp': json['blockTimestamp'] == null ? undefined : json['blockTimestamp'],\n 'transactionSignature': json['transactionSignature'],\n 'type': json['type'],\n };\n}\n\nexport function TokenCreationDTOToJSON(json: any): TokenCreationDTO {\n return TokenCreationDTOToJSONTyped(json, false);\n}\n\nexport function TokenCreationDTOToJSONTyped(value?: TokenCreationDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'blockHeight': value['blockHeight'],\n 'blockSlot': value['blockSlot'],\n 'blockHash': value['blockHash'],\n 'blockTimestamp': value['blockTimestamp'],\n 'transactionSignature': value['transactionSignature'],\n 'type': value['type'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenCreationDTO } from './TokenCreationDTO';\nimport {\n TokenCreationDTOFromJSON,\n TokenCreationDTOFromJSONTyped,\n TokenCreationDTOToJSON,\n TokenCreationDTOToJSONTyped,\n} from './TokenCreationDTO';\n\n/**\n * \n * @export\n * @interface TokenCreationPage\n */\nexport interface TokenCreationPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenCreationPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenCreationPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenCreationPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenCreationPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenCreationPage\n */\n total?: number;\n /**\n * DTO.TOKEN.CREATION.PAGE.DATA\n * @type {Array<TokenCreationDTO>}\n * @memberof TokenCreationPage\n */\n data: Array<TokenCreationDTO>;\n}\n\n/**\n * Check if a given object implements the TokenCreationPage interface.\n */\nexport function instanceOfTokenCreationPage(value: object): value is TokenCreationPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenCreationPageFromJSON(json: any): TokenCreationPage {\n return TokenCreationPageFromJSONTyped(json, false);\n}\n\nexport function TokenCreationPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenCreationPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenCreationDTOFromJSON)),\n };\n}\n\nexport function TokenCreationPageToJSON(json: any): TokenCreationPage {\n return TokenCreationPageToJSONTyped(json, false);\n}\n\nexport function TokenCreationPageToJSONTyped(value?: TokenCreationPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenCreationDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenHolder\n */\nexport interface TokenHolder {\n /**\n * DTO.TOKEN_HOLDER.WALLET_ADDRESS\n * @type {string}\n * @memberof TokenHolder\n */\n walletAddress: string;\n /**\n * DTO.TOKEN_HOLDER.AMOUNT\n * @type {number}\n * @memberof TokenHolder\n */\n amount: number;\n /**\n * DTO.TOKEN_HOLDER.AMOUNT_USD\n * @type {number}\n * @memberof TokenHolder\n */\n amountInUsd: number;\n /**\n * DTO.TOKEN_HOLDER.PERCENTAGE\n * @type {string}\n * @memberof TokenHolder\n */\n percentage: string;\n}\n\n/**\n * Check if a given object implements the TokenHolder interface.\n */\nexport function instanceOfTokenHolder(value: object): value is TokenHolder {\n if (!('walletAddress' in value) || value['walletAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('amountInUsd' in value) || value['amountInUsd'] === undefined) return false;\n if (!('percentage' in value) || value['percentage'] === undefined) return false;\n return true;\n}\n\nexport function TokenHolderFromJSON(json: any): TokenHolder {\n return TokenHolderFromJSONTyped(json, false);\n}\n\nexport function TokenHolderFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenHolder {\n if (json == null) {\n return json;\n }\n return {\n \n 'walletAddress': json['walletAddress'],\n 'amount': json['amount'],\n 'amountInUsd': json['amountInUsd'],\n 'percentage': json['percentage'],\n };\n}\n\nexport function TokenHolderToJSON(json: any): TokenHolder {\n return TokenHolderToJSONTyped(json, false);\n}\n\nexport function TokenHolderToJSONTyped(value?: TokenHolder | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'walletAddress': value['walletAddress'],\n 'amount': value['amount'],\n 'amountInUsd': value['amountInUsd'],\n 'percentage': value['percentage'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenHolder } from './TokenHolder';\nimport {\n TokenHolderFromJSON,\n TokenHolderFromJSONTyped,\n TokenHolderToJSON,\n TokenHolderToJSONTyped,\n} from './TokenHolder';\n\n/**\n * \n * @export\n * @interface TokenHolderPage\n */\nexport interface TokenHolderPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenHolderPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenHolderPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenHolderPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenHolderPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenHolderPage\n */\n total?: number;\n /**\n * DTO.TOKEN_HOLDER.PAGE.DATA\n * @type {Array<TokenHolder>}\n * @memberof TokenHolderPage\n */\n data: Array<TokenHolder>;\n}\n\n/**\n * Check if a given object implements the TokenHolderPage interface.\n */\nexport function instanceOfTokenHolderPage(value: object): value is TokenHolderPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenHolderPageFromJSON(json: any): TokenHolderPage {\n return TokenHolderPageFromJSONTyped(json, false);\n}\n\nexport function TokenHolderPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenHolderPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenHolderFromJSON)),\n };\n}\n\nexport function TokenHolderPageToJSON(json: any): TokenHolderPage {\n return TokenHolderPageToJSONTyped(json, false);\n}\n\nexport function TokenHolderPageToJSONTyped(value?: TokenHolderPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenHolderToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Token } from './Token';\nimport {\n TokenFromJSON,\n TokenFromJSONTyped,\n TokenToJSON,\n TokenToJSONTyped,\n} from './Token';\n\n/**\n * \n * @export\n * @interface TokenListPage\n */\nexport interface TokenListPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenListPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenListPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenListPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenListPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenListPage\n */\n total?: number;\n /**\n * DTO.TOKEN.PAGE.DATA\n * @type {Array<Token>}\n * @memberof TokenListPage\n */\n data: Array<Token>;\n}\n\n/**\n * Check if a given object implements the TokenListPage interface.\n */\nexport function instanceOfTokenListPage(value: object): value is TokenListPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenListPageFromJSON(json: any): TokenListPage {\n return TokenListPageFromJSONTyped(json, false);\n}\n\nexport function TokenListPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenListPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenFromJSON)),\n };\n}\n\nexport function TokenListPageToJSON(json: any): TokenListPage {\n return TokenListPageToJSONTyped(json, false);\n}\n\nexport function TokenListPageToJSONTyped(value?: TokenListPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Token } from './Token';\nimport {\n TokenFromJSON,\n TokenFromJSONTyped,\n TokenToJSON,\n TokenToJSONTyped,\n} from './Token';\n\n/**\n * \n * @export\n * @interface TokenPage\n */\nexport interface TokenPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenPage\n */\n total?: number;\n /**\n * DTO.TOKEN.PAGE.COUNTS_BY_PROTOCOLS\n * @type {object}\n * @memberof TokenPage\n */\n countsByProtocols?: object;\n /**\n * DTO.TOKEN.PAGE.DATA\n * @type {Array<Token>}\n * @memberof TokenPage\n */\n data: Array<Token>;\n}\n\n/**\n * Check if a given object implements the TokenPage interface.\n */\nexport function instanceOfTokenPage(value: object): value is TokenPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenPageFromJSON(json: any): TokenPage {\n return TokenPageFromJSONTyped(json, false);\n}\n\nexport function TokenPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'countsByProtocols': json['countsByProtocols'] == null ? undefined : json['countsByProtocols'],\n 'data': ((json['data'] as Array<any>).map(TokenFromJSON)),\n };\n}\n\nexport function TokenPageToJSON(json: any): TokenPage {\n return TokenPageToJSONTyped(json, false);\n}\n\nexport function TokenPageToJSONTyped(value?: TokenPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'countsByProtocols': value['countsByProtocols'],\n 'data': ((value['data'] as Array<any>).map(TokenToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenPriceDTO\n */\nexport interface TokenPriceDTO {\n /**\n * DTO.TOKEN.PRICE.TOKEN_ADDRESS\n * @type {string}\n * @memberof TokenPriceDTO\n */\n tokenAddress: string;\n /**\n * DTO.TOKEN.PRICE.PRICE_IN_USD\n * @type {string}\n * @memberof TokenPriceDTO\n */\n priceInUsd: string;\n /**\n * DTO.TOKEN.PRICE.PRICE_IN_NATIVE\n * @type {string}\n * @memberof TokenPriceDTO\n */\n priceInNative: string;\n /**\n * DTO.TOKEN.PRICE.TIMESTAMP\n * @type {number}\n * @memberof TokenPriceDTO\n */\n timestamp: number;\n}\n\n/**\n * Check if a given object implements the TokenPriceDTO interface.\n */\nexport function instanceOfTokenPriceDTO(value: object): value is TokenPriceDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('priceInUsd' in value) || value['priceInUsd'] === undefined) return false;\n if (!('priceInNative' in value) || value['priceInNative'] === undefined) return false;\n if (!('timestamp' in value) || value['timestamp'] === undefined) return false;\n return true;\n}\n\nexport function TokenPriceDTOFromJSON(json: any): TokenPriceDTO {\n return TokenPriceDTOFromJSONTyped(json, false);\n}\n\nexport function TokenPriceDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenPriceDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'priceInUsd': json['priceInUsd'],\n 'priceInNative': json['priceInNative'],\n 'timestamp': json['timestamp'],\n };\n}\n\nexport function TokenPriceDTOToJSON(json: any): TokenPriceDTO {\n return TokenPriceDTOToJSONTyped(json, false);\n}\n\nexport function TokenPriceDTOToJSONTyped(value?: TokenPriceDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'priceInUsd': value['priceInUsd'],\n 'priceInNative': value['priceInNative'],\n 'timestamp': value['timestamp'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TokenPriceDTO } from './TokenPriceDTO';\nimport {\n TokenPriceDTOFromJSON,\n TokenPriceDTOFromJSONTyped,\n TokenPriceDTOToJSON,\n TokenPriceDTOToJSONTyped,\n} from './TokenPriceDTO';\n\n/**\n * \n * @export\n * @interface TokenPricePage\n */\nexport interface TokenPricePage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TokenPricePage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TokenPricePage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TokenPricePage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TokenPricePage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TokenPricePage\n */\n total?: number;\n /**\n * DTO.TOKEN.PRICE.PAGE.DATA\n * @type {Array<TokenPriceDTO>}\n * @memberof TokenPricePage\n */\n data: Array<TokenPriceDTO>;\n}\n\n/**\n * Check if a given object implements the TokenPricePage interface.\n */\nexport function instanceOfTokenPricePage(value: object): value is TokenPricePage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TokenPricePageFromJSON(json: any): TokenPricePage {\n return TokenPricePageFromJSONTyped(json, false);\n}\n\nexport function TokenPricePageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenPricePage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TokenPriceDTOFromJSON)),\n };\n}\n\nexport function TokenPricePageToJSON(json: any): TokenPricePage {\n return TokenPricePageToJSONTyped(json, false);\n}\n\nexport function TokenPricePageToJSONTyped(value?: TokenPricePage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TokenPriceDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TokenTrader\n */\nexport interface TokenTrader {\n /**\n * DTO.TOKEN_TRADER.ADDRESS\n * @type {string}\n * @memberof TokenTrader\n */\n address: string;\n /**\n * DTO.TOKEN_TRADER.TRANSACTION_SIGNATURE\n * @type {string}\n * @memberof TokenTrader\n */\n transactionSignature?: string;\n /**\n * DTO.TOKEN_TRADER.BLOCK_HASH\n * @type {string}\n * @memberof TokenTrader\n */\n blockHash?: string;\n /**\n * DTO.TOKEN_TRADER.BLOCK_HEIGHT\n * @type {number}\n * @memberof TokenTrader\n */\n blockHeight?: number;\n /**\n * DTO.TOKEN_TRADER.BLOCK_SLOT\n * @type {number}\n * @memberof TokenTrader\n */\n blockSlot?: number;\n /**\n * DTO.TOKEN_TRADER.BLOCK_TIMESTAMP\n * @type {Date}\n * @memberof TokenTrader\n */\n blockTimestamp?: Date;\n /**\n * DTO.TOKEN_TRADER.ONCHAIN_CREATED_AT\n * @type {object}\n * @memberof TokenTrader\n */\n onchainCreatedAt?: object;\n /**\n * DTO.TOKEN_TRADER.TRADE_COUNT\n * @type {number}\n * @memberof TokenTrader\n */\n tradeCount?: number;\n /**\n * DTO.TOKEN_TRADER.TRADE_AMOUNT_IN_NATIVE\n * @type {number}\n * @memberof TokenTrader\n */\n tradeAmountInNative?: number;\n /**\n * DTO.TOKEN_TRADER.TRADE_AMOUNT_IN_USD\n * @type {number}\n * @memberof TokenTrader\n */\n tradeAmountInUsd?: number;\n /**\n * DTO.TOKEN_TRADER.PERCENTILE_RANK_TRADE_COUNT\n * @type {number}\n * @memberof TokenTrader\n */\n percentileRankTradeCount?: number;\n /**\n * DTO.TOKEN_TRADER.PERCENTILE_RANK_TRADE_AMOUNT_IN_USD\n * @type {number}\n * @memberof TokenTrader\n */\n percentileRankTradeAmountInUsd?: number;\n /**\n * DTO.TOKEN_TRADER.RANK_TRADE_AMOUNT_IN_USD\n * @type {number}\n * @memberof TokenTrader\n */\n rankTradeAmountInUsd?: number;\n}\n\n/**\n * Check if a given object implements the TokenTrader interface.\n */\nexport function instanceOfTokenTrader(value: object): value is TokenTrader {\n if (!('address' in value) || value['address'] === undefined) return false;\n return true;\n}\n\nexport function TokenTraderFromJSON(json: any): TokenTrader {\n return TokenTraderFromJSONTyped(json, false);\n}\n\nexport function TokenTraderFromJSONTyped(json: any, ignoreDiscriminator: boolean): TokenTrader {\n if (json == null) {\n return json;\n }\n return {\n \n 'address': json['address'],\n 'transactionSignature': json['transactionSignature'] == null ? undefined : json['transactionSignature'],\n 'blockHash': json['blockHash'] == null ? undefined : json['blockHash'],\n 'blockHeight': json['blockHeight'] == null ? undefined : json['blockHeight'],\n 'blockSlot': json['blockSlot'] == null ? undefined : json['blockSlot'],\n 'blockTimestamp': json['blockTimestamp'] == null ? undefined : (new Date(json['blockTimestamp'])),\n 'onchainCreatedAt': json['onchainCreatedAt'] == null ? undefined : json['onchainCreatedAt'],\n 'tradeCount': json['tradeCount'] == null ? undefined : json['tradeCount'],\n 'tradeAmountInNative': json['tradeAmountInNative'] == null ? undefined : json['tradeAmountInNative'],\n 'tradeAmountInUsd': json['tradeAmountInUsd'] == null ? undefined : json['tradeAmountInUsd'],\n 'percentileRankTradeCount': json['percentileRankTradeCount'] == null ? undefined : json['percentileRankTradeCount'],\n 'percentileRankTradeAmountInUsd': json['percentileRankTradeAmountInUsd'] == null ? undefined : json['percentileRankTradeAmountInUsd'],\n 'rankTradeAmountInUsd': json['rankTradeAmountInUsd'] == null ? undefined : json['rankTradeAmountInUsd'],\n };\n}\n\nexport function TokenTraderToJSON(json: any): TokenTrader {\n return TokenTraderToJSONTyped(json, false);\n}\n\nexport function TokenTraderToJSONTyped(value?: TokenTrader | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'address': value['address'],\n 'transactionSignature': value['transactionSignature'],\n 'blockHash': value['blockHash'],\n 'blockHeight': value['blockHeight'],\n 'blockSlot': value['blockSlot'],\n 'blockTimestamp': value['blockTimestamp'] == null ? value['blockTimestamp'] : value['blockTimestamp'].toISOString(),\n 'onchainCreatedAt': value['onchainCreatedAt'],\n 'tradeCount': value['tradeCount'],\n 'tradeAmountInNative': value['tradeAmountInNative'],\n 'tradeAmountInUsd': value['tradeAmountInUsd'],\n 'percentileRankTradeCount': value['percentileRankTradeCount'],\n 'percentileRankTradeAmountInUsd': value['percentileRankTradeAmountInUsd'],\n 'rankTradeAmountInUsd': value['rankTradeAmountInUsd'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TopTradersDTO\n */\nexport interface TopTradersDTO {\n /**\n * DTO.TRADE.TOP_TRADERS.TOKEN_ADDRESS\n * @type {string}\n * @memberof TopTradersDTO\n */\n tokenAddress: string;\n /**\n * DTO.TRADE.TOP_TRADERS.OWNER\n * @type {string}\n * @memberof TopTradersDTO\n */\n owner: string;\n /**\n * DTO.TRADE.TOP_TRADERS.TAGS\n * @type {Array<string>}\n * @memberof TopTradersDTO\n */\n tags: Array<string>;\n /**\n * DTO.TRADE.TOP_TRADERS.TYPE\n * @type {string}\n * @memberof TopTradersDTO\n */\n type: string;\n /**\n * DTO.TRADE.TOP_TRADERS.VOLUME\n * @type {number}\n * @memberof TopTradersDTO\n */\n volume: number;\n /**\n * DTO.TRADE.TOP_TRADERS.TRADE\n * @type {number}\n * @memberof TopTradersDTO\n */\n trade: number;\n /**\n * DTO.TRADE.TOP_TRADERS.TRADE_BUY\n * @type {number}\n * @memberof TopTradersDTO\n */\n tradeBuy: number;\n /**\n * DTO.TRADE.TOP_TRADERS.TRADE_SELL\n * @type {number}\n * @memberof TopTradersDTO\n */\n tradeSell: number;\n /**\n * DTO.TRADE.TOP_TRADERS.VOLUME_BUY\n * @type {number}\n * @memberof TopTradersDTO\n */\n volumeBuy: number;\n /**\n * DTO.TRADE.TOP_TRADERS.VOLUME_SELL\n * @type {number}\n * @memberof TopTradersDTO\n */\n volumeSell: number;\n /**\n * DTO.TRADE.TOP_TRADERS.IS_SCALED_UI_TOKEN\n * @type {boolean}\n * @memberof TopTradersDTO\n */\n isScaledUiToken: boolean;\n /**\n * DTO.TRADE.TOP_TRADERS.MULTIPLIER\n * @type {string}\n * @memberof TopTradersDTO\n */\n multiplier?: string;\n}\n\n/**\n * Check if a given object implements the TopTradersDTO interface.\n */\nexport function instanceOfTopTradersDTO(value: object): value is TopTradersDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('owner' in value) || value['owner'] === undefined) return false;\n if (!('tags' in value) || value['tags'] === undefined) return false;\n if (!('type' in value) || value['type'] === undefined) return false;\n if (!('volume' in value) || value['volume'] === undefined) return false;\n if (!('trade' in value) || value['trade'] === undefined) return false;\n if (!('tradeBuy' in value) || value['tradeBuy'] === undefined) return false;\n if (!('tradeSell' in value) || value['tradeSell'] === undefined) return false;\n if (!('volumeBuy' in value) || value['volumeBuy'] === undefined) return false;\n if (!('volumeSell' in value) || value['volumeSell'] === undefined) return false;\n if (!('isScaledUiToken' in value) || value['isScaledUiToken'] === undefined) return false;\n return true;\n}\n\nexport function TopTradersDTOFromJSON(json: any): TopTradersDTO {\n return TopTradersDTOFromJSONTyped(json, false);\n}\n\nexport function TopTradersDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TopTradersDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'owner': json['owner'],\n 'tags': json['tags'],\n 'type': json['type'],\n 'volume': json['volume'],\n 'trade': json['trade'],\n 'tradeBuy': json['tradeBuy'],\n 'tradeSell': json['tradeSell'],\n 'volumeBuy': json['volumeBuy'],\n 'volumeSell': json['volumeSell'],\n 'isScaledUiToken': json['isScaledUiToken'],\n 'multiplier': json['multiplier'] == null ? undefined : json['multiplier'],\n };\n}\n\nexport function TopTradersDTOToJSON(json: any): TopTradersDTO {\n return TopTradersDTOToJSONTyped(json, false);\n}\n\nexport function TopTradersDTOToJSONTyped(value?: TopTradersDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'owner': value['owner'],\n 'tags': value['tags'],\n 'type': value['type'],\n 'volume': value['volume'],\n 'trade': value['trade'],\n 'tradeBuy': value['tradeBuy'],\n 'tradeSell': value['tradeSell'],\n 'volumeBuy': value['volumeBuy'],\n 'volumeSell': value['volumeSell'],\n 'isScaledUiToken': value['isScaledUiToken'],\n 'multiplier': value['multiplier'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TopTradersDTO } from './TopTradersDTO';\nimport {\n TopTradersDTOFromJSON,\n TopTradersDTOFromJSONTyped,\n TopTradersDTOToJSON,\n TopTradersDTOToJSONTyped,\n} from './TopTradersDTO';\n\n/**\n * \n * @export\n * @interface TopTradersPage\n */\nexport interface TopTradersPage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TopTradersPage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TopTradersPage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TopTradersPage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TopTradersPage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TopTradersPage\n */\n total?: number;\n /**\n * DTO.TRADE.TOP_TRADERS.PAGE.DATA\n * @type {Array<TopTradersDTO>}\n * @memberof TopTradersPage\n */\n data: Array<TopTradersDTO>;\n}\n\n/**\n * Check if a given object implements the TopTradersPage interface.\n */\nexport function instanceOfTopTradersPage(value: object): value is TopTradersPage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TopTradersPageFromJSON(json: any): TopTradersPage {\n return TopTradersPageFromJSONTyped(json, false);\n}\n\nexport function TopTradersPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TopTradersPage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TopTradersDTOFromJSON)),\n };\n}\n\nexport function TopTradersPageToJSON(json: any): TopTradersPage {\n return TopTradersPageToJSONTyped(json, false);\n}\n\nexport function TopTradersPageToJSONTyped(value?: TopTradersPage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TopTradersDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TradeDetailDTO\n */\nexport interface TradeDetailDTO {\n /**\n * DTO.TRADE.DETAIL.CHAIN\n * @type {string}\n * @memberof TradeDetailDTO\n */\n chain: string;\n /**\n * DTO.TRADE.DETAIL.BLOCK_HEIGHT\n * @type {number}\n * @memberof TradeDetailDTO\n */\n blockHeight: number;\n /**\n * DTO.TRADE.DETAIL.BLOCK_TIMESTAMP\n * @type {number}\n * @memberof TradeDetailDTO\n */\n blockTimestamp: number;\n /**\n * DTO.TRADE.DETAIL.ACCOUNT_OWNER_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n accountOwnerAddress: string;\n /**\n * DTO.TRADE.DETAIL.TRANSACTION_SIGNATURE\n * @type {string}\n * @memberof TradeDetailDTO\n */\n transactionSignature: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_NAME\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenName: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_SYMBOL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenSymbol: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_IMAGE_URL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenImageUrl: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenAddress: string;\n /**\n * DTO.TRADE.DETAIL.POOL_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n poolAddress: string;\n /**\n * DTO.TRADE.DETAIL.DEX_PROGRAM_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n dexProgramAddress: string;\n /**\n * DTO.TRADE.DETAIL.DEX_PROTOCOL_FAMILY\n * @type {string}\n * @memberof TradeDetailDTO\n */\n dexProtocolFamily: string;\n /**\n * DTO.TRADE.DETAIL.DEX_IMAGE\n * @type {string}\n * @memberof TradeDetailDTO\n */\n dexImage: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_AMOUNT\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenAmount: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_PRICE_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenPriceInUsd: string;\n /**\n * DTO.TRADE.DETAIL.TOKEN_AMOUNT_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n tokenAmountInUsd: string;\n /**\n * DTO.TRADE.DETAIL.TYPE\n * @type {string}\n * @memberof TradeDetailDTO\n */\n type: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_NAME\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenName: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_SYMBOL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenSymbol: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_IMAGE_URL\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenImageUrl: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_ADDRESS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenAddress: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_PRICE_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenPriceInUsd: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_AMOUNT\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenAmount: string;\n /**\n * DTO.TRADE.DETAIL.SIDE_TOKEN_AMOUNT_IN_USD\n * @type {string}\n * @memberof TradeDetailDTO\n */\n sideTokenAmountInUsd: string;\n /**\n * DTO.TRADE.DETAIL.STATUS\n * @type {string}\n * @memberof TradeDetailDTO\n */\n status: string;\n}\n\n/**\n * Check if a given object implements the TradeDetailDTO interface.\n */\nexport function instanceOfTradeDetailDTO(value: object): value is TradeDetailDTO {\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('blockHeight' in value) || value['blockHeight'] === undefined) return false;\n if (!('blockTimestamp' in value) || value['blockTimestamp'] === undefined) return false;\n if (!('accountOwnerAddress' in value) || value['accountOwnerAddress'] === undefined) return false;\n if (!('transactionSignature' in value) || value['transactionSignature'] === undefined) return false;\n if (!('tokenName' in value) || value['tokenName'] === undefined) return false;\n if (!('tokenSymbol' in value) || value['tokenSymbol'] === undefined) return false;\n if (!('tokenImageUrl' in value) || value['tokenImageUrl'] === undefined) return false;\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('poolAddress' in value) || value['poolAddress'] === undefined) return false;\n if (!('dexProgramAddress' in value) || value['dexProgramAddress'] === undefined) return false;\n if (!('dexProtocolFamily' in value) || value['dexProtocolFamily'] === undefined) return false;\n if (!('dexImage' in value) || value['dexImage'] === undefined) return false;\n if (!('tokenAmount' in value) || value['tokenAmount'] === undefined) return false;\n if (!('tokenPriceInUsd' in value) || value['tokenPriceInUsd'] === undefined) return false;\n if (!('tokenAmountInUsd' in value) || value['tokenAmountInUsd'] === undefined) return false;\n if (!('type' in value) || value['type'] === undefined) return false;\n if (!('sideTokenName' in value) || value['sideTokenName'] === undefined) return false;\n if (!('sideTokenSymbol' in value) || value['sideTokenSymbol'] === undefined) return false;\n if (!('sideTokenImageUrl' in value) || value['sideTokenImageUrl'] === undefined) return false;\n if (!('sideTokenAddress' in value) || value['sideTokenAddress'] === undefined) return false;\n if (!('sideTokenPriceInUsd' in value) || value['sideTokenPriceInUsd'] === undefined) return false;\n if (!('sideTokenAmount' in value) || value['sideTokenAmount'] === undefined) return false;\n if (!('sideTokenAmountInUsd' in value) || value['sideTokenAmountInUsd'] === undefined) return false;\n if (!('status' in value) || value['status'] === undefined) return false;\n return true;\n}\n\nexport function TradeDetailDTOFromJSON(json: any): TradeDetailDTO {\n return TradeDetailDTOFromJSONTyped(json, false);\n}\n\nexport function TradeDetailDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TradeDetailDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'chain': json['chain'],\n 'blockHeight': json['blockHeight'],\n 'blockTimestamp': json['blockTimestamp'],\n 'accountOwnerAddress': json['accountOwnerAddress'],\n 'transactionSignature': json['transactionSignature'],\n 'tokenName': json['tokenName'],\n 'tokenSymbol': json['tokenSymbol'],\n 'tokenImageUrl': json['tokenImageUrl'],\n 'tokenAddress': json['tokenAddress'],\n 'poolAddress': json['poolAddress'],\n 'dexProgramAddress': json['dexProgramAddress'],\n 'dexProtocolFamily': json['dexProtocolFamily'],\n 'dexImage': json['dexImage'],\n 'tokenAmount': json['tokenAmount'],\n 'tokenPriceInUsd': json['tokenPriceInUsd'],\n 'tokenAmountInUsd': json['tokenAmountInUsd'],\n 'type': json['type'],\n 'sideTokenName': json['sideTokenName'],\n 'sideTokenSymbol': json['sideTokenSymbol'],\n 'sideTokenImageUrl': json['sideTokenImageUrl'],\n 'sideTokenAddress': json['sideTokenAddress'],\n 'sideTokenPriceInUsd': json['sideTokenPriceInUsd'],\n 'sideTokenAmount': json['sideTokenAmount'],\n 'sideTokenAmountInUsd': json['sideTokenAmountInUsd'],\n 'status': json['status'],\n };\n}\n\nexport function TradeDetailDTOToJSON(json: any): TradeDetailDTO {\n return TradeDetailDTOToJSONTyped(json, false);\n}\n\nexport function TradeDetailDTOToJSONTyped(value?: TradeDetailDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chain': value['chain'],\n 'blockHeight': value['blockHeight'],\n 'blockTimestamp': value['blockTimestamp'],\n 'accountOwnerAddress': value['accountOwnerAddress'],\n 'transactionSignature': value['transactionSignature'],\n 'tokenName': value['tokenName'],\n 'tokenSymbol': value['tokenSymbol'],\n 'tokenImageUrl': value['tokenImageUrl'],\n 'tokenAddress': value['tokenAddress'],\n 'poolAddress': value['poolAddress'],\n 'dexProgramAddress': value['dexProgramAddress'],\n 'dexProtocolFamily': value['dexProtocolFamily'],\n 'dexImage': value['dexImage'],\n 'tokenAmount': value['tokenAmount'],\n 'tokenPriceInUsd': value['tokenPriceInUsd'],\n 'tokenAmountInUsd': value['tokenAmountInUsd'],\n 'type': value['type'],\n 'sideTokenName': value['sideTokenName'],\n 'sideTokenSymbol': value['sideTokenSymbol'],\n 'sideTokenImageUrl': value['sideTokenImageUrl'],\n 'sideTokenAddress': value['sideTokenAddress'],\n 'sideTokenPriceInUsd': value['sideTokenPriceInUsd'],\n 'sideTokenAmount': value['sideTokenAmount'],\n 'sideTokenAmountInUsd': value['sideTokenAmountInUsd'],\n 'status': value['status'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { TradeDetailDTO } from './TradeDetailDTO';\nimport {\n TradeDetailDTOFromJSON,\n TradeDetailDTOFromJSONTyped,\n TradeDetailDTOToJSON,\n TradeDetailDTOToJSONTyped,\n} from './TradeDetailDTO';\n\n/**\n * \n * @export\n * @interface TradePage\n */\nexport interface TradePage {\n /**\n * DTO.PAGE.HAS_NEXT\n * @type {boolean}\n * @memberof TradePage\n */\n hasNext?: boolean;\n /**\n * DTO.PAGE.HAS_PREV\n * @type {boolean}\n * @memberof TradePage\n */\n hasPrev?: boolean;\n /**\n * DTO.PAGE.START_CURSOR\n * @type {string}\n * @memberof TradePage\n */\n startCursor?: string;\n /**\n * DTO.PAGE.END_CURSOR\n * @type {string}\n * @memberof TradePage\n */\n endCursor?: string;\n /**\n * DTO.PAGE.TOTAL\n * @type {number}\n * @memberof TradePage\n */\n total?: number;\n /**\n * DTO.TRADE.PAGE.DATA\n * @type {Array<TradeDetailDTO>}\n * @memberof TradePage\n */\n data: Array<TradeDetailDTO>;\n}\n\n/**\n * Check if a given object implements the TradePage interface.\n */\nexport function instanceOfTradePage(value: object): value is TradePage {\n if (!('data' in value) || value['data'] === undefined) return false;\n return true;\n}\n\nexport function TradePageFromJSON(json: any): TradePage {\n return TradePageFromJSONTyped(json, false);\n}\n\nexport function TradePageFromJSONTyped(json: any, ignoreDiscriminator: boolean): TradePage {\n if (json == null) {\n return json;\n }\n return {\n \n 'hasNext': json['hasNext'] == null ? undefined : json['hasNext'],\n 'hasPrev': json['hasPrev'] == null ? undefined : json['hasPrev'],\n 'startCursor': json['startCursor'] == null ? undefined : json['startCursor'],\n 'endCursor': json['endCursor'] == null ? undefined : json['endCursor'],\n 'total': json['total'] == null ? undefined : json['total'],\n 'data': ((json['data'] as Array<any>).map(TradeDetailDTOFromJSON)),\n };\n}\n\nexport function TradePageToJSON(json: any): TradePage {\n return TradePageToJSONTyped(json, false);\n}\n\nexport function TradePageToJSONTyped(value?: TradePage | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'hasNext': value['hasNext'],\n 'hasPrev': value['hasPrev'],\n 'startCursor': value['startCursor'],\n 'endCursor': value['endCursor'],\n 'total': value['total'],\n 'data': ((value['data'] as Array<any>).map(TradeDetailDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AlertDetail } from './AlertDetail';\nimport {\n AlertDetailFromJSON,\n AlertDetailFromJSONTyped,\n AlertDetailToJSON,\n AlertDetailToJSONTyped,\n} from './AlertDetail';\n\n/**\n * \n * @export\n * @interface TransferAlertsResponseDTO\n */\nexport interface TransferAlertsResponseDTO {\n /**\n * DTO.KYT.TRANSFER_ALERTS_RESPONSE.ALERTS\n * @type {Array<AlertDetail>}\n * @memberof TransferAlertsResponseDTO\n */\n alerts: Array<AlertDetail>;\n}\n\n/**\n * Check if a given object implements the TransferAlertsResponseDTO interface.\n */\nexport function instanceOfTransferAlertsResponseDTO(value: object): value is TransferAlertsResponseDTO {\n if (!('alerts' in value) || value['alerts'] === undefined) return false;\n return true;\n}\n\nexport function TransferAlertsResponseDTOFromJSON(json: any): TransferAlertsResponseDTO {\n return TransferAlertsResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferAlertsResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferAlertsResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'alerts': ((json['alerts'] as Array<any>).map(AlertDetailFromJSON)),\n };\n}\n\nexport function TransferAlertsResponseDTOToJSON(json: any): TransferAlertsResponseDTO {\n return TransferAlertsResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferAlertsResponseDTOToJSONTyped(value?: TransferAlertsResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'alerts': ((value['alerts'] as Array<any>).map(AlertDetailToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface TransferBaseResponseDTO\n */\nexport interface TransferBaseResponseDTO {\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.UPDATED_AT\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n updatedAt: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.ASSET\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n asset: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.ASSET_ID\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n assetId: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.NETWORK\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n network: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.TRANSFER_REFERENCE\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n transferReference: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.MEMO\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n memo: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.TX\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n tx: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.IDX\n * @type {number}\n * @memberof TransferBaseResponseDTO\n */\n idx: number;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.USD_AMOUNT\n * @type {number}\n * @memberof TransferBaseResponseDTO\n */\n usdAmount: number;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.ASSET_AMOUNT\n * @type {number}\n * @memberof TransferBaseResponseDTO\n */\n assetAmount: number;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.TIMESTAMP\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n timestamp: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.OUTPUT_ADDRESS\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n outputAddress: string;\n /**\n * DTO.KYT.TRANSFER_BASE_RESPONSE.EXTERNAL_ID\n * @type {string}\n * @memberof TransferBaseResponseDTO\n */\n externalId: string;\n}\n\n/**\n * Check if a given object implements the TransferBaseResponseDTO interface.\n */\nexport function instanceOfTransferBaseResponseDTO(value: object): value is TransferBaseResponseDTO {\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('assetId' in value) || value['assetId'] === undefined) return false;\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('transferReference' in value) || value['transferReference'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n if (!('tx' in value) || value['tx'] === undefined) return false;\n if (!('idx' in value) || value['idx'] === undefined) return false;\n if (!('usdAmount' in value) || value['usdAmount'] === undefined) return false;\n if (!('assetAmount' in value) || value['assetAmount'] === undefined) return false;\n if (!('timestamp' in value) || value['timestamp'] === undefined) return false;\n if (!('outputAddress' in value) || value['outputAddress'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n return true;\n}\n\nexport function TransferBaseResponseDTOFromJSON(json: any): TransferBaseResponseDTO {\n return TransferBaseResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferBaseResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferBaseResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'updatedAt': json['updatedAt'],\n 'asset': json['asset'],\n 'assetId': json['assetId'],\n 'network': json['network'],\n 'transferReference': json['transferReference'],\n 'memo': json['memo'],\n 'tx': json['tx'],\n 'idx': json['idx'],\n 'usdAmount': json['usdAmount'],\n 'assetAmount': json['assetAmount'],\n 'timestamp': json['timestamp'],\n 'outputAddress': json['outputAddress'],\n 'externalId': json['externalId'],\n };\n}\n\nexport function TransferBaseResponseDTOToJSON(json: any): TransferBaseResponseDTO {\n return TransferBaseResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferBaseResponseDTOToJSONTyped(value?: TransferBaseResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'updatedAt': value['updatedAt'],\n 'asset': value['asset'],\n 'assetId': value['assetId'],\n 'network': value['network'],\n 'transferReference': value['transferReference'],\n 'memo': value['memo'],\n 'tx': value['tx'],\n 'idx': value['idx'],\n 'usdAmount': value['usdAmount'],\n 'assetAmount': value['assetAmount'],\n 'timestamp': value['timestamp'],\n 'outputAddress': value['outputAddress'],\n 'externalId': value['externalId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { DirectExposureDetail } from './DirectExposureDetail';\nimport {\n DirectExposureDetailFromJSON,\n DirectExposureDetailFromJSONTyped,\n DirectExposureDetailToJSON,\n DirectExposureDetailToJSONTyped,\n} from './DirectExposureDetail';\n\n/**\n * \n * @export\n * @interface TransferDirectExposureResponseDTO\n */\nexport interface TransferDirectExposureResponseDTO {\n /**\n * DTO.KYT.TRANSFER_DIRECT_EXPOSURE_RESPONSE.DIRECT\n * @type {DirectExposureDetail}\n * @memberof TransferDirectExposureResponseDTO\n */\n direct: DirectExposureDetail;\n}\n\n/**\n * Check if a given object implements the TransferDirectExposureResponseDTO interface.\n */\nexport function instanceOfTransferDirectExposureResponseDTO(value: object): value is TransferDirectExposureResponseDTO {\n if (!('direct' in value) || value['direct'] === undefined) return false;\n return true;\n}\n\nexport function TransferDirectExposureResponseDTOFromJSON(json: any): TransferDirectExposureResponseDTO {\n return TransferDirectExposureResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferDirectExposureResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferDirectExposureResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'direct': DirectExposureDetailFromJSON(json['direct']),\n };\n}\n\nexport function TransferDirectExposureResponseDTOToJSON(json: any): TransferDirectExposureResponseDTO {\n return TransferDirectExposureResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferDirectExposureResponseDTOToJSONTyped(value?: TransferDirectExposureResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'direct': DirectExposureDetailToJSON(value['direct']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { NetworkIdentificationOrg } from './NetworkIdentificationOrg';\nimport {\n NetworkIdentificationOrgFromJSON,\n NetworkIdentificationOrgFromJSONTyped,\n NetworkIdentificationOrgToJSON,\n NetworkIdentificationOrgToJSONTyped,\n} from './NetworkIdentificationOrg';\n\n/**\n * \n * @export\n * @interface TransferNetworkIdentificationsResponseDTO\n */\nexport interface TransferNetworkIdentificationsResponseDTO {\n /**\n * DTO.KYT.TRANSFER_NETWORK_IDENTIFICATIONS_RESPONSE.COUNT\n * @type {number}\n * @memberof TransferNetworkIdentificationsResponseDTO\n */\n count: number;\n /**\n * DTO.KYT.TRANSFER_NETWORK_IDENTIFICATIONS_RESPONSE.NETWORK_IDENTIFICATION_ORGS\n * @type {Array<NetworkIdentificationOrg>}\n * @memberof TransferNetworkIdentificationsResponseDTO\n */\n networkIdentificationOrgs: Array<NetworkIdentificationOrg>;\n}\n\n/**\n * Check if a given object implements the TransferNetworkIdentificationsResponseDTO interface.\n */\nexport function instanceOfTransferNetworkIdentificationsResponseDTO(value: object): value is TransferNetworkIdentificationsResponseDTO {\n if (!('count' in value) || value['count'] === undefined) return false;\n if (!('networkIdentificationOrgs' in value) || value['networkIdentificationOrgs'] === undefined) return false;\n return true;\n}\n\nexport function TransferNetworkIdentificationsResponseDTOFromJSON(json: any): TransferNetworkIdentificationsResponseDTO {\n return TransferNetworkIdentificationsResponseDTOFromJSONTyped(json, false);\n}\n\nexport function TransferNetworkIdentificationsResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransferNetworkIdentificationsResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'count': json['count'],\n 'networkIdentificationOrgs': ((json['networkIdentificationOrgs'] as Array<any>).map(NetworkIdentificationOrgFromJSON)),\n };\n}\n\nexport function TransferNetworkIdentificationsResponseDTOToJSON(json: any): TransferNetworkIdentificationsResponseDTO {\n return TransferNetworkIdentificationsResponseDTOToJSONTyped(json, false);\n}\n\nexport function TransferNetworkIdentificationsResponseDTOToJSONTyped(value?: TransferNetworkIdentificationsResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'count': value['count'],\n 'networkIdentificationOrgs': ((value['networkIdentificationOrgs'] as Array<any>).map(NetworkIdentificationOrgToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface UpdateEndpointInput\n */\nexport interface UpdateEndpointInput {\n /**\n * DTO.ENDPOINT.ENDPOINT_ID\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n endpointId?: string;\n /**\n * DTO.ENDPOINT.CHANNELS\n * @type {Array<string>}\n * @memberof UpdateEndpointInput\n */\n channels?: Array<string>;\n /**\n * DTO.ENDPOINT.DESCRIPTION\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n description?: string;\n /**\n * DTO.ENDPOINT.DISABLED\n * @type {boolean}\n * @memberof UpdateEndpointInput\n */\n disabled?: boolean;\n /**\n * DTO.ENDPOINT.FILTER_TYPES\n * @type {Array<string>}\n * @memberof UpdateEndpointInput\n */\n filterTypes?: Array<string>;\n /**\n * DTO.ENDPOINT.METADATA\n * @type {object}\n * @memberof UpdateEndpointInput\n */\n metadata?: object;\n /**\n * DTO.ENDPOINT.RATE_LIMIT\n * @type {number}\n * @memberof UpdateEndpointInput\n */\n rateLimit?: number;\n /**\n * DTO.ENDPOINT.URL\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n url?: string;\n /**\n * DTO.ENDPOINT.FILTER\n * @type {string}\n * @memberof UpdateEndpointInput\n */\n filter?: string;\n}\n\n/**\n * Check if a given object implements the UpdateEndpointInput interface.\n */\nexport function instanceOfUpdateEndpointInput(value: object): value is UpdateEndpointInput {\n return true;\n}\n\nexport function UpdateEndpointInputFromJSON(json: any): UpdateEndpointInput {\n return UpdateEndpointInputFromJSONTyped(json, false);\n}\n\nexport function UpdateEndpointInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateEndpointInput {\n if (json == null) {\n return json;\n }\n return {\n \n 'endpointId': json['endpointId'] == null ? undefined : json['endpointId'],\n 'channels': json['channels'] == null ? undefined : json['channels'],\n 'description': json['description'] == null ? undefined : json['description'],\n 'disabled': json['disabled'] == null ? undefined : json['disabled'],\n 'filterTypes': json['filterTypes'] == null ? undefined : json['filterTypes'],\n 'metadata': json['metadata'] == null ? undefined : json['metadata'],\n 'rateLimit': json['rateLimit'] == null ? undefined : json['rateLimit'],\n 'url': json['url'] == null ? undefined : json['url'],\n 'filter': json['filter'] == null ? undefined : json['filter'],\n };\n}\n\nexport function UpdateEndpointInputToJSON(json: any): UpdateEndpointInput {\n return UpdateEndpointInputToJSONTyped(json, false);\n}\n\nexport function UpdateEndpointInputToJSONTyped(value?: UpdateEndpointInput | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'endpointId': value['endpointId'],\n 'channels': value['channels'],\n 'description': value['description'],\n 'disabled': value['disabled'],\n 'filterTypes': value['filterTypes'],\n 'metadata': value['metadata'],\n 'rateLimit': value['rateLimit'],\n 'url': value['url'],\n 'filter': value['filter'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface WalletBalanceDetailDTO\n */\nexport interface WalletBalanceDetailDTO {\n /**\n * DTO.WALLET.BALANCE.TOKEN_ADDRESS\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n tokenAddress: string;\n /**\n * DTO.WALLET.BALANCE.AMOUNT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n amount: string;\n /**\n * DTO.WALLET.BALANCE.AMOUNT_IN_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n valueInUsd: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_NAME\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n name: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_SYMBOL\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n symbol: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_IMAGE_URL\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n imageUrl: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_PRICE_IN_SOL\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n priceInSol: string;\n /**\n * DTO.WALLET.BALANCE.TOKEN_PRICE_IN_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n priceInUsd: string;\n /**\n * DTO.WALLET.BALANCE.PRICE_CHANGE_24H\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n priceChangeRatioInUsd24h: string;\n /**\n * DTO.WALLET.BALANCE.UNREALIZED_PROFIT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n unrealizedProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCE.UNREALIZED_PROFIT_RATIO\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n unrealizedProfitRatio: string;\n /**\n * DTO.WALLET.BALANCE.OPEN_TIME\n * @type {number}\n * @memberof WalletBalanceDetailDTO\n */\n openTime: number;\n /**\n * DTO.WALLET.BALANCE.CLOSE_TIME\n * @type {number}\n * @memberof WalletBalanceDetailDTO\n */\n closeTime: number;\n /**\n * DTO.WALLET.BALANCE.BUYS\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n buys: string;\n /**\n * DTO.WALLET.BALANCE.BUY_AMOUNT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n buyAmount: string;\n /**\n * DTO.WALLET.BALANCE.BUY_AMOUNT_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n buyAmountInUsd: string;\n /**\n * DTO.WALLET.BALANCE.SELLS\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n sells: string;\n /**\n * DTO.WALLET.BALANCE.SELL_AMOUNT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n sellAmount: string;\n /**\n * DTO.WALLET.BALANCE.SELL_AMOUNT_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n sellAmountInUsd: string;\n /**\n * DTO.WALLET.BALANCE.AVERAGE_BUY_PRICE\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n averageBuyPriceInUsd: string;\n /**\n * DTO.WALLET.BALANCE.AVERAGE_SELL_PRICE\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n averageSellPriceInUsd: string;\n /**\n * DTO.WALLET.BALANCE.REALIZED_PROFIT_IN_USD\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n realizedProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCE.REALIZED_PROFIT_RATIO\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n realizedProfitRatio: string;\n /**\n * DTO.WALLET.BALANCE.TOTAL_REALIZED_PROFIT\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n totalRealizedProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCE.TOTAL_REALIZED_PROFIT_RATIO\n * @type {string}\n * @memberof WalletBalanceDetailDTO\n */\n totalRealizedProfitRatio: string;\n}\n\n/**\n * Check if a given object implements the WalletBalanceDetailDTO interface.\n */\nexport function instanceOfWalletBalanceDetailDTO(value: object): value is WalletBalanceDetailDTO {\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('amount' in value) || value['amount'] === undefined) return false;\n if (!('valueInUsd' in value) || value['valueInUsd'] === undefined) return false;\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('symbol' in value) || value['symbol'] === undefined) return false;\n if (!('imageUrl' in value) || value['imageUrl'] === undefined) return false;\n if (!('priceInSol' in value) || value['priceInSol'] === undefined) return false;\n if (!('priceInUsd' in value) || value['priceInUsd'] === undefined) return false;\n if (!('priceChangeRatioInUsd24h' in value) || value['priceChangeRatioInUsd24h'] === undefined) return false;\n if (!('unrealizedProfitInUsd' in value) || value['unrealizedProfitInUsd'] === undefined) return false;\n if (!('unrealizedProfitRatio' in value) || value['unrealizedProfitRatio'] === undefined) return false;\n if (!('openTime' in value) || value['openTime'] === undefined) return false;\n if (!('closeTime' in value) || value['closeTime'] === undefined) return false;\n if (!('buys' in value) || value['buys'] === undefined) return false;\n if (!('buyAmount' in value) || value['buyAmount'] === undefined) return false;\n if (!('buyAmountInUsd' in value) || value['buyAmountInUsd'] === undefined) return false;\n if (!('sells' in value) || value['sells'] === undefined) return false;\n if (!('sellAmount' in value) || value['sellAmount'] === undefined) return false;\n if (!('sellAmountInUsd' in value) || value['sellAmountInUsd'] === undefined) return false;\n if (!('averageBuyPriceInUsd' in value) || value['averageBuyPriceInUsd'] === undefined) return false;\n if (!('averageSellPriceInUsd' in value) || value['averageSellPriceInUsd'] === undefined) return false;\n if (!('realizedProfitInUsd' in value) || value['realizedProfitInUsd'] === undefined) return false;\n if (!('realizedProfitRatio' in value) || value['realizedProfitRatio'] === undefined) return false;\n if (!('totalRealizedProfitInUsd' in value) || value['totalRealizedProfitInUsd'] === undefined) return false;\n if (!('totalRealizedProfitRatio' in value) || value['totalRealizedProfitRatio'] === undefined) return false;\n return true;\n}\n\nexport function WalletBalanceDetailDTOFromJSON(json: any): WalletBalanceDetailDTO {\n return WalletBalanceDetailDTOFromJSONTyped(json, false);\n}\n\nexport function WalletBalanceDetailDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WalletBalanceDetailDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'tokenAddress': json['tokenAddress'],\n 'amount': json['amount'],\n 'valueInUsd': json['valueInUsd'],\n 'name': json['name'],\n 'symbol': json['symbol'],\n 'imageUrl': json['imageUrl'],\n 'priceInSol': json['priceInSol'],\n 'priceInUsd': json['priceInUsd'],\n 'priceChangeRatioInUsd24h': json['priceChangeRatioInUsd24h'],\n 'unrealizedProfitInUsd': json['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': json['unrealizedProfitRatio'],\n 'openTime': json['openTime'],\n 'closeTime': json['closeTime'],\n 'buys': json['buys'],\n 'buyAmount': json['buyAmount'],\n 'buyAmountInUsd': json['buyAmountInUsd'],\n 'sells': json['sells'],\n 'sellAmount': json['sellAmount'],\n 'sellAmountInUsd': json['sellAmountInUsd'],\n 'averageBuyPriceInUsd': json['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': json['averageSellPriceInUsd'],\n 'realizedProfitInUsd': json['realizedProfitInUsd'],\n 'realizedProfitRatio': json['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': json['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': json['totalRealizedProfitRatio'],\n };\n}\n\nexport function WalletBalanceDetailDTOToJSON(json: any): WalletBalanceDetailDTO {\n return WalletBalanceDetailDTOToJSONTyped(json, false);\n}\n\nexport function WalletBalanceDetailDTOToJSONTyped(value?: WalletBalanceDetailDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'tokenAddress': value['tokenAddress'],\n 'amount': value['amount'],\n 'valueInUsd': value['valueInUsd'],\n 'name': value['name'],\n 'symbol': value['symbol'],\n 'imageUrl': value['imageUrl'],\n 'priceInSol': value['priceInSol'],\n 'priceInUsd': value['priceInUsd'],\n 'priceChangeRatioInUsd24h': value['priceChangeRatioInUsd24h'],\n 'unrealizedProfitInUsd': value['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': value['unrealizedProfitRatio'],\n 'openTime': value['openTime'],\n 'closeTime': value['closeTime'],\n 'buys': value['buys'],\n 'buyAmount': value['buyAmount'],\n 'buyAmountInUsd': value['buyAmountInUsd'],\n 'sells': value['sells'],\n 'sellAmount': value['sellAmount'],\n 'sellAmountInUsd': value['sellAmountInUsd'],\n 'averageBuyPriceInUsd': value['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': value['averageSellPriceInUsd'],\n 'realizedProfitInUsd': value['realizedProfitInUsd'],\n 'realizedProfitRatio': value['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': value['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': value['totalRealizedProfitRatio'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { WalletBalanceDetailDTO } from './WalletBalanceDetailDTO';\nimport {\n WalletBalanceDetailDTOFromJSON,\n WalletBalanceDetailDTOFromJSONTyped,\n WalletBalanceDetailDTOToJSON,\n WalletBalanceDetailDTOToJSONTyped,\n} from './WalletBalanceDetailDTO';\n\n/**\n * \n * @export\n * @interface WalletBalancesDTO\n */\nexport interface WalletBalancesDTO {\n /**\n * DTO.WALLET.BALANCES.TOTAL_BALANCES_IN_USD\n * @type {string}\n * @memberof WalletBalancesDTO\n */\n totalBalancesInUsd: string;\n /**\n * DTO.WALLET.BALANCES.TOTAL_PROFIT_IN_USD\n * @type {string}\n * @memberof WalletBalancesDTO\n */\n totalProfitInUsd: string;\n /**\n * DTO.WALLET.BALANCES.BALANCES.DETAIL\n * @type {Array<WalletBalanceDetailDTO>}\n * @memberof WalletBalancesDTO\n */\n balances: Array<WalletBalanceDetailDTO>;\n}\n\n/**\n * Check if a given object implements the WalletBalancesDTO interface.\n */\nexport function instanceOfWalletBalancesDTO(value: object): value is WalletBalancesDTO {\n if (!('totalBalancesInUsd' in value) || value['totalBalancesInUsd'] === undefined) return false;\n if (!('totalProfitInUsd' in value) || value['totalProfitInUsd'] === undefined) return false;\n if (!('balances' in value) || value['balances'] === undefined) return false;\n return true;\n}\n\nexport function WalletBalancesDTOFromJSON(json: any): WalletBalancesDTO {\n return WalletBalancesDTOFromJSONTyped(json, false);\n}\n\nexport function WalletBalancesDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WalletBalancesDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'totalBalancesInUsd': json['totalBalancesInUsd'],\n 'totalProfitInUsd': json['totalProfitInUsd'],\n 'balances': ((json['balances'] as Array<any>).map(WalletBalanceDetailDTOFromJSON)),\n };\n}\n\nexport function WalletBalancesDTOToJSON(json: any): WalletBalancesDTO {\n return WalletBalancesDTOToJSONTyped(json, false);\n}\n\nexport function WalletBalancesDTOToJSONTyped(value?: WalletBalancesDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'totalBalancesInUsd': value['totalBalancesInUsd'],\n 'totalProfitInUsd': value['totalProfitInUsd'],\n 'balances': ((value['balances'] as Array<any>).map(WalletBalanceDetailDTOToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface WalletPnlDTO\n */\nexport interface WalletPnlDTO {\n /**\n * DTO.WALLET.PNL.ID\n * @type {number}\n * @memberof WalletPnlDTO\n */\n id: number;\n /**\n * DTO.WALLET.PNL.CHAIN\n * @type {string}\n * @memberof WalletPnlDTO\n */\n chain: string;\n /**\n * DTO.WALLET.PNL.WALLET_ADDRESS\n * @type {string}\n * @memberof WalletPnlDTO\n */\n walletAddress: string;\n /**\n * DTO.WALLET.PNL.TOKEN_ADDRESS\n * @type {string}\n * @memberof WalletPnlDTO\n */\n tokenAddress: string;\n /**\n * DTO.WALLET.PNL.TOKEN_PRICE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n tokenPriceInUsd: number;\n /**\n * DTO.WALLET.PNL.OPEN_TIME\n * @type {number}\n * @memberof WalletPnlDTO\n */\n openTime: number;\n /**\n * DTO.WALLET.PNL.CLOSE_TIME\n * @type {number}\n * @memberof WalletPnlDTO\n */\n closeTime: number;\n /**\n * DTO.WALLET.PNL.LAST_TIME\n * @type {number}\n * @memberof WalletPnlDTO\n */\n lastTime: number;\n /**\n * DTO.WALLET.PNL.BALANCE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n balance: number;\n /**\n * DTO.WALLET.PNL.BUY_AMOUNT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n buyAmount: number;\n /**\n * DTO.WALLET.PNL.BUY_AMOUNT_USD\n * @type {number}\n * @memberof WalletPnlDTO\n */\n buyAmountInUsd: number;\n /**\n * DTO.WALLET.PNL.BUYS\n * @type {number}\n * @memberof WalletPnlDTO\n */\n buys: number;\n /**\n * DTO.WALLET.PNL.SELL_AMOUNT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n sellAmount: number;\n /**\n * DTO.WALLET.PNL.SELL_AMOUNT_USD\n * @type {number}\n * @memberof WalletPnlDTO\n */\n sellAmountInUsd: number;\n /**\n * DTO.WALLET.PNL.SELLS\n * @type {number}\n * @memberof WalletPnlDTO\n */\n sells: number;\n /**\n * DTO.WALLET.PNL.AVERAGE_BUY_PRICE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n averageBuyPriceInUsd: number;\n /**\n * DTO.WALLET.PNL.AVERAGE_SELL_PRICE\n * @type {number}\n * @memberof WalletPnlDTO\n */\n averageSellPriceInUsd: number;\n /**\n * DTO.WALLET.PNL.UNREALIZED_PROFIT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n unrealizedProfitInUsd: number;\n /**\n * DTO.WALLET.PNL.UNREALIZED_PROFIT_RATIO\n * @type {number}\n * @memberof WalletPnlDTO\n */\n unrealizedProfitRatio: number;\n /**\n * DTO.WALLET.PNL.REALIZED_PROFIT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n realizedProfitInUsd: number;\n /**\n * DTO.WALLET.PNL.REALIZED_PROFIT_RATIO\n * @type {number}\n * @memberof WalletPnlDTO\n */\n realizedProfitRatio: number;\n /**\n * DTO.WALLET.PNL.TOTAL_REALIZED_PROFIT\n * @type {number}\n * @memberof WalletPnlDTO\n */\n totalRealizedProfitInUsd: number;\n /**\n * DTO.WALLET.PNL.TOTAL_REALIZED_PROFIT_RATIO\n * @type {number}\n * @memberof WalletPnlDTO\n */\n totalRealizedProfitRatio: number;\n}\n\n/**\n * Check if a given object implements the WalletPnlDTO interface.\n */\nexport function instanceOfWalletPnlDTO(value: object): value is WalletPnlDTO {\n if (!('id' in value) || value['id'] === undefined) return false;\n if (!('chain' in value) || value['chain'] === undefined) return false;\n if (!('walletAddress' in value) || value['walletAddress'] === undefined) return false;\n if (!('tokenAddress' in value) || value['tokenAddress'] === undefined) return false;\n if (!('tokenPriceInUsd' in value) || value['tokenPriceInUsd'] === undefined) return false;\n if (!('openTime' in value) || value['openTime'] === undefined) return false;\n if (!('closeTime' in value) || value['closeTime'] === undefined) return false;\n if (!('lastTime' in value) || value['lastTime'] === undefined) return false;\n if (!('balance' in value) || value['balance'] === undefined) return false;\n if (!('buyAmount' in value) || value['buyAmount'] === undefined) return false;\n if (!('buyAmountInUsd' in value) || value['buyAmountInUsd'] === undefined) return false;\n if (!('buys' in value) || value['buys'] === undefined) return false;\n if (!('sellAmount' in value) || value['sellAmount'] === undefined) return false;\n if (!('sellAmountInUsd' in value) || value['sellAmountInUsd'] === undefined) return false;\n if (!('sells' in value) || value['sells'] === undefined) return false;\n if (!('averageBuyPriceInUsd' in value) || value['averageBuyPriceInUsd'] === undefined) return false;\n if (!('averageSellPriceInUsd' in value) || value['averageSellPriceInUsd'] === undefined) return false;\n if (!('unrealizedProfitInUsd' in value) || value['unrealizedProfitInUsd'] === undefined) return false;\n if (!('unrealizedProfitRatio' in value) || value['unrealizedProfitRatio'] === undefined) return false;\n if (!('realizedProfitInUsd' in value) || value['realizedProfitInUsd'] === undefined) return false;\n if (!('realizedProfitRatio' in value) || value['realizedProfitRatio'] === undefined) return false;\n if (!('totalRealizedProfitInUsd' in value) || value['totalRealizedProfitInUsd'] === undefined) return false;\n if (!('totalRealizedProfitRatio' in value) || value['totalRealizedProfitRatio'] === undefined) return false;\n return true;\n}\n\nexport function WalletPnlDTOFromJSON(json: any): WalletPnlDTO {\n return WalletPnlDTOFromJSONTyped(json, false);\n}\n\nexport function WalletPnlDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WalletPnlDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'chain': json['chain'],\n 'walletAddress': json['walletAddress'],\n 'tokenAddress': json['tokenAddress'],\n 'tokenPriceInUsd': json['tokenPriceInUsd'],\n 'openTime': json['openTime'],\n 'closeTime': json['closeTime'],\n 'lastTime': json['lastTime'],\n 'balance': json['balance'],\n 'buyAmount': json['buyAmount'],\n 'buyAmountInUsd': json['buyAmountInUsd'],\n 'buys': json['buys'],\n 'sellAmount': json['sellAmount'],\n 'sellAmountInUsd': json['sellAmountInUsd'],\n 'sells': json['sells'],\n 'averageBuyPriceInUsd': json['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': json['averageSellPriceInUsd'],\n 'unrealizedProfitInUsd': json['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': json['unrealizedProfitRatio'],\n 'realizedProfitInUsd': json['realizedProfitInUsd'],\n 'realizedProfitRatio': json['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': json['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': json['totalRealizedProfitRatio'],\n };\n}\n\nexport function WalletPnlDTOToJSON(json: any): WalletPnlDTO {\n return WalletPnlDTOToJSONTyped(json, false);\n}\n\nexport function WalletPnlDTOToJSONTyped(value?: WalletPnlDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'chain': value['chain'],\n 'walletAddress': value['walletAddress'],\n 'tokenAddress': value['tokenAddress'],\n 'tokenPriceInUsd': value['tokenPriceInUsd'],\n 'openTime': value['openTime'],\n 'closeTime': value['closeTime'],\n 'lastTime': value['lastTime'],\n 'balance': value['balance'],\n 'buyAmount': value['buyAmount'],\n 'buyAmountInUsd': value['buyAmountInUsd'],\n 'buys': value['buys'],\n 'sellAmount': value['sellAmount'],\n 'sellAmountInUsd': value['sellAmountInUsd'],\n 'sells': value['sells'],\n 'averageBuyPriceInUsd': value['averageBuyPriceInUsd'],\n 'averageSellPriceInUsd': value['averageSellPriceInUsd'],\n 'unrealizedProfitInUsd': value['unrealizedProfitInUsd'],\n 'unrealizedProfitRatio': value['unrealizedProfitRatio'],\n 'realizedProfitInUsd': value['realizedProfitInUsd'],\n 'realizedProfitRatio': value['realizedProfitRatio'],\n 'totalRealizedProfitInUsd': value['totalRealizedProfitInUsd'],\n 'totalRealizedProfitRatio': value['totalRealizedProfitRatio'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { ChainalysisAddressIdentification } from './ChainalysisAddressIdentification';\nimport {\n ChainalysisAddressIdentificationFromJSON,\n ChainalysisAddressIdentificationFromJSONTyped,\n ChainalysisAddressIdentificationToJSON,\n ChainalysisAddressIdentificationToJSONTyped,\n} from './ChainalysisAddressIdentification';\n\n/**\n * \n * @export\n * @interface WithdrawalAddressIdentificationsResponseDTO\n */\nexport interface WithdrawalAddressIdentificationsResponseDTO {\n /**\n * DTO.KYT.WITHDRAWAL_ADDRESS_IDENTIFICATIONS_RESPONSE.CHAINALYSIS_IDENTIFICATIONS\n * @type {Array<ChainalysisAddressIdentification>}\n * @memberof WithdrawalAddressIdentificationsResponseDTO\n */\n chainalysisIdentifications: Array<ChainalysisAddressIdentification>;\n /**\n * DTO.KYT.WITHDRAWAL_ADDRESS_IDENTIFICATIONS_RESPONSE.CUSTOM_ADDRESSES\n * @type {Array<string>}\n * @memberof WithdrawalAddressIdentificationsResponseDTO\n */\n customAddresses: Array<string>;\n}\n\n/**\n * Check if a given object implements the WithdrawalAddressIdentificationsResponseDTO interface.\n */\nexport function instanceOfWithdrawalAddressIdentificationsResponseDTO(value: object): value is WithdrawalAddressIdentificationsResponseDTO {\n if (!('chainalysisIdentifications' in value) || value['chainalysisIdentifications'] === undefined) return false;\n if (!('customAddresses' in value) || value['customAddresses'] === undefined) return false;\n return true;\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOFromJSON(json: any): WithdrawalAddressIdentificationsResponseDTO {\n return WithdrawalAddressIdentificationsResponseDTOFromJSONTyped(json, false);\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WithdrawalAddressIdentificationsResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'chainalysisIdentifications': ((json['chainalysisIdentifications'] as Array<any>).map(ChainalysisAddressIdentificationFromJSON)),\n 'customAddresses': json['customAddresses'],\n };\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOToJSON(json: any): WithdrawalAddressIdentificationsResponseDTO {\n return WithdrawalAddressIdentificationsResponseDTOToJSONTyped(json, false);\n}\n\nexport function WithdrawalAddressIdentificationsResponseDTOToJSONTyped(value?: WithdrawalAddressIdentificationsResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'chainalysisIdentifications': ((value['chainalysisIdentifications'] as Array<any>).map(ChainalysisAddressIdentificationToJSON)),\n 'customAddresses': value['customAddresses'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface WithdrawalBaseResponseDTO\n */\nexport interface WithdrawalBaseResponseDTO {\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ASSET\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n asset: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ASSET_ID\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n assetId: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.NETWORK\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n network: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ADDRESS\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n address: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.MEMO\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n memo: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ATTEMPT_IDENTIFIER\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n attemptIdentifier: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.ASSET_AMOUNT\n * @type {number}\n * @memberof WithdrawalBaseResponseDTO\n */\n assetAmount: number;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.EXTERNAL_ID\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n externalId: string;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.USD_AMOUNT\n * @type {number}\n * @memberof WithdrawalBaseResponseDTO\n */\n usdAmount: number;\n /**\n * DTO.KYT.WITHDRAWAL_BASE_RESPONSE.UPDATED_AT\n * @type {string}\n * @memberof WithdrawalBaseResponseDTO\n */\n updatedAt: string;\n}\n\n/**\n * Check if a given object implements the WithdrawalBaseResponseDTO interface.\n */\nexport function instanceOfWithdrawalBaseResponseDTO(value: object): value is WithdrawalBaseResponseDTO {\n if (!('asset' in value) || value['asset'] === undefined) return false;\n if (!('assetId' in value) || value['assetId'] === undefined) return false;\n if (!('network' in value) || value['network'] === undefined) return false;\n if (!('address' in value) || value['address'] === undefined) return false;\n if (!('memo' in value) || value['memo'] === undefined) return false;\n if (!('attemptIdentifier' in value) || value['attemptIdentifier'] === undefined) return false;\n if (!('assetAmount' in value) || value['assetAmount'] === undefined) return false;\n if (!('externalId' in value) || value['externalId'] === undefined) return false;\n if (!('usdAmount' in value) || value['usdAmount'] === undefined) return false;\n if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;\n return true;\n}\n\nexport function WithdrawalBaseResponseDTOFromJSON(json: any): WithdrawalBaseResponseDTO {\n return WithdrawalBaseResponseDTOFromJSONTyped(json, false);\n}\n\nexport function WithdrawalBaseResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WithdrawalBaseResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'asset': json['asset'],\n 'assetId': json['assetId'],\n 'network': json['network'],\n 'address': json['address'],\n 'memo': json['memo'],\n 'attemptIdentifier': json['attemptIdentifier'],\n 'assetAmount': json['assetAmount'],\n 'externalId': json['externalId'],\n 'usdAmount': json['usdAmount'],\n 'updatedAt': json['updatedAt'],\n };\n}\n\nexport function WithdrawalBaseResponseDTOToJSON(json: any): WithdrawalBaseResponseDTO {\n return WithdrawalBaseResponseDTOToJSONTyped(json, false);\n}\n\nexport function WithdrawalBaseResponseDTOToJSONTyped(value?: WithdrawalBaseResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'asset': value['asset'],\n 'assetId': value['assetId'],\n 'network': value['network'],\n 'address': value['address'],\n 'memo': value['memo'],\n 'attemptIdentifier': value['attemptIdentifier'],\n 'assetAmount': value['assetAmount'],\n 'externalId': value['externalId'],\n 'usdAmount': value['usdAmount'],\n 'updatedAt': value['updatedAt'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AlteryaIdentification } from './AlteryaIdentification';\nimport {\n AlteryaIdentificationFromJSON,\n AlteryaIdentificationFromJSONTyped,\n AlteryaIdentificationToJSON,\n AlteryaIdentificationToJSONTyped,\n} from './AlteryaIdentification';\n\n/**\n * \n * @export\n * @interface WithdrawalFraudAssessmentResponseDTO\n */\nexport interface WithdrawalFraudAssessmentResponseDTO {\n /**\n * DTO.KYT.WITHDRAWAL_FRAUD_ASSESSMENT_RESPONSE.ALTERYA_IDENTIFICATIONS\n * @type {Array<AlteryaIdentification>}\n * @memberof WithdrawalFraudAssessmentResponseDTO\n */\n alteryaIdentifications: Array<AlteryaIdentification>;\n}\n\n/**\n * Check if a given object implements the WithdrawalFraudAssessmentResponseDTO interface.\n */\nexport function instanceOfWithdrawalFraudAssessmentResponseDTO(value: object): value is WithdrawalFraudAssessmentResponseDTO {\n if (!('alteryaIdentifications' in value) || value['alteryaIdentifications'] === undefined) return false;\n return true;\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOFromJSON(json: any): WithdrawalFraudAssessmentResponseDTO {\n return WithdrawalFraudAssessmentResponseDTOFromJSONTyped(json, false);\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): WithdrawalFraudAssessmentResponseDTO {\n if (json == null) {\n return json;\n }\n return {\n \n 'alteryaIdentifications': ((json['alteryaIdentifications'] as Array<any>).map(AlteryaIdentificationFromJSON)),\n };\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOToJSON(json: any): WithdrawalFraudAssessmentResponseDTO {\n return WithdrawalFraudAssessmentResponseDTOToJSONTyped(json, false);\n}\n\nexport function WithdrawalFraudAssessmentResponseDTOToJSONTyped(value?: WithdrawalFraudAssessmentResponseDTO | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'alteryaIdentifications': ((value['alteryaIdentifications'] as Array<any>).map(AlteryaIdentificationToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BlockchainDTO,\n BlockchainLatestBlockDTO,\n ChainSymbol,\n} from '../models/index';\nimport {\n BlockchainDTOFromJSON,\n BlockchainDTOToJSON,\n BlockchainLatestBlockDTOFromJSON,\n BlockchainLatestBlockDTOToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n} from '../models/index';\n\nexport interface GetLatestBlockRequest {\n chain: ChainSymbol;\n}\n\n/**\n * \n */\nexport class BlockchainApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.GET_LATEST_BLOCK.DESCRIPTION\n * CONTROLLER.GET_LATEST_BLOCK.SUMMARY\n */\n async getLatestBlockRaw(requestParameters: GetLatestBlockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BlockchainLatestBlockDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getLatestBlock().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/blockchain/{chain}/latest_block`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BlockchainLatestBlockDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.GET_LATEST_BLOCK.DESCRIPTION\n * CONTROLLER.GET_LATEST_BLOCK.SUMMARY\n */\n async getLatestBlock(requestParameters: GetLatestBlockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BlockchainLatestBlockDTO> {\n const response = await this.getLatestBlockRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.DESCRIPTION\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.SUMMARY\n */\n async getSupportedBlockchainsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<BlockchainDTO>>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/blockchain`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(BlockchainDTOFromJSON));\n }\n\n /**\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.DESCRIPTION\n * CONTROLLER.GET_SUPPORTED_BLOCKCHAINS.SUMMARY\n */\n async getSupportedBlockchains(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<BlockchainDTO>> {\n const response = await this.getSupportedBlockchainsRaw(initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n MoonshotCreateTokenInput,\n MoonshotCreateTokenReply,\n MoonshotSubmitCreateToken200Response,\n MoonshotSubmitCreateTokenInput,\n} from '../models/index';\nimport {\n MoonshotCreateTokenInputFromJSON,\n MoonshotCreateTokenInputToJSON,\n MoonshotCreateTokenReplyFromJSON,\n MoonshotCreateTokenReplyToJSON,\n MoonshotSubmitCreateToken200ResponseFromJSON,\n MoonshotSubmitCreateToken200ResponseToJSON,\n MoonshotSubmitCreateTokenInputFromJSON,\n MoonshotSubmitCreateTokenInputToJSON,\n} from '../models/index';\n\nexport interface MoonshotCreateTokenRequest {\n moonshotCreateTokenInput: MoonshotCreateTokenInput;\n}\n\nexport interface MoonshotSubmitCreateTokenRequest {\n moonshotSubmitCreateTokenInput: MoonshotSubmitCreateTokenInput;\n}\n\n/**\n * \n */\nexport class DefiSolanaMoonshotApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.SUMMARY\n */\n async moonshotCreateTokenRaw(requestParameters: MoonshotCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MoonshotCreateTokenReply>> {\n if (requestParameters['moonshotCreateTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'moonshotCreateTokenInput',\n 'Required parameter \"moonshotCreateTokenInput\" was null or undefined when calling moonshotCreateToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/solana/moonshot/create`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MoonshotCreateTokenInputToJSON(requestParameters['moonshotCreateTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MoonshotCreateTokenReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.CREATE_TOKEN.SUMMARY\n */\n async moonshotCreateToken(requestParameters: MoonshotCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MoonshotCreateTokenReply> {\n const response = await this.moonshotCreateTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.SUMMARY\n */\n async moonshotSubmitCreateTokenRaw(requestParameters: MoonshotSubmitCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MoonshotSubmitCreateToken200Response>> {\n if (requestParameters['moonshotSubmitCreateTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'moonshotSubmitCreateTokenInput',\n 'Required parameter \"moonshotSubmitCreateTokenInput\" was null or undefined when calling moonshotSubmitCreateToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/solana/moonshot/submitCreateToken`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: MoonshotSubmitCreateTokenInputToJSON(requestParameters['moonshotSubmitCreateTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MoonshotSubmitCreateToken200ResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.MOONSHOT.SUBMIT_CREATE_TOKEN.SUMMARY\n */\n async moonshotSubmitCreateToken(requestParameters: MoonshotSubmitCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MoonshotSubmitCreateToken200Response> {\n const response = await this.moonshotSubmitCreateTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n PumpCreateTokenInput,\n PumpCreateTokenReply,\n} from '../models/index';\nimport {\n PumpCreateTokenInputFromJSON,\n PumpCreateTokenInputToJSON,\n PumpCreateTokenReplyFromJSON,\n PumpCreateTokenReplyToJSON,\n} from '../models/index';\n\nexport interface PumpfunCreateTokenRequest {\n pumpCreateTokenInput: PumpCreateTokenInput;\n}\n\n/**\n * \n */\nexport class DefiSolanaPumpfunApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.SUMMARY\n */\n async pumpfunCreateTokenRaw(requestParameters: PumpfunCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PumpCreateTokenReply>> {\n if (requestParameters['pumpCreateTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'pumpCreateTokenInput',\n 'Required parameter \"pumpCreateTokenInput\" was null or undefined when calling pumpfunCreateToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/solana/pumpfun/create`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PumpCreateTokenInputToJSON(requestParameters['pumpCreateTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PumpCreateTokenReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.DESCRIPTION\n * CONTROLLER.PUMPFUN.CREATE_TOKEN.SUMMARY\n */\n async pumpfunCreateToken(requestParameters: PumpfunCreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PumpCreateTokenReply> {\n const response = await this.pumpfunCreateTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n CreateTokenInput,\n CreateTokenReply,\n DexPage,\n QuoteResponse,\n SwapInput,\n SwapReply,\n SwapRouteInput,\n SwapRouteResponse,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n CreateTokenInputFromJSON,\n CreateTokenInputToJSON,\n CreateTokenReplyFromJSON,\n CreateTokenReplyToJSON,\n DexPageFromJSON,\n DexPageToJSON,\n QuoteResponseFromJSON,\n QuoteResponseToJSON,\n SwapInputFromJSON,\n SwapInputToJSON,\n SwapReplyFromJSON,\n SwapReplyToJSON,\n SwapRouteInputFromJSON,\n SwapRouteInputToJSON,\n SwapRouteResponseFromJSON,\n SwapRouteResponseToJSON,\n} from '../models/index';\n\nexport interface CreateTokenRequest {\n chain: ChainSymbol;\n createTokenInput: CreateTokenInput;\n}\n\nexport interface ListDexRequest {\n chains?: Array<string>;\n limit?: number;\n dexProgram?: string;\n}\n\nexport interface QuoteRequest {\n chain: ChainSymbol;\n dex: QuoteDexEnum;\n amount: string;\n inputMint: string;\n outputMint: string;\n exactIn: boolean;\n slippage: number;\n}\n\nexport interface RouteRequest {\n chain: ChainSymbol;\n swapRouteInput: SwapRouteInput;\n}\n\nexport interface SwapRequest {\n chain: ChainSymbol;\n swapInput: SwapInput;\n}\n\n/**\n * \n */\nexport class DexApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.DEX.CREATE.DESCRIPTION\n * CONTROLLER.DEX.CREATE.SUMMARY\n */\n async createTokenRaw(requestParameters: CreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateTokenReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling createToken().'\n );\n }\n\n if (requestParameters['createTokenInput'] == null) {\n throw new runtime.RequiredError(\n 'createTokenInput',\n 'Required parameter \"createTokenInput\" was null or undefined when calling createToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/create`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CreateTokenInputToJSON(requestParameters['createTokenInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CreateTokenReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.CREATE.DESCRIPTION\n * CONTROLLER.DEX.CREATE.SUMMARY\n */\n async createToken(requestParameters: CreateTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateTokenReply> {\n const response = await this.createTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.LIST.DESCRIPTION\n * CONTROLLER.DEX.LIST.SUMMARY\n */\n async listDexRaw(requestParameters: ListDexRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DexPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['chains'] != null) {\n queryParameters['chains'] = requestParameters['chains'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['dexProgram'] != null) {\n queryParameters['dexProgram'] = requestParameters['dexProgram'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DexPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.LIST.DESCRIPTION\n * CONTROLLER.DEX.LIST.SUMMARY\n */\n async listDex(requestParameters: ListDexRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DexPage> {\n const response = await this.listDexRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.QUOTE.DESCRIPTION\n * CONTROLLER.DEX.QUOTE.SUMMARY\n */\n async quoteRaw(requestParameters: QuoteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QuoteResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['dex'] == null) {\n throw new runtime.RequiredError(\n 'dex',\n 'Required parameter \"dex\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['amount'] == null) {\n throw new runtime.RequiredError(\n 'amount',\n 'Required parameter \"amount\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['inputMint'] == null) {\n throw new runtime.RequiredError(\n 'inputMint',\n 'Required parameter \"inputMint\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['outputMint'] == null) {\n throw new runtime.RequiredError(\n 'outputMint',\n 'Required parameter \"outputMint\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['exactIn'] == null) {\n throw new runtime.RequiredError(\n 'exactIn',\n 'Required parameter \"exactIn\" was null or undefined when calling quote().'\n );\n }\n\n if (requestParameters['slippage'] == null) {\n throw new runtime.RequiredError(\n 'slippage',\n 'Required parameter \"slippage\" was null or undefined when calling quote().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['dex'] != null) {\n queryParameters['dex'] = requestParameters['dex'];\n }\n\n if (requestParameters['amount'] != null) {\n queryParameters['amount'] = requestParameters['amount'];\n }\n\n if (requestParameters['inputMint'] != null) {\n queryParameters['inputMint'] = requestParameters['inputMint'];\n }\n\n if (requestParameters['outputMint'] != null) {\n queryParameters['outputMint'] = requestParameters['outputMint'];\n }\n\n if (requestParameters['exactIn'] != null) {\n queryParameters['exactIn'] = requestParameters['exactIn'];\n }\n\n if (requestParameters['slippage'] != null) {\n queryParameters['slippage'] = requestParameters['slippage'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/quote`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => QuoteResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.QUOTE.DESCRIPTION\n * CONTROLLER.DEX.QUOTE.SUMMARY\n */\n async quote(requestParameters: QuoteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuoteResponse> {\n const response = await this.quoteRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.ROUTE.DESCRIPTION\n * CONTROLLER.DEX.ROUTE.SUMMARY\n */\n async routeRaw(requestParameters: RouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SwapRouteResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling route().'\n );\n }\n\n if (requestParameters['swapRouteInput'] == null) {\n throw new runtime.RequiredError(\n 'swapRouteInput',\n 'Required parameter \"swapRouteInput\" was null or undefined when calling route().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/route`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SwapRouteInputToJSON(requestParameters['swapRouteInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SwapRouteResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.ROUTE.DESCRIPTION\n * CONTROLLER.DEX.ROUTE.SUMMARY\n */\n async route(requestParameters: RouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SwapRouteResponse> {\n const response = await this.routeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.DEX.SWAP.DESCRIPTION\n * CONTROLLER.DEX.SWAP.SUMMARY\n */\n async swapRaw(requestParameters: SwapRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SwapReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling swap().'\n );\n }\n\n if (requestParameters['swapInput'] == null) {\n throw new runtime.RequiredError(\n 'swapInput',\n 'Required parameter \"swapInput\" was null or undefined when calling swap().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dex/{chain}/swap`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SwapInputToJSON(requestParameters['swapInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SwapReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEX.SWAP.DESCRIPTION\n * CONTROLLER.DEX.SWAP.SUMMARY\n */\n async swap(requestParameters: SwapRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SwapReply> {\n const response = await this.swapRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const QuoteDexEnum = {\n Raydium: 'raydium',\n Pumpfun: 'pumpfun'\n} as const;\nexport type QuoteDexEnum = typeof QuoteDexEnum[keyof typeof QuoteDexEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n DexPoolDTO,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n DexPoolDTOFromJSON,\n DexPoolDTOToJSON,\n} from '../models/index';\n\nexport interface GetDexpoolRequest {\n chain: ChainSymbol;\n poolAddress: string;\n}\n\n/**\n * \n */\nexport class DexPoolApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.DEXPOOL.GET.DESCRIPTION\n * CONTROLLER.DEXPOOL.GET.SUMMARY\n */\n async getDexpoolRaw(requestParameters: GetDexpoolRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DexPoolDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getDexpool().'\n );\n }\n\n if (requestParameters['poolAddress'] == null) {\n throw new runtime.RequiredError(\n 'poolAddress',\n 'Required parameter \"poolAddress\" was null or undefined when calling getDexpool().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/dexpools/{chain}/{poolAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"poolAddress\"}}`, encodeURIComponent(String(requestParameters['poolAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => DexPoolDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.DEXPOOL.GET.DESCRIPTION\n * CONTROLLER.DEXPOOL.GET.SUMMARY\n */\n async getDexpool(requestParameters: GetDexpoolRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DexPoolDTO> {\n const response = await this.getDexpoolRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n CreateEndpointInput,\n EndpointListResponse,\n EndpointOperationResponse,\n EndpointResponse,\n EndpointSecretResponse,\n UpdateEndpointInput,\n} from '../models/index';\nimport {\n CreateEndpointInputFromJSON,\n CreateEndpointInputToJSON,\n EndpointListResponseFromJSON,\n EndpointListResponseToJSON,\n EndpointOperationResponseFromJSON,\n EndpointOperationResponseToJSON,\n EndpointResponseFromJSON,\n EndpointResponseToJSON,\n EndpointSecretResponseFromJSON,\n EndpointSecretResponseToJSON,\n UpdateEndpointInputFromJSON,\n UpdateEndpointInputToJSON,\n} from '../models/index';\n\nexport interface CreateEndpointRequest {\n createEndpointInput: CreateEndpointInput;\n}\n\nexport interface DeleteEndpointRequest {\n id: string;\n}\n\nexport interface GetEndpointRequest {\n id: string;\n}\n\nexport interface GetEndpointSecretRequest {\n id: string;\n}\n\nexport interface ListEndpointsRequest {\n limit?: number;\n iterator?: string;\n order?: ListEndpointsOrderEnum;\n}\n\nexport interface RotateEndpointSecretRequest {\n id: string;\n}\n\nexport interface UpdateEndpointRequest {\n updateEndpointInput: UpdateEndpointInput;\n}\n\n/**\n * \n */\nexport class EndpointApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.ENDPOINT.CREATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.CREATE.SUMMARY\n */\n async createEndpointRaw(requestParameters: CreateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointResponse>> {\n if (requestParameters['createEndpointInput'] == null) {\n throw new runtime.RequiredError(\n 'createEndpointInput',\n 'Required parameter \"createEndpointInput\" was null or undefined when calling createEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CreateEndpointInputToJSON(requestParameters['createEndpointInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.CREATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.CREATE.SUMMARY\n */\n async createEndpoint(requestParameters: CreateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointResponse> {\n const response = await this.createEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.DELETE.DESCRIPTION\n * CONTROLLER.ENDPOINT.DELETE.SUMMARY\n */\n async deleteEndpointRaw(requestParameters: DeleteEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointOperationResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling deleteEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointOperationResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.DELETE.DESCRIPTION\n * CONTROLLER.ENDPOINT.DELETE.SUMMARY\n */\n async deleteEndpoint(requestParameters: DeleteEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointOperationResponse> {\n const response = await this.deleteEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SUMMARY\n */\n async getEndpointRaw(requestParameters: GetEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SUMMARY\n */\n async getEndpoint(requestParameters: GetEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointResponse> {\n const response = await this.getEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.SECRET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SECRET.SUMMARY\n */\n async getEndpointSecretRaw(requestParameters: GetEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointSecretResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getEndpointSecret().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}/secret`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointSecretResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.GET.SECRET.DESCRIPTION\n * CONTROLLER.ENDPOINT.GET.SECRET.SUMMARY\n */\n async getEndpointSecret(requestParameters: GetEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointSecretResponse> {\n const response = await this.getEndpointSecretRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.LIST.DESCRIPTION\n * CONTROLLER.ENDPOINT.LIST.SUMMARY\n */\n async listEndpointsRaw(requestParameters: ListEndpointsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointListResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['iterator'] != null) {\n queryParameters['iterator'] = requestParameters['iterator'];\n }\n\n if (requestParameters['order'] != null) {\n queryParameters['order'] = requestParameters['order'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointListResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.LIST.DESCRIPTION\n * CONTROLLER.ENDPOINT.LIST.SUMMARY\n */\n async listEndpoints(requestParameters: ListEndpointsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointListResponse> {\n const response = await this.listEndpointsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.ROTATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.ROTATE.SUMMARY\n */\n async rotateEndpointSecretRaw(requestParameters: RotateEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointOperationResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling rotateEndpointSecret().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}/secret/rotate`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointOperationResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.ROTATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.ROTATE.SUMMARY\n */\n async rotateEndpointSecret(requestParameters: RotateEndpointSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointOperationResponse> {\n const response = await this.rotateEndpointSecretRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.ENDPOINT.UPDATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.UPDATE.SUMMARY\n */\n async updateEndpointRaw(requestParameters: UpdateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EndpointResponse>> {\n if (requestParameters['updateEndpointInput'] == null) {\n throw new runtime.RequiredError(\n 'updateEndpointInput',\n 'Required parameter \"updateEndpointInput\" was null or undefined when calling updateEndpoint().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/webhook/endpoint/{id}`;\n\n const response = await this.request({\n path: urlPath,\n method: 'PATCH',\n headers: headerParameters,\n query: queryParameters,\n body: UpdateEndpointInputToJSON(requestParameters['updateEndpointInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EndpointResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.ENDPOINT.UPDATE.DESCRIPTION\n * CONTROLLER.ENDPOINT.UPDATE.SUMMARY\n */\n async updateEndpoint(requestParameters: UpdateEndpointRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EndpointResponse> {\n const response = await this.updateEndpointRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const ListEndpointsOrderEnum = {\n Ascending: 'ascending',\n Descending: 'descending'\n} as const;\nexport type ListEndpointsOrderEnum = typeof ListEndpointsOrderEnum[keyof typeof ListEndpointsOrderEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\n\n/**\n * \n */\nexport class IpfsApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.IPFS.PRESIGN.DESCRIPTION\n * CONTROLLER.IPFS.PRESIGN.SUMMARY\n */\n async presignRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ipfs/presign`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse<string>(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n * CONTROLLER.IPFS.PRESIGN.DESCRIPTION\n * CONTROLLER.IPFS.PRESIGN.SUMMARY\n */\n async presign(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {\n const response = await this.presignRaw(initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n JobDTO,\n JobStreamingDTO,\n} from '../models/index';\nimport {\n JobDTOFromJSON,\n JobDTOToJSON,\n JobStreamingDTOFromJSON,\n JobStreamingDTOToJSON,\n} from '../models/index';\n\nexport interface GetRequest {\n id: string;\n}\n\nexport interface StreamingRequest {\n id: string;\n}\n\n/**\n * \n */\nexport class JobsApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.JOB.GET.DESCRIPTION\n * CONTROLLER.JOB.GET.SUMMARY\n */\n async getRaw(requestParameters: GetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<JobDTO>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling get().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/jobs/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => JobDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.JOB.GET.DESCRIPTION\n * CONTROLLER.JOB.GET.SUMMARY\n */\n async get(requestParameters: GetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<JobDTO> {\n const response = await this.getRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.JOB.STREAMING.DESCRIPTION\n * CONTROLLER.JOB.STREAMING.SUMMARY\n */\n async streamingRaw(requestParameters: StreamingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<JobStreamingDTO>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling streaming().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/jobs/{id}/streaming`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => JobStreamingDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.JOB.STREAMING.DESCRIPTION\n * CONTROLLER.JOB.STREAMING.SUMMARY\n */\n async streaming(requestParameters: StreamingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<JobStreamingDTO> {\n const response = await this.streamingRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n AddressRiskResponseDTO,\n KYTRegisterTransferRequest,\n KYTRegisterWithdrawalRequest,\n KytAddressPage,\n KytTransferPage,\n KytWithdrawalPage,\n RegisterAddressRequest,\n RegisterAddressResponseDTO,\n TransferAlertsResponseDTO,\n TransferBaseResponseDTO,\n TransferDirectExposureResponseDTO,\n TransferNetworkIdentificationsResponseDTO,\n WithdrawalAddressIdentificationsResponseDTO,\n WithdrawalBaseResponseDTO,\n WithdrawalFraudAssessmentResponseDTO,\n} from '../models/index';\nimport {\n AddressRiskResponseDTOFromJSON,\n AddressRiskResponseDTOToJSON,\n KYTRegisterTransferRequestFromJSON,\n KYTRegisterTransferRequestToJSON,\n KYTRegisterWithdrawalRequestFromJSON,\n KYTRegisterWithdrawalRequestToJSON,\n KytAddressPageFromJSON,\n KytAddressPageToJSON,\n KytTransferPageFromJSON,\n KytTransferPageToJSON,\n KytWithdrawalPageFromJSON,\n KytWithdrawalPageToJSON,\n RegisterAddressRequestFromJSON,\n RegisterAddressRequestToJSON,\n RegisterAddressResponseDTOFromJSON,\n RegisterAddressResponseDTOToJSON,\n TransferAlertsResponseDTOFromJSON,\n TransferAlertsResponseDTOToJSON,\n TransferBaseResponseDTOFromJSON,\n TransferBaseResponseDTOToJSON,\n TransferDirectExposureResponseDTOFromJSON,\n TransferDirectExposureResponseDTOToJSON,\n TransferNetworkIdentificationsResponseDTOFromJSON,\n TransferNetworkIdentificationsResponseDTOToJSON,\n WithdrawalAddressIdentificationsResponseDTOFromJSON,\n WithdrawalAddressIdentificationsResponseDTOToJSON,\n WithdrawalBaseResponseDTOFromJSON,\n WithdrawalBaseResponseDTOToJSON,\n WithdrawalFraudAssessmentResponseDTOFromJSON,\n WithdrawalFraudAssessmentResponseDTOToJSON,\n} from '../models/index';\n\nexport interface GetAddressRiskRequest {\n address: string;\n}\n\nexport interface GetKytAddressesRequest {\n page?: number;\n pageSize?: number;\n}\n\nexport interface GetKytTransfersRequest {\n page?: number;\n pageSize?: number;\n}\n\nexport interface GetKytWithdrawalsRequest {\n page?: number;\n pageSize?: number;\n}\n\nexport interface GetTransferAlertsRequest {\n transferId: string;\n}\n\nexport interface GetTransferDirectExposureRequest {\n transferId: string;\n}\n\nexport interface GetTransferNetworkIdentificationsRequest {\n transferId: string;\n}\n\nexport interface GetTransferSummaryRequest {\n transferId: string;\n}\n\nexport interface GetWithdrawalAddressIdentificationsRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalAlertsRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalDirectExposureRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalFraudAssessmentRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalNetworkIdentificationsRequest {\n withdrawalId: string;\n}\n\nexport interface GetWithdrawalSummaryRequest {\n withdrawalId: string;\n}\n\nexport interface RegisterAddressOperationRequest {\n registerAddressRequest: RegisterAddressRequest;\n}\n\nexport interface RegisterTransferRequest {\n kYTRegisterTransferRequest: KYTRegisterTransferRequest;\n}\n\nexport interface RegisterWithdrawalRequest {\n kYTRegisterWithdrawalRequest: KYTRegisterWithdrawalRequest;\n}\n\n/**\n * \n */\nexport class KYTApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.KYT.GET_ADDRESS_RISK.DESCRIPTION\n * CONTROLLER.KYT.GET_ADDRESS_RISK.SUMMARY\n */\n async getAddressRiskRaw(requestParameters: GetAddressRiskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddressRiskResponseDTO>> {\n if (requestParameters['address'] == null) {\n throw new runtime.RequiredError(\n 'address',\n 'Required parameter \"address\" was null or undefined when calling getAddressRisk().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/addresses/{address}/risk`;\n urlPath = urlPath.replace(`{${\"address\"}}`, encodeURIComponent(String(requestParameters['address'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => AddressRiskResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_ADDRESS_RISK.DESCRIPTION\n * CONTROLLER.KYT.GET_ADDRESS_RISK.SUMMARY\n */\n async getAddressRisk(requestParameters: GetAddressRiskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddressRiskResponseDTO> {\n const response = await this.getAddressRiskRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.SUMMARY\n */\n async getKytAddressesRaw(requestParameters: GetKytAddressesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KytAddressPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['page'] != null) {\n queryParameters['page'] = requestParameters['page'];\n }\n\n if (requestParameters['pageSize'] != null) {\n queryParameters['pageSize'] = requestParameters['pageSize'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/addresses`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => KytAddressPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_ADDRESSES.SUMMARY\n */\n async getKytAddresses(requestParameters: GetKytAddressesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KytAddressPage> {\n const response = await this.getKytAddressesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.SUMMARY\n */\n async getKytTransfersRaw(requestParameters: GetKytTransfersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KytTransferPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['page'] != null) {\n queryParameters['page'] = requestParameters['page'];\n }\n\n if (requestParameters['pageSize'] != null) {\n queryParameters['pageSize'] = requestParameters['pageSize'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => KytTransferPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_TRANSFERS.SUMMARY\n */\n async getKytTransfers(requestParameters: GetKytTransfersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KytTransferPage> {\n const response = await this.getKytTransfersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.SUMMARY\n */\n async getKytWithdrawalsRaw(requestParameters: GetKytWithdrawalsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KytWithdrawalPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['page'] != null) {\n queryParameters['page'] = requestParameters['page'];\n }\n\n if (requestParameters['pageSize'] != null) {\n queryParameters['pageSize'] = requestParameters['pageSize'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawals`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => KytWithdrawalPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.DESCRIPTION\n * CONTROLLER.KYT.GET_KYT_WITHDRAWALS.SUMMARY\n */\n async getKytWithdrawals(requestParameters: GetKytWithdrawalsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KytWithdrawalPage> {\n const response = await this.getKytWithdrawalsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.SUMMARY\n */\n async getTransferAlertsRaw(requestParameters: GetTransferAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferAlertsResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferAlerts().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/alerts`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferAlertsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_ALERTS.SUMMARY\n */\n async getTransferAlerts(requestParameters: GetTransferAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferAlertsResponseDTO> {\n const response = await this.getTransferAlertsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.SUMMARY\n */\n async getTransferDirectExposureRaw(requestParameters: GetTransferDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferDirectExposureResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferDirectExposure().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/exposures/direct`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferDirectExposureResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_DIRECT_EXPOSURE.SUMMARY\n */\n async getTransferDirectExposure(requestParameters: GetTransferDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferDirectExposureResponseDTO> {\n const response = await this.getTransferDirectExposureRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getTransferNetworkIdentificationsRaw(requestParameters: GetTransferNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferNetworkIdentificationsResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferNetworkIdentifications().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/network-identifications`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferNetworkIdentificationsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getTransferNetworkIdentifications(requestParameters: GetTransferNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferNetworkIdentificationsResponseDTO> {\n const response = await this.getTransferNetworkIdentificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.SUMMARY\n */\n async getTransferSummaryRaw(requestParameters: GetTransferSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferBaseResponseDTO>> {\n if (requestParameters['transferId'] == null) {\n throw new runtime.RequiredError(\n 'transferId',\n 'Required parameter \"transferId\" was null or undefined when calling getTransferSummary().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfers/{transferId}/summary`;\n urlPath = urlPath.replace(`{${\"transferId\"}}`, encodeURIComponent(String(requestParameters['transferId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_TRANSFER_SUMMARY.SUMMARY\n */\n async getTransferSummary(requestParameters: GetTransferSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferBaseResponseDTO> {\n const response = await this.getTransferSummaryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalAddressIdentificationsRaw(requestParameters: GetWithdrawalAddressIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalAddressIdentificationsResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalAddressIdentifications().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/address-identifications`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalAddressIdentificationsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ADDRESS_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalAddressIdentifications(requestParameters: GetWithdrawalAddressIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalAddressIdentificationsResponseDTO> {\n const response = await this.getWithdrawalAddressIdentificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.SUMMARY\n */\n async getWithdrawalAlertsRaw(requestParameters: GetWithdrawalAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferAlertsResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalAlerts().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/alerts`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferAlertsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_ALERTS.SUMMARY\n */\n async getWithdrawalAlerts(requestParameters: GetWithdrawalAlertsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferAlertsResponseDTO> {\n const response = await this.getWithdrawalAlertsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.SUMMARY\n */\n async getWithdrawalDirectExposureRaw(requestParameters: GetWithdrawalDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferDirectExposureResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalDirectExposure().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/exposures/direct`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferDirectExposureResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_DIRECT_EXPOSURE.SUMMARY\n */\n async getWithdrawalDirectExposure(requestParameters: GetWithdrawalDirectExposureRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferDirectExposureResponseDTO> {\n const response = await this.getWithdrawalDirectExposureRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.SUMMARY\n */\n async getWithdrawalFraudAssessmentRaw(requestParameters: GetWithdrawalFraudAssessmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalFraudAssessmentResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalFraudAssessment().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/fraud-assessment`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalFraudAssessmentResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_FRAUD_ASSESSMENT.SUMMARY\n */\n async getWithdrawalFraudAssessment(requestParameters: GetWithdrawalFraudAssessmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalFraudAssessmentResponseDTO> {\n const response = await this.getWithdrawalFraudAssessmentRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalNetworkIdentificationsRaw(requestParameters: GetWithdrawalNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferNetworkIdentificationsResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalNetworkIdentifications().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/network-identifications`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferNetworkIdentificationsResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_NETWORK_IDENTIFICATIONS.SUMMARY\n */\n async getWithdrawalNetworkIdentifications(requestParameters: GetWithdrawalNetworkIdentificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferNetworkIdentificationsResponseDTO> {\n const response = await this.getWithdrawalNetworkIdentificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.SUMMARY\n */\n async getWithdrawalSummaryRaw(requestParameters: GetWithdrawalSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalBaseResponseDTO>> {\n if (requestParameters['withdrawalId'] == null) {\n throw new runtime.RequiredError(\n 'withdrawalId',\n 'Required parameter \"withdrawalId\" was null or undefined when calling getWithdrawalSummary().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal/{withdrawalId}/summary`;\n urlPath = urlPath.replace(`{${\"withdrawalId\"}}`, encodeURIComponent(String(requestParameters['withdrawalId'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.DESCRIPTION\n * CONTROLLER.KYT.GET_WITHDRAWAL_SUMMARY.SUMMARY\n */\n async getWithdrawalSummary(requestParameters: GetWithdrawalSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalBaseResponseDTO> {\n const response = await this.getWithdrawalSummaryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_ADDRESS.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_ADDRESS.SUMMARY\n */\n async registerAddressRaw(requestParameters: RegisterAddressOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RegisterAddressResponseDTO>> {\n if (requestParameters['registerAddressRequest'] == null) {\n throw new runtime.RequiredError(\n 'registerAddressRequest',\n 'Required parameter \"registerAddressRequest\" was null or undefined when calling registerAddress().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/address`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RegisterAddressRequestToJSON(requestParameters['registerAddressRequest']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RegisterAddressResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_ADDRESS.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_ADDRESS.SUMMARY\n */\n async registerAddress(requestParameters: RegisterAddressOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RegisterAddressResponseDTO> {\n const response = await this.registerAddressRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_TRANSFER.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_TRANSFER.SUMMARY\n */\n async registerTransferRaw(requestParameters: RegisterTransferRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TransferBaseResponseDTO>> {\n if (requestParameters['kYTRegisterTransferRequest'] == null) {\n throw new runtime.RequiredError(\n 'kYTRegisterTransferRequest',\n 'Required parameter \"kYTRegisterTransferRequest\" was null or undefined when calling registerTransfer().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/transfer`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: KYTRegisterTransferRequestToJSON(requestParameters['kYTRegisterTransferRequest']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TransferBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_TRANSFER.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_TRANSFER.SUMMARY\n */\n async registerTransfer(requestParameters: RegisterTransferRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransferBaseResponseDTO> {\n const response = await this.registerTransferRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.SUMMARY\n */\n async registerWithdrawalRaw(requestParameters: RegisterWithdrawalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WithdrawalBaseResponseDTO>> {\n if (requestParameters['kYTRegisterWithdrawalRequest'] == null) {\n throw new runtime.RequiredError(\n 'kYTRegisterWithdrawalRequest',\n 'Required parameter \"kYTRegisterWithdrawalRequest\" was null or undefined when calling registerWithdrawal().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/kyt/withdrawal`;\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: KYTRegisterWithdrawalRequestToJSON(requestParameters['kYTRegisterWithdrawalRequest']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WithdrawalBaseResponseDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.DESCRIPTION\n * CONTROLLER.KYT.REGISTER_WITHDRAWAL.SUMMARY\n */\n async registerWithdrawal(requestParameters: RegisterWithdrawalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WithdrawalBaseResponseDTO> {\n const response = await this.registerWithdrawalRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n FilterCondition,\n Token,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n FilterConditionFromJSON,\n FilterConditionToJSON,\n TokenFromJSON,\n TokenToJSON,\n} from '../models/index';\n\nexport interface GetFinalStretchTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetFinalStretchTokensSortByEnum;\n sortDirection?: GetFinalStretchTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetFinalStretchTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetHotTokensRequest {\n chain: ChainSymbol;\n duration: GetHotTokensDurationEnum;\n sortBy?: GetHotTokensSortByEnum;\n sortDirection?: GetHotTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetHotTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetMigratedTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetMigratedTokensSortByEnum;\n sortDirection?: GetMigratedTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetMigratedTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetNewTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetNewTokensSortByEnum;\n sortDirection?: GetNewTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetNewTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\nexport interface GetStocksTokensRequest {\n chain: ChainSymbol;\n sortBy?: GetStocksTokensSortByEnum;\n sortDirection?: GetStocksTokensSortDirectionEnum;\n rangeFilters?: Array<FilterCondition>;\n tag?: GetStocksTokensTagEnum;\n filters?: Array<string>;\n launchpadPlatform?: Array<string>;\n searchKeywords?: Array<string>;\n excludeKeywords?: Array<string>;\n}\n\n/**\n * \n */\nexport class RankingApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.SUMMARY\n */\n async getFinalStretchTokensRaw(requestParameters: GetFinalStretchTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getFinalStretchTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/finalStretch`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.FINAL_STRETCH_TOKENS.SUMMARY\n */\n async getFinalStretchTokens(requestParameters: GetFinalStretchTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getFinalStretchTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.HOT_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.HOT_TOKENS.SUMMARY\n */\n async getHotTokensRaw(requestParameters: GetHotTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getHotTokens().'\n );\n }\n\n if (requestParameters['duration'] == null) {\n throw new runtime.RequiredError(\n 'duration',\n 'Required parameter \"duration\" was null or undefined when calling getHotTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/hotTokens/{duration}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"duration\"}}`, encodeURIComponent(String(requestParameters['duration'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.HOT_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.HOT_TOKENS.SUMMARY\n */\n async getHotTokens(requestParameters: GetHotTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getHotTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.MIGRATED_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.MIGRATED_TOKENS.SUMMARY\n */\n async getMigratedTokensRaw(requestParameters: GetMigratedTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMigratedTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/migrated`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.MIGRATED_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.MIGRATED_TOKENS.SUMMARY\n */\n async getMigratedTokens(requestParameters: GetMigratedTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getMigratedTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.NEW_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.NEW_TOKENS.SUMMARY\n */\n async getNewTokensRaw(requestParameters: GetNewTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getNewTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/newTokens`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.NEW_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.NEW_TOKENS.SUMMARY\n */\n async getNewTokens(requestParameters: GetNewTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getNewTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RANKING.STOCKS_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.STOCKS_TOKENS.SUMMARY\n */\n async getStocksTokensRaw(requestParameters: GetStocksTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getStocksTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['rangeFilters'] != null) {\n queryParameters['rangeFilters'] = requestParameters['rangeFilters'];\n }\n\n if (requestParameters['tag'] != null) {\n queryParameters['tag'] = requestParameters['tag'];\n }\n\n if (requestParameters['filters'] != null) {\n queryParameters['filters'] = requestParameters['filters'];\n }\n\n if (requestParameters['launchpadPlatform'] != null) {\n queryParameters['launchpadPlatform'] = requestParameters['launchpadPlatform'];\n }\n\n if (requestParameters['searchKeywords'] != null) {\n queryParameters['searchKeywords'] = requestParameters['searchKeywords'];\n }\n\n if (requestParameters['excludeKeywords'] != null) {\n queryParameters['excludeKeywords'] = requestParameters['excludeKeywords'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/ranking/{chain}/stocks`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.RANKING.STOCKS_TOKENS.DESCRIPTION\n * CONTROLLER.RANKING.STOCKS_TOKENS.SUMMARY\n */\n async getStocksTokens(requestParameters: GetStocksTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getStocksTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetFinalStretchTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetFinalStretchTokensSortByEnum = typeof GetFinalStretchTokensSortByEnum[keyof typeof GetFinalStretchTokensSortByEnum];\n/**\n * @export\n */\nexport const GetFinalStretchTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetFinalStretchTokensSortDirectionEnum = typeof GetFinalStretchTokensSortDirectionEnum[keyof typeof GetFinalStretchTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetFinalStretchTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetFinalStretchTokensTagEnum = typeof GetFinalStretchTokensTagEnum[keyof typeof GetFinalStretchTokensTagEnum];\n/**\n * @export\n */\nexport const GetHotTokensDurationEnum = {\n _1m: '1m',\n _5m: '5m',\n _1h: '1h',\n _4h: '4h',\n _24h: '24h'\n} as const;\nexport type GetHotTokensDurationEnum = typeof GetHotTokensDurationEnum[keyof typeof GetHotTokensDurationEnum];\n/**\n * @export\n */\nexport const GetHotTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetHotTokensSortByEnum = typeof GetHotTokensSortByEnum[keyof typeof GetHotTokensSortByEnum];\n/**\n * @export\n */\nexport const GetHotTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetHotTokensSortDirectionEnum = typeof GetHotTokensSortDirectionEnum[keyof typeof GetHotTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetHotTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetHotTokensTagEnum = typeof GetHotTokensTagEnum[keyof typeof GetHotTokensTagEnum];\n/**\n * @export\n */\nexport const GetMigratedTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetMigratedTokensSortByEnum = typeof GetMigratedTokensSortByEnum[keyof typeof GetMigratedTokensSortByEnum];\n/**\n * @export\n */\nexport const GetMigratedTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetMigratedTokensSortDirectionEnum = typeof GetMigratedTokensSortDirectionEnum[keyof typeof GetMigratedTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetMigratedTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetMigratedTokensTagEnum = typeof GetMigratedTokensTagEnum[keyof typeof GetMigratedTokensTagEnum];\n/**\n * @export\n */\nexport const GetNewTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetNewTokensSortByEnum = typeof GetNewTokensSortByEnum[keyof typeof GetNewTokensSortByEnum];\n/**\n * @export\n */\nexport const GetNewTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetNewTokensSortDirectionEnum = typeof GetNewTokensSortDirectionEnum[keyof typeof GetNewTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetNewTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetNewTokensTagEnum = typeof GetNewTokensTagEnum[keyof typeof GetNewTokensTagEnum];\n/**\n * @export\n */\nexport const GetStocksTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetStocksTokensSortByEnum = typeof GetStocksTokensSortByEnum[keyof typeof GetStocksTokensSortByEnum];\n/**\n * @export\n */\nexport const GetStocksTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetStocksTokensSortDirectionEnum = typeof GetStocksTokensSortDirectionEnum[keyof typeof GetStocksTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const GetStocksTokensTagEnum = {\n PumpFun: 'pump_fun',\n RaydiumLaunchpad: 'raydium_launchpad',\n MeteoraDynamicBoundingCurve: 'meteora_dynamic_bounding_curve',\n BonkFun: 'bonk_fun',\n MoonitFun: 'moonit_fun'\n} as const;\nexport type GetStocksTokensTagEnum = typeof GetStocksTokensTagEnum[keyof typeof GetStocksTokensTagEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n ClaimRedPacketInput,\n CreateRedPacketInput,\n CreateRedPacketReply,\n RedPacketClaimsPage,\n RedPacketDTO,\n RedPacketReply,\n RedPacketSendTxInput,\n RedPacketSendTxResponse,\n RedPacketsPage,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n ClaimRedPacketInputFromJSON,\n ClaimRedPacketInputToJSON,\n CreateRedPacketInputFromJSON,\n CreateRedPacketInputToJSON,\n CreateRedPacketReplyFromJSON,\n CreateRedPacketReplyToJSON,\n RedPacketClaimsPageFromJSON,\n RedPacketClaimsPageToJSON,\n RedPacketDTOFromJSON,\n RedPacketDTOToJSON,\n RedPacketReplyFromJSON,\n RedPacketReplyToJSON,\n RedPacketSendTxInputFromJSON,\n RedPacketSendTxInputToJSON,\n RedPacketSendTxResponseFromJSON,\n RedPacketSendTxResponseToJSON,\n RedPacketsPageFromJSON,\n RedPacketsPageToJSON,\n} from '../models/index';\n\nexport interface ClaimRedpacketRequest {\n chain: ChainSymbol;\n claimRedPacketInput: ClaimRedPacketInput;\n}\n\nexport interface CreateRedpacketRequest {\n chain: ChainSymbol;\n createRedPacketInput: CreateRedPacketInput;\n}\n\nexport interface GetClaimsRequest {\n id: string;\n cursor?: string;\n limit?: number;\n direction?: string;\n}\n\nexport interface GetClaimsByAddressRequest {\n address: string;\n cursor?: string;\n limit?: number;\n direction?: string;\n}\n\nexport interface GetRedpacketRequest {\n id: string;\n}\n\nexport interface GetRedpacketsRequest {\n cursor?: string;\n limit?: number;\n direction?: string;\n creator?: string;\n chain?: GetRedpacketsChainEnum;\n}\n\nexport interface GetRedpacketsByAddressRequest {\n address: string;\n cursor?: string;\n limit?: number;\n direction?: string;\n}\n\nexport interface RedpacketSendRequest {\n chain: ChainSymbol;\n redPacketSendTxInput: RedPacketSendTxInput;\n}\n\n/**\n * \n */\nexport class RedPacketApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.RED_PACKET.CLAIM.DESCRIPTION\n * CONTROLLER.RED_PACKET.CLAIM.SUMMARY\n */\n async claimRedpacketRaw(requestParameters: ClaimRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling claimRedpacket().'\n );\n }\n\n if (requestParameters['claimRedPacketInput'] == null) {\n throw new runtime.RequiredError(\n 'claimRedPacketInput',\n 'Required parameter \"claimRedPacketInput\" was null or undefined when calling claimRedpacket().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{chain}/claim`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ClaimRedPacketInputToJSON(requestParameters['claimRedPacketInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.CLAIM.DESCRIPTION\n * CONTROLLER.RED_PACKET.CLAIM.SUMMARY\n */\n async claimRedpacket(requestParameters: ClaimRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketReply> {\n const response = await this.claimRedpacketRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.CREATE.DESCRIPTION\n * CONTROLLER.RED_PACKET.CREATE.SUMMARY\n */\n async createRedpacketRaw(requestParameters: CreateRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateRedPacketReply>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling createRedpacket().'\n );\n }\n\n if (requestParameters['createRedPacketInput'] == null) {\n throw new runtime.RequiredError(\n 'createRedPacketInput',\n 'Required parameter \"createRedPacketInput\" was null or undefined when calling createRedpacket().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{chain}/create`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CreateRedPacketInputToJSON(requestParameters['createRedPacketInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => CreateRedPacketReplyFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.CREATE.DESCRIPTION\n * CONTROLLER.RED_PACKET.CREATE.SUMMARY\n */\n async createRedpacket(requestParameters: CreateRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateRedPacketReply> {\n const response = await this.createRedpacketRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS.SUMMARY\n */\n async getClaimsRaw(requestParameters: GetClaimsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketClaimsPage>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getClaims().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{id}/claims`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketClaimsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS.SUMMARY\n */\n async getClaims(requestParameters: GetClaimsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketClaimsPage> {\n const response = await this.getClaimsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.SUMMARY\n */\n async getClaimsByAddressRaw(requestParameters: GetClaimsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketClaimsPage>> {\n if (requestParameters['address'] == null) {\n throw new runtime.RequiredError(\n 'address',\n 'Required parameter \"address\" was null or undefined when calling getClaimsByAddress().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/wallet/{address}/claims`;\n urlPath = urlPath.replace(`{${\"address\"}}`, encodeURIComponent(String(requestParameters['address'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketClaimsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_CLAIMS_BY_ADDRESS.SUMMARY\n */\n async getClaimsByAddress(requestParameters: GetClaimsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketClaimsPage> {\n const response = await this.getClaimsByAddressRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET.SUMMARY\n */\n async getRedpacketRaw(requestParameters: GetRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketDTO>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getRedpacket().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{id}`;\n urlPath = urlPath.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET.SUMMARY\n */\n async getRedpacket(requestParameters: GetRedpacketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketDTO> {\n const response = await this.getRedpacketRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.SUMMARY\n */\n async getRedpacketsRaw(requestParameters: GetRedpacketsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketsPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['creator'] != null) {\n queryParameters['creator'] = requestParameters['creator'];\n }\n\n if (requestParameters['chain'] != null) {\n queryParameters['chain'] = requestParameters['chain'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS.SUMMARY\n */\n async getRedpackets(requestParameters: GetRedpacketsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketsPage> {\n const response = await this.getRedpacketsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.SUMMARY\n */\n async getRedpacketsByAddressRaw(requestParameters: GetRedpacketsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketsPage>> {\n if (requestParameters['address'] == null) {\n throw new runtime.RequiredError(\n 'address',\n 'Required parameter \"address\" was null or undefined when calling getRedpacketsByAddress().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/wallet/{address}/redpackets`;\n urlPath = urlPath.replace(`{${\"address\"}}`, encodeURIComponent(String(requestParameters['address'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketsPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.DESCRIPTION\n * CONTROLLER.RED_PACKET.GET_REDPACKETS_BY_ADDRESS.SUMMARY\n */\n async getRedpacketsByAddress(requestParameters: GetRedpacketsByAddressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketsPage> {\n const response = await this.getRedpacketsByAddressRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.RED_PACKET.SEND.DESCRIPTION\n * CONTROLLER.RED_PACKET.SEND.SUMMARY\n */\n async redpacketSendRaw(requestParameters: RedpacketSendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RedPacketSendTxResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling redpacketSend().'\n );\n }\n\n if (requestParameters['redPacketSendTxInput'] == null) {\n throw new runtime.RequiredError(\n 'redPacketSendTxInput',\n 'Required parameter \"redPacketSendTxInput\" was null or undefined when calling redpacketSend().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/redpacket/{chain}/send`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: RedPacketSendTxInputToJSON(requestParameters['redPacketSendTxInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RedPacketSendTxResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.RED_PACKET.SEND.DESCRIPTION\n * CONTROLLER.RED_PACKET.SEND.SUMMARY\n */\n async redpacketSend(requestParameters: RedpacketSendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RedPacketSendTxResponse> {\n const response = await this.redpacketSendRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetRedpacketsChainEnum = {\n Sol: 'sol',\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync',\n Sui: 'sui'\n} as const;\nexport type GetRedpacketsChainEnum = typeof GetRedpacketsChainEnum[keyof typeof GetRedpacketsChainEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n Candle,\n ChainSymbol,\n DevTokenDTO,\n DexPoolDTO,\n FilterCondition,\n Resolution,\n Token,\n TokenCreationDTO,\n TokenCreationPage,\n TokenHolder,\n TokenHolderPage,\n TokenListPage,\n TokenMarketData,\n TokenMetadata,\n TokenPage,\n TokenPriceDTO,\n TokenPricePage,\n TokenStat,\n TokenTrader,\n TokenTraderTag,\n} from '../models/index';\nimport {\n CandleFromJSON,\n CandleToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n DevTokenDTOFromJSON,\n DevTokenDTOToJSON,\n DexPoolDTOFromJSON,\n DexPoolDTOToJSON,\n FilterConditionFromJSON,\n FilterConditionToJSON,\n ResolutionFromJSON,\n ResolutionToJSON,\n TokenFromJSON,\n TokenToJSON,\n TokenCreationDTOFromJSON,\n TokenCreationDTOToJSON,\n TokenCreationPageFromJSON,\n TokenCreationPageToJSON,\n TokenHolderFromJSON,\n TokenHolderToJSON,\n TokenHolderPageFromJSON,\n TokenHolderPageToJSON,\n TokenListPageFromJSON,\n TokenListPageToJSON,\n TokenMarketDataFromJSON,\n TokenMarketDataToJSON,\n TokenMetadataFromJSON,\n TokenMetadataToJSON,\n TokenPageFromJSON,\n TokenPageToJSON,\n TokenPriceDTOFromJSON,\n TokenPriceDTOToJSON,\n TokenPricePageFromJSON,\n TokenPricePageToJSON,\n TokenStatFromJSON,\n TokenStatToJSON,\n TokenTraderFromJSON,\n TokenTraderToJSON,\n TokenTraderTagFromJSON,\n TokenTraderTagToJSON,\n} from '../models/index';\n\nexport interface GetCandlesRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n resolution: Resolution;\n from?: number;\n to?: number;\n limit?: number;\n}\n\nexport interface GetCreationRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetDevTokensRequest {\n chain: ChainSymbol;\n devAddress: string;\n}\n\nexport interface GetHoldersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetHoldersDirectionEnum;\n}\n\nexport interface GetHoldersMultiRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n walletAddresses: string;\n}\n\nexport interface GetMarketDataRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetMarketDataMultiRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n}\n\nexport interface GetMetadataRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetMetadataMultiRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n}\n\nexport interface GetMintAndBurnRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetMintAndBurnDirectionEnum;\n type?: GetMintAndBurnTypeEnum;\n}\n\nexport interface GetPoolsRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetPriceByTimeRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n timestamp: number;\n}\n\nexport interface GetPricesRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetPricesDirectionEnum;\n}\n\nexport interface GetSecurityRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetStatsRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetStatsMultiRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n}\n\nexport interface GetTokenRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface GetTokenTradersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n tag: TokenTraderTag;\n}\n\nexport interface GetTokensRequest {\n chain: ChainSymbol;\n tokenAddresses: string;\n sortBy?: GetTokensSortByEnum;\n sortDirection?: GetTokensSortDirectionEnum;\n filterBy?: Array<FilterCondition>;\n}\n\nexport interface GetTopHoldersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n}\n\nexport interface ListTokenRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: ListTokenDirectionEnum;\n sort?: ListTokenSortEnum;\n sortBy?: ListTokenSortByEnum;\n minH24VolumeInUsd?: string;\n maxH24VolumeInUsd?: string;\n minH24PriceChangeRatio?: string;\n maxH24PriceChangeRatio?: string;\n minH24Buys?: string;\n maxH24Buys?: string;\n minH24Sells?: string;\n maxH24Sells?: string;\n minH24Trades?: string;\n maxH24Trades?: string;\n minH24Buyers?: string;\n maxH24Buyers?: string;\n minH24Sellers?: string;\n maxH24Sellers?: string;\n minH24BuyVolumeInUsd?: string;\n maxH24BuyVolumeInUsd?: string;\n minH24SellVolumeInUsd?: string;\n maxH24SellVolumeInUsd?: string;\n minH4VolumeInUsd?: string;\n maxH4VolumeInUsd?: string;\n minH4PriceChangeRatio?: string;\n maxH4PriceChangeRatio?: string;\n minH4Buys?: string;\n maxH4Buys?: string;\n minH4Sells?: string;\n maxH4Sells?: string;\n minH4Trades?: string;\n maxH4Trades?: string;\n minH4Buyers?: string;\n maxH4Buyers?: string;\n minH4Sellers?: string;\n maxH4Sellers?: string;\n minH4BuyVolumeInUsd?: string;\n maxH4BuyVolumeInUsd?: string;\n minH4SellVolumeInUsd?: string;\n maxH4SellVolumeInUsd?: string;\n minH1VolumeInUsd?: string;\n maxH1VolumeInUsd?: string;\n minH1PriceChangeRatio?: string;\n maxH1PriceChangeRatio?: string;\n minH1Buys?: string;\n maxH1Buys?: string;\n minH1Sells?: string;\n maxH1Sells?: string;\n minH1Trades?: string;\n maxH1Trades?: string;\n minH1Buyers?: string;\n maxH1Buyers?: string;\n minH1Sellers?: string;\n maxH1Sellers?: string;\n minH1BuyVolumeInUsd?: string;\n maxH1BuyVolumeInUsd?: string;\n minH1SellVolumeInUsd?: string;\n maxH1SellVolumeInUsd?: string;\n minM30VolumeInUsd?: string;\n maxM30VolumeInUsd?: string;\n minM30PriceChangeRatio?: string;\n maxM30PriceChangeRatio?: string;\n minM30Buys?: string;\n maxM30Buys?: string;\n minM30Sells?: string;\n maxM30Sells?: string;\n minM30Trades?: string;\n maxM30Trades?: string;\n minM30Buyers?: string;\n maxM30Buyers?: string;\n minM30Sellers?: string;\n maxM30Sellers?: string;\n minM30BuyVolumeInUsd?: string;\n maxM30BuyVolumeInUsd?: string;\n minM30SellVolumeInUsd?: string;\n maxM30SellVolumeInUsd?: string;\n minM15VolumeInUsd?: string;\n maxM15VolumeInUsd?: string;\n minM15PriceChangeRatio?: string;\n maxM15PriceChangeRatio?: string;\n minM15Buys?: string;\n maxM15Buys?: string;\n minM15Sells?: string;\n maxM15Sells?: string;\n minM15Trades?: string;\n maxM15Trades?: string;\n minM15Buyers?: string;\n maxM15Buyers?: string;\n minM15Sellers?: string;\n maxM15Sellers?: string;\n minM15BuyVolumeInUsd?: string;\n maxM15BuyVolumeInUsd?: string;\n minM15SellVolumeInUsd?: string;\n maxM15SellVolumeInUsd?: string;\n minM5VolumeInUsd?: string;\n maxM5VolumeInUsd?: string;\n minM5PriceChangeRatio?: string;\n maxM5PriceChangeRatio?: string;\n minM5Buys?: string;\n maxM5Buys?: string;\n minM5Sells?: string;\n maxM5Sells?: string;\n minM5Trades?: string;\n maxM5Trades?: string;\n minM5Buyers?: string;\n maxM5Buyers?: string;\n minM5Sellers?: string;\n maxM5Sellers?: string;\n minM5BuyVolumeInUsd?: string;\n maxM5BuyVolumeInUsd?: string;\n minM5SellVolumeInUsd?: string;\n maxM5SellVolumeInUsd?: string;\n minM1VolumeInUsd?: string;\n maxM1VolumeInUsd?: string;\n minM1PriceChangeRatio?: string;\n maxM1PriceChangeRatio?: string;\n minM1Buys?: string;\n maxM1Buys?: string;\n minM1Sells?: string;\n maxM1Sells?: string;\n minM1Trades?: string;\n maxM1Trades?: string;\n minM1Buyers?: string;\n maxM1Buyers?: string;\n minM1Sellers?: string;\n maxM1Sellers?: string;\n minM1BuyVolumeInUsd?: string;\n maxM1BuyVolumeInUsd?: string;\n minM1SellVolumeInUsd?: string;\n maxM1SellVolumeInUsd?: string;\n}\n\nexport interface SearchRequest {\n chains?: Array<string>;\n q?: string;\n limit?: number;\n sort?: SearchSortEnum;\n protocols?: Array<string>;\n cursor?: string;\n sortBy?: SearchSortByEnum;\n}\n\n/**\n * \n */\nexport class TokenApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.TOKEN.GET_CANDLES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CANDLES.SUMMARY\n */\n async getCandlesRaw(requestParameters: GetCandlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Candle>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getCandles().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getCandles().'\n );\n }\n\n if (requestParameters['resolution'] == null) {\n throw new runtime.RequiredError(\n 'resolution',\n 'Required parameter \"resolution\" was null or undefined when calling getCandles().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['resolution'] != null) {\n queryParameters['resolution'] = requestParameters['resolution'];\n }\n\n if (requestParameters['from'] != null) {\n queryParameters['from'] = requestParameters['from'];\n }\n\n if (requestParameters['to'] != null) {\n queryParameters['to'] = requestParameters['to'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/candles`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(CandleFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_CANDLES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CANDLES.SUMMARY\n */\n async getCandles(requestParameters: GetCandlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Candle>> {\n const response = await this.getCandlesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_CREATION.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CREATION.SUMMARY\n */\n async getCreationRaw(requestParameters: GetCreationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenCreationDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getCreation().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getCreation().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/creation`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenCreationDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_CREATION.DESCRIPTION\n * CONTROLLER.TOKEN.GET_CREATION.SUMMARY\n */\n async getCreation(requestParameters: GetCreationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenCreationDTO> {\n const response = await this.getCreationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.SUMMARY\n */\n async getDevTokensRaw(requestParameters: GetDevTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<DevTokenDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getDevTokens().'\n );\n }\n\n if (requestParameters['devAddress'] == null) {\n throw new runtime.RequiredError(\n 'devAddress',\n 'Required parameter \"devAddress\" was null or undefined when calling getDevTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/dev/{devAddress}/tokens`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"devAddress\"}}`, encodeURIComponent(String(requestParameters['devAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DevTokenDTOFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_DEV_TOKENS.SUMMARY\n */\n async getDevTokens(requestParameters: GetDevTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<DevTokenDTO>> {\n const response = await this.getDevTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS.SUMMARY\n */\n async getHoldersRaw(requestParameters: GetHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenHolderPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getHolders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getHolders().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/holders`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenHolderPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS.SUMMARY\n */\n async getHolders(requestParameters: GetHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenHolderPage> {\n const response = await this.getHoldersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.SUMMARY\n */\n async getHoldersMultiRaw(requestParameters: GetHoldersMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<TokenHolder>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getHoldersMulti().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getHoldersMulti().'\n );\n }\n\n if (requestParameters['walletAddresses'] == null) {\n throw new runtime.RequiredError(\n 'walletAddresses',\n 'Required parameter \"walletAddresses\" was null or undefined when calling getHoldersMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['walletAddresses'] != null) {\n queryParameters['walletAddresses'] = requestParameters['walletAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/holders/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenHolderFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_HOLDERS_MULTI.SUMMARY\n */\n async getHoldersMulti(requestParameters: GetHoldersMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<TokenHolder>> {\n const response = await this.getHoldersMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_CAP.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_CAP.SUMMARY\n */\n async getMarketDataRaw(requestParameters: GetMarketDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenMarketData>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMarketData().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getMarketData().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/marketData`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenMarketDataFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_CAP.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_CAP.SUMMARY\n */\n async getMarketData(requestParameters: GetMarketDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenMarketData> {\n const response = await this.getMarketDataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.SUMMARY\n */\n async getMarketDataMultiRaw(requestParameters: GetMarketDataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: TokenMarketData; }>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMarketDataMulti().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getMarketDataMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/marketData/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, TokenMarketDataFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MARKET_DATA_MULTI.SUMMARY\n */\n async getMarketDataMulti(requestParameters: GetMarketDataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: TokenMarketData; }> {\n const response = await this.getMarketDataMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA.SUMMARY\n */\n async getMetadataRaw(requestParameters: GetMetadataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenMetadata>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMetadata().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getMetadata().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/metadata`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenMetadataFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA.SUMMARY\n */\n async getMetadata(requestParameters: GetMetadataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenMetadata> {\n const response = await this.getMetadataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.SUMMARY\n */\n async getMetadataMultiRaw(requestParameters: GetMetadataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: TokenMetadata; }>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMetadataMulti().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getMetadataMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/metadata/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, TokenMetadataFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_METADATA_MULTI.SUMMARY\n */\n async getMetadataMulti(requestParameters: GetMetadataMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: TokenMetadata; }> {\n const response = await this.getMetadataMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.SUMMARY\n */\n async getMintAndBurnRaw(requestParameters: GetMintAndBurnRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenCreationPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getMintAndBurn().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getMintAndBurn().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/mintAndBurn`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenCreationPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.DESCRIPTION\n * CONTROLLER.TOKEN.GET_MINT_AND_BURN.SUMMARY\n */\n async getMintAndBurn(requestParameters: GetMintAndBurnRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenCreationPage> {\n const response = await this.getMintAndBurnRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_POOLS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_POOLS.SUMMARY\n */\n async getPoolsRaw(requestParameters: GetPoolsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<DexPoolDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPools().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getPools().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/pools`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DexPoolDTOFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_POOLS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_POOLS.SUMMARY\n */\n async getPools(requestParameters: GetPoolsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<DexPoolDTO>> {\n const response = await this.getPoolsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.SUMMARY\n */\n async getPriceByTimeRaw(requestParameters: GetPriceByTimeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenPriceDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPriceByTime().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getPriceByTime().'\n );\n }\n\n if (requestParameters['timestamp'] == null) {\n throw new runtime.RequiredError(\n 'timestamp',\n 'Required parameter \"timestamp\" was null or undefined when calling getPriceByTime().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['timestamp'] != null) {\n queryParameters['timestamp'] = requestParameters['timestamp'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/price`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenPriceDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICE_BY_TIME.SUMMARY\n */\n async getPriceByTime(requestParameters: GetPriceByTimeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenPriceDTO> {\n const response = await this.getPriceByTimeRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICES.SUMMARY\n */\n async getPricesRaw(requestParameters: GetPricesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenPricePage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPrices().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getPrices().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/prices`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenPricePageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_PRICES.DESCRIPTION\n * CONTROLLER.TOKEN.GET_PRICES.SUMMARY\n */\n async getPrices(requestParameters: GetPricesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenPricePage> {\n const response = await this.getPricesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_SECURITY.DESCRIPTION\n * CONTROLLER.TOKEN.GET_SECURITY.SUMMARY\n */\n async getSecurityRaw(requestParameters: GetSecurityRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getSecurity().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getSecurity().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/security`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * CONTROLLER.TOKEN.GET_SECURITY.DESCRIPTION\n * CONTROLLER.TOKEN.GET_SECURITY.SUMMARY\n */\n async getSecurity(requestParameters: GetSecurityRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {\n const response = await this.getSecurityRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS.SUMMARY\n */\n async getStatsRaw(requestParameters: GetStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenStat>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getStats().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getStats().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/stats`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenStatFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS.SUMMARY\n */\n async getStats(requestParameters: GetStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenStat> {\n const response = await this.getStatsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS_MULTI.SUMMARY\n */\n async getStatsMultiRaw(requestParameters: GetStatsMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: TokenStat; }>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getStatsMulti().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getStatsMulti().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/stats/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, TokenStatFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_STATS_MULTI.DESCRIPTION\n * CONTROLLER.TOKEN.GET_STATS_MULTI.SUMMARY\n */\n async getStatsMulti(requestParameters: GetStatsMultiRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: TokenStat; }> {\n const response = await this.getStatsMultiRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET.DESCRIPTION\n * CONTROLLER.TOKEN.GET.SUMMARY\n */\n async getTokenRaw(requestParameters: GetTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Token>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getToken().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getToken().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET.DESCRIPTION\n * CONTROLLER.TOKEN.GET.SUMMARY\n */\n async getToken(requestParameters: GetTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Token> {\n const response = await this.getTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.SUMMARY\n */\n async getTokenTradersRaw(requestParameters: GetTokenTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<TokenTrader>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTokenTraders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getTokenTraders().'\n );\n }\n\n if (requestParameters['tag'] == null) {\n throw new runtime.RequiredError(\n 'tag',\n 'Required parameter \"tag\" was null or undefined when calling getTokenTraders().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/traders/{tag}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n urlPath = urlPath.replace(`{${\"tag\"}}`, encodeURIComponent(String(requestParameters['tag'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenTraderFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_TRADERS.SUMMARY\n */\n async getTokenTraders(requestParameters: GetTokenTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<TokenTrader>> {\n const response = await this.getTokenTradersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKENS.SUMMARY\n */\n async getTokensRaw(requestParameters: GetTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Token>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTokens().'\n );\n }\n\n if (requestParameters['tokenAddresses'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddresses',\n 'Required parameter \"tokenAddresses\" was null or undefined when calling getTokens().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddresses'] != null) {\n queryParameters['tokenAddresses'] = requestParameters['tokenAddresses'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortDirection'] != null) {\n queryParameters['sortDirection'] = requestParameters['sortDirection'];\n }\n\n if (requestParameters['filterBy'] != null) {\n queryParameters['filterBy'] = requestParameters['filterBy'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/multi`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TokenFromJSON));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKENS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKENS.SUMMARY\n */\n async getTokens(requestParameters: GetTokensRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Token>> {\n const response = await this.getTokensRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.SUMMARY\n */\n async getTopHoldersRaw(requestParameters: GetTopHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenHolderPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTopHolders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getTopHolders().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/{tokenAddress}/topHolders`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"tokenAddress\"}}`, encodeURIComponent(String(requestParameters['tokenAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenHolderPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOP_HOLDERS.SUMMARY\n */\n async getTopHolders(requestParameters: GetTopHoldersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenHolderPage> {\n const response = await this.getTopHoldersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.SUMMARY\n */\n async listTokenRaw(requestParameters: ListTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenListPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling listToken().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['sort'] != null) {\n queryParameters['sort'] = requestParameters['sort'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['minH24VolumeInUsd'] != null) {\n queryParameters['min_h24_volume_in_usd'] = requestParameters['minH24VolumeInUsd'];\n }\n\n if (requestParameters['maxH24VolumeInUsd'] != null) {\n queryParameters['max_h24_volume_in_usd'] = requestParameters['maxH24VolumeInUsd'];\n }\n\n if (requestParameters['minH24PriceChangeRatio'] != null) {\n queryParameters['min_h24_price_change_ratio'] = requestParameters['minH24PriceChangeRatio'];\n }\n\n if (requestParameters['maxH24PriceChangeRatio'] != null) {\n queryParameters['max_h24_price_change_ratio'] = requestParameters['maxH24PriceChangeRatio'];\n }\n\n if (requestParameters['minH24Buys'] != null) {\n queryParameters['min_h24_buys'] = requestParameters['minH24Buys'];\n }\n\n if (requestParameters['maxH24Buys'] != null) {\n queryParameters['max_h24_buys'] = requestParameters['maxH24Buys'];\n }\n\n if (requestParameters['minH24Sells'] != null) {\n queryParameters['min_h24_sells'] = requestParameters['minH24Sells'];\n }\n\n if (requestParameters['maxH24Sells'] != null) {\n queryParameters['max_h24_sells'] = requestParameters['maxH24Sells'];\n }\n\n if (requestParameters['minH24Trades'] != null) {\n queryParameters['min_h24_trades'] = requestParameters['minH24Trades'];\n }\n\n if (requestParameters['maxH24Trades'] != null) {\n queryParameters['max_h24_trades'] = requestParameters['maxH24Trades'];\n }\n\n if (requestParameters['minH24Buyers'] != null) {\n queryParameters['min_h24_buyers'] = requestParameters['minH24Buyers'];\n }\n\n if (requestParameters['maxH24Buyers'] != null) {\n queryParameters['max_h24_buyers'] = requestParameters['maxH24Buyers'];\n }\n\n if (requestParameters['minH24Sellers'] != null) {\n queryParameters['min_h24_sellers'] = requestParameters['minH24Sellers'];\n }\n\n if (requestParameters['maxH24Sellers'] != null) {\n queryParameters['max_h24_sellers'] = requestParameters['maxH24Sellers'];\n }\n\n if (requestParameters['minH24BuyVolumeInUsd'] != null) {\n queryParameters['min_h24_buy_volume_in_usd'] = requestParameters['minH24BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxH24BuyVolumeInUsd'] != null) {\n queryParameters['max_h24_buy_volume_in_usd'] = requestParameters['maxH24BuyVolumeInUsd'];\n }\n\n if (requestParameters['minH24SellVolumeInUsd'] != null) {\n queryParameters['min_h24_sell_volume_in_usd'] = requestParameters['minH24SellVolumeInUsd'];\n }\n\n if (requestParameters['maxH24SellVolumeInUsd'] != null) {\n queryParameters['max_h24_sell_volume_in_usd'] = requestParameters['maxH24SellVolumeInUsd'];\n }\n\n if (requestParameters['minH4VolumeInUsd'] != null) {\n queryParameters['min_h4_volume_in_usd'] = requestParameters['minH4VolumeInUsd'];\n }\n\n if (requestParameters['maxH4VolumeInUsd'] != null) {\n queryParameters['max_h4_volume_in_usd'] = requestParameters['maxH4VolumeInUsd'];\n }\n\n if (requestParameters['minH4PriceChangeRatio'] != null) {\n queryParameters['min_h4_price_change_ratio'] = requestParameters['minH4PriceChangeRatio'];\n }\n\n if (requestParameters['maxH4PriceChangeRatio'] != null) {\n queryParameters['max_h4_price_change_ratio'] = requestParameters['maxH4PriceChangeRatio'];\n }\n\n if (requestParameters['minH4Buys'] != null) {\n queryParameters['min_h4_buys'] = requestParameters['minH4Buys'];\n }\n\n if (requestParameters['maxH4Buys'] != null) {\n queryParameters['max_h4_buys'] = requestParameters['maxH4Buys'];\n }\n\n if (requestParameters['minH4Sells'] != null) {\n queryParameters['min_h4_sells'] = requestParameters['minH4Sells'];\n }\n\n if (requestParameters['maxH4Sells'] != null) {\n queryParameters['max_h4_sells'] = requestParameters['maxH4Sells'];\n }\n\n if (requestParameters['minH4Trades'] != null) {\n queryParameters['min_h4_trades'] = requestParameters['minH4Trades'];\n }\n\n if (requestParameters['maxH4Trades'] != null) {\n queryParameters['max_h4_trades'] = requestParameters['maxH4Trades'];\n }\n\n if (requestParameters['minH4Buyers'] != null) {\n queryParameters['min_h4_buyers'] = requestParameters['minH4Buyers'];\n }\n\n if (requestParameters['maxH4Buyers'] != null) {\n queryParameters['max_h4_buyers'] = requestParameters['maxH4Buyers'];\n }\n\n if (requestParameters['minH4Sellers'] != null) {\n queryParameters['min_h4_sellers'] = requestParameters['minH4Sellers'];\n }\n\n if (requestParameters['maxH4Sellers'] != null) {\n queryParameters['max_h4_sellers'] = requestParameters['maxH4Sellers'];\n }\n\n if (requestParameters['minH4BuyVolumeInUsd'] != null) {\n queryParameters['min_h4_buy_volume_in_usd'] = requestParameters['minH4BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxH4BuyVolumeInUsd'] != null) {\n queryParameters['max_h4_buy_volume_in_usd'] = requestParameters['maxH4BuyVolumeInUsd'];\n }\n\n if (requestParameters['minH4SellVolumeInUsd'] != null) {\n queryParameters['min_h4_sell_volume_in_usd'] = requestParameters['minH4SellVolumeInUsd'];\n }\n\n if (requestParameters['maxH4SellVolumeInUsd'] != null) {\n queryParameters['max_h4_sell_volume_in_usd'] = requestParameters['maxH4SellVolumeInUsd'];\n }\n\n if (requestParameters['minH1VolumeInUsd'] != null) {\n queryParameters['min_h1_volume_in_usd'] = requestParameters['minH1VolumeInUsd'];\n }\n\n if (requestParameters['maxH1VolumeInUsd'] != null) {\n queryParameters['max_h1_volume_in_usd'] = requestParameters['maxH1VolumeInUsd'];\n }\n\n if (requestParameters['minH1PriceChangeRatio'] != null) {\n queryParameters['min_h1_price_change_ratio'] = requestParameters['minH1PriceChangeRatio'];\n }\n\n if (requestParameters['maxH1PriceChangeRatio'] != null) {\n queryParameters['max_h1_price_change_ratio'] = requestParameters['maxH1PriceChangeRatio'];\n }\n\n if (requestParameters['minH1Buys'] != null) {\n queryParameters['min_h1_buys'] = requestParameters['minH1Buys'];\n }\n\n if (requestParameters['maxH1Buys'] != null) {\n queryParameters['max_h1_buys'] = requestParameters['maxH1Buys'];\n }\n\n if (requestParameters['minH1Sells'] != null) {\n queryParameters['min_h1_sells'] = requestParameters['minH1Sells'];\n }\n\n if (requestParameters['maxH1Sells'] != null) {\n queryParameters['max_h1_sells'] = requestParameters['maxH1Sells'];\n }\n\n if (requestParameters['minH1Trades'] != null) {\n queryParameters['min_h1_trades'] = requestParameters['minH1Trades'];\n }\n\n if (requestParameters['maxH1Trades'] != null) {\n queryParameters['max_h1_trades'] = requestParameters['maxH1Trades'];\n }\n\n if (requestParameters['minH1Buyers'] != null) {\n queryParameters['min_h1_buyers'] = requestParameters['minH1Buyers'];\n }\n\n if (requestParameters['maxH1Buyers'] != null) {\n queryParameters['max_h1_buyers'] = requestParameters['maxH1Buyers'];\n }\n\n if (requestParameters['minH1Sellers'] != null) {\n queryParameters['min_h1_sellers'] = requestParameters['minH1Sellers'];\n }\n\n if (requestParameters['maxH1Sellers'] != null) {\n queryParameters['max_h1_sellers'] = requestParameters['maxH1Sellers'];\n }\n\n if (requestParameters['minH1BuyVolumeInUsd'] != null) {\n queryParameters['min_h1_buy_volume_in_usd'] = requestParameters['minH1BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxH1BuyVolumeInUsd'] != null) {\n queryParameters['max_h1_buy_volume_in_usd'] = requestParameters['maxH1BuyVolumeInUsd'];\n }\n\n if (requestParameters['minH1SellVolumeInUsd'] != null) {\n queryParameters['min_h1_sell_volume_in_usd'] = requestParameters['minH1SellVolumeInUsd'];\n }\n\n if (requestParameters['maxH1SellVolumeInUsd'] != null) {\n queryParameters['max_h1_sell_volume_in_usd'] = requestParameters['maxH1SellVolumeInUsd'];\n }\n\n if (requestParameters['minM30VolumeInUsd'] != null) {\n queryParameters['min_m30_volume_in_usd'] = requestParameters['minM30VolumeInUsd'];\n }\n\n if (requestParameters['maxM30VolumeInUsd'] != null) {\n queryParameters['max_m30_volume_in_usd'] = requestParameters['maxM30VolumeInUsd'];\n }\n\n if (requestParameters['minM30PriceChangeRatio'] != null) {\n queryParameters['min_m30_price_change_ratio'] = requestParameters['minM30PriceChangeRatio'];\n }\n\n if (requestParameters['maxM30PriceChangeRatio'] != null) {\n queryParameters['max_m30_price_change_ratio'] = requestParameters['maxM30PriceChangeRatio'];\n }\n\n if (requestParameters['minM30Buys'] != null) {\n queryParameters['min_m30_buys'] = requestParameters['minM30Buys'];\n }\n\n if (requestParameters['maxM30Buys'] != null) {\n queryParameters['max_m30_buys'] = requestParameters['maxM30Buys'];\n }\n\n if (requestParameters['minM30Sells'] != null) {\n queryParameters['min_m30_sells'] = requestParameters['minM30Sells'];\n }\n\n if (requestParameters['maxM30Sells'] != null) {\n queryParameters['max_m30_sells'] = requestParameters['maxM30Sells'];\n }\n\n if (requestParameters['minM30Trades'] != null) {\n queryParameters['min_m30_trades'] = requestParameters['minM30Trades'];\n }\n\n if (requestParameters['maxM30Trades'] != null) {\n queryParameters['max_m30_trades'] = requestParameters['maxM30Trades'];\n }\n\n if (requestParameters['minM30Buyers'] != null) {\n queryParameters['min_m30_buyers'] = requestParameters['minM30Buyers'];\n }\n\n if (requestParameters['maxM30Buyers'] != null) {\n queryParameters['max_m30_buyers'] = requestParameters['maxM30Buyers'];\n }\n\n if (requestParameters['minM30Sellers'] != null) {\n queryParameters['min_m30_sellers'] = requestParameters['minM30Sellers'];\n }\n\n if (requestParameters['maxM30Sellers'] != null) {\n queryParameters['max_m30_sellers'] = requestParameters['maxM30Sellers'];\n }\n\n if (requestParameters['minM30BuyVolumeInUsd'] != null) {\n queryParameters['min_m30_buy_volume_in_usd'] = requestParameters['minM30BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM30BuyVolumeInUsd'] != null) {\n queryParameters['max_m30_buy_volume_in_usd'] = requestParameters['maxM30BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM30SellVolumeInUsd'] != null) {\n queryParameters['min_m30_sell_volume_in_usd'] = requestParameters['minM30SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM30SellVolumeInUsd'] != null) {\n queryParameters['max_m30_sell_volume_in_usd'] = requestParameters['maxM30SellVolumeInUsd'];\n }\n\n if (requestParameters['minM15VolumeInUsd'] != null) {\n queryParameters['min_m15_volume_in_usd'] = requestParameters['minM15VolumeInUsd'];\n }\n\n if (requestParameters['maxM15VolumeInUsd'] != null) {\n queryParameters['max_m15_volume_in_usd'] = requestParameters['maxM15VolumeInUsd'];\n }\n\n if (requestParameters['minM15PriceChangeRatio'] != null) {\n queryParameters['min_m15_price_change_ratio'] = requestParameters['minM15PriceChangeRatio'];\n }\n\n if (requestParameters['maxM15PriceChangeRatio'] != null) {\n queryParameters['max_m15_price_change_ratio'] = requestParameters['maxM15PriceChangeRatio'];\n }\n\n if (requestParameters['minM15Buys'] != null) {\n queryParameters['min_m15_buys'] = requestParameters['minM15Buys'];\n }\n\n if (requestParameters['maxM15Buys'] != null) {\n queryParameters['max_m15_buys'] = requestParameters['maxM15Buys'];\n }\n\n if (requestParameters['minM15Sells'] != null) {\n queryParameters['min_m15_sells'] = requestParameters['minM15Sells'];\n }\n\n if (requestParameters['maxM15Sells'] != null) {\n queryParameters['max_m15_sells'] = requestParameters['maxM15Sells'];\n }\n\n if (requestParameters['minM15Trades'] != null) {\n queryParameters['min_m15_trades'] = requestParameters['minM15Trades'];\n }\n\n if (requestParameters['maxM15Trades'] != null) {\n queryParameters['max_m15_trades'] = requestParameters['maxM15Trades'];\n }\n\n if (requestParameters['minM15Buyers'] != null) {\n queryParameters['min_m15_buyers'] = requestParameters['minM15Buyers'];\n }\n\n if (requestParameters['maxM15Buyers'] != null) {\n queryParameters['max_m15_buyers'] = requestParameters['maxM15Buyers'];\n }\n\n if (requestParameters['minM15Sellers'] != null) {\n queryParameters['min_m15_sellers'] = requestParameters['minM15Sellers'];\n }\n\n if (requestParameters['maxM15Sellers'] != null) {\n queryParameters['max_m15_sellers'] = requestParameters['maxM15Sellers'];\n }\n\n if (requestParameters['minM15BuyVolumeInUsd'] != null) {\n queryParameters['min_m15_buy_volume_in_usd'] = requestParameters['minM15BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM15BuyVolumeInUsd'] != null) {\n queryParameters['max_m15_buy_volume_in_usd'] = requestParameters['maxM15BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM15SellVolumeInUsd'] != null) {\n queryParameters['min_m15_sell_volume_in_usd'] = requestParameters['minM15SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM15SellVolumeInUsd'] != null) {\n queryParameters['max_m15_sell_volume_in_usd'] = requestParameters['maxM15SellVolumeInUsd'];\n }\n\n if (requestParameters['minM5VolumeInUsd'] != null) {\n queryParameters['min_m5_volume_in_usd'] = requestParameters['minM5VolumeInUsd'];\n }\n\n if (requestParameters['maxM5VolumeInUsd'] != null) {\n queryParameters['max_m5_volume_in_usd'] = requestParameters['maxM5VolumeInUsd'];\n }\n\n if (requestParameters['minM5PriceChangeRatio'] != null) {\n queryParameters['min_m5_price_change_ratio'] = requestParameters['minM5PriceChangeRatio'];\n }\n\n if (requestParameters['maxM5PriceChangeRatio'] != null) {\n queryParameters['max_m5_price_change_ratio'] = requestParameters['maxM5PriceChangeRatio'];\n }\n\n if (requestParameters['minM5Buys'] != null) {\n queryParameters['min_m5_buys'] = requestParameters['minM5Buys'];\n }\n\n if (requestParameters['maxM5Buys'] != null) {\n queryParameters['max_m5_buys'] = requestParameters['maxM5Buys'];\n }\n\n if (requestParameters['minM5Sells'] != null) {\n queryParameters['min_m5_sells'] = requestParameters['minM5Sells'];\n }\n\n if (requestParameters['maxM5Sells'] != null) {\n queryParameters['max_m5_sells'] = requestParameters['maxM5Sells'];\n }\n\n if (requestParameters['minM5Trades'] != null) {\n queryParameters['min_m5_trades'] = requestParameters['minM5Trades'];\n }\n\n if (requestParameters['maxM5Trades'] != null) {\n queryParameters['max_m5_trades'] = requestParameters['maxM5Trades'];\n }\n\n if (requestParameters['minM5Buyers'] != null) {\n queryParameters['min_m5_buyers'] = requestParameters['minM5Buyers'];\n }\n\n if (requestParameters['maxM5Buyers'] != null) {\n queryParameters['max_m5_buyers'] = requestParameters['maxM5Buyers'];\n }\n\n if (requestParameters['minM5Sellers'] != null) {\n queryParameters['min_m5_sellers'] = requestParameters['minM5Sellers'];\n }\n\n if (requestParameters['maxM5Sellers'] != null) {\n queryParameters['max_m5_sellers'] = requestParameters['maxM5Sellers'];\n }\n\n if (requestParameters['minM5BuyVolumeInUsd'] != null) {\n queryParameters['min_m5_buy_volume_in_usd'] = requestParameters['minM5BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM5BuyVolumeInUsd'] != null) {\n queryParameters['max_m5_buy_volume_in_usd'] = requestParameters['maxM5BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM5SellVolumeInUsd'] != null) {\n queryParameters['min_m5_sell_volume_in_usd'] = requestParameters['minM5SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM5SellVolumeInUsd'] != null) {\n queryParameters['max_m5_sell_volume_in_usd'] = requestParameters['maxM5SellVolumeInUsd'];\n }\n\n if (requestParameters['minM1VolumeInUsd'] != null) {\n queryParameters['min_m1_volume_in_usd'] = requestParameters['minM1VolumeInUsd'];\n }\n\n if (requestParameters['maxM1VolumeInUsd'] != null) {\n queryParameters['max_m1_volume_in_usd'] = requestParameters['maxM1VolumeInUsd'];\n }\n\n if (requestParameters['minM1PriceChangeRatio'] != null) {\n queryParameters['min_m1_price_change_ratio'] = requestParameters['minM1PriceChangeRatio'];\n }\n\n if (requestParameters['maxM1PriceChangeRatio'] != null) {\n queryParameters['max_m1_price_change_ratio'] = requestParameters['maxM1PriceChangeRatio'];\n }\n\n if (requestParameters['minM1Buys'] != null) {\n queryParameters['min_m1_buys'] = requestParameters['minM1Buys'];\n }\n\n if (requestParameters['maxM1Buys'] != null) {\n queryParameters['max_m1_buys'] = requestParameters['maxM1Buys'];\n }\n\n if (requestParameters['minM1Sells'] != null) {\n queryParameters['min_m1_sells'] = requestParameters['minM1Sells'];\n }\n\n if (requestParameters['maxM1Sells'] != null) {\n queryParameters['max_m1_sells'] = requestParameters['maxM1Sells'];\n }\n\n if (requestParameters['minM1Trades'] != null) {\n queryParameters['min_m1_trades'] = requestParameters['minM1Trades'];\n }\n\n if (requestParameters['maxM1Trades'] != null) {\n queryParameters['max_m1_trades'] = requestParameters['maxM1Trades'];\n }\n\n if (requestParameters['minM1Buyers'] != null) {\n queryParameters['min_m1_buyers'] = requestParameters['minM1Buyers'];\n }\n\n if (requestParameters['maxM1Buyers'] != null) {\n queryParameters['max_m1_buyers'] = requestParameters['maxM1Buyers'];\n }\n\n if (requestParameters['minM1Sellers'] != null) {\n queryParameters['min_m1_sellers'] = requestParameters['minM1Sellers'];\n }\n\n if (requestParameters['maxM1Sellers'] != null) {\n queryParameters['max_m1_sellers'] = requestParameters['maxM1Sellers'];\n }\n\n if (requestParameters['minM1BuyVolumeInUsd'] != null) {\n queryParameters['min_m1_buy_volume_in_usd'] = requestParameters['minM1BuyVolumeInUsd'];\n }\n\n if (requestParameters['maxM1BuyVolumeInUsd'] != null) {\n queryParameters['max_m1_buy_volume_in_usd'] = requestParameters['maxM1BuyVolumeInUsd'];\n }\n\n if (requestParameters['minM1SellVolumeInUsd'] != null) {\n queryParameters['min_m1_sell_volume_in_usd'] = requestParameters['minM1SellVolumeInUsd'];\n }\n\n if (requestParameters['maxM1SellVolumeInUsd'] != null) {\n queryParameters['max_m1_sell_volume_in_usd'] = requestParameters['maxM1SellVolumeInUsd'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/{chain}/list`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenListPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.DESCRIPTION\n * CONTROLLER.TOKEN.GET_TOKEN_LIST.SUMMARY\n */\n async listToken(requestParameters: ListTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenListPage> {\n const response = await this.listTokenRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TOKEN.SEARCH.DESCRIPTION\n * CONTROLLER.TOKEN.SEARCH.SUMMARY\n */\n async searchRaw(requestParameters: SearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TokenPage>> {\n const queryParameters: any = {};\n\n if (requestParameters['chains'] != null) {\n queryParameters['chains'] = requestParameters['chains'];\n }\n\n if (requestParameters['q'] != null) {\n queryParameters['q'] = requestParameters['q'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['sort'] != null) {\n queryParameters['sort'] = requestParameters['sort'];\n }\n\n if (requestParameters['protocols'] != null) {\n queryParameters['protocols'] = requestParameters['protocols'];\n }\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/token/search`;\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TokenPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TOKEN.SEARCH.DESCRIPTION\n * CONTROLLER.TOKEN.SEARCH.SUMMARY\n */\n async search(requestParameters: SearchRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TokenPage> {\n const response = await this.searchRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetHoldersDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetHoldersDirectionEnum = typeof GetHoldersDirectionEnum[keyof typeof GetHoldersDirectionEnum];\n/**\n * @export\n */\nexport const GetMintAndBurnDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetMintAndBurnDirectionEnum = typeof GetMintAndBurnDirectionEnum[keyof typeof GetMintAndBurnDirectionEnum];\n/**\n * @export\n */\nexport const GetMintAndBurnTypeEnum = {\n All: 'all',\n Mint: 'mint',\n Burn: 'burn'\n} as const;\nexport type GetMintAndBurnTypeEnum = typeof GetMintAndBurnTypeEnum[keyof typeof GetMintAndBurnTypeEnum];\n/**\n * @export\n */\nexport const GetPricesDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetPricesDirectionEnum = typeof GetPricesDirectionEnum[keyof typeof GetPricesDirectionEnum];\n/**\n * @export\n */\nexport const GetTokensSortByEnum = {\n MarketDataPriceInUsd: 'marketData.priceInUsd',\n StatsPriceChangeRatioInUsd1m: 'stats.priceChangeRatioInUsd1m',\n StatsPriceChangeRatioInUsd5m: 'stats.priceChangeRatioInUsd5m',\n StatsPriceChangeRatioInUsd1h: 'stats.priceChangeRatioInUsd1h',\n StatsPriceChangeRatioInUsd4h: 'stats.priceChangeRatioInUsd4h',\n StatsPriceChangeRatioInUsd24h: 'stats.priceChangeRatioInUsd24h',\n MarketDataMarketCapInUsd: 'marketData.marketCapInUsd',\n MarketDataTvlInUsd: 'marketData.tvlInUsd',\n MarketDataTop10TotalHoldings: 'marketData.top10TotalHoldings',\n MarketDataTop10HoldingsRatio: 'marketData.top10HoldingsRatio',\n MarketDataTop100TotalHoldings: 'marketData.top100TotalHoldings',\n MarketDataTop100HoldingsRatio: 'marketData.top100HoldingsRatio',\n MarketDataHolders: 'marketData.holders',\n MarketDataCreatorHoldings: 'marketData.creatorHoldings',\n MarketDataCreatorHoldingsRatio: 'marketData.creatorHoldingsRatio',\n StatsBuys1m: 'stats.buys1m',\n StatsBuys5m: 'stats.buys5m',\n StatsBuys15m: 'stats.buys15m',\n StatsBuys30m: 'stats.buys30m',\n StatsBuys1h: 'stats.buys1h',\n StatsBuys4h: 'stats.buys4h',\n StatsBuys24h: 'stats.buys24h',\n StatsSells1m: 'stats.sells1m',\n StatsSells5m: 'stats.sells5m',\n StatsSells15m: 'stats.sells15m',\n StatsSells30m: 'stats.sells30m',\n StatsSells1h: 'stats.sells1h',\n StatsSells4h: 'stats.sells4h',\n StatsSells24h: 'stats.sells24h',\n StatsTrades1m: 'stats.trades1m',\n StatsTrades5m: 'stats.trades5m',\n StatsTrades1h: 'stats.trades1h',\n StatsTrades4h: 'stats.trades4h',\n StatsTrades24h: 'stats.trades24h',\n StatsTraders1m: 'stats.traders1m',\n StatsTraders5m: 'stats.traders5m',\n StatsTraders1h: 'stats.traders1h',\n StatsTraders4h: 'stats.traders4h',\n StatsTraders24h: 'stats.traders24h',\n StatsVolumesInUsd1m: 'stats.volumesInUsd1m',\n StatsVolumesInUsd5m: 'stats.volumesInUsd5m',\n StatsVolumesInUsd1h: 'stats.volumesInUsd1h',\n StatsVolumesInUsd4h: 'stats.volumesInUsd4h',\n StatsVolumesInUsd24h: 'stats.volumesInUsd24h',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type GetTokensSortByEnum = typeof GetTokensSortByEnum[keyof typeof GetTokensSortByEnum];\n/**\n * @export\n */\nexport const GetTokensSortDirectionEnum = {\n Asc: 'ASC',\n Desc: 'DESC'\n} as const;\nexport type GetTokensSortDirectionEnum = typeof GetTokensSortDirectionEnum[keyof typeof GetTokensSortDirectionEnum];\n/**\n * @export\n */\nexport const ListTokenDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type ListTokenDirectionEnum = typeof ListTokenDirectionEnum[keyof typeof ListTokenDirectionEnum];\n/**\n * @export\n */\nexport const ListTokenSortEnum = {\n Asc: 'asc',\n Desc: 'desc'\n} as const;\nexport type ListTokenSortEnum = typeof ListTokenSortEnum[keyof typeof ListTokenSortEnum];\n/**\n * @export\n */\nexport const ListTokenSortByEnum = {\n H24VolumeInUsd: 'h24VolumeInUsd',\n H24PriceChangeRatio: 'h24PriceChangeRatio',\n H24Buys: 'h24Buys',\n H24Sells: 'h24Sells',\n H24Trades: 'h24Trades',\n H24Buyers: 'h24Buyers',\n H24Sellers: 'h24Sellers',\n H24BuyVolumeInUsd: 'h24BuyVolumeInUsd',\n H24SellVolumeInUsd: 'h24SellVolumeInUsd',\n H4VolumeInUsd: 'h4VolumeInUsd',\n H4PriceChangeRatio: 'h4PriceChangeRatio',\n H4Buys: 'h4Buys',\n H4Sells: 'h4Sells',\n H4Trades: 'h4Trades',\n H4Buyers: 'h4Buyers',\n H4Sellers: 'h4Sellers',\n H4BuyVolumeInUsd: 'h4BuyVolumeInUsd',\n H4SellVolumeInUsd: 'h4SellVolumeInUsd',\n H1VolumeInUsd: 'h1VolumeInUsd',\n H1PriceChangeRatio: 'h1PriceChangeRatio',\n H1Buys: 'h1Buys',\n H1Sells: 'h1Sells',\n H1Trades: 'h1Trades',\n H1Buyers: 'h1Buyers',\n H1Sellers: 'h1Sellers',\n H1BuyVolumeInUsd: 'h1BuyVolumeInUsd',\n H1SellVolumeInUsd: 'h1SellVolumeInUsd',\n M30VolumeInUsd: 'm30VolumeInUsd',\n M30PriceChangeRatio: 'm30PriceChangeRatio',\n M30Buys: 'm30Buys',\n M30Sells: 'm30Sells',\n M30Trades: 'm30Trades',\n M30Buyers: 'm30Buyers',\n M30Sellers: 'm30Sellers',\n M30BuyVolumeInUsd: 'm30BuyVolumeInUsd',\n M30SellVolumeInUsd: 'm30SellVolumeInUsd',\n M15VolumeInUsd: 'm15VolumeInUsd',\n M15PriceChangeRatio: 'm15PriceChangeRatio',\n M15Buys: 'm15Buys',\n M15Sells: 'm15Sells',\n M15Trades: 'm15Trades',\n M15Buyers: 'm15Buyers',\n M15Sellers: 'm15Sellers',\n M15BuyVolumeInUsd: 'm15BuyVolumeInUsd',\n M15SellVolumeInUsd: 'm15SellVolumeInUsd',\n M5VolumeInUsd: 'm5VolumeInUsd',\n M5PriceChangeRatio: 'm5PriceChangeRatio',\n M5Buys: 'm5Buys',\n M5Sells: 'm5Sells',\n M5Trades: 'm5Trades',\n M5Buyers: 'm5Buyers',\n M5Sellers: 'm5Sellers',\n M5BuyVolumeInUsd: 'm5BuyVolumeInUsd',\n M5SellVolumeInUsd: 'm5SellVolumeInUsd',\n M1VolumeInUsd: 'm1VolumeInUsd',\n M1PriceChangeRatio: 'm1PriceChangeRatio',\n M1Buys: 'm1Buys',\n M1Sells: 'm1Sells',\n M1Trades: 'm1Trades',\n M1Buyers: 'm1Buyers',\n M1Sellers: 'm1Sellers',\n M1BuyVolumeInUsd: 'm1BuyVolumeInUsd',\n M1SellVolumeInUsd: 'm1SellVolumeInUsd'\n} as const;\nexport type ListTokenSortByEnum = typeof ListTokenSortByEnum[keyof typeof ListTokenSortByEnum];\n/**\n * @export\n */\nexport const SearchSortEnum = {\n Asc: 'asc',\n Desc: 'desc'\n} as const;\nexport type SearchSortEnum = typeof SearchSortEnum[keyof typeof SearchSortEnum];\n/**\n * @export\n */\nexport const SearchSortByEnum = {\n MarketCapInUsd: 'marketCapInUsd',\n LiquidityInUsd: 'liquidityInUsd',\n PriceInUsd: 'priceInUsd',\n HolderCount: 'holderCount',\n H24VolumeInUsd: 'h24VolumeInUsd',\n H24Transactions: 'h24Transactions',\n TokenCreatedAt: 'tokenCreatedAt'\n} as const;\nexport type SearchSortByEnum = typeof SearchSortByEnum[keyof typeof SearchSortByEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ChainSymbol,\n GainersAndLosersPage,\n TopTradersPage,\n TradePage,\n} from '../models/index';\nimport {\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n GainersAndLosersPageFromJSON,\n GainersAndLosersPageToJSON,\n TopTradersPageFromJSON,\n TopTradersPageToJSON,\n TradePageFromJSON,\n TradePageToJSON,\n} from '../models/index';\n\nexport interface GetActivitiesRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: GetActivitiesDirectionEnum;\n tokenAddress?: string;\n walletAddress?: string;\n poolAddress?: string;\n beforeTimestamp?: number;\n afterTimestamp?: number;\n beforeBlockHeight?: number;\n afterBlockHeight?: number;\n transactionsSignature?: string;\n type?: GetActivitiesTypeEnum;\n}\n\nexport interface GetGainersLosersRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: GetGainersLosersDirectionEnum;\n type?: GetGainersLosersTypeEnum;\n sortBy?: GetGainersLosersSortByEnum;\n sortType?: GetGainersLosersSortTypeEnum;\n}\n\nexport interface GetTopTradersRequest {\n chain: ChainSymbol;\n tokenAddress: string;\n cursor?: string;\n limit?: number;\n direction?: GetTopTradersDirectionEnum;\n timeFrame?: GetTopTradersTimeFrameEnum;\n sortType?: GetTopTradersSortTypeEnum;\n sortBy?: GetTopTradersSortByEnum;\n}\n\nexport interface GetTradesRequest {\n chain: ChainSymbol;\n cursor?: string;\n limit?: number;\n direction?: GetTradesDirectionEnum;\n tokenAddress?: string;\n walletAddress?: string;\n poolAddress?: string;\n beforeTimestamp?: number;\n afterTimestamp?: number;\n beforeBlockHeight?: number;\n afterBlockHeight?: number;\n transactionsSignature?: string;\n type?: GetTradesTypeEnum;\n}\n\n/**\n * \n */\nexport class TradeApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.SUMMARY\n */\n async getActivitiesRaw(requestParameters: GetActivitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TradePage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getActivities().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n if (requestParameters['walletAddress'] != null) {\n queryParameters['walletAddress'] = requestParameters['walletAddress'];\n }\n\n if (requestParameters['poolAddress'] != null) {\n queryParameters['poolAddress'] = requestParameters['poolAddress'];\n }\n\n if (requestParameters['beforeTimestamp'] != null) {\n queryParameters['beforeTimestamp'] = requestParameters['beforeTimestamp'];\n }\n\n if (requestParameters['afterTimestamp'] != null) {\n queryParameters['afterTimestamp'] = requestParameters['afterTimestamp'];\n }\n\n if (requestParameters['beforeBlockHeight'] != null) {\n queryParameters['beforeBlockHeight'] = requestParameters['beforeBlockHeight'];\n }\n\n if (requestParameters['afterBlockHeight'] != null) {\n queryParameters['afterBlockHeight'] = requestParameters['afterBlockHeight'];\n }\n\n if (requestParameters['transactionsSignature'] != null) {\n queryParameters['transactionsSignature'] = requestParameters['transactionsSignature'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}/activities`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TradePageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN_ACTIVITIES.SUMMARY\n */\n async getActivities(requestParameters: GetActivitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TradePage> {\n const response = await this.getActivitiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.SUMMARY\n */\n async getGainersLosersRaw(requestParameters: GetGainersLosersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GainersAndLosersPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getGainersLosers().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n if (requestParameters['sortType'] != null) {\n queryParameters['sortType'] = requestParameters['sortType'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}/gainers-losers`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => GainersAndLosersPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.GAINERS_LOSERS.SUMMARY\n */\n async getGainersLosers(requestParameters: GetGainersLosersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GainersAndLosersPage> {\n const response = await this.getGainersLosersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOP_TRADERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOP_TRADERS.SUMMARY\n */\n async getTopTradersRaw(requestParameters: GetTopTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TopTradersPage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTopTraders().'\n );\n }\n\n if (requestParameters['tokenAddress'] == null) {\n throw new runtime.RequiredError(\n 'tokenAddress',\n 'Required parameter \"tokenAddress\" was null or undefined when calling getTopTraders().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n if (requestParameters['timeFrame'] != null) {\n queryParameters['timeFrame'] = requestParameters['timeFrame'];\n }\n\n if (requestParameters['sortType'] != null) {\n queryParameters['sortType'] = requestParameters['sortType'];\n }\n\n if (requestParameters['sortBy'] != null) {\n queryParameters['sortBy'] = requestParameters['sortBy'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}/top-traders`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TopTradersPageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOP_TRADERS.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOP_TRADERS.SUMMARY\n */\n async getTopTraders(requestParameters: GetTopTradersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TopTradersPage> {\n const response = await this.getTopTradersRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN.SUMMARY\n */\n async getTradesRaw(requestParameters: GetTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TradePage>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getTrades().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['cursor'] != null) {\n queryParameters['cursor'] = requestParameters['cursor'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['direction'] != null) {\n queryParameters['direction'] = requestParameters['direction'];\n }\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n if (requestParameters['walletAddress'] != null) {\n queryParameters['walletAddress'] = requestParameters['walletAddress'];\n }\n\n if (requestParameters['poolAddress'] != null) {\n queryParameters['poolAddress'] = requestParameters['poolAddress'];\n }\n\n if (requestParameters['beforeTimestamp'] != null) {\n queryParameters['beforeTimestamp'] = requestParameters['beforeTimestamp'];\n }\n\n if (requestParameters['afterTimestamp'] != null) {\n queryParameters['afterTimestamp'] = requestParameters['afterTimestamp'];\n }\n\n if (requestParameters['beforeBlockHeight'] != null) {\n queryParameters['beforeBlockHeight'] = requestParameters['beforeBlockHeight'];\n }\n\n if (requestParameters['afterBlockHeight'] != null) {\n queryParameters['afterBlockHeight'] = requestParameters['afterBlockHeight'];\n }\n\n if (requestParameters['transactionsSignature'] != null) {\n queryParameters['transactionsSignature'] = requestParameters['transactionsSignature'];\n }\n\n if (requestParameters['type'] != null) {\n queryParameters['type'] = requestParameters['type'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/trade/{chain}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => TradePageFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRADE.GET.TOKEN.DESCRIPTION\n * CONTROLLER.TRADE.GET.TOKEN.SUMMARY\n */\n async getTrades(requestParameters: GetTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TradePage> {\n const response = await this.getTradesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetActivitiesDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetActivitiesDirectionEnum = typeof GetActivitiesDirectionEnum[keyof typeof GetActivitiesDirectionEnum];\n/**\n * @export\n */\nexport const GetActivitiesTypeEnum = {\n Buy: 'BUY',\n Sell: 'SELL',\n LiquidityInitialize: 'LIQUIDITY_INITIALIZE',\n LiquidityAdd: 'LIQUIDITY_ADD',\n LiquidityRemove: 'LIQUIDITY_REMOVE',\n RedPacketCreate: 'RED_PACKET_CREATE',\n RedPacketClaim: 'RED_PACKET_CLAIM',\n RedPacketComplete: 'RED_PACKET_COMPLETE',\n RedPacketRefund: 'RED_PACKET_REFUND'\n} as const;\nexport type GetActivitiesTypeEnum = typeof GetActivitiesTypeEnum[keyof typeof GetActivitiesTypeEnum];\n/**\n * @export\n */\nexport const GetGainersLosersDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetGainersLosersDirectionEnum = typeof GetGainersLosersDirectionEnum[keyof typeof GetGainersLosersDirectionEnum];\n/**\n * @export\n */\nexport const GetGainersLosersTypeEnum = {\n _1W: '1W',\n Today: 'today',\n Yesterday: 'yesterday'\n} as const;\nexport type GetGainersLosersTypeEnum = typeof GetGainersLosersTypeEnum[keyof typeof GetGainersLosersTypeEnum];\n/**\n * @export\n */\nexport const GetGainersLosersSortByEnum = {\n PnL: 'PnL'\n} as const;\nexport type GetGainersLosersSortByEnum = typeof GetGainersLosersSortByEnum[keyof typeof GetGainersLosersSortByEnum];\n/**\n * @export\n */\nexport const GetGainersLosersSortTypeEnum = {\n Desc: 'desc',\n Asc: 'asc'\n} as const;\nexport type GetGainersLosersSortTypeEnum = typeof GetGainersLosersSortTypeEnum[keyof typeof GetGainersLosersSortTypeEnum];\n/**\n * @export\n */\nexport const GetTopTradersDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetTopTradersDirectionEnum = typeof GetTopTradersDirectionEnum[keyof typeof GetTopTradersDirectionEnum];\n/**\n * @export\n */\nexport const GetTopTradersTimeFrameEnum = {\n _30m: '30m',\n _1h: '1h',\n _2h: '2h',\n _4h: '4h',\n _6h: '6h',\n _8h: '8h',\n _12h: '12h',\n _24h: '24h'\n} as const;\nexport type GetTopTradersTimeFrameEnum = typeof GetTopTradersTimeFrameEnum[keyof typeof GetTopTradersTimeFrameEnum];\n/**\n * @export\n */\nexport const GetTopTradersSortTypeEnum = {\n Desc: 'desc',\n Asc: 'asc'\n} as const;\nexport type GetTopTradersSortTypeEnum = typeof GetTopTradersSortTypeEnum[keyof typeof GetTopTradersSortTypeEnum];\n/**\n * @export\n */\nexport const GetTopTradersSortByEnum = {\n Volume: 'volume',\n Trade: 'trade'\n} as const;\nexport type GetTopTradersSortByEnum = typeof GetTopTradersSortByEnum[keyof typeof GetTopTradersSortByEnum];\n/**\n * @export\n */\nexport const GetTradesDirectionEnum = {\n Next: 'next',\n Prev: 'prev'\n} as const;\nexport type GetTradesDirectionEnum = typeof GetTradesDirectionEnum[keyof typeof GetTradesDirectionEnum];\n/**\n * @export\n */\nexport const GetTradesTypeEnum = {\n Buy: 'BUY',\n Sell: 'SELL'\n} as const;\nexport type GetTradesTypeEnum = typeof GetTradesTypeEnum[keyof typeof GetTradesTypeEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n EstimateGasLimitInput,\n EstimateGasLimitResponse,\n GasPriceResponse,\n SendTxInput,\n SendTxResponse,\n} from '../models/index';\nimport {\n EstimateGasLimitInputFromJSON,\n EstimateGasLimitInputToJSON,\n EstimateGasLimitResponseFromJSON,\n EstimateGasLimitResponseToJSON,\n GasPriceResponseFromJSON,\n GasPriceResponseToJSON,\n SendTxInputFromJSON,\n SendTxInputToJSON,\n SendTxResponseFromJSON,\n SendTxResponseToJSON,\n} from '../models/index';\n\nexport interface EstimateGasLimitRequest {\n chain: EstimateGasLimitChainEnum;\n estimateGasLimitInput: EstimateGasLimitInput;\n}\n\nexport interface GetGasPriceRequest {\n chain: GetGasPriceChainEnum;\n}\n\nexport interface SendRequest {\n chain: string;\n sendTxInput: SendTxInput;\n}\n\n/**\n * \n */\nexport class TransactionApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.DESCRIPTION\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.SUMMARY\n */\n async estimateGasLimitRaw(requestParameters: EstimateGasLimitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EstimateGasLimitResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling estimateGasLimit().'\n );\n }\n\n if (requestParameters['estimateGasLimitInput'] == null) {\n throw new runtime.RequiredError(\n 'estimateGasLimitInput',\n 'Required parameter \"estimateGasLimitInput\" was null or undefined when calling estimateGasLimit().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/transaction/{chain}/estimate-gas-limit`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: EstimateGasLimitInputToJSON(requestParameters['estimateGasLimitInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EstimateGasLimitResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.DESCRIPTION\n * CONTROLLER.TRANSACTION.ESTIMATE_GAS_LIMIT.SUMMARY\n */\n async estimateGasLimit(requestParameters: EstimateGasLimitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EstimateGasLimitResponse> {\n const response = await this.estimateGasLimitRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.DESCRIPTION\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.SUMMARY\n */\n async getGasPriceRaw(requestParameters: GetGasPriceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GasPriceResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getGasPrice().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/transaction/{chain}/gas-price`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => GasPriceResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.DESCRIPTION\n * CONTROLLER.TRANSACTION.GET_GAS_PRICE.SUMMARY\n */\n async getGasPrice(requestParameters: GetGasPriceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GasPriceResponse> {\n const response = await this.getGasPriceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.TRANSACTION.SEND.DESCRIPTION\n * CONTROLLER.TRANSACTION.SEND.SUMMARY\n */\n async sendRaw(requestParameters: SendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SendTxResponse>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling send().'\n );\n }\n\n if (requestParameters['sendTxInput'] == null) {\n throw new runtime.RequiredError(\n 'sendTxInput',\n 'Required parameter \"sendTxInput\" was null or undefined when calling send().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/transaction/{chain}/send`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SendTxInputToJSON(requestParameters['sendTxInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SendTxResponseFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.TRANSACTION.SEND.DESCRIPTION\n * CONTROLLER.TRANSACTION.SEND.SUMMARY\n */\n async send(requestParameters: SendRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SendTxResponse> {\n const response = await this.sendRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const EstimateGasLimitChainEnum = {\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync'\n} as const;\nexport type EstimateGasLimitChainEnum = typeof EstimateGasLimitChainEnum[keyof typeof EstimateGasLimitChainEnum];\n/**\n * @export\n */\nexport const GetGasPriceChainEnum = {\n Base: 'base',\n Bsc: 'bsc',\n Polygon: 'polygon',\n Arbitrum: 'arbitrum',\n Optimism: 'optimism',\n Avalanche: 'avalanche',\n Eth: 'eth',\n Zksync: 'zksync'\n} as const;\nexport type GetGasPriceChainEnum = typeof GetGasPriceChainEnum[keyof typeof GetGasPriceChainEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanResultDTO,\n CalculatePnlInput,\n ChainSymbol,\n WalletBalancesDTO,\n WalletPnlDTO,\n} from '../models/index';\nimport {\n BooleanResultDTOFromJSON,\n BooleanResultDTOToJSON,\n CalculatePnlInputFromJSON,\n CalculatePnlInputToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n WalletBalancesDTOFromJSON,\n WalletBalancesDTOToJSON,\n WalletPnlDTOFromJSON,\n WalletPnlDTOToJSON,\n} from '../models/index';\n\nexport interface CalculatePnlRequest {\n chain: ChainSymbol;\n walletAddress: string;\n calculatePnlInput: CalculatePnlInput;\n}\n\nexport interface GetBalanceRequest {\n chain: ChainSymbol;\n walletAddress: string;\n tokenAddress?: string;\n}\n\nexport interface GetPnlRequest {\n chain: ChainSymbol;\n walletAddress: string;\n tokenAddress?: string;\n}\n\nexport interface GetPnlStatsRequest {\n chain: ChainSymbol;\n walletAddress: string;\n}\n\n/**\n * \n */\nexport class WalletApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.WALLET.CALCULATE_PNL.DESCRIPTION\n * CONTROLLER.WALLET.CALCULATE_PNL.SUMMARY\n */\n async calculatePnlRaw(requestParameters: CalculatePnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BooleanResultDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling calculatePnl().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling calculatePnl().'\n );\n }\n\n if (requestParameters['calculatePnlInput'] == null) {\n throw new runtime.RequiredError(\n 'calculatePnlInput',\n 'Required parameter \"calculatePnlInput\" was null or undefined when calling calculatePnl().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}/calculate-pnl`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CalculatePnlInputToJSON(requestParameters['calculatePnlInput']),\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanResultDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.WALLET.CALCULATE_PNL.DESCRIPTION\n * CONTROLLER.WALLET.CALCULATE_PNL.SUMMARY\n */\n async calculatePnl(requestParameters: CalculatePnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BooleanResultDTO> {\n const response = await this.calculatePnlRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.WALLET.GET_BALANCES.DESCRIPTION\n * CONTROLLER.WALLET.GET_BALANCES.SUMMARY\n */\n async getBalanceRaw(requestParameters: GetBalanceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WalletBalancesDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getBalance().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling getBalance().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}/balance`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => WalletBalancesDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.WALLET.GET_BALANCES.DESCRIPTION\n * CONTROLLER.WALLET.GET_BALANCES.SUMMARY\n */\n async getBalance(requestParameters: GetBalanceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WalletBalancesDTO> {\n const response = await this.getBalanceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL.SUMMARY\n */\n async getPnlRaw(requestParameters: GetPnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<WalletPnlDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPnl().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling getPnl().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['tokenAddress'] != null) {\n queryParameters['tokenAddress'] = requestParameters['tokenAddress'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WalletPnlDTOFromJSON));\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL.SUMMARY\n */\n async getPnl(requestParameters: GetPnlRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<WalletPnlDTO>> {\n const response = await this.getPnlRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL_STATS.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL_STATS.SUMMARY\n */\n async getPnlStatsRaw(requestParameters: GetPnlStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<WalletPnlDTO>>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling getPnlStats().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling getPnlStats().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/wallet/{chain}/{walletAddress}/stats`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WalletPnlDTOFromJSON));\n }\n\n /**\n * CONTROLLER.WALLET.GET_PNL_STATS.DESCRIPTION\n * CONTROLLER.WALLET.GET_PNL_STATS.SUMMARY\n */\n async getPnlStats(requestParameters: GetPnlStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<WalletPnlDTO>> {\n const response = await this.getPnlStatsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Dex Aggregator API\n * Dex Aggregator API ⚡️\n *\n * The version of the OpenAPI document: 1.0\n * Contact: ai@sx.ai\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n BooleanResultDTO,\n ChainSymbol,\n} from '../models/index';\nimport {\n BooleanResultDTOFromJSON,\n BooleanResultDTOToJSON,\n ChainSymbolFromJSON,\n ChainSymbolToJSON,\n} from '../models/index';\n\nexport interface WatchlistAddRequest {\n chain: ChainSymbol;\n walletAddress: string;\n}\n\n/**\n * \n */\nexport class WatchlistApi extends runtime.BaseAPI {\n\n /**\n * CONTROLLER.WATCHLIST.ADD.DESCRIPTION\n * CONTROLLER.WATCHLIST.ADD.SUMMARY\n */\n async watchlistAddRaw(requestParameters: WatchlistAddRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BooleanResultDTO>> {\n if (requestParameters['chain'] == null) {\n throw new runtime.RequiredError(\n 'chain',\n 'Required parameter \"chain\" was null or undefined when calling watchlistAdd().'\n );\n }\n\n if (requestParameters['walletAddress'] == null) {\n throw new runtime.RequiredError(\n 'walletAddress',\n 'Required parameter \"walletAddress\" was null or undefined when calling watchlistAdd().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.accessToken) {\n const token = this.configuration.accessToken;\n const tokenString = await token(\"bearer\", []);\n\n if (tokenString) {\n headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n }\n }\n\n let urlPath = `/v1/watchlist/{chain}/{walletAddress}`;\n urlPath = urlPath.replace(`{${\"chain\"}}`, encodeURIComponent(String(requestParameters['chain'])));\n urlPath = urlPath.replace(`{${\"walletAddress\"}}`, encodeURIComponent(String(requestParameters['walletAddress'])));\n\n const response = await this.request({\n path: urlPath,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => BooleanResultDTOFromJSON(jsonValue));\n }\n\n /**\n * CONTROLLER.WATCHLIST.ADD.DESCRIPTION\n * CONTROLLER.WATCHLIST.ADD.SUMMARY\n */\n async watchlistAdd(requestParameters: WatchlistAddRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BooleanResultDTO> {\n const response = await this.watchlistAddRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n"],"mappings":"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","names":["require"]}
|