{"version":3,"file":"client.mjs","sourceRoot":"","sources":["../../../src/api/prices/client.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Prices API Client - price.api.cx.metamask.io\n *\n * Handles all price-related API calls including:\n * - Supported networks\n * - Exchange rates\n * - Spot prices (v1, v2, v3)\n * - Historical prices\n * - Price graphs\n */\n\nimport type {\n  FetchQueryOptions,\n  QueryFunctionContext,\n} from '@tanstack/query-core';\n\nimport { BaseApiClient, API_URLS, STALE_TIMES, GC_TIMES } from '../base-client';\nimport { getQueryOptionsOverrides } from '../shared-types';\nimport type {\n  FetchOptions,\n  MarketDataDetails,\n  SupportedCurrency,\n} from '../shared-types';\nimport type {\n  CoinGeckoSpotPrice,\n  V1ExchangeRatesResponse,\n  PriceSupportedNetworksResponse,\n  V1HistoricalPricesResponse,\n  V3SpotPricesResponse,\n  V3HistoricalPricesResponse,\n} from './types';\n\n/**\n * Prices API Client.\n * Provides methods for interacting with the Price API.\n */\nexport class PricesApiClient extends BaseApiClient {\n  // ==========================================================================\n  // CACHE MANAGEMENT\n  // ==========================================================================\n\n  /**\n   * Invalidate all price queries.\n   */\n  async invalidatePrices(): Promise<void> {\n    await this.queryClient.invalidateQueries({\n      queryKey: ['prices'],\n    });\n  }\n\n  // ==========================================================================\n  // SUPPORTED NETWORKS\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for price v1 supported networks.\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getPriceV1SupportedNetworksQueryOptions(\n    options?: FetchOptions,\n  ): FetchQueryOptions<PriceSupportedNetworksResponse> {\n    return {\n      queryKey: ['prices', 'v1SupportedNetworks'],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<PriceSupportedNetworksResponse>(\n          API_URLS.PRICES,\n          '/v1/supportedNetworks',\n          { signal },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.SUPPORTED_NETWORKS,\n      gcTime: options?.gcTime ?? GC_TIMES.EXTENDED,\n    };\n  }\n\n  /**\n   * Get price supported networks (v1 endpoint).\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns The supported networks response.\n   */\n  async fetchPriceV1SupportedNetworks(\n    options?: FetchOptions,\n  ): Promise<PriceSupportedNetworksResponse> {\n    return this.queryClient.fetchQuery(\n      this.getPriceV1SupportedNetworksQueryOptions(options),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for price v2 supported networks.\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getPriceV2SupportedNetworksQueryOptions(\n    options?: FetchOptions,\n  ): FetchQueryOptions<PriceSupportedNetworksResponse> {\n    return {\n      queryKey: ['prices', 'v2SupportedNetworks'],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<PriceSupportedNetworksResponse>(\n          API_URLS.PRICES,\n          '/v2/supportedNetworks',\n          { signal },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.SUPPORTED_NETWORKS,\n      gcTime: options?.gcTime ?? GC_TIMES.EXTENDED,\n    };\n  }\n\n  /**\n   * Get price supported networks in CAIP format (v2 endpoint).\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns The supported networks response.\n   */\n  async fetchPriceV2SupportedNetworks(\n    options?: FetchOptions,\n  ): Promise<PriceSupportedNetworksResponse> {\n    return this.queryClient.fetchQuery(\n      this.getPriceV2SupportedNetworksQueryOptions(options),\n    );\n  }\n\n  // ==========================================================================\n  // EXCHANGE RATES\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v1 exchange rates.\n   *\n   * @param baseCurrency - The base currency code.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1ExchangeRatesQueryOptions(\n    baseCurrency: string,\n    options?: FetchOptions,\n  ): FetchQueryOptions<V1ExchangeRatesResponse> {\n    return {\n      queryKey: ['prices', 'v1ExchangeRates', baseCurrency],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<V1ExchangeRatesResponse> => {\n        if (baseCurrency === '') {\n          return {};\n        }\n        return this.fetch<V1ExchangeRatesResponse>(\n          API_URLS.PRICES,\n          '/v1/exchange-rates',\n          {\n            signal,\n            params: { baseCurrency },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.EXCHANGE_RATES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get all exchange rates for a base currency (v1 endpoint).\n   *\n   * @param baseCurrency - The base currency code.\n   * @param options - Fetch options including cache settings.\n   * @returns The exchange rates response.\n   */\n  async fetchV1ExchangeRates(\n    baseCurrency: string,\n    options?: FetchOptions,\n  ): Promise<V1ExchangeRatesResponse> {\n    if (baseCurrency === '') {\n      return {};\n    }\n    return this.queryClient.fetchQuery(\n      this.getV1ExchangeRatesQueryOptions(baseCurrency, options),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 fiat exchange rates.\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1FiatExchangeRatesQueryOptions(\n    options?: FetchOptions,\n  ): FetchQueryOptions<V1ExchangeRatesResponse> {\n    return {\n      queryKey: ['prices', 'v1FiatExchangeRates'],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V1ExchangeRatesResponse>(\n          API_URLS.PRICES,\n          '/v1/exchange-rates/fiat',\n          { signal },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.EXCHANGE_RATES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get fiat exchange rates (v1 endpoint).\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns The exchange rates response.\n   */\n  async fetchV1FiatExchangeRates(\n    options?: FetchOptions,\n  ): Promise<V1ExchangeRatesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1FiatExchangeRatesQueryOptions(options),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 crypto exchange rates.\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1CryptoExchangeRatesQueryOptions(\n    options?: FetchOptions,\n  ): FetchQueryOptions<V1ExchangeRatesResponse> {\n    return {\n      queryKey: ['prices', 'v1CryptoExchangeRates'],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V1ExchangeRatesResponse>(\n          API_URLS.PRICES,\n          '/v1/exchange-rates/crypto',\n          { signal },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.EXCHANGE_RATES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get crypto exchange rates (v1 endpoint).\n   *\n   * @param options - Fetch options including cache settings.\n   * @returns The exchange rates response.\n   */\n  async fetchV1CryptoExchangeRates(\n    options?: FetchOptions,\n  ): Promise<V1ExchangeRatesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1CryptoExchangeRatesQueryOptions(options),\n    );\n  }\n\n  // ==========================================================================\n  // V1 SPOT PRICES (CoinGecko ID based)\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v1 spot prices by coin IDs.\n   *\n   * @param coinIds - Array of CoinGecko coin IDs.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1SpotPricesByCoinIdsQueryOptions(\n    coinIds: string[],\n    options?: FetchOptions,\n  ): FetchQueryOptions<Record<string, CoinGeckoSpotPrice>> {\n    return {\n      queryKey: [\n        'prices',\n        'v1SpotPricesByCoinIds',\n        { coinIds: [...coinIds].sort() },\n      ],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<Record<string, CoinGeckoSpotPrice>> => {\n        if (coinIds.length === 0) {\n          return {};\n        }\n        return this.fetch<Record<string, CoinGeckoSpotPrice>>(\n          API_URLS.PRICES,\n          '/v1/spot-prices',\n          {\n            signal,\n            params: { coinIds },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get spot prices by CoinGecko coin IDs (v1 endpoint).\n   *\n   * @param coinIds - Array of CoinGecko coin IDs.\n   * @param options - Fetch options including cache settings.\n   * @returns The spot prices by coin ID.\n   */\n  async fetchV1SpotPricesByCoinIds(\n    coinIds: string[],\n    options?: FetchOptions,\n  ): Promise<Record<string, CoinGeckoSpotPrice>> {\n    if (coinIds.length === 0) {\n      return {};\n    }\n    return this.queryClient.fetchQuery(\n      this.getV1SpotPricesByCoinIdsQueryOptions(coinIds, options),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 spot price by coin ID.\n   *\n   * @param coinId - The CoinGecko coin ID.\n   * @param currency - The currency for prices.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1SpotPriceByCoinIdQueryOptions(\n    coinId: string,\n    currency: SupportedCurrency = 'usd',\n    options?: FetchOptions,\n  ): FetchQueryOptions<CoinGeckoSpotPrice> {\n    return {\n      queryKey: ['prices', 'v1SpotPriceByCoinId', coinId, currency],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<CoinGeckoSpotPrice> => {\n        if (coinId === '') {\n          return { id: '', price: 0 };\n        }\n        return this.fetch<CoinGeckoSpotPrice>(\n          API_URLS.PRICES,\n          `/v1/spot-prices/${coinId}`,\n          {\n            signal,\n            params: { vsCurrency: currency },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get spot price for a single CoinGecko coin ID (v1 endpoint).\n   *\n   * @param coinId - The CoinGecko coin ID.\n   * @param currency - The currency for prices.\n   * @param options - Fetch options including cache settings.\n   * @returns The spot price data.\n   */\n  async fetchV1SpotPriceByCoinId(\n    coinId: string,\n    currency: SupportedCurrency = 'usd',\n    options?: FetchOptions,\n  ): Promise<CoinGeckoSpotPrice> {\n    return this.queryClient.fetchQuery(\n      this.getV1SpotPriceByCoinIdQueryOptions(coinId, currency, options),\n    );\n  }\n\n  // ==========================================================================\n  // V1 SPOT PRICES (Token Address based)\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v1 token prices.\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddresses - Array of token addresses.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeMarketData - Whether to include market data.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1TokenPricesQueryOptions(\n    chainId: string,\n    tokenAddresses: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      includeMarketData?: boolean;\n    },\n    options?: FetchOptions,\n  ): FetchQueryOptions<Record<string, Record<string, number>>> {\n    const chainIdDecimal = parseInt(chainId, 16);\n    const currency = queryOptions?.currency ?? 'usd';\n    return {\n      queryKey: [\n        'prices',\n        'v1TokenPrices',\n        {\n          chainId,\n          tokenAddresses: [...tokenAddresses].sort(),\n          currency,\n          includeMarketData: queryOptions?.includeMarketData,\n        },\n      ],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<\n        Record<string, Record<string, number>>\n      > => {\n        if (chainId === '' || tokenAddresses.length === 0) {\n          return {};\n        }\n        return this.fetch<Record<string, Record<string, number>>>(\n          API_URLS.PRICES,\n          `/v1/chains/${chainIdDecimal}/spot-prices`,\n          {\n            signal,\n            params: {\n              tokenAddresses,\n              vsCurrency: currency,\n              includeMarketData: queryOptions?.includeMarketData,\n            },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get spot prices for tokens on a chain (v1 endpoint).\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddresses - Array of token addresses.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeMarketData - Whether to include market data.\n   * @param options - Fetch options including cache settings.\n   * @returns The token prices by address.\n   */\n  async fetchV1TokenPrices(\n    chainId: string,\n    tokenAddresses: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      includeMarketData?: boolean;\n    },\n    options?: FetchOptions,\n  ): Promise<Record<string, Record<string, number>>> {\n    if (chainId === '' || tokenAddresses.length === 0) {\n      return {};\n    }\n    return this.queryClient.fetchQuery(\n      this.getV1TokenPricesQueryOptions(\n        chainId,\n        tokenAddresses,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 token price.\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddress - The token address.\n   * @param currency - The currency for prices.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1TokenPriceQueryOptions(\n    chainId: string,\n    tokenAddress: string,\n    currency: SupportedCurrency = 'usd',\n    options?: FetchOptions,\n  ): FetchQueryOptions<MarketDataDetails> {\n    const chainIdDecimal = parseInt(chainId, 16);\n    return {\n      queryKey: ['prices', 'v1TokenPrice', chainId, tokenAddress, currency],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<MarketDataDetails> => {\n        return this.fetch<MarketDataDetails>(\n          API_URLS.PRICES,\n          `/v1/chains/${chainIdDecimal}/spot-prices/${tokenAddress}`,\n          {\n            signal,\n            params: { vsCurrency: currency },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get spot price for a single token (v1 endpoint).\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddress - The token address.\n   * @param currency - The currency for prices.\n   * @param options - Fetch options including cache settings.\n   * @returns The market data.\n   */\n  async fetchV1TokenPrice(\n    chainId: string,\n    tokenAddress: string,\n    currency: SupportedCurrency = 'usd',\n    options?: FetchOptions,\n  ): Promise<MarketDataDetails> {\n    return this.queryClient.fetchQuery(\n      this.getV1TokenPriceQueryOptions(\n        chainId,\n        tokenAddress,\n        currency,\n        options,\n      ),\n    );\n  }\n\n  // ==========================================================================\n  // V2 SPOT PRICES\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v2 spot prices.\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddresses - Array of token addresses.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeMarketData - Whether to include market data.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV2SpotPricesQueryOptions(\n    chainId: string,\n    tokenAddresses: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      includeMarketData?: boolean;\n    },\n    options?: FetchOptions,\n  ): FetchQueryOptions<Record<string, MarketDataDetails>> {\n    const chainIdDecimal = parseInt(chainId, 16);\n    const currency = queryOptions?.currency ?? 'usd';\n    const includeMarketData = queryOptions?.includeMarketData ?? true;\n    return {\n      queryKey: [\n        'prices',\n        'v2SpotPrices',\n        {\n          chainId,\n          tokenAddresses: [...tokenAddresses].sort(),\n          currency,\n          includeMarketData,\n        },\n      ],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<Record<string, MarketDataDetails>> => {\n        if (chainId === '' || tokenAddresses.length === 0) {\n          return {};\n        }\n        return this.fetch<Record<string, MarketDataDetails>>(\n          API_URLS.PRICES,\n          `/v2/chains/${chainIdDecimal}/spot-prices`,\n          {\n            signal,\n            params: {\n              tokenAddresses,\n              vsCurrency: currency,\n              includeMarketData: queryOptions?.includeMarketData ?? true,\n            },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get spot prices for tokens on a chain with market data (v2 endpoint).\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddresses - Array of token addresses.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeMarketData - Whether to include market data.\n   * @param options - Fetch options including cache settings.\n   * @returns The spot prices with market data.\n   */\n  async fetchV2SpotPrices(\n    chainId: string,\n    tokenAddresses: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      includeMarketData?: boolean;\n    },\n    options?: FetchOptions,\n  ): Promise<Record<string, MarketDataDetails>> {\n    if (chainId === '' || tokenAddresses.length === 0) {\n      return {};\n    }\n    return this.queryClient.fetchQuery(\n      this.getV2SpotPricesQueryOptions(\n        chainId,\n        tokenAddresses,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  // ==========================================================================\n  // V3 SPOT PRICES (CAIP-19 based)\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v3 spot prices.\n   *\n   * @param assetIds - Array of CAIP-19 asset IDs.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeMarketData - Whether to include market data.\n   * @param queryOptions.cacheOnly - Whether to use cache only.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV3SpotPricesQueryOptions(\n    assetIds: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      includeMarketData?: boolean;\n      cacheOnly?: boolean;\n    },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V3SpotPricesResponse> {\n    const currency = queryOptions?.currency ?? 'usd';\n    const includeMarketData = queryOptions?.includeMarketData ?? true;\n    const cacheOnly = queryOptions?.cacheOnly ?? false;\n    return {\n      queryKey: [\n        'prices',\n        'v3SpotPrices',\n        {\n          assetIds: [...assetIds].sort(),\n          currency,\n          includeMarketData,\n          cacheOnly,\n        },\n      ],\n      queryFn: async ({\n        signal,\n      }: QueryFunctionContext): Promise<V3SpotPricesResponse> => {\n        if (assetIds.length === 0) {\n          return {};\n        }\n        return this.fetch<V3SpotPricesResponse>(\n          API_URLS.PRICES,\n          '/v3/spot-prices',\n          {\n            signal,\n            params: {\n              assetIds,\n              vsCurrency: currency,\n              includeMarketData,\n              cacheOnly,\n            },\n          },\n        );\n      },\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get spot prices by CAIP-19 asset IDs (v3 endpoint).\n   *\n   * @param assetIds - Array of CAIP-19 asset IDs.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeMarketData - Whether to include market data.\n   * @param queryOptions.cacheOnly - Whether to use cache only.\n   * @param options - Fetch options including cache settings.\n   * @returns The spot prices response.\n   */\n  async fetchV3SpotPrices(\n    assetIds: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      includeMarketData?: boolean;\n      cacheOnly?: boolean;\n    },\n    options?: FetchOptions,\n  ): Promise<V3SpotPricesResponse> {\n    if (assetIds.length === 0) {\n      return {};\n    }\n    return this.queryClient.fetchQuery(\n      this.getV3SpotPricesQueryOptions(assetIds, queryOptions, options),\n    );\n  }\n\n  // ==========================================================================\n  // V1 HISTORICAL PRICES\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v1 historical prices by coin ID.\n   *\n   * @param coinId - The CoinGecko coin ID.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timePeriod - The time period.\n   * @param queryOptions.from - Start timestamp.\n   * @param queryOptions.to - End timestamp.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1HistoricalPricesByCoinIdQueryOptions(\n    coinId: string,\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      timePeriod?: string;\n      from?: number;\n      to?: number;\n    },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V1HistoricalPricesResponse> {\n    return {\n      queryKey: ['prices', 'v1HistoricalByCoinId', coinId, queryOptions],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V1HistoricalPricesResponse>(\n          API_URLS.PRICES,\n          `/v1/historical-prices/${coinId}`,\n          {\n            signal,\n            params: {\n              vsCurrency: queryOptions?.currency,\n              timePeriod: queryOptions?.timePeriod,\n              from: queryOptions?.from,\n              to: queryOptions?.to,\n            },\n          },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get historical prices by CoinGecko coin ID (v1 endpoint).\n   *\n   * @param coinId - The CoinGecko coin ID.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timePeriod - The time period.\n   * @param queryOptions.from - Start timestamp.\n   * @param queryOptions.to - End timestamp.\n   * @param options - Fetch options including cache settings.\n   * @returns The historical prices response.\n   */\n  async fetchV1HistoricalPricesByCoinId(\n    coinId: string,\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      timePeriod?: string;\n      from?: number;\n      to?: number;\n    },\n    options?: FetchOptions,\n  ): Promise<V1HistoricalPricesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1HistoricalPricesByCoinIdQueryOptions(\n        coinId,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 historical prices by token addresses.\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddresses - Array of token addresses.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timePeriod - The time period.\n   * @param queryOptions.from - Start timestamp.\n   * @param queryOptions.to - End timestamp.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1HistoricalPricesByTokenAddressesQueryOptions(\n    chainId: string,\n    tokenAddresses: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      timePeriod?: string;\n      from?: number;\n      to?: number;\n    },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V1HistoricalPricesResponse> {\n    const chainIdDecimal = parseInt(chainId, 16);\n    return {\n      queryKey: [\n        'prices',\n        'v1HistoricalByTokenAddresses',\n        {\n          chainId,\n          tokenAddresses: [...tokenAddresses].sort(),\n          options: queryOptions,\n        },\n      ],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V1HistoricalPricesResponse>(\n          API_URLS.PRICES,\n          `/v1/chains/${chainIdDecimal}/historical-prices`,\n          {\n            signal,\n            params: {\n              tokenAddresses,\n              vsCurrency: queryOptions?.currency,\n              timePeriod: queryOptions?.timePeriod,\n              from: queryOptions?.from,\n              to: queryOptions?.to,\n            },\n          },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get historical prices for tokens on a chain (v1 endpoint).\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddresses - Array of token addresses.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timePeriod - The time period.\n   * @param queryOptions.from - Start timestamp.\n   * @param queryOptions.to - End timestamp.\n   * @param options - Fetch options including cache settings.\n   * @returns The historical prices response.\n   */\n  async fetchV1HistoricalPricesByTokenAddresses(\n    chainId: string,\n    tokenAddresses: string[],\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      timePeriod?: string;\n      from?: number;\n      to?: number;\n    },\n    options?: FetchOptions,\n  ): Promise<V1HistoricalPricesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1HistoricalPricesByTokenAddressesQueryOptions(\n        chainId,\n        tokenAddresses,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 historical prices.\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddress - The token address.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timeRange - The time range.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1HistoricalPricesQueryOptions(\n    chainId: string,\n    tokenAddress: string,\n    queryOptions?: { currency?: SupportedCurrency; timeRange?: string },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V1HistoricalPricesResponse> {\n    const chainIdDecimal = parseInt(chainId, 16);\n    const currency = queryOptions?.currency ?? 'usd';\n    const timeRange = queryOptions?.timeRange ?? '7d';\n    return {\n      queryKey: [\n        'prices',\n        'v1Historical',\n        chainId,\n        tokenAddress,\n        currency,\n        timeRange,\n      ],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V1HistoricalPricesResponse>(\n          API_URLS.PRICES,\n          `/v1/chains/${chainIdDecimal}/historical-prices/${tokenAddress}`,\n          {\n            signal,\n            params: {\n              vsCurrency: currency,\n              timePeriod: timeRange,\n            },\n          },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get historical prices for a single token (v1 endpoint).\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddress - The token address.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timeRange - The time range.\n   * @param options - Fetch options including cache settings.\n   * @returns The historical prices response.\n   */\n  async fetchV1HistoricalPrices(\n    chainId: string,\n    tokenAddress: string,\n    queryOptions?: { currency?: SupportedCurrency; timeRange?: string },\n    options?: FetchOptions,\n  ): Promise<V1HistoricalPricesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1HistoricalPricesQueryOptions(\n        chainId,\n        tokenAddress,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  // ==========================================================================\n  // V3 HISTORICAL PRICES\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v3 historical prices.\n   *\n   * @param chainId - The CAIP-2 chain ID.\n   * @param assetType - The asset type portion of CAIP-19.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timePeriod - The time period.\n   * @param queryOptions.from - Start timestamp.\n   * @param queryOptions.to - End timestamp.\n   * @param queryOptions.interval - Data interval.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV3HistoricalPricesQueryOptions(\n    chainId: string,\n    assetType: string,\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      timePeriod?: string;\n      from?: number;\n      to?: number;\n      interval?: '5m' | 'hourly' | 'daily';\n    },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V3HistoricalPricesResponse> {\n    return {\n      queryKey: ['prices', 'v3Historical', chainId, assetType, queryOptions],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V3HistoricalPricesResponse>(\n          API_URLS.PRICES,\n          `/v3/historical-prices/${chainId}/${assetType}`,\n          {\n            signal,\n            params: {\n              vsCurrency: queryOptions?.currency,\n              timePeriod: queryOptions?.timePeriod,\n              from: queryOptions?.from,\n              to: queryOptions?.to,\n              interval: queryOptions?.interval,\n            },\n          },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get historical prices by CAIP-19 asset ID (v3 endpoint).\n   *\n   * @param chainId - The CAIP-2 chain ID.\n   * @param assetType - The asset type portion of CAIP-19.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.timePeriod - The time period.\n   * @param queryOptions.from - Start timestamp.\n   * @param queryOptions.to - End timestamp.\n   * @param queryOptions.interval - Data interval.\n   * @param options - Fetch options including cache settings.\n   * @returns The historical prices response.\n   */\n  async fetchV3HistoricalPrices(\n    chainId: string,\n    assetType: string,\n    queryOptions?: {\n      currency?: SupportedCurrency;\n      timePeriod?: string;\n      from?: number;\n      to?: number;\n      interval?: '5m' | 'hourly' | 'daily';\n    },\n    options?: FetchOptions,\n  ): Promise<V3HistoricalPricesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV3HistoricalPricesQueryOptions(\n        chainId,\n        assetType,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  // ==========================================================================\n  // V1 HISTORICAL PRICE GRAPH\n  // ==========================================================================\n\n  /**\n   * Returns the TanStack Query options object for v1 historical price graph by coin ID.\n   *\n   * @param coinId - The CoinGecko coin ID.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeOHLC - Whether to include OHLC data.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1HistoricalPriceGraphByCoinIdQueryOptions(\n    coinId: string,\n    queryOptions?: { currency?: SupportedCurrency; includeOHLC?: boolean },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V3HistoricalPricesResponse> {\n    const currency = queryOptions?.currency ?? 'usd';\n    const includeOHLC = queryOptions?.includeOHLC ?? false;\n    return {\n      queryKey: ['prices', 'v1GraphByCoinId', coinId, currency, includeOHLC],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V3HistoricalPricesResponse>(\n          API_URLS.PRICES,\n          `/v1/historical-prices-graph/${coinId}`,\n          {\n            signal,\n            params: {\n              vsCurrency: currency,\n              includeOHLC,\n            },\n          },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get historical price graph data by CoinGecko coin ID (v1 endpoint).\n   *\n   * @param coinId - The CoinGecko coin ID.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeOHLC - Whether to include OHLC data.\n   * @param options - Fetch options including cache settings.\n   * @returns The historical price graph response.\n   */\n  async fetchV1HistoricalPriceGraphByCoinId(\n    coinId: string,\n    queryOptions?: { currency?: SupportedCurrency; includeOHLC?: boolean },\n    options?: FetchOptions,\n  ): Promise<V3HistoricalPricesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1HistoricalPriceGraphByCoinIdQueryOptions(\n        coinId,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n\n  /**\n   * Returns the TanStack Query options object for v1 historical price graph by token address.\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddress - The token address.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeOHLC - Whether to include OHLC data.\n   * @param options - Fetch options including cache settings.\n   * @returns TanStack Query options for use with useQuery, useSuspenseQuery, etc.\n   */\n  getV1HistoricalPriceGraphByTokenAddressQueryOptions(\n    chainId: string,\n    tokenAddress: string,\n    queryOptions?: { currency?: SupportedCurrency; includeOHLC?: boolean },\n    options?: FetchOptions,\n  ): FetchQueryOptions<V3HistoricalPricesResponse> {\n    const chainIdDecimal = parseInt(chainId, 16);\n    const currency = queryOptions?.currency ?? 'usd';\n    const includeOHLC = queryOptions?.includeOHLC ?? false;\n    return {\n      queryKey: [\n        'prices',\n        'v1GraphByTokenAddress',\n        chainId,\n        tokenAddress,\n        currency,\n        includeOHLC,\n      ],\n      queryFn: ({ signal }: QueryFunctionContext) =>\n        this.fetch<V3HistoricalPricesResponse>(\n          API_URLS.PRICES,\n          `/v1/chains/${chainIdDecimal}/historical-prices-graph/${tokenAddress}`,\n          {\n            signal,\n            params: {\n              vsCurrency: currency,\n              includeOHLC,\n            },\n          },\n        ),\n      ...getQueryOptionsOverrides(options),\n      staleTime: options?.staleTime ?? STALE_TIMES.PRICES,\n      gcTime: options?.gcTime ?? GC_TIMES.DEFAULT,\n    };\n  }\n\n  /**\n   * Get historical price graph data by token address (v1 endpoint).\n   *\n   * @param chainId - The chain ID (hex format).\n   * @param tokenAddress - The token address.\n   * @param queryOptions - Query options.\n   * @param queryOptions.currency - The currency for prices.\n   * @param queryOptions.includeOHLC - Whether to include OHLC data.\n   * @param options - Fetch options including cache settings.\n   * @returns The historical price graph response.\n   */\n  async fetchV1HistoricalPriceGraphByTokenAddress(\n    chainId: string,\n    tokenAddress: string,\n    queryOptions?: { currency?: SupportedCurrency; includeOHLC?: boolean },\n    options?: FetchOptions,\n  ): Promise<V3HistoricalPricesResponse> {\n    return this.queryClient.fetchQuery(\n      this.getV1HistoricalPriceGraphByTokenAddressQueryOptions(\n        chainId,\n        tokenAddress,\n        queryOptions,\n        options,\n      ),\n    );\n  }\n}\n"]}