@nadohq/indexer-client 0.41.0 → 0.42.1

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.
Files changed (115) hide show
  1. package/dist/{IndexerBaseClient-jaeUYv71.cjs → IndexerBaseClient-CSn4twzz.cjs} +36 -1
  2. package/dist/IndexerBaseClient-CSn4twzz.cjs.map +1 -0
  3. package/dist/IndexerBaseClient.cjs +1 -1
  4. package/dist/IndexerBaseClient.d.cts +16 -2
  5. package/dist/IndexerBaseClient.d.cts.map +1 -1
  6. package/dist/IndexerBaseClient.d.ts +16 -2
  7. package/dist/IndexerBaseClient.d.ts.map +1 -1
  8. package/dist/IndexerBaseClient.js +36 -1
  9. package/dist/IndexerBaseClient.js.map +1 -1
  10. package/dist/IndexerClient.cjs +1 -1
  11. package/dist/IndexerClient.d.cts +1 -1
  12. package/dist/IndexerClient.d.ts +1 -1
  13. package/dist/IndexerEventType-BFvrhslw.d.ts +10 -0
  14. package/dist/IndexerEventType-BFvrhslw.d.ts.map +1 -0
  15. package/dist/IndexerEventType-BpH10mEW.d.cts +10 -0
  16. package/dist/IndexerEventType-BpH10mEW.d.cts.map +1 -0
  17. package/dist/{IndexerServerFailureError-ClC8vkmR.d.ts → IndexerServerFailureError-BoGd4gih.d.ts} +2 -2
  18. package/dist/{IndexerServerFailureError-ClC8vkmR.d.ts.map → IndexerServerFailureError-BoGd4gih.d.ts.map} +1 -1
  19. package/dist/{IndexerServerFailureError-BMmMPfFJ.d.cts → IndexerServerFailureError-D-KNqVt3.d.cts} +2 -2
  20. package/dist/{IndexerServerFailureError-BMmMPfFJ.d.cts.map → IndexerServerFailureError-D-KNqVt3.d.cts.map} +1 -1
  21. package/dist/{NadoTx-Bd4U-zDu.d.ts → NadoTx-4BQkGyHz.d.cts} +3 -8
  22. package/dist/NadoTx-4BQkGyHz.d.cts.map +1 -0
  23. package/dist/{NadoTx-C3_f0YvI.d.cts → NadoTx-DPrcN9Eo.d.ts} +3 -8
  24. package/dist/NadoTx-DPrcN9Eo.d.ts.map +1 -0
  25. package/dist/{clientTypes-BLKeWmIr.d.ts → clientTypes-CnswaLwH.d.ts} +107 -5
  26. package/dist/clientTypes-CnswaLwH.d.ts.map +1 -0
  27. package/dist/{clientTypes-QBgifUeV.d.cts → clientTypes-DS2w6Osq.d.cts} +107 -5
  28. package/dist/clientTypes-DS2w6Osq.d.cts.map +1 -0
  29. package/dist/{collateralEventType-s-WbBniE.d.ts → collateralEventType-AJY6oQt6.d.ts} +2 -2
  30. package/dist/collateralEventType-AJY6oQt6.d.ts.map +1 -0
  31. package/dist/{collateralEventType-CNrryEno.d.cts → collateralEventType-f2RJiAwy.d.cts} +2 -2
  32. package/dist/collateralEventType-f2RJiAwy.d.cts.map +1 -0
  33. package/dist/dataMappers.cjs +38 -1
  34. package/dist/dataMappers.cjs.map +1 -1
  35. package/dist/dataMappers.d.cts +10 -4
  36. package/dist/dataMappers.d.cts.map +1 -1
  37. package/dist/dataMappers.d.ts +10 -4
  38. package/dist/dataMappers.d.ts.map +1 -1
  39. package/dist/dataMappers.js +37 -1
  40. package/dist/dataMappers.js.map +1 -1
  41. package/dist/index.cjs +3 -1
  42. package/dist/index.d.cts +10 -10
  43. package/dist/index.d.ts +10 -10
  44. package/dist/index.js +2 -1
  45. package/dist/{indexerBalanceValue-ZJec8hfI.d.ts → indexerBalanceValue-DV3dtvyV.d.ts} +2 -2
  46. package/dist/{indexerBalanceValue-ZJec8hfI.d.ts.map → indexerBalanceValue-DV3dtvyV.d.ts.map} +1 -1
  47. package/dist/{indexerBalanceValue-DqMAvUsj.d.cts → indexerBalanceValue-yMyf537D.d.cts} +2 -2
  48. package/dist/{indexerBalanceValue-DqMAvUsj.d.cts.map → indexerBalanceValue-yMyf537D.d.cts.map} +1 -1
  49. package/dist/{paginatedEventsTypes-D668Hgzl.d.ts → paginatedEventsTypes-BT--OHd5.d.ts} +4 -4
  50. package/dist/{paginatedEventsTypes-D668Hgzl.d.ts.map → paginatedEventsTypes-BT--OHd5.d.ts.map} +1 -1
  51. package/dist/{paginatedEventsTypes-4I9Ibp9q.d.cts → paginatedEventsTypes-DZllHmqY.d.cts} +4 -4
  52. package/dist/{paginatedEventsTypes-4I9Ibp9q.d.cts.map → paginatedEventsTypes-DZllHmqY.d.cts.map} +1 -1
  53. package/dist/{serverModelTypes-BAZNgoLE.d.ts → serverModelTypes-B78obnnd.d.ts} +40 -4
  54. package/dist/serverModelTypes-B78obnnd.d.ts.map +1 -0
  55. package/dist/{serverModelTypes-DC4dsX9i.d.cts → serverModelTypes-vhALknbV.d.cts} +40 -4
  56. package/dist/serverModelTypes-vhALknbV.d.cts.map +1 -0
  57. package/dist/{serverTypes-DeUDMCog.d.cts → serverTypes-CyqBF-nt.d.cts} +29 -5
  58. package/dist/serverTypes-CyqBF-nt.d.cts.map +1 -0
  59. package/dist/{serverTypes-BQafrknp.d.ts → serverTypes-Dod9cCEW.d.ts} +29 -5
  60. package/dist/serverTypes-Dod9cCEW.d.ts.map +1 -0
  61. package/dist/types/IndexerEventType.cjs +23 -0
  62. package/dist/types/IndexerEventType.cjs.map +1 -0
  63. package/dist/types/IndexerEventType.d.cts +2 -2
  64. package/dist/types/IndexerEventType.d.ts +2 -2
  65. package/dist/types/IndexerEventType.js +22 -1
  66. package/dist/types/IndexerEventType.js.map +1 -0
  67. package/dist/types/IndexerServerFailureError.cjs +1 -1
  68. package/dist/types/IndexerServerFailureError.d.cts +1 -1
  69. package/dist/types/IndexerServerFailureError.d.ts +1 -1
  70. package/dist/types/NadoTx.d.cts +2 -2
  71. package/dist/types/NadoTx.d.ts +2 -2
  72. package/dist/types/clientTypes.d.cts +2 -2
  73. package/dist/types/clientTypes.d.ts +2 -2
  74. package/dist/types/collateralEventType.d.cts +1 -1
  75. package/dist/types/collateralEventType.d.ts +1 -1
  76. package/dist/types/index.cjs +2 -0
  77. package/dist/types/index.d.cts +9 -9
  78. package/dist/types/index.d.ts +9 -9
  79. package/dist/types/index.js +2 -1
  80. package/dist/types/indexerErrorCodes.cjs +1 -1
  81. package/dist/types/paginatedEventsTypes.d.cts +1 -1
  82. package/dist/types/paginatedEventsTypes.d.ts +1 -1
  83. package/dist/types/serverModelTypes.d.cts +2 -2
  84. package/dist/types/serverModelTypes.d.ts +2 -2
  85. package/dist/types/serverTypes.cjs.map +1 -1
  86. package/dist/types/serverTypes.d.cts +2 -2
  87. package/dist/types/serverTypes.d.ts +2 -2
  88. package/dist/types/serverTypes.js.map +1 -1
  89. package/dist/utils/index.d.cts +1 -1
  90. package/dist/utils/index.d.ts +1 -1
  91. package/dist/utils/indexerBalanceValue.d.cts +1 -1
  92. package/dist/utils/indexerBalanceValue.d.ts +1 -1
  93. package/package.json +4 -4
  94. package/src/IndexerBaseClient.ts +50 -0
  95. package/src/dataMappers.ts +41 -0
  96. package/src/types/IndexerEventType.ts +19 -11
  97. package/src/types/NadoTx.ts +0 -7
  98. package/src/types/clientTypes.ts +106 -0
  99. package/src/types/serverModelTypes.ts +59 -0
  100. package/src/types/serverTypes.ts +33 -0
  101. package/dist/IndexerBaseClient-jaeUYv71.cjs.map +0 -1
  102. package/dist/IndexerEventType-9GB2zRoN.d.cts +0 -5
  103. package/dist/IndexerEventType-9GB2zRoN.d.cts.map +0 -1
  104. package/dist/IndexerEventType-Brm9aX8w.d.ts +0 -5
  105. package/dist/IndexerEventType-Brm9aX8w.d.ts.map +0 -1
  106. package/dist/NadoTx-Bd4U-zDu.d.ts.map +0 -1
  107. package/dist/NadoTx-C3_f0YvI.d.cts.map +0 -1
  108. package/dist/clientTypes-BLKeWmIr.d.ts.map +0 -1
  109. package/dist/clientTypes-QBgifUeV.d.cts.map +0 -1
  110. package/dist/collateralEventType-CNrryEno.d.cts.map +0 -1
  111. package/dist/collateralEventType-s-WbBniE.d.ts.map +0 -1
  112. package/dist/serverModelTypes-BAZNgoLE.d.ts.map +0 -1
  113. package/dist/serverModelTypes-DC4dsX9i.d.cts.map +0 -1
  114. package/dist/serverTypes-BQafrknp.d.ts.map +0 -1
  115. package/dist/serverTypes-DeUDMCog.d.cts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerBaseClient.js","names":[],"sources":["../src/IndexerBaseClient.ts"],"sourcesContent":["import {\n EIP712LeaderboardAuthenticationParams,\n EIP712LeaderboardAuthenticationValues,\n EIP712SocialAuthenticationParams,\n getDefaultRecvTime,\n getNadoClientTypeHeaders,\n getNadoEIP712Values,\n getSignedTransactionRequest,\n getValidatedAddress,\n getValidatedHex,\n mapValues,\n nowInSeconds,\n removeDecimals,\n SignableRequestType,\n SignableRequestTypeToParams,\n SignedTx,\n subaccountFromHex,\n subaccountToHex,\n toBigInt,\n toBigNumber,\n toIntegerString,\n WalletClientWithAccount,\n WalletNotProvidedError,\n} from '@nadohq/shared';\nimport axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport {\n mapIndexerCandlesticks,\n mapIndexerEvent,\n mapIndexerEventWithTx,\n mapIndexerFundingRate,\n mapIndexerFundingRateHistory,\n mapIndexerLeaderboardContest,\n mapIndexerLeaderboardPosition,\n mapIndexerLeaderboardRegistration,\n mapIndexerMakerStatistics,\n mapIndexerMarketSnapshot,\n mapIndexerMatchEventBalances,\n mapIndexerNlpSnapshot,\n mapIndexerOrder,\n mapIndexerPerpPrices,\n mapIndexerPortfolio,\n mapIndexerProductPayment,\n mapIndexerServerProduct,\n mapIndexerV2Symbols,\n mapIndexerV2Ticker,\n mapSnapshotsIntervalToServerParams,\n} from './dataMappers';\nimport {\n ConnectSocialAccountParams,\n ConnectSocialAccountResponse,\n GetIndexerBacklogResponse,\n GetIndexerCandlesticksParams,\n GetIndexerCandlesticksResponse,\n GetIndexerCashIncentivesParams,\n GetIndexerCashIncentivesResponse,\n GetIndexerEdgeCandlesticksParams,\n GetIndexerEdgeCandlesticksResponse,\n GetIndexerEdgeMarketSnapshotResponse,\n GetIndexerEdgeMarketSnapshotsParams,\n GetIndexerEventsParams,\n GetIndexerEventsResponse,\n GetIndexerFastWithdrawalSignatureParams,\n GetIndexerFastWithdrawalSignatureResponse,\n GetIndexerFundingRateHistoryParams,\n GetIndexerFundingRateHistoryResponse,\n GetIndexerFundingRateParams,\n GetIndexerFundingRateResponse,\n GetIndexerInterestFundingPaymentsParams,\n GetIndexerInterestFundingPaymentsResponse,\n GetIndexerLeaderboardContestsParams,\n GetIndexerLeaderboardContestsResponse,\n GetIndexerLeaderboardParams,\n GetIndexerLeaderboardParticipantParams,\n GetIndexerLeaderboardParticipantResponse,\n GetIndexerLeaderboardRegistrationsParams,\n GetIndexerLeaderboardRegistrationsResponse,\n GetIndexerLeaderboardResponse,\n GetIndexerLinkedSignerParams,\n GetIndexerLinkedSignerResponse,\n GetIndexerMakerStatisticsParams,\n GetIndexerMakerStatisticsResponse,\n GetIndexerMarketSnapshotsParams,\n GetIndexerMarketSnapshotsResponse,\n GetIndexerMatchEventsParams,\n GetIndexerMatchEventsResponse,\n GetIndexerMultiProductFundingRatesParams,\n GetIndexerMultiProductFundingRatesResponse,\n GetIndexerMultiProductPerpPricesParams,\n GetIndexerMultiProductPerpPricesResponse,\n GetIndexerMultiProductSnapshotsParams,\n GetIndexerMultiProductSnapshotsResponse,\n GetIndexerMultiSubaccountSnapshotsParams,\n GetIndexerMultiSubaccountSnapshotsResponse,\n GetIndexerNlpSnapshotsParams,\n GetIndexerNlpSnapshotsResponse,\n GetIndexerOraclePricesParams,\n GetIndexerOraclePricesResponse,\n GetIndexerOrdersParams,\n GetIndexerOrdersResponse,\n GetIndexerPerpPricesParams,\n GetIndexerPerpPricesResponse,\n GetIndexerPointsParams,\n GetIndexerPointsResponse,\n GetIndexerPortfolioParams,\n GetIndexerPortfolioResponse,\n GetIndexerPrivateAlphaChoiceParams,\n GetIndexerPrivateAlphaChoiceResponse,\n GetIndexerProductSnapshotsParams,\n GetIndexerProductSnapshotsResponse,\n GetIndexerQuotePriceResponse,\n GetIndexerReferralCodeParams,\n GetIndexerReferralCodeResponse,\n GetIndexerSubaccountDDAParams,\n GetIndexerSubaccountDDAResponse,\n GetIndexerV2SymbolsParams,\n GetIndexerV2SymbolsResponse,\n GetIndexerV2TickersParams,\n GetIndexerV2TickersResponse,\n GetIndexerXPointsParams,\n GetIndexerXPointsResponse,\n IndexerEventWithTx,\n IndexerMatchEvent,\n IndexerOraclePrice,\n IndexerServerEventsParams,\n IndexerServerFailureError,\n IndexerServerQueryRequestByType,\n IndexerServerQueryRequestType,\n IndexerServerQueryResponseByType,\n IndexerServerV2SymbolsResponse,\n IndexerServerV2TickersResponse,\n IndexerSnapshotBalance,\n IndexerSubaccountSnapshot,\n isIndexerServerFailureResponse,\n ListIndexerSocialAccountsParams,\n ListIndexerSocialAccountsResponse,\n ListIndexerSubaccountsParams,\n ListIndexerSubaccountsResponse,\n RegisterLeaderboardParams,\n RegisterLeaderboardResponse,\n RevokeSocialAccountParams,\n RevokeSocialAccountResponse,\n} from './types';\n\nexport interface IndexerClientOpts {\n // Server base URL, without a version segment (ex. `https://api.prod.nado.xyz/archive`)\n url: string;\n // Rewards service base URL, including the version segment (ex. `https://api.prod.nado.xyz/rewards/v1`).\n // Defaults to `${url}/rewards/v1`.\n rewardsUrl?: string;\n // Wallet Client for EIP712 signing\n walletClient?: WalletClientWithAccount;\n // Linked signer registered through the engine, if provided, execute requests will use this signer\n linkedSignerWalletClient?: WalletClientWithAccount;\n // If provided, identifies the calling client, sent as a header with every request\n clientType?: string;\n}\n\ntype IndexerQueryRequestBody = Partial<IndexerServerQueryRequestByType>;\n\n/**\n * Base client for all indexer requests\n */\nexport class IndexerBaseClient {\n readonly opts: IndexerClientOpts;\n readonly v1Url: string;\n readonly v2Url: string;\n readonly rewardsUrl: string;\n readonly axiosInstance: AxiosInstance;\n\n constructor(opts: IndexerClientOpts) {\n this.opts = opts;\n this.axiosInstance = axios.create({\n withCredentials: true,\n // We have custom logic to validate response status and create an appropriate error\n validateStatus: () => true,\n headers: getNadoClientTypeHeaders(opts.clientType),\n });\n this.v1Url = `${opts.url}/v1`;\n this.v2Url = `${opts.url}/v2`;\n this.rewardsUrl = opts.rewardsUrl ?? `${opts.url}/rewards/v1`;\n }\n\n /**\n * Sets the linked signer for execute requests\n *\n * @param linkedSignerWalletClient The linkedSigner to use for all signatures. Set to null to revert to the chain signer\n */\n public setLinkedSigner(\n linkedSignerWalletClient: WalletClientWithAccount | null,\n ) {\n this.opts.linkedSignerWalletClient = linkedSignerWalletClient ?? undefined;\n }\n\n /**\n * List all subaccounts\n *\n * @param params\n */\n async listSubaccounts(\n params: ListIndexerSubaccountsParams,\n ): Promise<ListIndexerSubaccountsResponse> {\n const baseResponse = await this.query('subaccounts', params);\n\n return baseResponse.subaccounts.map((item) => {\n const subaccount = subaccountFromHex(item.subaccount);\n return {\n hexId: item.subaccount,\n createdAt: Number(item.created_at),\n isolated: item.isolated,\n ...subaccount,\n };\n });\n }\n\n /**\n * Retrieve snapshots of multiple subaccounts at multiple points in time.\n * Each snapshot is a view of the subaccount's balances at this point in time, with tracked variables for interest, funding, etc.\n *\n * @param params\n */\n async getMultiSubaccountSnapshots(\n params: GetIndexerMultiSubaccountSnapshotsParams,\n ): Promise<GetIndexerMultiSubaccountSnapshotsResponse> {\n const subaccountHexIds = params.subaccounts.map(\n ({ subaccountOwner, subaccountName }) =>\n subaccountToHex({\n subaccountOwner,\n subaccountName,\n }),\n );\n\n const baseResponse = await this.query('account_snapshots', {\n subaccounts: subaccountHexIds,\n timestamps: params.timestamps,\n isolated: params.isolated,\n });\n\n const snapshotsBySubaccount = mapValues(\n baseResponse.snapshots,\n (balanceSnapshots) => {\n const snapshotByTimestamp: Record<string, IndexerSubaccountSnapshot> =\n {};\n\n Object.entries(balanceSnapshots).forEach(([timestamp, events]) => {\n const balances: IndexerSnapshotBalance[] =\n events.map(mapIndexerEvent);\n\n snapshotByTimestamp[timestamp] = {\n timestamp: toBigNumber(timestamp),\n balances,\n };\n });\n\n return snapshotByTimestamp;\n },\n );\n\n return {\n subaccountHexIds,\n snapshots: snapshotsBySubaccount,\n };\n }\n\n /**\n * Retrieves referral code for an address\n *\n * @param params\n */\n async getReferralCode(\n params: GetIndexerReferralCodeParams,\n ): Promise<GetIndexerReferralCodeResponse> {\n const baseResponse = await this.query('referral_code', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccount.subaccountOwner,\n subaccountName: params.subaccount.subaccountName,\n }),\n });\n\n return {\n referralCode: baseResponse.referral_code,\n };\n }\n\n /**\n * Retrieves funding rate for a product, where 1 = 100%\n * @param params\n */\n async getFundingRate(\n params: GetIndexerFundingRateParams,\n ): Promise<GetIndexerFundingRateResponse> {\n const baseResponse = await this.query('funding_rate', {\n product_id: params.productId,\n });\n\n return mapIndexerFundingRate(baseResponse);\n }\n\n /**\n * Retrieves funding rate for multiple products, where 1 = 100%\n * @param params\n */\n async getMultiProductFundingRates(\n params: GetIndexerMultiProductFundingRatesParams,\n ): Promise<GetIndexerMultiProductFundingRatesResponse> {\n const baseResponse = await this.query('funding_rates', {\n product_ids: params.productIds,\n });\n\n return mapValues(baseResponse, mapIndexerFundingRate);\n }\n\n /**\n * Retrieves a perp product's historical (realized hourly) funding rates,\n * ordered ascending by timestamp, where 1 = 100%.\n *\n * To paginate forward, pass the last entry's `timestamp + 1` as the next\n * request's `startTimeInclusive`.\n *\n * @param params\n */\n async getFundingRateHistory(\n params: GetIndexerFundingRateHistoryParams,\n ): Promise<GetIndexerFundingRateHistoryResponse> {\n const baseResponse = await this.query('funding_rate_history', {\n product_id: params.productId,\n start_time: params.startTimeInclusive,\n end_time: params.endTimeInclusive,\n limit: params.limit,\n });\n\n return baseResponse.funding_rates.map(mapIndexerFundingRateHistory);\n }\n\n /**\n * Retrieves a subaccount's account-value, PnL, traded-volume, average-trade-size,\n * and markets-traded history across all timeframes, keyed by period. The value\n * aggregates the cross-margin account plus every isolated child; the queried\n * subaccount must be cross-margin.\n *\n * Points are downsampled per timeframe, so the most recent point can be up to\n * ~20 minutes stale. For the exact live value, use the engine client's\n * `getSubaccountSummary` query instead.\n *\n * @param params\n */\n async getPortfolio(\n params: GetIndexerPortfolioParams,\n ): Promise<GetIndexerPortfolioResponse> {\n const baseResponse = await this.query('portfolio', {\n subaccount: subaccountToHex(params.subaccount),\n });\n\n return mapIndexerPortfolio(baseResponse);\n }\n\n /**\n * Retrieves latest mark/index price for a perp product\n * @param params\n */\n async getPerpPrices(\n params: GetIndexerPerpPricesParams,\n ): Promise<GetIndexerPerpPricesResponse> {\n const baseResponse = await this.query('price', {\n product_id: params.productId,\n });\n\n return mapIndexerPerpPrices(baseResponse);\n }\n\n /**\n * Retrieves latest mark/index price for multiple perp products\n * @param params\n */\n async getMultiProductPerpPrices(\n params: GetIndexerMultiProductPerpPricesParams,\n ): Promise<GetIndexerMultiProductPerpPricesResponse> {\n const baseResponse = await this.query('perp_prices', {\n product_ids: params.productIds,\n });\n\n return mapValues(baseResponse, mapIndexerPerpPrices);\n }\n\n /**\n * Retrieves latest oracle prices for provided products\n * @param params\n */\n async getOraclePrices(\n params: GetIndexerOraclePricesParams,\n ): Promise<GetIndexerOraclePricesResponse> {\n const baseResponse = await this.query('oracle_price', {\n product_ids: params.productIds,\n });\n\n return baseResponse.prices.map((price): IndexerOraclePrice => {\n return {\n oraclePrice: removeDecimals(price.oracle_price_x18),\n updateTime: toBigNumber(price.update_time),\n productId: price.product_id,\n };\n });\n }\n\n /**\n * Retrieves candlesticks for a product\n * @param params\n */\n async getCandlesticks(\n params: GetIndexerCandlesticksParams,\n ): Promise<GetIndexerCandlesticksResponse> {\n const baseResponse = await this.query('candlesticks', {\n product_id: params.productId,\n max_time: params.maxTimeInclusive,\n limit: params.limit,\n granularity: params.period,\n });\n\n return baseResponse.candlesticks.map(mapIndexerCandlesticks);\n }\n\n /**\n * Retrieves candlesticks for a product from Edge\n * @param params\n */\n async getEdgeCandlesticks(\n params: GetIndexerEdgeCandlesticksParams,\n ): Promise<GetIndexerEdgeCandlesticksResponse> {\n const baseResponse = await this.query('edge_candlesticks', {\n product_id: params.productId,\n max_time: params.maxTimeInclusive,\n limit: params.limit,\n granularity: params.period,\n });\n\n return baseResponse.candlesticks.map(mapIndexerCandlesticks);\n }\n\n /**\n * Retrieves historical snapshots for a product\n * @param params\n */\n async getProductSnapshots(\n params: GetIndexerProductSnapshotsParams,\n ): Promise<GetIndexerProductSnapshotsResponse> {\n const baseResponse = await this.query('products', {\n product_id: params.productId,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n idx: params.startCursor,\n });\n\n return baseResponse.products.map((product) => {\n return {\n ...mapIndexerServerProduct(product.product),\n submissionIndex: product.submission_idx,\n };\n });\n }\n\n /**\n * Retrieves historical snapshots for multiple products\n * @param params\n */\n async getMultiProductSnapshots(\n params: GetIndexerMultiProductSnapshotsParams,\n ): Promise<GetIndexerMultiProductSnapshotsResponse> {\n const timestampToProductsMap = await this.query('product_snapshots', {\n product_ids: params.productIds,\n max_time: params.maxTimestampInclusive ?? [nowInSeconds()],\n });\n\n return mapValues(timestampToProductsMap, (productIdToProduct) => {\n return mapValues(productIdToProduct, (indexerProduct) => {\n return {\n ...mapIndexerServerProduct(indexerProduct.product),\n submissionIndex: indexerProduct.submission_idx,\n };\n });\n });\n }\n\n /**\n * Retrieves historical events\n *\n * @param params\n */\n async getEvents(\n params: GetIndexerEventsParams,\n ): Promise<GetIndexerEventsResponse> {\n const serverLimit = ((): IndexerServerEventsParams['limit'] | undefined => {\n if (!params.limit) {\n return;\n }\n\n if (params.limit.type === 'events') {\n return {\n raw: params.limit.value,\n };\n }\n return {\n txs: params.limit.value,\n };\n })();\n\n const baseResponse = await this.query('events', {\n subaccounts: params.subaccounts?.map((subaccount) =>\n subaccountToHex({\n subaccountOwner: subaccount.subaccountOwner,\n subaccountName: subaccount.subaccountName,\n }),\n ),\n product_ids: params.productIds,\n isolated: params.isolated,\n event_types: params.eventTypes,\n max_time: params.maxTimestampInclusive,\n desc: params.desc,\n limit: serverLimit,\n idx: params.startCursor,\n });\n\n // Keep track of the last tx index, and go to the next one if the submission_idx for the currently processed event does not match\n // txs are ordered the same as events, so this should be correct\n let lastTxIdx = 0;\n return baseResponse.events.map((event): IndexerEventWithTx => {\n if (baseResponse.txs[lastTxIdx].submission_idx !== event.submission_idx) {\n lastTxIdx += 1;\n }\n const tx = baseResponse.txs[lastTxIdx];\n return mapIndexerEventWithTx(event, tx);\n });\n }\n\n /**\n * Retrieves historical orders\n * @param params\n */\n async getOrders(\n params: GetIndexerOrdersParams,\n ): Promise<GetIndexerOrdersResponse> {\n const baseResponse = await this.query('orders', {\n subaccounts: params?.subaccounts?.map((subaccount) =>\n subaccountToHex({\n subaccountOwner: subaccount.subaccountOwner,\n subaccountName: subaccount.subaccountName,\n }),\n ),\n product_ids: params.productIds,\n trigger_types: params.triggerTypes,\n isolated: params.isolated,\n digests: params.digests,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n idx: params.startCursor,\n });\n\n return baseResponse.orders.map(mapIndexerOrder);\n }\n\n /**\n * Gets match order events, this will return the same events as the events query, but with additional information\n * to identify the order that was matched\n *\n * @param params\n */\n async getMatchEvents(\n params: GetIndexerMatchEventsParams,\n ): Promise<GetIndexerMatchEventsResponse> {\n const baseResponse = await this.query('matches', {\n subaccounts: params?.subaccounts?.map((subaccount) =>\n subaccountToHex({\n subaccountOwner: subaccount.subaccountOwner,\n subaccountName: subaccount.subaccountName,\n }),\n ),\n product_ids: params.productIds,\n isolated: params.isolated,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n idx: params.startCursor,\n });\n\n // Same as logic in `getEvents`\n let lastTxIdx = 0;\n return baseResponse.matches.map((matchEvent): IndexerMatchEvent => {\n if (\n baseResponse.txs[lastTxIdx].submission_idx !== matchEvent.submission_idx\n ) {\n lastTxIdx += 1;\n }\n const { tx, timestamp } = baseResponse.txs[lastTxIdx];\n\n // We use this to derive the product ID for the match\n const postBalances = mapIndexerMatchEventBalances(\n matchEvent.post_balance,\n );\n\n return {\n productId: postBalances.base.productId,\n isolated: matchEvent.isolated,\n totalFee: toBigNumber(matchEvent.fee),\n sequencerFee: toBigNumber(matchEvent.sequencer_fee),\n builderFee: toBigNumber(matchEvent.builder_fee),\n baseFilled: toBigNumber(matchEvent.base_filled),\n quoteFilled: toBigNumber(matchEvent.quote_filled),\n cumulativeFee: toBigNumber(matchEvent.cumulative_fee),\n cumulativeBaseFilled: toBigNumber(matchEvent.cumulative_base_filled),\n cumulativeQuoteFilled: toBigNumber(matchEvent.cumulative_quote_filled),\n digest: matchEvent.digest,\n order: matchEvent.order,\n submissionIndex: matchEvent.submission_idx,\n timestamp: toBigNumber(timestamp),\n preEventTrackedVars: {\n netEntryUnrealized: toBigNumber(matchEvent.net_entry_unrealized),\n netEntryCumulative: toBigNumber(matchEvent.net_entry_cumulative),\n },\n preBalances: mapIndexerMatchEventBalances(matchEvent.pre_balance),\n postBalances,\n tx,\n isTaker: matchEvent.is_taker,\n realizedPnl: toBigNumber(matchEvent.realized_pnl),\n closedAmount: toBigNumber(matchEvent.closed_amount),\n closedNetEntry: toBigNumber(matchEvent.closed_net_entry),\n margin: matchEvent.margin ? toBigNumber(matchEvent.margin) : null,\n ...subaccountFromHex(matchEvent.order.sender),\n };\n });\n }\n\n /**\n * Retrieves historical funding & interest payments.\n * NOTE: `limit` is an upperbound. If a user changes position size such that his position is 0 during each funding/interest tick,\n * then the indexer will return fewer than `limit` results per page. However, more events can be present. This means that\n * there isn't a reliable way to determine whether there is a next page. We just need to keep paginating until the next cursor is null.\n *\n * @param params\n */\n async getInterestFundingPayments(\n params: GetIndexerInterestFundingPaymentsParams,\n ): Promise<GetIndexerInterestFundingPaymentsResponse> {\n const baseResponse = await this.query('interest_and_funding', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccount.subaccountOwner,\n subaccountName: params.subaccount.subaccountName,\n }),\n product_ids: params.productIds,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n max_idx: params.startCursor,\n });\n\n return {\n fundingPayments: baseResponse.funding_payments.map(\n mapIndexerProductPayment,\n ),\n interestPayments: baseResponse.interest_payments.map(\n mapIndexerProductPayment,\n ),\n nextCursor: baseResponse.next_idx,\n };\n }\n\n /**\n * Gets quote (USDT) price in terms of USD\n */\n async getQuotePrice(): Promise<GetIndexerQuotePriceResponse> {\n const baseResponse = await this.query('quote_price', {});\n return {\n price: removeDecimals(baseResponse.price_x18),\n };\n }\n\n /**\n * Fetches currently registered linked signer with the remaining txs allowed for the subaccount\n */\n async getLinkedSignerWithRateLimit(\n params: GetIndexerLinkedSignerParams,\n ): Promise<GetIndexerLinkedSignerResponse> {\n const baseResponse = await this.query('linked_signer_rate_limit', {\n subaccount: subaccountToHex(params.subaccount),\n });\n return {\n totalTxLimit: toBigNumber(baseResponse.total_tx_limit),\n remainingTxs: toBigNumber(baseResponse.remaining_tx),\n signer: baseResponse.signer,\n waitTimeUntilNextTx: toBigNumber(baseResponse.wait_time),\n };\n }\n\n /**\n * Retrieve historical market snapshots\n * @param params\n */\n async getMarketSnapshots(\n params: GetIndexerMarketSnapshotsParams,\n ): Promise<GetIndexerMarketSnapshotsResponse> {\n const baseResponse = await this.query('market_snapshots', {\n interval: mapSnapshotsIntervalToServerParams(params),\n product_ids: params.productIds,\n });\n\n return baseResponse.snapshots.map(mapIndexerMarketSnapshot);\n }\n\n /**\n * Retrieve historical market snapshots from Edge\n * @param params\n */\n async getEdgeMarketSnapshots(\n params: GetIndexerEdgeMarketSnapshotsParams,\n ): Promise<GetIndexerEdgeMarketSnapshotResponse> {\n const baseResponse = await this.query('edge_market_snapshots', {\n interval: mapSnapshotsIntervalToServerParams(params),\n });\n\n return mapValues(baseResponse.snapshots, (snapshots) =>\n snapshots.map(mapIndexerMarketSnapshot),\n );\n }\n\n /**\n * Retrieve maker statistics for a given epoch\n *\n * @param params\n */\n async getMakerStatistics(\n params: GetIndexerMakerStatisticsParams,\n ): Promise<GetIndexerMakerStatisticsResponse> {\n const baseResponse = await this.query('maker_statistics', {\n product_id: params.productId,\n epoch: params.epoch,\n interval: params.interval,\n });\n\n return {\n rewardCoefficient: toBigNumber(baseResponse.reward_coefficient),\n makers: baseResponse.makers.map(mapIndexerMakerStatistics),\n };\n }\n\n /**\n * Retrieve leaderboard stats for a given contest\n *\n * @param params\n */\n async getLeaderboard(\n params: GetIndexerLeaderboardParams,\n ): Promise<GetIndexerLeaderboardResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard', {\n contest_id: params.contestId,\n rank_type: params.rankType,\n start: params.startCursor,\n limit: params.limit,\n order: params.order,\n });\n\n return {\n participants: baseResponse.positions.map(mapIndexerLeaderboardPosition),\n };\n }\n\n /**\n * Retrieve leaderboard ranking of a subaccount on a given contest\n *\n * @param params\n */\n async getLeaderboardParticipant(\n params: GetIndexerLeaderboardParticipantParams,\n ): Promise<GetIndexerLeaderboardParticipantResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard_rank', {\n subaccount: subaccountToHex(params.subaccount),\n contest_ids: params.contestIds,\n });\n\n return {\n participant: mapValues(baseResponse.positions, (position) =>\n mapIndexerLeaderboardPosition(position),\n ),\n };\n }\n\n /**\n * Registers a subaccount for one or more contests. Requires EIP-712 signing.\n *\n * @param params - Registration parameters including contest IDs and signing config.\n */\n async registerLeaderboard(\n params: RegisterLeaderboardParams,\n ): Promise<RegisterLeaderboardResponse> {\n const signatureParams: EIP712LeaderboardAuthenticationParams = {\n expiration: toIntegerString(params.recvTime ?? getDefaultRecvTime()),\n subaccountName: params.subaccountName,\n subaccountOwner: params.subaccountOwner,\n contestIds: params.contestIds,\n };\n\n const tx = getNadoEIP712Values(\n 'leaderboard_authentication',\n signatureParams,\n );\n const signature = await this.sign(\n 'leaderboard_authentication',\n params.verifyingAddr,\n params.chainId,\n signatureParams,\n );\n\n const updateRegistrationTx: SignedTx<EIP712LeaderboardAuthenticationValues> =\n {\n tx,\n signature,\n };\n\n const baseResponse = await this.rewardsQuery('leaderboard_register', {\n update_registration: updateRegistrationTx,\n });\n\n return {\n registrations: baseResponse.registrations.map(\n mapIndexerLeaderboardRegistration,\n ),\n };\n }\n\n /**\n * Retrieves contest registrations for a subaccount. Supports batch lookup\n * across multiple contests with an optional active filter.\n *\n * @param params - Query parameters including subaccount and contest IDs.\n */\n async getLeaderboardRegistrations(\n params: GetIndexerLeaderboardRegistrationsParams,\n ): Promise<GetIndexerLeaderboardRegistrationsResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard_registrations', {\n subaccount: subaccountToHex(params.subaccount),\n contest_ids: params.contestIds,\n active: params.active,\n });\n\n return {\n registrations: baseResponse.registrations.map(\n mapIndexerLeaderboardRegistration,\n ),\n };\n }\n\n /**\n * Retrieve metadata of provided leaderboard contests\n *\n * @param params\n */\n async getLeaderboardContests(\n params: GetIndexerLeaderboardContestsParams,\n ): Promise<GetIndexerLeaderboardContestsResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard_contests', {\n contest_ids: params.contestIds,\n active: params.active,\n });\n\n return {\n contests: baseResponse.contests.map(mapIndexerLeaderboardContest),\n };\n }\n\n /**\n * Retrieve signature and tx to submit a fast withdrawal\n *\n * @param params\n */\n async getFastWithdrawalSignature(\n params: GetIndexerFastWithdrawalSignatureParams,\n ): Promise<GetIndexerFastWithdrawalSignatureResponse> {\n const baseResponse = await this.query('fast_withdrawal_signature', params);\n return {\n idx: toBigInt(baseResponse.idx),\n tx: baseResponse.tx,\n txV2: baseResponse.tx_v2,\n txBytes: getValidatedHex(baseResponse.tx_bytes),\n signatures: baseResponse.signatures.map(getValidatedHex),\n };\n }\n\n async getNlpSnapshots(\n params: GetIndexerNlpSnapshotsParams,\n ): Promise<GetIndexerNlpSnapshotsResponse> {\n const baseResponse = await this.query('nlp_snapshots', {\n interval: {\n count: params.limit,\n max_time: params.maxTimeInclusive\n ? toIntegerString(params.maxTimeInclusive)\n : undefined,\n granularity: params.granularity,\n },\n });\n\n return {\n snapshots: baseResponse.snapshots.map(mapIndexerNlpSnapshot),\n };\n }\n\n /**\n * Retrieves the subaccount's DDA (Direct Deposit Address)\n * @param params\n */\n async getSubaccountDDA(\n params: GetIndexerSubaccountDDAParams,\n ): Promise<GetIndexerSubaccountDDAResponse> {\n const baseResponse = await this.query('direct_deposit_address', {\n subaccount: subaccountToHex(params.subaccount),\n });\n\n return {\n address: getValidatedAddress(baseResponse.v1_address),\n };\n }\n\n async getSequencerBacklog(): Promise<GetIndexerBacklogResponse> {\n const baseResponse = await this.query('backlog', {});\n\n return {\n totalTxs: toBigNumber(baseResponse.total_txs),\n totalSubmissions: toBigNumber(baseResponse.total_submissions),\n backlogSize: toBigNumber(baseResponse.backlog_size),\n updatedAt: toBigNumber(baseResponse.updated_at),\n backlogEtaInSeconds: baseResponse.backlog_eta_in_seconds\n ? toBigNumber(baseResponse.backlog_eta_in_seconds)\n : null,\n txsPerSecond: baseResponse.txs_per_second\n ? toBigNumber(baseResponse.txs_per_second)\n : null,\n };\n }\n\n /**\n * Retrieves private alpha choice information for a given address\n * @param params\n */\n async getPrivateAlphaChoice(\n params: GetIndexerPrivateAlphaChoiceParams,\n ): Promise<GetIndexerPrivateAlphaChoiceResponse> {\n const baseResponse = await this.rewardsQuery('private_alpha_choice', {\n address: params.address,\n });\n\n return {\n points: toBigNumber(baseResponse.points),\n feeRefund: toBigNumber(baseResponse.fee_refund),\n nftEligibility: baseResponse.nft_eligibility,\n };\n }\n\n /**\n * Retrieves points information for a given address, including points per epoch and all-time points\n * @param params\n */\n async getPoints(\n params: GetIndexerPointsParams,\n ): Promise<GetIndexerPointsResponse> {\n const baseResponse = await this.rewardsQuery('nado_points', {\n address: params.address,\n });\n\n return {\n pointsPerEpoch: baseResponse.points_per_epoch.map((epoch) => ({\n epoch: epoch.epoch,\n description: epoch.description,\n startTime: toBigNumber(epoch.start_time),\n endTime: toBigNumber(epoch.end_time),\n totalPoints: toBigNumber(epoch.total_points),\n points: toBigNumber(epoch.points),\n rank: epoch.rank,\n tier: epoch.tier,\n })),\n allTimePoints: {\n points: toBigNumber(baseResponse.all_time_points.points),\n rank: baseResponse.all_time_points.rank,\n tier: baseResponse.all_time_points.tier,\n },\n };\n }\n\n /**\n * Retrieves xPoints information (Nado x xStocks points program) for a given address,\n * including per-epoch points, all-time points, and per-quest breakdowns.\n * @param params\n */\n async getXPoints(\n params: GetIndexerXPointsParams,\n ): Promise<GetIndexerXPointsResponse> {\n const baseResponse = await this.rewardsQuery('nado_xpoints', {\n address: params.address,\n });\n\n const mapQuests = (\n quests: typeof baseResponse.all_time_points.quests,\n ): GetIndexerXPointsResponse['allTimePoints']['quests'] =>\n quests.map((quest) => ({\n questType: quest.quest_type,\n points: toBigNumber(quest.points),\n }));\n\n return {\n pointsPerEpoch: baseResponse.points_per_epoch.map((epoch) => ({\n epoch: epoch.epoch,\n description: epoch.description,\n startTime: toBigNumber(epoch.start_time),\n endTime: toBigNumber(epoch.end_time),\n totalPoints: toBigNumber(epoch.total_points),\n rank: epoch.rank,\n quests: mapQuests(epoch.quests),\n })),\n allTimePoints: {\n totalPoints: toBigNumber(baseResponse.all_time_points.total_points),\n rank: baseResponse.all_time_points.rank,\n quests: mapQuests(baseResponse.all_time_points.quests),\n },\n };\n }\n\n /**\n * Retrieves cash incentives information for a given wallet address: per-event platform volume,\n * unlocked rewards, and `wallet.claim`, which carries the claim status plus the merkle proof when\n * that status is `claimable`.\n * @param params\n */\n async getCashIncentives(\n params: GetIndexerCashIncentivesParams,\n ): Promise<GetIndexerCashIncentivesResponse> {\n const baseResponse = await this.rewardsQuery('cash_incentives', {\n wallet_address: params.address,\n });\n\n return {\n events: baseResponse.events.map((event) => ({\n metadata: {\n eventId: event.metadata.event_id,\n description: event.metadata.description,\n epochStart: toBigNumber(event.metadata.epoch_start),\n epochEnd: toBigNumber(event.metadata.epoch_end),\n maxVolume: removeDecimals(event.metadata.max_volume),\n maxReward: removeDecimals(event.metadata.max_reward),\n minVolume: removeDecimals(event.metadata.min_volume),\n minReward: removeDecimals(event.metadata.min_reward),\n },\n platform: {\n platformVolume: removeDecimals(event.platform.platform_volume),\n unlockedReward: removeDecimals(event.platform.unlocked_reward),\n },\n wallet: {\n reward: removeDecimals(event.wallet.reward),\n claim:\n event.wallet.claim.status === 'claimable'\n ? {\n status: 'claimable',\n airdropAddress: getValidatedAddress(\n event.wallet.claim.airdrop_address,\n ),\n week: event.wallet.claim.week,\n // Kept in raw token units so it can be passed to the airdrop contract unchanged\n totalAmount: toBigNumber(event.wallet.claim.total_amount),\n proof: event.wallet.claim.proof.map(getValidatedHex),\n }\n : { status: event.wallet.claim.status },\n },\n })),\n walletSummary: {\n totalReward: removeDecimals(baseResponse.wallet_summary.total_reward),\n claimableReward: removeDecimals(\n baseResponse.wallet_summary.claimable_reward,\n ),\n },\n };\n }\n\n /**\n * Initiates a social account connection flow. Returns a URL the user must visit to complete the OAuth flow.\n * Requires EIP-712 signing.\n *\n * @param params - Connection parameters including provider and signing config.\n */\n async connectSocialAccount(\n params: ConnectSocialAccountParams,\n ): Promise<ConnectSocialAccountResponse> {\n const signatureParams: EIP712SocialAuthenticationParams = {\n expiration: toIntegerString(params.recvTime ?? getDefaultRecvTime()),\n subaccountName: params.subaccountName,\n subaccountOwner: params.subaccountOwner,\n provider: params.provider,\n };\n\n const tx = getNadoEIP712Values('social_authentication', signatureParams);\n const signature = await this.sign(\n 'social_authentication',\n params.verifyingAddr,\n params.chainId,\n signatureParams,\n );\n\n const baseResponse = await this.rewardsQuery('social_connect', {\n update_social_account: { tx, signature },\n });\n\n return { url: baseResponse.url };\n }\n\n /**\n * Lists linked social accounts for a given address.\n *\n * @param params - Query parameters including the wallet address.\n */\n async listSocialAccounts(\n params: ListIndexerSocialAccountsParams,\n ): Promise<ListIndexerSocialAccountsResponse> {\n const baseResponse = await this.rewardsQuery('list_social_accounts', {\n address: params.address,\n });\n\n return {\n accounts: baseResponse.accounts.map((a) => ({\n provider: a.provider,\n username: a.username,\n displayName: a.display_name,\n profileImageUrl: a.profile_image_url,\n })),\n };\n }\n\n /**\n * Revokes a linked social account. Requires EIP-712 signing.\n *\n * @param params - Revocation parameters including provider and signing config.\n */\n async revokeSocialAccount(\n params: RevokeSocialAccountParams,\n ): Promise<RevokeSocialAccountResponse> {\n const signatureParams: EIP712SocialAuthenticationParams = {\n expiration: toIntegerString(params.recvTime ?? getDefaultRecvTime()),\n subaccountName: params.subaccountName,\n subaccountOwner: params.subaccountOwner,\n provider: params.provider,\n };\n\n const tx = getNadoEIP712Values('social_authentication', signatureParams);\n const signature = await this.sign(\n 'social_authentication',\n params.verifyingAddr,\n params.chainId,\n signatureParams,\n );\n\n const baseResponse = await this.rewardsQuery('revoke_social_account', {\n update_social_account: { tx, signature },\n });\n\n return {\n accounts: baseResponse.accounts.map((a) => ({\n provider: a.provider,\n username: a.username,\n displayName: a.display_name,\n profileImageUrl: a.profile_image_url,\n })),\n };\n }\n\n /**\n * Get tickers from the v2 indexer endpoint\n * @param params\n */\n async getV2Tickers(\n params: GetIndexerV2TickersParams,\n ): Promise<GetIndexerV2TickersResponse> {\n const response =\n await this.axiosInstance.get<IndexerServerV2TickersResponse>(\n `${this.v2Url}/tickers`,\n { params },\n );\n\n this.checkResponseStatus(response);\n\n return mapValues(response.data, mapIndexerV2Ticker);\n }\n\n /**\n * Get symbols with market hours from the v2 indexer endpoint\n * @param params\n */\n async getV2Symbols(\n params?: GetIndexerV2SymbolsParams,\n ): Promise<GetIndexerV2SymbolsResponse> {\n const response =\n await this.axiosInstance.get<IndexerServerV2SymbolsResponse>(\n `${this.v2Url}/symbols`,\n {\n params: {\n product_type: params?.productType,\n product_ids: params?.productIds,\n },\n },\n );\n\n this.checkResponseStatus(response);\n\n return mapValues(response.data, mapIndexerV2Symbols);\n }\n\n protected query<TRequestType extends IndexerServerQueryRequestType>(\n requestType: TRequestType,\n params: IndexerServerQueryRequestByType[TRequestType],\n ): Promise<IndexerServerQueryResponseByType[TRequestType]> {\n return this.queryWithUrl(this.v1Url, requestType, params);\n }\n\n /**\n * Runs a query against the rewards endpoint, which serves leaderboard, points,\n * cash incentives, private alpha, and social account queries\n */\n protected rewardsQuery<TRequestType extends IndexerServerQueryRequestType>(\n requestType: TRequestType,\n params: IndexerServerQueryRequestByType[TRequestType],\n ): Promise<IndexerServerQueryResponseByType[TRequestType]> {\n return this.queryWithUrl(this.rewardsUrl, requestType, params);\n }\n\n private async queryWithUrl<\n TRequestType extends IndexerServerQueryRequestType,\n >(\n url: string,\n requestType: TRequestType,\n params: IndexerServerQueryRequestByType[TRequestType],\n ): Promise<IndexerServerQueryResponseByType[TRequestType]> {\n const reqBody: IndexerQueryRequestBody = {\n [requestType]: params,\n };\n const response = await this.axiosInstance.post<\n IndexerServerQueryResponseByType[TRequestType]\n >(url, reqBody);\n\n this.checkResponseStatus(response);\n\n return response.data;\n }\n\n protected async sign<T extends SignableRequestType>(\n requestType: T,\n verifyingContract: string,\n chainId: number,\n params: SignableRequestTypeToParams[T],\n ) {\n const walletClient =\n this.opts.linkedSignerWalletClient ?? this.opts.walletClient;\n\n if (!walletClient) {\n throw new WalletNotProvidedError();\n }\n\n return getSignedTransactionRequest({\n chainId,\n requestParams: params,\n requestType,\n walletClient,\n verifyingContract,\n });\n }\n\n private checkResponseStatus(response: AxiosResponse) {\n if (isIndexerServerFailureResponse(response.data)) {\n throw new IndexerServerFailureError(response.data, response.status);\n }\n if (response.status !== 200 || !response.data) {\n throw Error(\n `Unexpected response from server: ${response.status} ${response.statusText}`,\n );\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IndexerBaseClient.js","names":[],"sources":["../src/IndexerBaseClient.ts"],"sourcesContent":["import {\n EIP712LeaderboardAuthenticationParams,\n EIP712LeaderboardAuthenticationValues,\n EIP712SocialAuthenticationParams,\n getDefaultRecvTime,\n getNadoClientTypeHeaders,\n getNadoEIP712Values,\n getSignedTransactionRequest,\n getValidatedAddress,\n getValidatedHex,\n mapValues,\n nowInSeconds,\n removeDecimals,\n SignableRequestType,\n SignableRequestTypeToParams,\n SignedTx,\n subaccountFromHex,\n subaccountToHex,\n toBigInt,\n toBigNumber,\n toIntegerString,\n WalletClientWithAccount,\n WalletNotProvidedError,\n} from '@nadohq/shared';\nimport axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport {\n mapIndexerCandlesticks,\n mapIndexerEvent,\n mapIndexerEventWithTx,\n mapIndexerFundingRate,\n mapIndexerFundingRateHistory,\n mapIndexerLeaderboardContest,\n mapIndexerLeaderboardPosition,\n mapIndexerLeaderboardRegistration,\n mapIndexerMakerStatistics,\n mapIndexerMarketSnapshot,\n mapIndexerMatchEventBalances,\n mapIndexerNlpSnapshot,\n mapIndexerOrder,\n mapIndexerPerpPrices,\n mapIndexerPortfolio,\n mapIndexerPosition,\n mapIndexerProductPayment,\n mapIndexerServerProduct,\n mapIndexerV2Symbols,\n mapIndexerV2Ticker,\n mapSnapshotsIntervalToServerParams,\n} from './dataMappers';\nimport {\n ConnectSocialAccountParams,\n ConnectSocialAccountResponse,\n GetIndexerBacklogResponse,\n GetIndexerCandlesticksParams,\n GetIndexerCandlesticksResponse,\n GetIndexerCashIncentivesParams,\n GetIndexerCashIncentivesResponse,\n GetIndexerEdgeCandlesticksParams,\n GetIndexerEdgeCandlesticksResponse,\n GetIndexerEdgeMarketSnapshotResponse,\n GetIndexerEdgeMarketSnapshotsParams,\n GetIndexerEventsParams,\n GetIndexerEventsResponse,\n GetIndexerFastWithdrawalSignatureParams,\n GetIndexerFastWithdrawalSignatureResponse,\n GetIndexerFundingRateHistoryParams,\n GetIndexerFundingRateHistoryResponse,\n GetIndexerFundingRateParams,\n GetIndexerFundingRateResponse,\n GetIndexerInterestFundingPaymentsParams,\n GetIndexerInterestFundingPaymentsResponse,\n GetIndexerLeaderboardContestsParams,\n GetIndexerLeaderboardContestsResponse,\n GetIndexerLeaderboardParams,\n GetIndexerLeaderboardParticipantParams,\n GetIndexerLeaderboardParticipantResponse,\n GetIndexerLeaderboardRegistrationsParams,\n GetIndexerLeaderboardRegistrationsResponse,\n GetIndexerLeaderboardResponse,\n GetIndexerLinkedSignerParams,\n GetIndexerLinkedSignerResponse,\n GetIndexerMakerStatisticsParams,\n GetIndexerMakerStatisticsResponse,\n GetIndexerMarketSnapshotsParams,\n GetIndexerMarketSnapshotsResponse,\n GetIndexerMatchEventsParams,\n GetIndexerMatchEventsResponse,\n GetIndexerMultiProductFundingRatesParams,\n GetIndexerMultiProductFundingRatesResponse,\n GetIndexerMultiProductPerpPricesParams,\n GetIndexerMultiProductPerpPricesResponse,\n GetIndexerMultiProductSnapshotsParams,\n GetIndexerMultiProductSnapshotsResponse,\n GetIndexerMultiSubaccountSnapshotsParams,\n GetIndexerMultiSubaccountSnapshotsResponse,\n GetIndexerNlpSnapshotsParams,\n GetIndexerNlpSnapshotsResponse,\n GetIndexerOraclePricesParams,\n GetIndexerOraclePricesResponse,\n GetIndexerOrdersParams,\n GetIndexerOrdersResponse,\n GetIndexerPerpPricesParams,\n GetIndexerPerpPricesResponse,\n GetIndexerPointsParams,\n GetIndexerPointsResponse,\n GetIndexerPortfolioParams,\n GetIndexerPortfolioResponse,\n GetIndexerPositionsParams,\n GetIndexerPositionsResponse,\n GetIndexerPrivateAlphaChoiceParams,\n GetIndexerPrivateAlphaChoiceResponse,\n GetIndexerProductSnapshotsParams,\n GetIndexerProductSnapshotsResponse,\n GetIndexerQuotePriceResponse,\n GetIndexerReferralCodeParams,\n GetIndexerReferralCodeResponse,\n GetIndexerSubaccountDDAParams,\n GetIndexerSubaccountDDAResponse,\n GetIndexerV2SymbolsParams,\n GetIndexerV2SymbolsResponse,\n GetIndexerV2TickersParams,\n GetIndexerV2TickersResponse,\n GetIndexerXPointsParams,\n GetIndexerXPointsResponse,\n IndexerEventWithTx,\n IndexerMatchEvent,\n IndexerOraclePrice,\n IndexerServerEventsParams,\n IndexerServerFailureError,\n IndexerServerQueryRequestByType,\n IndexerServerQueryRequestType,\n IndexerServerQueryResponseByType,\n IndexerServerV2SymbolsResponse,\n IndexerServerV2TickersResponse,\n IndexerSnapshotBalance,\n IndexerSubaccountSnapshot,\n isIndexerServerFailureResponse,\n ListIndexerSocialAccountsParams,\n ListIndexerSocialAccountsResponse,\n ListIndexerSubaccountsParams,\n ListIndexerSubaccountsResponse,\n RegisterLeaderboardParams,\n RegisterLeaderboardResponse,\n RevokeSocialAccountParams,\n RevokeSocialAccountResponse,\n} from './types';\n\nexport interface IndexerClientOpts {\n // Server base URL, without a version segment (ex. `https://api.prod.nado.xyz/archive`)\n url: string;\n // Rewards service base URL, including the version segment (ex. `https://api.prod.nado.xyz/rewards/v1`).\n // Defaults to `${url}/rewards/v1`.\n rewardsUrl?: string;\n // Wallet Client for EIP712 signing\n walletClient?: WalletClientWithAccount;\n // Linked signer registered through the engine, if provided, execute requests will use this signer\n linkedSignerWalletClient?: WalletClientWithAccount;\n // If provided, identifies the calling client, sent as a header with every request\n clientType?: string;\n}\n\ntype IndexerQueryRequestBody = Partial<IndexerServerQueryRequestByType>;\n\n/**\n * Base client for all indexer requests\n */\nexport class IndexerBaseClient {\n readonly opts: IndexerClientOpts;\n readonly v1Url: string;\n readonly v2Url: string;\n readonly rewardsUrl: string;\n readonly axiosInstance: AxiosInstance;\n\n constructor(opts: IndexerClientOpts) {\n this.opts = opts;\n this.axiosInstance = axios.create({\n withCredentials: true,\n // We have custom logic to validate response status and create an appropriate error\n validateStatus: () => true,\n headers: getNadoClientTypeHeaders(opts.clientType),\n });\n this.v1Url = `${opts.url}/v1`;\n this.v2Url = `${opts.url}/v2`;\n this.rewardsUrl = opts.rewardsUrl ?? `${opts.url}/rewards/v1`;\n }\n\n /**\n * Sets the linked signer for execute requests\n *\n * @param linkedSignerWalletClient The linkedSigner to use for all signatures. Set to null to revert to the chain signer\n */\n public setLinkedSigner(\n linkedSignerWalletClient: WalletClientWithAccount | null,\n ) {\n this.opts.linkedSignerWalletClient = linkedSignerWalletClient ?? undefined;\n }\n\n /**\n * List all subaccounts\n *\n * @param params\n */\n async listSubaccounts(\n params: ListIndexerSubaccountsParams,\n ): Promise<ListIndexerSubaccountsResponse> {\n const baseResponse = await this.query('subaccounts', params);\n\n return baseResponse.subaccounts.map((item) => {\n const subaccount = subaccountFromHex(item.subaccount);\n return {\n hexId: item.subaccount,\n createdAt: Number(item.created_at),\n isolated: item.isolated,\n ...subaccount,\n };\n });\n }\n\n /**\n * Retrieve snapshots of multiple subaccounts at multiple points in time.\n * Each snapshot is a view of the subaccount's balances at this point in time, with tracked variables for interest, funding, etc.\n *\n * @param params\n */\n async getMultiSubaccountSnapshots(\n params: GetIndexerMultiSubaccountSnapshotsParams,\n ): Promise<GetIndexerMultiSubaccountSnapshotsResponse> {\n const subaccountHexIds = params.subaccounts.map(\n ({ subaccountOwner, subaccountName }) =>\n subaccountToHex({\n subaccountOwner,\n subaccountName,\n }),\n );\n\n const baseResponse = await this.query('account_snapshots', {\n subaccounts: subaccountHexIds,\n timestamps: params.timestamps,\n isolated: params.isolated,\n });\n\n const snapshotsBySubaccount = mapValues(\n baseResponse.snapshots,\n (balanceSnapshots) => {\n const snapshotByTimestamp: Record<string, IndexerSubaccountSnapshot> =\n {};\n\n Object.entries(balanceSnapshots).forEach(([timestamp, events]) => {\n const balances: IndexerSnapshotBalance[] =\n events.map(mapIndexerEvent);\n\n snapshotByTimestamp[timestamp] = {\n timestamp: toBigNumber(timestamp),\n balances,\n };\n });\n\n return snapshotByTimestamp;\n },\n );\n\n return {\n subaccountHexIds,\n snapshots: snapshotsBySubaccount,\n };\n }\n\n /**\n * Retrieves referral code for an address\n *\n * @param params\n */\n async getReferralCode(\n params: GetIndexerReferralCodeParams,\n ): Promise<GetIndexerReferralCodeResponse> {\n const baseResponse = await this.query('referral_code', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccount.subaccountOwner,\n subaccountName: params.subaccount.subaccountName,\n }),\n });\n\n return {\n referralCode: baseResponse.referral_code,\n };\n }\n\n /**\n * Retrieves funding rate for a product, where 1 = 100%\n * @param params\n */\n async getFundingRate(\n params: GetIndexerFundingRateParams,\n ): Promise<GetIndexerFundingRateResponse> {\n const baseResponse = await this.query('funding_rate', {\n product_id: params.productId,\n });\n\n return mapIndexerFundingRate(baseResponse);\n }\n\n /**\n * Retrieves funding rate for multiple products, where 1 = 100%\n * @param params\n */\n async getMultiProductFundingRates(\n params: GetIndexerMultiProductFundingRatesParams,\n ): Promise<GetIndexerMultiProductFundingRatesResponse> {\n const baseResponse = await this.query('funding_rates', {\n product_ids: params.productIds,\n });\n\n return mapValues(baseResponse, mapIndexerFundingRate);\n }\n\n /**\n * Retrieves a perp product's historical (realized hourly) funding rates,\n * ordered ascending by timestamp, where 1 = 100%.\n *\n * To paginate forward, pass the last entry's `timestamp + 1` as the next\n * request's `startTimeInclusive`.\n *\n * @param params\n */\n async getFundingRateHistory(\n params: GetIndexerFundingRateHistoryParams,\n ): Promise<GetIndexerFundingRateHistoryResponse> {\n const baseResponse = await this.query('funding_rate_history', {\n product_id: params.productId,\n start_time: params.startTimeInclusive,\n end_time: params.endTimeInclusive,\n limit: params.limit,\n });\n\n return baseResponse.funding_rates.map(mapIndexerFundingRateHistory);\n }\n\n /**\n * Retrieves a subaccount's account-value, PnL, traded-volume, average-trade-size,\n * and markets-traded history across all timeframes, keyed by period. The value\n * aggregates the cross-margin account plus every isolated child; the queried\n * subaccount must be cross-margin.\n *\n * Points are downsampled per timeframe, so the most recent point can be up to\n * ~20 minutes stale. For the exact live value, use the engine client's\n * `getSubaccountSummary` query instead.\n *\n * @param params\n */\n async getPortfolio(\n params: GetIndexerPortfolioParams,\n ): Promise<GetIndexerPortfolioResponse> {\n const baseResponse = await this.query('portfolio', {\n subaccount: subaccountToHex(params.subaccount),\n });\n\n return mapIndexerPortfolio(baseResponse);\n }\n\n /**\n * Retrieves latest mark/index price for a perp product\n * @param params\n */\n async getPerpPrices(\n params: GetIndexerPerpPricesParams,\n ): Promise<GetIndexerPerpPricesResponse> {\n const baseResponse = await this.query('price', {\n product_id: params.productId,\n });\n\n return mapIndexerPerpPrices(baseResponse);\n }\n\n /**\n * Retrieves latest mark/index price for multiple perp products\n * @param params\n */\n async getMultiProductPerpPrices(\n params: GetIndexerMultiProductPerpPricesParams,\n ): Promise<GetIndexerMultiProductPerpPricesResponse> {\n const baseResponse = await this.query('perp_prices', {\n product_ids: params.productIds,\n });\n\n return mapValues(baseResponse, mapIndexerPerpPrices);\n }\n\n /**\n * Retrieves latest oracle prices for provided products\n * @param params\n */\n async getOraclePrices(\n params: GetIndexerOraclePricesParams,\n ): Promise<GetIndexerOraclePricesResponse> {\n const baseResponse = await this.query('oracle_price', {\n product_ids: params.productIds,\n });\n\n return baseResponse.prices.map((price): IndexerOraclePrice => {\n return {\n oraclePrice: removeDecimals(price.oracle_price_x18),\n updateTime: toBigNumber(price.update_time),\n productId: price.product_id,\n };\n });\n }\n\n /**\n * Retrieves candlesticks for a product\n * @param params\n */\n async getCandlesticks(\n params: GetIndexerCandlesticksParams,\n ): Promise<GetIndexerCandlesticksResponse> {\n const baseResponse = await this.query('candlesticks', {\n product_id: params.productId,\n max_time: params.maxTimeInclusive,\n limit: params.limit,\n granularity: params.period,\n });\n\n return baseResponse.candlesticks.map(mapIndexerCandlesticks);\n }\n\n /**\n * Retrieves candlesticks for a product from Edge\n * @param params\n */\n async getEdgeCandlesticks(\n params: GetIndexerEdgeCandlesticksParams,\n ): Promise<GetIndexerEdgeCandlesticksResponse> {\n const baseResponse = await this.query('edge_candlesticks', {\n product_id: params.productId,\n max_time: params.maxTimeInclusive,\n limit: params.limit,\n granularity: params.period,\n });\n\n return baseResponse.candlesticks.map(mapIndexerCandlesticks);\n }\n\n /**\n * Retrieves historical snapshots for a product\n * @param params\n */\n async getProductSnapshots(\n params: GetIndexerProductSnapshotsParams,\n ): Promise<GetIndexerProductSnapshotsResponse> {\n const baseResponse = await this.query('products', {\n product_id: params.productId,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n idx: params.startCursor,\n });\n\n return baseResponse.products.map((product) => {\n return {\n ...mapIndexerServerProduct(product.product),\n submissionIndex: product.submission_idx,\n };\n });\n }\n\n /**\n * Retrieves historical snapshots for multiple products\n * @param params\n */\n async getMultiProductSnapshots(\n params: GetIndexerMultiProductSnapshotsParams,\n ): Promise<GetIndexerMultiProductSnapshotsResponse> {\n const timestampToProductsMap = await this.query('product_snapshots', {\n product_ids: params.productIds,\n max_time: params.maxTimestampInclusive ?? [nowInSeconds()],\n });\n\n return mapValues(timestampToProductsMap, (productIdToProduct) => {\n return mapValues(productIdToProduct, (indexerProduct) => {\n return {\n ...mapIndexerServerProduct(indexerProduct.product),\n submissionIndex: indexerProduct.submission_idx,\n };\n });\n });\n }\n\n /**\n * Retrieves historical events\n *\n * @param params\n */\n async getEvents(\n params: GetIndexerEventsParams,\n ): Promise<GetIndexerEventsResponse> {\n const serverLimit = ((): IndexerServerEventsParams['limit'] | undefined => {\n if (!params.limit) {\n return;\n }\n\n if (params.limit.type === 'events') {\n return {\n raw: params.limit.value,\n };\n }\n return {\n txs: params.limit.value,\n };\n })();\n\n const baseResponse = await this.query('events', {\n subaccounts: params.subaccounts?.map((subaccount) =>\n subaccountToHex({\n subaccountOwner: subaccount.subaccountOwner,\n subaccountName: subaccount.subaccountName,\n }),\n ),\n product_ids: params.productIds,\n isolated: params.isolated,\n event_types: params.eventTypes,\n max_time: params.maxTimestampInclusive,\n desc: params.desc,\n limit: serverLimit,\n idx: params.startCursor,\n });\n\n // Keep track of the last tx index, and go to the next one if the submission_idx for the currently processed event does not match\n // txs are ordered the same as events, so this should be correct\n let lastTxIdx = 0;\n return baseResponse.events.map((event): IndexerEventWithTx => {\n if (baseResponse.txs[lastTxIdx].submission_idx !== event.submission_idx) {\n lastTxIdx += 1;\n }\n const tx = baseResponse.txs[lastTxIdx];\n return mapIndexerEventWithTx(event, tx);\n });\n }\n\n /**\n * Retrieves historical orders\n * @param params\n */\n async getOrders(\n params: GetIndexerOrdersParams,\n ): Promise<GetIndexerOrdersResponse> {\n const baseResponse = await this.query('orders', {\n subaccounts: params?.subaccounts?.map((subaccount) =>\n subaccountToHex({\n subaccountOwner: subaccount.subaccountOwner,\n subaccountName: subaccount.subaccountName,\n }),\n ),\n product_ids: params.productIds,\n trigger_types: params.triggerTypes,\n isolated: params.isolated,\n digests: params.digests,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n idx: params.startCursor,\n });\n\n return baseResponse.orders.map(mapIndexerOrder);\n }\n\n /**\n * Gets match order events, this will return the same events as the events query, but with additional information\n * to identify the order that was matched\n *\n * @param params\n */\n async getMatchEvents(\n params: GetIndexerMatchEventsParams,\n ): Promise<GetIndexerMatchEventsResponse> {\n const baseResponse = await this.query('matches', {\n subaccounts: params?.subaccounts?.map((subaccount) =>\n subaccountToHex({\n subaccountOwner: subaccount.subaccountOwner,\n subaccountName: subaccount.subaccountName,\n }),\n ),\n product_ids: params.productIds,\n isolated: params.isolated,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n idx: params.startCursor,\n });\n\n // Same as logic in `getEvents`\n let lastTxIdx = 0;\n return baseResponse.matches.map((matchEvent): IndexerMatchEvent => {\n if (\n baseResponse.txs[lastTxIdx].submission_idx !== matchEvent.submission_idx\n ) {\n lastTxIdx += 1;\n }\n const { tx, timestamp } = baseResponse.txs[lastTxIdx];\n\n // We use this to derive the product ID for the match\n const postBalances = mapIndexerMatchEventBalances(\n matchEvent.post_balance,\n );\n\n return {\n productId: postBalances.base.productId,\n isolated: matchEvent.isolated,\n totalFee: toBigNumber(matchEvent.fee),\n sequencerFee: toBigNumber(matchEvent.sequencer_fee),\n builderFee: toBigNumber(matchEvent.builder_fee),\n baseFilled: toBigNumber(matchEvent.base_filled),\n quoteFilled: toBigNumber(matchEvent.quote_filled),\n cumulativeFee: toBigNumber(matchEvent.cumulative_fee),\n cumulativeBaseFilled: toBigNumber(matchEvent.cumulative_base_filled),\n cumulativeQuoteFilled: toBigNumber(matchEvent.cumulative_quote_filled),\n digest: matchEvent.digest,\n order: matchEvent.order,\n submissionIndex: matchEvent.submission_idx,\n timestamp: toBigNumber(timestamp),\n preEventTrackedVars: {\n netEntryUnrealized: toBigNumber(matchEvent.net_entry_unrealized),\n netEntryCumulative: toBigNumber(matchEvent.net_entry_cumulative),\n },\n preBalances: mapIndexerMatchEventBalances(matchEvent.pre_balance),\n postBalances,\n tx,\n isTaker: matchEvent.is_taker,\n realizedPnl: toBigNumber(matchEvent.realized_pnl),\n closedAmount: toBigNumber(matchEvent.closed_amount),\n closedNetEntry: toBigNumber(matchEvent.closed_net_entry),\n margin: matchEvent.margin ? toBigNumber(matchEvent.margin) : null,\n ...subaccountFromHex(matchEvent.order.sender),\n };\n });\n }\n\n /**\n * Retrieves a subaccount's historical positions, ordered descending by `openId`.\n * Positions are tracked for every product except the quote product.\n *\n * The response also includes the boundary events (with their transactions) at each\n * position's open and close, or open and latest update while still open; join them\n * to positions via `openId` / `closeId` / `submissionIndex`.\n *\n * To paginate, pass the last returned position's `openId - 1` as the next request's\n * `startCursor`.\n *\n * @param params\n */\n async getPositions(\n params: GetIndexerPositionsParams,\n ): Promise<GetIndexerPositionsResponse> {\n const baseResponse = await this.query('positions', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccount.subaccountOwner,\n subaccountName: params.subaccount.subaccountName,\n }),\n product_id: params.productId,\n isolated: params.isolated,\n open: params.open,\n idx: params.startCursor,\n limit: params.limit,\n });\n\n // Unlike `getEvents`, boundary events aren't strictly ordered against txs, so join by submission index\n const txsBySubmissionIdx = new Map(\n baseResponse.txs.map((tx) => [tx.submission_idx, tx]),\n );\n\n return {\n positions: baseResponse.positions.map(mapIndexerPosition),\n events: baseResponse.events.map((event) => {\n const tx = txsBySubmissionIdx.get(event.submission_idx);\n if (!tx) {\n throw Error(\n `No tx found for position boundary event with submission_idx ${event.submission_idx}`,\n );\n }\n return mapIndexerEventWithTx(event, tx);\n }),\n };\n }\n\n /**\n * Retrieves historical funding & interest payments.\n * NOTE: `limit` is an upperbound. If a user changes position size such that his position is 0 during each funding/interest tick,\n * then the indexer will return fewer than `limit` results per page. However, more events can be present. This means that\n * there isn't a reliable way to determine whether there is a next page. We just need to keep paginating until the next cursor is null.\n *\n * @param params\n */\n async getInterestFundingPayments(\n params: GetIndexerInterestFundingPaymentsParams,\n ): Promise<GetIndexerInterestFundingPaymentsResponse> {\n const baseResponse = await this.query('interest_and_funding', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccount.subaccountOwner,\n subaccountName: params.subaccount.subaccountName,\n }),\n product_ids: params.productIds,\n max_time: params.maxTimestampInclusive,\n limit: params.limit,\n max_idx: params.startCursor,\n });\n\n return {\n fundingPayments: baseResponse.funding_payments.map(\n mapIndexerProductPayment,\n ),\n interestPayments: baseResponse.interest_payments.map(\n mapIndexerProductPayment,\n ),\n nextCursor: baseResponse.next_idx,\n };\n }\n\n /**\n * Gets quote (USDT) price in terms of USD\n */\n async getQuotePrice(): Promise<GetIndexerQuotePriceResponse> {\n const baseResponse = await this.query('quote_price', {});\n return {\n price: removeDecimals(baseResponse.price_x18),\n };\n }\n\n /**\n * Fetches currently registered linked signer with the remaining txs allowed for the subaccount\n */\n async getLinkedSignerWithRateLimit(\n params: GetIndexerLinkedSignerParams,\n ): Promise<GetIndexerLinkedSignerResponse> {\n const baseResponse = await this.query('linked_signer_rate_limit', {\n subaccount: subaccountToHex(params.subaccount),\n });\n return {\n totalTxLimit: toBigNumber(baseResponse.total_tx_limit),\n remainingTxs: toBigNumber(baseResponse.remaining_tx),\n signer: baseResponse.signer,\n waitTimeUntilNextTx: toBigNumber(baseResponse.wait_time),\n };\n }\n\n /**\n * Retrieve historical market snapshots\n * @param params\n */\n async getMarketSnapshots(\n params: GetIndexerMarketSnapshotsParams,\n ): Promise<GetIndexerMarketSnapshotsResponse> {\n const baseResponse = await this.query('market_snapshots', {\n interval: mapSnapshotsIntervalToServerParams(params),\n product_ids: params.productIds,\n });\n\n return baseResponse.snapshots.map(mapIndexerMarketSnapshot);\n }\n\n /**\n * Retrieve historical market snapshots from Edge\n * @param params\n */\n async getEdgeMarketSnapshots(\n params: GetIndexerEdgeMarketSnapshotsParams,\n ): Promise<GetIndexerEdgeMarketSnapshotResponse> {\n const baseResponse = await this.query('edge_market_snapshots', {\n interval: mapSnapshotsIntervalToServerParams(params),\n });\n\n return mapValues(baseResponse.snapshots, (snapshots) =>\n snapshots.map(mapIndexerMarketSnapshot),\n );\n }\n\n /**\n * Retrieve maker statistics for a given epoch\n *\n * @param params\n */\n async getMakerStatistics(\n params: GetIndexerMakerStatisticsParams,\n ): Promise<GetIndexerMakerStatisticsResponse> {\n const baseResponse = await this.query('maker_statistics', {\n product_id: params.productId,\n epoch: params.epoch,\n interval: params.interval,\n });\n\n return {\n rewardCoefficient: toBigNumber(baseResponse.reward_coefficient),\n makers: baseResponse.makers.map(mapIndexerMakerStatistics),\n };\n }\n\n /**\n * Retrieve leaderboard stats for a given contest\n *\n * @param params\n */\n async getLeaderboard(\n params: GetIndexerLeaderboardParams,\n ): Promise<GetIndexerLeaderboardResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard', {\n contest_id: params.contestId,\n rank_type: params.rankType,\n start: params.startCursor,\n limit: params.limit,\n order: params.order,\n });\n\n return {\n participants: baseResponse.positions.map(mapIndexerLeaderboardPosition),\n };\n }\n\n /**\n * Retrieve leaderboard ranking of a subaccount on a given contest\n *\n * @param params\n */\n async getLeaderboardParticipant(\n params: GetIndexerLeaderboardParticipantParams,\n ): Promise<GetIndexerLeaderboardParticipantResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard_rank', {\n subaccount: subaccountToHex(params.subaccount),\n contest_ids: params.contestIds,\n });\n\n return {\n participant: mapValues(baseResponse.positions, (position) =>\n mapIndexerLeaderboardPosition(position),\n ),\n };\n }\n\n /**\n * Registers a subaccount for one or more contests. Requires EIP-712 signing.\n *\n * @param params - Registration parameters including contest IDs and signing config.\n */\n async registerLeaderboard(\n params: RegisterLeaderboardParams,\n ): Promise<RegisterLeaderboardResponse> {\n const signatureParams: EIP712LeaderboardAuthenticationParams = {\n expiration: toIntegerString(params.recvTime ?? getDefaultRecvTime()),\n subaccountName: params.subaccountName,\n subaccountOwner: params.subaccountOwner,\n contestIds: params.contestIds,\n };\n\n const tx = getNadoEIP712Values(\n 'leaderboard_authentication',\n signatureParams,\n );\n const signature = await this.sign(\n 'leaderboard_authentication',\n params.verifyingAddr,\n params.chainId,\n signatureParams,\n );\n\n const updateRegistrationTx: SignedTx<EIP712LeaderboardAuthenticationValues> =\n {\n tx,\n signature,\n };\n\n const baseResponse = await this.rewardsQuery('leaderboard_register', {\n update_registration: updateRegistrationTx,\n });\n\n return {\n registrations: baseResponse.registrations.map(\n mapIndexerLeaderboardRegistration,\n ),\n };\n }\n\n /**\n * Retrieves contest registrations for a subaccount. Supports batch lookup\n * across multiple contests with an optional active filter.\n *\n * @param params - Query parameters including subaccount and contest IDs.\n */\n async getLeaderboardRegistrations(\n params: GetIndexerLeaderboardRegistrationsParams,\n ): Promise<GetIndexerLeaderboardRegistrationsResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard_registrations', {\n subaccount: subaccountToHex(params.subaccount),\n contest_ids: params.contestIds,\n active: params.active,\n });\n\n return {\n registrations: baseResponse.registrations.map(\n mapIndexerLeaderboardRegistration,\n ),\n };\n }\n\n /**\n * Retrieve metadata of provided leaderboard contests\n *\n * @param params\n */\n async getLeaderboardContests(\n params: GetIndexerLeaderboardContestsParams,\n ): Promise<GetIndexerLeaderboardContestsResponse> {\n const baseResponse = await this.rewardsQuery('leaderboard_contests', {\n contest_ids: params.contestIds,\n active: params.active,\n });\n\n return {\n contests: baseResponse.contests.map(mapIndexerLeaderboardContest),\n };\n }\n\n /**\n * Retrieve signature and tx to submit a fast withdrawal\n *\n * @param params\n */\n async getFastWithdrawalSignature(\n params: GetIndexerFastWithdrawalSignatureParams,\n ): Promise<GetIndexerFastWithdrawalSignatureResponse> {\n const baseResponse = await this.query('fast_withdrawal_signature', params);\n return {\n idx: toBigInt(baseResponse.idx),\n tx: baseResponse.tx,\n txV2: baseResponse.tx_v2,\n txBytes: getValidatedHex(baseResponse.tx_bytes),\n signatures: baseResponse.signatures.map(getValidatedHex),\n };\n }\n\n async getNlpSnapshots(\n params: GetIndexerNlpSnapshotsParams,\n ): Promise<GetIndexerNlpSnapshotsResponse> {\n const baseResponse = await this.query('nlp_snapshots', {\n interval: {\n count: params.limit,\n max_time: params.maxTimeInclusive\n ? toIntegerString(params.maxTimeInclusive)\n : undefined,\n granularity: params.granularity,\n },\n });\n\n return {\n snapshots: baseResponse.snapshots.map(mapIndexerNlpSnapshot),\n };\n }\n\n /**\n * Retrieves the subaccount's DDA (Direct Deposit Address)\n * @param params\n */\n async getSubaccountDDA(\n params: GetIndexerSubaccountDDAParams,\n ): Promise<GetIndexerSubaccountDDAResponse> {\n const baseResponse = await this.query('direct_deposit_address', {\n subaccount: subaccountToHex(params.subaccount),\n });\n\n return {\n address: getValidatedAddress(baseResponse.v1_address),\n };\n }\n\n async getSequencerBacklog(): Promise<GetIndexerBacklogResponse> {\n const baseResponse = await this.query('backlog', {});\n\n return {\n totalTxs: toBigNumber(baseResponse.total_txs),\n totalSubmissions: toBigNumber(baseResponse.total_submissions),\n backlogSize: toBigNumber(baseResponse.backlog_size),\n updatedAt: toBigNumber(baseResponse.updated_at),\n backlogEtaInSeconds: baseResponse.backlog_eta_in_seconds\n ? toBigNumber(baseResponse.backlog_eta_in_seconds)\n : null,\n txsPerSecond: baseResponse.txs_per_second\n ? toBigNumber(baseResponse.txs_per_second)\n : null,\n };\n }\n\n /**\n * Retrieves private alpha choice information for a given address\n * @param params\n */\n async getPrivateAlphaChoice(\n params: GetIndexerPrivateAlphaChoiceParams,\n ): Promise<GetIndexerPrivateAlphaChoiceResponse> {\n const baseResponse = await this.rewardsQuery('private_alpha_choice', {\n address: params.address,\n });\n\n return {\n points: toBigNumber(baseResponse.points),\n feeRefund: toBigNumber(baseResponse.fee_refund),\n nftEligibility: baseResponse.nft_eligibility,\n };\n }\n\n /**\n * Retrieves points information for a given address, including points per epoch and all-time points\n * @param params\n */\n async getPoints(\n params: GetIndexerPointsParams,\n ): Promise<GetIndexerPointsResponse> {\n const baseResponse = await this.rewardsQuery('nado_points', {\n address: params.address,\n });\n\n return {\n pointsPerEpoch: baseResponse.points_per_epoch.map((epoch) => ({\n epoch: epoch.epoch,\n description: epoch.description,\n startTime: toBigNumber(epoch.start_time),\n endTime: toBigNumber(epoch.end_time),\n totalPoints: toBigNumber(epoch.total_points),\n points: toBigNumber(epoch.points),\n rank: epoch.rank,\n tier: epoch.tier,\n })),\n allTimePoints: {\n points: toBigNumber(baseResponse.all_time_points.points),\n rank: baseResponse.all_time_points.rank,\n tier: baseResponse.all_time_points.tier,\n },\n };\n }\n\n /**\n * Retrieves xPoints information (Nado x xStocks points program) for a given address,\n * including per-epoch points, all-time points, and per-quest breakdowns.\n * @param params\n */\n async getXPoints(\n params: GetIndexerXPointsParams,\n ): Promise<GetIndexerXPointsResponse> {\n const baseResponse = await this.rewardsQuery('nado_xpoints', {\n address: params.address,\n });\n\n const mapQuests = (\n quests: typeof baseResponse.all_time_points.quests,\n ): GetIndexerXPointsResponse['allTimePoints']['quests'] =>\n quests.map((quest) => ({\n questType: quest.quest_type,\n points: toBigNumber(quest.points),\n }));\n\n return {\n pointsPerEpoch: baseResponse.points_per_epoch.map((epoch) => ({\n epoch: epoch.epoch,\n description: epoch.description,\n startTime: toBigNumber(epoch.start_time),\n endTime: toBigNumber(epoch.end_time),\n totalPoints: toBigNumber(epoch.total_points),\n rank: epoch.rank,\n quests: mapQuests(epoch.quests),\n })),\n allTimePoints: {\n totalPoints: toBigNumber(baseResponse.all_time_points.total_points),\n rank: baseResponse.all_time_points.rank,\n quests: mapQuests(baseResponse.all_time_points.quests),\n },\n };\n }\n\n /**\n * Retrieves cash incentives information for a given wallet address: per-event platform volume,\n * unlocked rewards, and `wallet.claim`, which carries the claim status plus the merkle proof when\n * that status is `claimable`.\n * @param params\n */\n async getCashIncentives(\n params: GetIndexerCashIncentivesParams,\n ): Promise<GetIndexerCashIncentivesResponse> {\n const baseResponse = await this.rewardsQuery('cash_incentives', {\n wallet_address: params.address,\n });\n\n return {\n events: baseResponse.events.map((event) => ({\n metadata: {\n eventId: event.metadata.event_id,\n description: event.metadata.description,\n epochStart: toBigNumber(event.metadata.epoch_start),\n epochEnd: toBigNumber(event.metadata.epoch_end),\n maxVolume: removeDecimals(event.metadata.max_volume),\n maxReward: removeDecimals(event.metadata.max_reward),\n minVolume: removeDecimals(event.metadata.min_volume),\n minReward: removeDecimals(event.metadata.min_reward),\n },\n platform: {\n platformVolume: removeDecimals(event.platform.platform_volume),\n unlockedReward: removeDecimals(event.platform.unlocked_reward),\n },\n wallet: {\n reward: removeDecimals(event.wallet.reward),\n claim:\n event.wallet.claim.status === 'claimable'\n ? {\n status: 'claimable',\n airdropAddress: getValidatedAddress(\n event.wallet.claim.airdrop_address,\n ),\n week: event.wallet.claim.week,\n // Kept in raw token units so it can be passed to the airdrop contract unchanged\n totalAmount: toBigNumber(event.wallet.claim.total_amount),\n proof: event.wallet.claim.proof.map(getValidatedHex),\n }\n : { status: event.wallet.claim.status },\n },\n })),\n walletSummary: {\n totalReward: removeDecimals(baseResponse.wallet_summary.total_reward),\n claimableReward: removeDecimals(\n baseResponse.wallet_summary.claimable_reward,\n ),\n },\n };\n }\n\n /**\n * Initiates a social account connection flow. Returns a URL the user must visit to complete the OAuth flow.\n * Requires EIP-712 signing.\n *\n * @param params - Connection parameters including provider and signing config.\n */\n async connectSocialAccount(\n params: ConnectSocialAccountParams,\n ): Promise<ConnectSocialAccountResponse> {\n const signatureParams: EIP712SocialAuthenticationParams = {\n expiration: toIntegerString(params.recvTime ?? getDefaultRecvTime()),\n subaccountName: params.subaccountName,\n subaccountOwner: params.subaccountOwner,\n provider: params.provider,\n };\n\n const tx = getNadoEIP712Values('social_authentication', signatureParams);\n const signature = await this.sign(\n 'social_authentication',\n params.verifyingAddr,\n params.chainId,\n signatureParams,\n );\n\n const baseResponse = await this.rewardsQuery('social_connect', {\n update_social_account: { tx, signature },\n });\n\n return { url: baseResponse.url };\n }\n\n /**\n * Lists linked social accounts for a given address.\n *\n * @param params - Query parameters including the wallet address.\n */\n async listSocialAccounts(\n params: ListIndexerSocialAccountsParams,\n ): Promise<ListIndexerSocialAccountsResponse> {\n const baseResponse = await this.rewardsQuery('list_social_accounts', {\n address: params.address,\n });\n\n return {\n accounts: baseResponse.accounts.map((a) => ({\n provider: a.provider,\n username: a.username,\n displayName: a.display_name,\n profileImageUrl: a.profile_image_url,\n })),\n };\n }\n\n /**\n * Revokes a linked social account. Requires EIP-712 signing.\n *\n * @param params - Revocation parameters including provider and signing config.\n */\n async revokeSocialAccount(\n params: RevokeSocialAccountParams,\n ): Promise<RevokeSocialAccountResponse> {\n const signatureParams: EIP712SocialAuthenticationParams = {\n expiration: toIntegerString(params.recvTime ?? getDefaultRecvTime()),\n subaccountName: params.subaccountName,\n subaccountOwner: params.subaccountOwner,\n provider: params.provider,\n };\n\n const tx = getNadoEIP712Values('social_authentication', signatureParams);\n const signature = await this.sign(\n 'social_authentication',\n params.verifyingAddr,\n params.chainId,\n signatureParams,\n );\n\n const baseResponse = await this.rewardsQuery('revoke_social_account', {\n update_social_account: { tx, signature },\n });\n\n return {\n accounts: baseResponse.accounts.map((a) => ({\n provider: a.provider,\n username: a.username,\n displayName: a.display_name,\n profileImageUrl: a.profile_image_url,\n })),\n };\n }\n\n /**\n * Get tickers from the v2 indexer endpoint\n * @param params\n */\n async getV2Tickers(\n params: GetIndexerV2TickersParams,\n ): Promise<GetIndexerV2TickersResponse> {\n const response =\n await this.axiosInstance.get<IndexerServerV2TickersResponse>(\n `${this.v2Url}/tickers`,\n { params },\n );\n\n this.checkResponseStatus(response);\n\n return mapValues(response.data, mapIndexerV2Ticker);\n }\n\n /**\n * Get symbols with market hours from the v2 indexer endpoint\n * @param params\n */\n async getV2Symbols(\n params?: GetIndexerV2SymbolsParams,\n ): Promise<GetIndexerV2SymbolsResponse> {\n const response =\n await this.axiosInstance.get<IndexerServerV2SymbolsResponse>(\n `${this.v2Url}/symbols`,\n {\n params: {\n product_type: params?.productType,\n product_ids: params?.productIds,\n },\n },\n );\n\n this.checkResponseStatus(response);\n\n return mapValues(response.data, mapIndexerV2Symbols);\n }\n\n protected query<TRequestType extends IndexerServerQueryRequestType>(\n requestType: TRequestType,\n params: IndexerServerQueryRequestByType[TRequestType],\n ): Promise<IndexerServerQueryResponseByType[TRequestType]> {\n return this.queryWithUrl(this.v1Url, requestType, params);\n }\n\n /**\n * Runs a query against the rewards endpoint, which serves leaderboard, points,\n * cash incentives, private alpha, and social account queries\n */\n protected rewardsQuery<TRequestType extends IndexerServerQueryRequestType>(\n requestType: TRequestType,\n params: IndexerServerQueryRequestByType[TRequestType],\n ): Promise<IndexerServerQueryResponseByType[TRequestType]> {\n return this.queryWithUrl(this.rewardsUrl, requestType, params);\n }\n\n private async queryWithUrl<\n TRequestType extends IndexerServerQueryRequestType,\n >(\n url: string,\n requestType: TRequestType,\n params: IndexerServerQueryRequestByType[TRequestType],\n ): Promise<IndexerServerQueryResponseByType[TRequestType]> {\n const reqBody: IndexerQueryRequestBody = {\n [requestType]: params,\n };\n const response = await this.axiosInstance.post<\n IndexerServerQueryResponseByType[TRequestType]\n >(url, reqBody);\n\n this.checkResponseStatus(response);\n\n return response.data;\n }\n\n protected async sign<T extends SignableRequestType>(\n requestType: T,\n verifyingContract: string,\n chainId: number,\n params: SignableRequestTypeToParams[T],\n ) {\n const walletClient =\n this.opts.linkedSignerWalletClient ?? this.opts.walletClient;\n\n if (!walletClient) {\n throw new WalletNotProvidedError();\n }\n\n return getSignedTransactionRequest({\n chainId,\n requestParams: params,\n requestType,\n walletClient,\n verifyingContract,\n });\n }\n\n private checkResponseStatus(response: AxiosResponse) {\n if (isIndexerServerFailureResponse(response.data)) {\n throw new IndexerServerFailureError(response.data, response.status);\n }\n if (response.status !== 200 || !response.data) {\n throw Error(\n `Unexpected response from server: ${response.status} ${response.statusText}`,\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;AAqKA,IAAa,oBAAb,MAA+B;CAO7B,YAAY,MAAyB;EACnC,KAAK,OAAO;EACZ,KAAK,gBAAgB,MAAM,OAAO;GAChC,iBAAiB;GAEjB,sBAAsB;GACtB,SAAS,yBAAyB,KAAK,UAAU;EACnD,CAAC;EACD,KAAK,QAAQ,GAAG,KAAK,IAAI;EACzB,KAAK,QAAQ,GAAG,KAAK,IAAI;EACzB,KAAK,aAAa,KAAK,cAAc,GAAG,KAAK,IAAI;CACnD;;;;;;CAOA,gBACE,0BACA;EACA,KAAK,KAAK,2BAA2B,4BAA4B,KAAA;CACnE;;;;;;CAOA,MAAM,gBACJ,QACyC;EAGzC,QAAO,MAFoB,KAAK,MAAM,eAAe,MAAM,GAEvC,YAAY,KAAK,SAAS;GAC5C,MAAM,aAAa,kBAAkB,KAAK,UAAU;GACpD,OAAO;IACL,OAAO,KAAK;IACZ,WAAW,OAAO,KAAK,UAAU;IACjC,UAAU,KAAK;IACf,GAAG;GACL;EACF,CAAC;CACH;;;;;;;CAQA,MAAM,4BACJ,QACqD;EACrD,MAAM,mBAAmB,OAAO,YAAY,KACzC,EAAE,iBAAiB,qBAClB,gBAAgB;GACd;GACA;EACF,CAAC,CACL;EA4BA,OAAO;GACL;GACA,WAtB4B,WAC5B,MAPyB,KAAK,MAAM,qBAAqB;IACzD,aAAa;IACb,YAAY,OAAO;IACnB,UAAU,OAAO;GACnB,CAAC,GAGc,YACZ,qBAAqB;IACpB,MAAM,sBACJ,CAAC;IAEH,OAAO,QAAQ,gBAAgB,EAAE,SAAS,CAAC,WAAW,YAAY;KAChE,MAAM,WACJ,OAAO,IAAI,eAAe;KAE5B,oBAAoB,aAAa;MAC/B,WAAW,YAAY,SAAS;MAChC;KACF;IACF,CAAC;IAED,OAAO;GACT,CAK+B;EACjC;CACF;;;;;;CAOA,MAAM,gBACJ,QACyC;EAQzC,OAAO,EACL,eAAc,MARW,KAAK,MAAM,iBAAiB,EACrD,YAAY,gBAAgB;GAC1B,iBAAiB,OAAO,WAAW;GACnC,gBAAgB,OAAO,WAAW;EACpC,CAAC,EACH,CAAC,GAG4B,cAC7B;CACF;;;;;CAMA,MAAM,eACJ,QACwC;EAKxC,OAAO,sBAAsB,MAJF,KAAK,MAAM,gBAAgB,EACpD,YAAY,OAAO,UACrB,CAAC,CAEwC;CAC3C;;;;;CAMA,MAAM,4BACJ,QACqD;EAKrD,OAAO,UAAU,MAJU,KAAK,MAAM,iBAAiB,EACrD,aAAa,OAAO,WACtB,CAAC,GAE8B,qBAAqB;CACtD;;;;;;;;;;CAWA,MAAM,sBACJ,QAC+C;EAQ/C,QAAO,MAPoB,KAAK,MAAM,wBAAwB;GAC5D,YAAY,OAAO;GACnB,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,OAAO,OAAO;EAChB,CAAC,GAEmB,cAAc,IAAI,4BAA4B;CACpE;;;;;;;;;;;;;CAcA,MAAM,aACJ,QACsC;EAKtC,OAAO,oBAAoB,MAJA,KAAK,MAAM,aAAa,EACjD,YAAY,gBAAgB,OAAO,UAAU,EAC/C,CAAC,CAEsC;CACzC;;;;;CAMA,MAAM,cACJ,QACuC;EAKvC,OAAO,qBAAqB,MAJD,KAAK,MAAM,SAAS,EAC7C,YAAY,OAAO,UACrB,CAAC,CAEuC;CAC1C;;;;;CAMA,MAAM,0BACJ,QACmD;EAKnD,OAAO,UAAU,MAJU,KAAK,MAAM,eAAe,EACnD,aAAa,OAAO,WACtB,CAAC,GAE8B,oBAAoB;CACrD;;;;;CAMA,MAAM,gBACJ,QACyC;EAKzC,QAAO,MAJoB,KAAK,MAAM,gBAAgB,EACpD,aAAa,OAAO,WACtB,CAAC,GAEmB,OAAO,KAAK,UAA8B;GAC5D,OAAO;IACL,aAAa,eAAe,MAAM,gBAAgB;IAClD,YAAY,YAAY,MAAM,WAAW;IACzC,WAAW,MAAM;GACnB;EACF,CAAC;CACH;;;;;CAMA,MAAM,gBACJ,QACyC;EAQzC,QAAO,MAPoB,KAAK,MAAM,gBAAgB;GACpD,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,aAAa,OAAO;EACtB,CAAC,GAEmB,aAAa,IAAI,sBAAsB;CAC7D;;;;;CAMA,MAAM,oBACJ,QAC6C;EAQ7C,QAAO,MAPoB,KAAK,MAAM,qBAAqB;GACzD,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,aAAa,OAAO;EACtB,CAAC,GAEmB,aAAa,IAAI,sBAAsB;CAC7D;;;;;CAMA,MAAM,oBACJ,QAC6C;EAQ7C,QAAO,MAPoB,KAAK,MAAM,YAAY;GAChD,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,KAAK,OAAO;EACd,CAAC,GAEmB,SAAS,KAAK,YAAY;GAC5C,OAAO;IACL,GAAG,wBAAwB,QAAQ,OAAO;IAC1C,iBAAiB,QAAQ;GAC3B;EACF,CAAC;CACH;;;;;CAMA,MAAM,yBACJ,QACkD;EAMlD,OAAO,UAAU,MALoB,KAAK,MAAM,qBAAqB;GACnE,aAAa,OAAO;GACpB,UAAU,OAAO,yBAAyB,CAAC,aAAa,CAAC;EAC3D,CAAC,IAEyC,uBAAuB;GAC/D,OAAO,UAAU,qBAAqB,mBAAmB;IACvD,OAAO;KACL,GAAG,wBAAwB,eAAe,OAAO;KACjD,iBAAiB,eAAe;IAClC;GACF,CAAC;EACH,CAAC;CACH;;;;;;CAOA,MAAM,UACJ,QACmC;EACnC,MAAM,qBAAqE;GACzE,IAAI,CAAC,OAAO,OACV;GAGF,IAAI,OAAO,MAAM,SAAS,UACxB,OAAO,EACL,KAAK,OAAO,MAAM,MACpB;GAEF,OAAO,EACL,KAAK,OAAO,MAAM,MACpB;EACF,GAAG;EAEH,MAAM,eAAe,MAAM,KAAK,MAAM,UAAU;GAC9C,aAAa,OAAO,aAAa,KAAK,eACpC,gBAAgB;IACd,iBAAiB,WAAW;IAC5B,gBAAgB,WAAW;GAC7B,CAAC,CACH;GACA,aAAa,OAAO;GACpB,UAAU,OAAO;GACjB,aAAa,OAAO;GACpB,UAAU,OAAO;GACjB,MAAM,OAAO;GACb,OAAO;GACP,KAAK,OAAO;EACd,CAAC;EAID,IAAI,YAAY;EAChB,OAAO,aAAa,OAAO,KAAK,UAA8B;GAC5D,IAAI,aAAa,IAAI,WAAW,mBAAmB,MAAM,gBACvD,aAAa;GAEf,MAAM,KAAK,aAAa,IAAI;GAC5B,OAAO,sBAAsB,OAAO,EAAE;EACxC,CAAC;CACH;;;;;CAMA,MAAM,UACJ,QACmC;EAiBnC,QAAO,MAhBoB,KAAK,MAAM,UAAU;GAC9C,aAAa,QAAQ,aAAa,KAAK,eACrC,gBAAgB;IACd,iBAAiB,WAAW;IAC5B,gBAAgB,WAAW;GAC7B,CAAC,CACH;GACA,aAAa,OAAO;GACpB,eAAe,OAAO;GACtB,UAAU,OAAO;GACjB,SAAS,OAAO;GAChB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,KAAK,OAAO;EACd,CAAC,GAEmB,OAAO,IAAI,eAAe;CAChD;;;;;;;CAQA,MAAM,eACJ,QACwC;EACxC,MAAM,eAAe,MAAM,KAAK,MAAM,WAAW;GAC/C,aAAa,QAAQ,aAAa,KAAK,eACrC,gBAAgB;IACd,iBAAiB,WAAW;IAC5B,gBAAgB,WAAW;GAC7B,CAAC,CACH;GACA,aAAa,OAAO;GACpB,UAAU,OAAO;GACjB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,KAAK,OAAO;EACd,CAAC;EAGD,IAAI,YAAY;EAChB,OAAO,aAAa,QAAQ,KAAK,eAAkC;GACjE,IACE,aAAa,IAAI,WAAW,mBAAmB,WAAW,gBAE1D,aAAa;GAEf,MAAM,EAAE,IAAI,cAAc,aAAa,IAAI;GAG3C,MAAM,eAAe,6BACnB,WAAW,YACb;GAEA,OAAO;IACL,WAAW,aAAa,KAAK;IAC7B,UAAU,WAAW;IACrB,UAAU,YAAY,WAAW,GAAG;IACpC,cAAc,YAAY,WAAW,aAAa;IAClD,YAAY,YAAY,WAAW,WAAW;IAC9C,YAAY,YAAY,WAAW,WAAW;IAC9C,aAAa,YAAY,WAAW,YAAY;IAChD,eAAe,YAAY,WAAW,cAAc;IACpD,sBAAsB,YAAY,WAAW,sBAAsB;IACnE,uBAAuB,YAAY,WAAW,uBAAuB;IACrE,QAAQ,WAAW;IACnB,OAAO,WAAW;IAClB,iBAAiB,WAAW;IAC5B,WAAW,YAAY,SAAS;IAChC,qBAAqB;KACnB,oBAAoB,YAAY,WAAW,oBAAoB;KAC/D,oBAAoB,YAAY,WAAW,oBAAoB;IACjE;IACA,aAAa,6BAA6B,WAAW,WAAW;IAChE;IACA;IACA,SAAS,WAAW;IACpB,aAAa,YAAY,WAAW,YAAY;IAChD,cAAc,YAAY,WAAW,aAAa;IAClD,gBAAgB,YAAY,WAAW,gBAAgB;IACvD,QAAQ,WAAW,SAAS,YAAY,WAAW,MAAM,IAAI;IAC7D,GAAG,kBAAkB,WAAW,MAAM,MAAM;GAC9C;EACF,CAAC;CACH;;;;;;;;;;;;;;CAeA,MAAM,aACJ,QACsC;EACtC,MAAM,eAAe,MAAM,KAAK,MAAM,aAAa;GACjD,YAAY,gBAAgB;IAC1B,iBAAiB,OAAO,WAAW;IACnC,gBAAgB,OAAO,WAAW;GACpC,CAAC;GACD,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,MAAM,OAAO;GACb,KAAK,OAAO;GACZ,OAAO,OAAO;EAChB,CAAC;EAGD,MAAM,qBAAqB,IAAI,IAC7B,aAAa,IAAI,KAAK,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAAC,CACtD;EAEA,OAAO;GACL,WAAW,aAAa,UAAU,IAAI,kBAAkB;GACxD,QAAQ,aAAa,OAAO,KAAK,UAAU;IACzC,MAAM,KAAK,mBAAmB,IAAI,MAAM,cAAc;IACtD,IAAI,CAAC,IACH,MAAM,MACJ,+DAA+D,MAAM,gBACvE;IAEF,OAAO,sBAAsB,OAAO,EAAE;GACxC,CAAC;EACH;CACF;;;;;;;;;CAUA,MAAM,2BACJ,QACoD;EACpD,MAAM,eAAe,MAAM,KAAK,MAAM,wBAAwB;GAC5D,YAAY,gBAAgB;IAC1B,iBAAiB,OAAO,WAAW;IACnC,gBAAgB,OAAO,WAAW;GACpC,CAAC;GACD,aAAa,OAAO;GACpB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,SAAS,OAAO;EAClB,CAAC;EAED,OAAO;GACL,iBAAiB,aAAa,iBAAiB,IAC7C,wBACF;GACA,kBAAkB,aAAa,kBAAkB,IAC/C,wBACF;GACA,YAAY,aAAa;EAC3B;CACF;;;;CAKA,MAAM,gBAAuD;EAE3D,OAAO,EACL,OAAO,gBAAe,MAFG,KAAK,MAAM,eAAe,CAAC,CAAC,GAElB,SAAS,EAC9C;CACF;;;;CAKA,MAAM,6BACJ,QACyC;EACzC,MAAM,eAAe,MAAM,KAAK,MAAM,4BAA4B,EAChE,YAAY,gBAAgB,OAAO,UAAU,EAC/C,CAAC;EACD,OAAO;GACL,cAAc,YAAY,aAAa,cAAc;GACrD,cAAc,YAAY,aAAa,YAAY;GACnD,QAAQ,aAAa;GACrB,qBAAqB,YAAY,aAAa,SAAS;EACzD;CACF;;;;;CAMA,MAAM,mBACJ,QAC4C;EAM5C,QAAO,MALoB,KAAK,MAAM,oBAAoB;GACxD,UAAU,mCAAmC,MAAM;GACnD,aAAa,OAAO;EACtB,CAAC,GAEmB,UAAU,IAAI,wBAAwB;CAC5D;;;;;CAMA,MAAM,uBACJ,QAC+C;EAK/C,OAAO,WAAU,MAJU,KAAK,MAAM,yBAAyB,EAC7D,UAAU,mCAAmC,MAAM,EACrD,CAAC,GAE6B,YAAY,cACxC,UAAU,IAAI,wBAAwB,CACxC;CACF;;;;;;CAOA,MAAM,mBACJ,QAC4C;EAC5C,MAAM,eAAe,MAAM,KAAK,MAAM,oBAAoB;GACxD,YAAY,OAAO;GACnB,OAAO,OAAO;GACd,UAAU,OAAO;EACnB,CAAC;EAED,OAAO;GACL,mBAAmB,YAAY,aAAa,kBAAkB;GAC9D,QAAQ,aAAa,OAAO,IAAI,yBAAyB;EAC3D;CACF;;;;;;CAOA,MAAM,eACJ,QACwC;EASxC,OAAO,EACL,eAAc,MATW,KAAK,aAAa,eAAe;GAC1D,YAAY,OAAO;GACnB,WAAW,OAAO;GAClB,OAAO,OAAO;GACd,OAAO,OAAO;GACd,OAAO,OAAO;EAChB,CAAC,GAG4B,UAAU,IAAI,6BAA6B,EACxE;CACF;;;;;;CAOA,MAAM,0BACJ,QACmD;EAMnD,OAAO,EACL,aAAa,WAAU,MANE,KAAK,aAAa,oBAAoB;GAC/D,YAAY,gBAAgB,OAAO,UAAU;GAC7C,aAAa,OAAO;EACtB,CAAC,GAGqC,YAAY,aAC9C,8BAA8B,QAAQ,CACxC,EACF;CACF;;;;;;CAOA,MAAM,oBACJ,QACsC;EACtC,MAAM,kBAAyD;GAC7D,YAAY,gBAAgB,OAAO,YAAY,mBAAmB,CAAC;GACnE,gBAAgB,OAAO;GACvB,iBAAiB,OAAO;GACxB,YAAY,OAAO;EACrB;EAaA,MAAM,uBACJ;GACE,IAbO,oBACT,8BACA,eAWG;GACD,WAAA,MAVoB,KAAK,KAC3B,8BACA,OAAO,eACP,OAAO,SACP,eACF;EAME;EAMF,OAAO,EACL,gBAAe,MALU,KAAK,aAAa,wBAAwB,EACnE,qBAAqB,qBACvB,CAAC,GAG6B,cAAc,IACxC,iCACF,EACF;CACF;;;;;;;CAQA,MAAM,4BACJ,QACqD;EAOrD,OAAO,EACL,gBAAe,MAPU,KAAK,aAAa,6BAA6B;GACxE,YAAY,gBAAgB,OAAO,UAAU;GAC7C,aAAa,OAAO;GACpB,QAAQ,OAAO;EACjB,CAAC,GAG6B,cAAc,IACxC,iCACF,EACF;CACF;;;;;;CAOA,MAAM,uBACJ,QACgD;EAMhD,OAAO,EACL,WAAU,MANe,KAAK,aAAa,wBAAwB;GACnE,aAAa,OAAO;GACpB,QAAQ,OAAO;EACjB,CAAC,GAGwB,SAAS,IAAI,4BAA4B,EAClE;CACF;;;;;;CAOA,MAAM,2BACJ,QACoD;EACpD,MAAM,eAAe,MAAM,KAAK,MAAM,6BAA6B,MAAM;EACzE,OAAO;GACL,KAAK,SAAS,aAAa,GAAG;GAC9B,IAAI,aAAa;GACjB,MAAM,aAAa;GACnB,SAAS,gBAAgB,aAAa,QAAQ;GAC9C,YAAY,aAAa,WAAW,IAAI,eAAe;EACzD;CACF;CAEA,MAAM,gBACJ,QACyC;EAWzC,OAAO,EACL,YAAW,MAXc,KAAK,MAAM,iBAAiB,EACrD,UAAU;GACR,OAAO,OAAO;GACd,UAAU,OAAO,mBACb,gBAAgB,OAAO,gBAAgB,IACvC,KAAA;GACJ,aAAa,OAAO;EACtB,EACF,CAAC,GAGyB,UAAU,IAAI,qBAAqB,EAC7D;CACF;;;;;CAMA,MAAM,iBACJ,QAC0C;EAK1C,OAAO,EACL,SAAS,qBAAoB,MALJ,KAAK,MAAM,0BAA0B,EAC9D,YAAY,gBAAgB,OAAO,UAAU,EAC/C,CAAC,GAG2C,UAAU,EACtD;CACF;CAEA,MAAM,sBAA0D;EAC9D,MAAM,eAAe,MAAM,KAAK,MAAM,WAAW,CAAC,CAAC;EAEnD,OAAO;GACL,UAAU,YAAY,aAAa,SAAS;GAC5C,kBAAkB,YAAY,aAAa,iBAAiB;GAC5D,aAAa,YAAY,aAAa,YAAY;GAClD,WAAW,YAAY,aAAa,UAAU;GAC9C,qBAAqB,aAAa,yBAC9B,YAAY,aAAa,sBAAsB,IAC/C;GACJ,cAAc,aAAa,iBACvB,YAAY,aAAa,cAAc,IACvC;EACN;CACF;;;;;CAMA,MAAM,sBACJ,QAC+C;EAC/C,MAAM,eAAe,MAAM,KAAK,aAAa,wBAAwB,EACnE,SAAS,OAAO,QAClB,CAAC;EAED,OAAO;GACL,QAAQ,YAAY,aAAa,MAAM;GACvC,WAAW,YAAY,aAAa,UAAU;GAC9C,gBAAgB,aAAa;EAC/B;CACF;;;;;CAMA,MAAM,UACJ,QACmC;EACnC,MAAM,eAAe,MAAM,KAAK,aAAa,eAAe,EAC1D,SAAS,OAAO,QAClB,CAAC;EAED,OAAO;GACL,gBAAgB,aAAa,iBAAiB,KAAK,WAAW;IAC5D,OAAO,MAAM;IACb,aAAa,MAAM;IACnB,WAAW,YAAY,MAAM,UAAU;IACvC,SAAS,YAAY,MAAM,QAAQ;IACnC,aAAa,YAAY,MAAM,YAAY;IAC3C,QAAQ,YAAY,MAAM,MAAM;IAChC,MAAM,MAAM;IACZ,MAAM,MAAM;GACd,EAAE;GACF,eAAe;IACb,QAAQ,YAAY,aAAa,gBAAgB,MAAM;IACvD,MAAM,aAAa,gBAAgB;IACnC,MAAM,aAAa,gBAAgB;GACrC;EACF;CACF;;;;;;CAOA,MAAM,WACJ,QACoC;EACpC,MAAM,eAAe,MAAM,KAAK,aAAa,gBAAgB,EAC3D,SAAS,OAAO,QAClB,CAAC;EAED,MAAM,aACJ,WAEA,OAAO,KAAK,WAAW;GACrB,WAAW,MAAM;GACjB,QAAQ,YAAY,MAAM,MAAM;EAClC,EAAE;EAEJ,OAAO;GACL,gBAAgB,aAAa,iBAAiB,KAAK,WAAW;IAC5D,OAAO,MAAM;IACb,aAAa,MAAM;IACnB,WAAW,YAAY,MAAM,UAAU;IACvC,SAAS,YAAY,MAAM,QAAQ;IACnC,aAAa,YAAY,MAAM,YAAY;IAC3C,MAAM,MAAM;IACZ,QAAQ,UAAU,MAAM,MAAM;GAChC,EAAE;GACF,eAAe;IACb,aAAa,YAAY,aAAa,gBAAgB,YAAY;IAClE,MAAM,aAAa,gBAAgB;IACnC,QAAQ,UAAU,aAAa,gBAAgB,MAAM;GACvD;EACF;CACF;;;;;;;CAQA,MAAM,kBACJ,QAC2C;EAC3C,MAAM,eAAe,MAAM,KAAK,aAAa,mBAAmB,EAC9D,gBAAgB,OAAO,QACzB,CAAC;EAED,OAAO;GACL,QAAQ,aAAa,OAAO,KAAK,WAAW;IAC1C,UAAU;KACR,SAAS,MAAM,SAAS;KACxB,aAAa,MAAM,SAAS;KAC5B,YAAY,YAAY,MAAM,SAAS,WAAW;KAClD,UAAU,YAAY,MAAM,SAAS,SAAS;KAC9C,WAAW,eAAe,MAAM,SAAS,UAAU;KACnD,WAAW,eAAe,MAAM,SAAS,UAAU;KACnD,WAAW,eAAe,MAAM,SAAS,UAAU;KACnD,WAAW,eAAe,MAAM,SAAS,UAAU;IACrD;IACA,UAAU;KACR,gBAAgB,eAAe,MAAM,SAAS,eAAe;KAC7D,gBAAgB,eAAe,MAAM,SAAS,eAAe;IAC/D;IACA,QAAQ;KACN,QAAQ,eAAe,MAAM,OAAO,MAAM;KAC1C,OACE,MAAM,OAAO,MAAM,WAAW,cAC1B;MACE,QAAQ;MACR,gBAAgB,oBACd,MAAM,OAAO,MAAM,eACrB;MACA,MAAM,MAAM,OAAO,MAAM;MAEzB,aAAa,YAAY,MAAM,OAAO,MAAM,YAAY;MACxD,OAAO,MAAM,OAAO,MAAM,MAAM,IAAI,eAAe;KACrD,IACA,EAAE,QAAQ,MAAM,OAAO,MAAM,OAAO;IAC5C;GACF,EAAE;GACF,eAAe;IACb,aAAa,eAAe,aAAa,eAAe,YAAY;IACpE,iBAAiB,eACf,aAAa,eAAe,gBAC9B;GACF;EACF;CACF;;;;;;;CAQA,MAAM,qBACJ,QACuC;EACvC,MAAM,kBAAoD;GACxD,YAAY,gBAAgB,OAAO,YAAY,mBAAmB,CAAC;GACnE,gBAAgB,OAAO;GACvB,iBAAiB,OAAO;GACxB,UAAU,OAAO;EACnB;EAEA,MAAM,KAAK,oBAAoB,yBAAyB,eAAe;EACvE,MAAM,YAAY,MAAM,KAAK,KAC3B,yBACA,OAAO,eACP,OAAO,SACP,eACF;EAMA,OAAO,EAAE,MAAK,MAJa,KAAK,aAAa,kBAAkB,EAC7D,uBAAuB;GAAE;GAAI;EAAU,EACzC,CAAC,GAE0B,IAAI;CACjC;;;;;;CAOA,MAAM,mBACJ,QAC4C;EAK5C,OAAO,EACL,WAAU,MALe,KAAK,aAAa,wBAAwB,EACnE,SAAS,OAAO,QAClB,CAAC,GAGwB,SAAS,KAAK,OAAO;GAC1C,UAAU,EAAE;GACZ,UAAU,EAAE;GACZ,aAAa,EAAE;GACf,iBAAiB,EAAE;EACrB,EAAE,EACJ;CACF;;;;;;CAOA,MAAM,oBACJ,QACsC;EACtC,MAAM,kBAAoD;GACxD,YAAY,gBAAgB,OAAO,YAAY,mBAAmB,CAAC;GACnE,gBAAgB,OAAO;GACvB,iBAAiB,OAAO;GACxB,UAAU,OAAO;EACnB;EAEA,MAAM,KAAK,oBAAoB,yBAAyB,eAAe;EACvE,MAAM,YAAY,MAAM,KAAK,KAC3B,yBACA,OAAO,eACP,OAAO,SACP,eACF;EAMA,OAAO,EACL,WAAU,MALe,KAAK,aAAa,yBAAyB,EACpE,uBAAuB;GAAE;GAAI;EAAU,EACzC,CAAC,GAGwB,SAAS,KAAK,OAAO;GAC1C,UAAU,EAAE;GACZ,UAAU,EAAE;GACZ,aAAa,EAAE;GACf,iBAAiB,EAAE;EACrB,EAAE,EACJ;CACF;;;;;CAMA,MAAM,aACJ,QACsC;EACtC,MAAM,WACJ,MAAM,KAAK,cAAc,IACvB,GAAG,KAAK,MAAM,WACd,EAAE,OAAO,CACX;EAEF,KAAK,oBAAoB,QAAQ;EAEjC,OAAO,UAAU,SAAS,MAAM,kBAAkB;CACpD;;;;;CAMA,MAAM,aACJ,QACsC;EACtC,MAAM,WACJ,MAAM,KAAK,cAAc,IACvB,GAAG,KAAK,MAAM,WACd,EACE,QAAQ;GACN,cAAc,QAAQ;GACtB,aAAa,QAAQ;EACvB,EACF,CACF;EAEF,KAAK,oBAAoB,QAAQ;EAEjC,OAAO,UAAU,SAAS,MAAM,mBAAmB;CACrD;CAEA,MACE,aACA,QACyD;EACzD,OAAO,KAAK,aAAa,KAAK,OAAO,aAAa,MAAM;CAC1D;;;;;CAMA,aACE,aACA,QACyD;EACzD,OAAO,KAAK,aAAa,KAAK,YAAY,aAAa,MAAM;CAC/D;CAEA,MAAc,aAGZ,KACA,aACA,QACyD;EACzD,MAAM,UAAmC,GACtC,cAAc,OACjB;EACA,MAAM,WAAW,MAAM,KAAK,cAAc,KAExC,KAAK,OAAO;EAEd,KAAK,oBAAoB,QAAQ;EAEjC,OAAO,SAAS;CAClB;CAEA,MAAgB,KACd,aACA,mBACA,SACA,QACA;EACA,MAAM,eACJ,KAAK,KAAK,4BAA4B,KAAK,KAAK;EAElD,IAAI,CAAC,cACH,MAAM,IAAI,uBAAuB;EAGnC,OAAO,4BAA4B;GACjC;GACA,eAAe;GACf;GACA;GACA;EACF,CAAC;CACH;CAEA,oBAA4B,UAAyB;EACnD,IAAI,+BAA+B,SAAS,IAAI,GAC9C,MAAM,IAAI,0BAA0B,SAAS,MAAM,SAAS,MAAM;EAEpE,IAAI,SAAS,WAAW,OAAO,CAAC,SAAS,MACvC,MAAM,MACJ,oCAAoC,SAAS,OAAO,GAAG,SAAS,YAClE;CAEJ;AACF"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_IndexerBaseClient = require("./IndexerBaseClient-jaeUYv71.cjs");
2
+ const require_IndexerBaseClient = require("./IndexerBaseClient-CSn4twzz.cjs");
3
3
  let _nadohq_shared = require("@nadohq/shared");
4
4
  //#region src/IndexerClient.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { _ as GetIndexerSubaccountSettlementEventsResponse, a as GetIndexerPaginatedOrdersParams, c as GetIndexerSubaccountCollateralEventsResponse, d as GetIndexerSubaccountLiquidationEventsResponse, f as GetIndexerSubaccountMatchEventParams, g as GetIndexerSubaccountSettlementEventsParams, h as GetIndexerSubaccountNlpEventsResponse, i as GetIndexerPaginatedLeaderboardResponse, l as GetIndexerSubaccountInterestFundingPaymentsParams, m as GetIndexerSubaccountNlpEventsParams, n as GetIndexerPaginatedInterestFundingPaymentsResponse, o as GetIndexerPaginatedOrdersResponse, p as GetIndexerSubaccountMatchEventsResponse, r as GetIndexerPaginatedLeaderboardParams, s as GetIndexerSubaccountCollateralEventsParams, u as GetIndexerSubaccountLiquidationEventsParams } from "./paginatedEventsTypes-4I9Ibp9q.cjs";
1
+ import { _ as GetIndexerSubaccountSettlementEventsResponse, a as GetIndexerPaginatedOrdersParams, c as GetIndexerSubaccountCollateralEventsResponse, d as GetIndexerSubaccountLiquidationEventsResponse, f as GetIndexerSubaccountMatchEventParams, g as GetIndexerSubaccountSettlementEventsParams, h as GetIndexerSubaccountNlpEventsResponse, i as GetIndexerPaginatedLeaderboardResponse, l as GetIndexerSubaccountInterestFundingPaymentsParams, m as GetIndexerSubaccountNlpEventsParams, n as GetIndexerPaginatedInterestFundingPaymentsResponse, o as GetIndexerPaginatedOrdersResponse, p as GetIndexerSubaccountMatchEventsResponse, r as GetIndexerPaginatedLeaderboardParams, s as GetIndexerSubaccountCollateralEventsParams, u as GetIndexerSubaccountLiquidationEventsParams } from "./paginatedEventsTypes-DZllHmqY.cjs";
2
2
  import { IndexerBaseClient } from "./IndexerBaseClient.cjs";
3
3
 
4
4
  //#region src/IndexerClient.d.ts
@@ -1,4 +1,4 @@
1
- import { _ as GetIndexerSubaccountSettlementEventsResponse, a as GetIndexerPaginatedOrdersParams, c as GetIndexerSubaccountCollateralEventsResponse, d as GetIndexerSubaccountLiquidationEventsResponse, f as GetIndexerSubaccountMatchEventParams, g as GetIndexerSubaccountSettlementEventsParams, h as GetIndexerSubaccountNlpEventsResponse, i as GetIndexerPaginatedLeaderboardResponse, l as GetIndexerSubaccountInterestFundingPaymentsParams, m as GetIndexerSubaccountNlpEventsParams, n as GetIndexerPaginatedInterestFundingPaymentsResponse, o as GetIndexerPaginatedOrdersResponse, p as GetIndexerSubaccountMatchEventsResponse, r as GetIndexerPaginatedLeaderboardParams, s as GetIndexerSubaccountCollateralEventsParams, u as GetIndexerSubaccountLiquidationEventsParams } from "./paginatedEventsTypes-D668Hgzl.js";
1
+ import { _ as GetIndexerSubaccountSettlementEventsResponse, a as GetIndexerPaginatedOrdersParams, c as GetIndexerSubaccountCollateralEventsResponse, d as GetIndexerSubaccountLiquidationEventsResponse, f as GetIndexerSubaccountMatchEventParams, g as GetIndexerSubaccountSettlementEventsParams, h as GetIndexerSubaccountNlpEventsResponse, i as GetIndexerPaginatedLeaderboardResponse, l as GetIndexerSubaccountInterestFundingPaymentsParams, m as GetIndexerSubaccountNlpEventsParams, n as GetIndexerPaginatedInterestFundingPaymentsResponse, o as GetIndexerPaginatedOrdersResponse, p as GetIndexerSubaccountMatchEventsResponse, r as GetIndexerPaginatedLeaderboardParams, s as GetIndexerSubaccountCollateralEventsParams, u as GetIndexerSubaccountLiquidationEventsParams } from "./paginatedEventsTypes-BT--OHd5.js";
2
2
  import { IndexerBaseClient } from "./IndexerBaseClient.js";
3
3
 
4
4
  //#region src/IndexerClient.d.ts
@@ -0,0 +1,10 @@
1
+ //#region src/types/IndexerEventType.d.ts
2
+ /**
3
+ * All balance-change event types emitted by the indexer. This is also the set of
4
+ * transaction types that can open/close a position (`openReason` / `closeReason`).
5
+ */
6
+ declare const INDEXER_EVENT_TYPES: readonly ["liquidate_subaccount", "deposit_collateral", "withdraw_collateral", "withdraw_collateral_v2", "settle_pnl", "match_orders", "transfer_quote", "mint_nlp", "burn_nlp", "claim_builder_fee", "delist_product"];
7
+ type IndexerEventType = (typeof INDEXER_EVENT_TYPES)[number];
8
+ //#endregion
9
+ export { IndexerEventType as n, INDEXER_EVENT_TYPES as t };
10
+ //# sourceMappingURL=IndexerEventType-BFvrhslw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexerEventType-BFvrhslw.d.ts","names":[],"sources":["../src/types/src/types/IndexerEventType.ts"],"mappings":";;AAIA;;;cAAa,mBAAA;AAAA,KAcD,gBAAA,WAA2B,mBAAmB"}
@@ -0,0 +1,10 @@
1
+ //#region src/types/IndexerEventType.d.ts
2
+ /**
3
+ * All balance-change event types emitted by the indexer. This is also the set of
4
+ * transaction types that can open/close a position (`openReason` / `closeReason`).
5
+ */
6
+ declare const INDEXER_EVENT_TYPES: readonly ["liquidate_subaccount", "deposit_collateral", "withdraw_collateral", "withdraw_collateral_v2", "settle_pnl", "match_orders", "transfer_quote", "mint_nlp", "burn_nlp", "claim_builder_fee", "delist_product"];
7
+ type IndexerEventType = (typeof INDEXER_EVENT_TYPES)[number];
8
+ //#endregion
9
+ export { IndexerEventType as n, INDEXER_EVENT_TYPES as t };
10
+ //# sourceMappingURL=IndexerEventType-BpH10mEW.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexerEventType-BpH10mEW.d.cts","names":[],"sources":["../src/types/src/types/IndexerEventType.ts"],"mappings":";;AAIA;;;cAAa,mBAAA;AAAA,KAcD,gBAAA,WAA2B,mBAAmB"}
@@ -1,4 +1,4 @@
1
- import { Rt as IndexerServerRequestType, T as IndexerServerFailureResponse } from "./serverTypes-BQafrknp.js";
1
+ import { Bt as IndexerServerRequestType, T as IndexerServerFailureResponse } from "./serverTypes-Dod9cCEW.js";
2
2
  import { BaseServerFailureError } from "@nadohq/shared";
3
3
 
4
4
  //#region src/types/IndexerServerFailureError.d.ts
@@ -22,4 +22,4 @@ declare class IndexerServerFailureError extends BaseServerFailureError {
22
22
  }
23
23
  //#endregion
24
24
  export { IndexerServerFailureError as t };
25
- //# sourceMappingURL=IndexerServerFailureError-ClC8vkmR.d.ts.map
25
+ //# sourceMappingURL=IndexerServerFailureError-BoGd4gih.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerServerFailureError-ClC8vkmR.d.ts","names":[],"sources":["../src/types/src/types/IndexerServerFailureError.ts"],"mappings":";;;;;;AAeA;;;;;;;cAAa,yBAAA,SAAkC,sBAAA;EAAA,SAC5B,YAAA,EAAc,4BAAA;EAAA,SACd,WAAA,EAAa,wBAAA;EADb;;;EAAA,SAMR,UAAA;cAEG,YAAA,EAAc,4BAAA,EAA8B,UAAA;AAAA"}
1
+ {"version":3,"file":"IndexerServerFailureError-BoGd4gih.d.ts","names":[],"sources":["../src/types/src/types/IndexerServerFailureError.ts"],"mappings":";;;;;;AAeA;;;;;;;cAAa,yBAAA,SAAkC,sBAAA;EAAA,SAC5B,YAAA,EAAc,4BAAA;EAAA,SACd,WAAA,EAAa,wBAAA;EADb;;;EAAA,SAMR,UAAA;cAEG,YAAA,EAAc,4BAAA,EAA8B,UAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { Rt as IndexerServerRequestType, T as IndexerServerFailureResponse } from "./serverTypes-DeUDMCog.cjs";
1
+ import { Bt as IndexerServerRequestType, T as IndexerServerFailureResponse } from "./serverTypes-CyqBF-nt.cjs";
2
2
  import { BaseServerFailureError } from "@nadohq/shared";
3
3
 
4
4
  //#region src/types/IndexerServerFailureError.d.ts
@@ -22,4 +22,4 @@ declare class IndexerServerFailureError extends BaseServerFailureError {
22
22
  }
23
23
  //#endregion
24
24
  export { IndexerServerFailureError as t };
25
- //# sourceMappingURL=IndexerServerFailureError-BMmMPfFJ.d.cts.map
25
+ //# sourceMappingURL=IndexerServerFailureError-D-KNqVt3.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerServerFailureError-BMmMPfFJ.d.cts","names":[],"sources":["../src/types/src/types/IndexerServerFailureError.ts"],"mappings":";;;;;;AAeA;;;;;;;cAAa,yBAAA,SAAkC,sBAAA;EAAA,SAC5B,YAAA,EAAc,4BAAA;EAAA,SACd,WAAA,EAAa,wBAAA;EADb;;;EAAA,SAMR,UAAA;cAEG,YAAA,EAAc,4BAAA,EAA8B,UAAA;AAAA"}
1
+ {"version":3,"file":"IndexerServerFailureError-D-KNqVt3.d.cts","names":[],"sources":["../src/types/src/types/IndexerServerFailureError.ts"],"mappings":";;;;;;AAeA;;;;;;;cAAa,yBAAA,SAAkC,sBAAA;EAAA,SAC5B,YAAA,EAAc,4BAAA;EAAA,SACd,WAAA,EAAa,wBAAA;EADb;;;EAAA,SAMR,UAAA;cAEG,YAAA,EAAc,4BAAA,EAA8B,UAAA;AAAA"}
@@ -4,11 +4,6 @@ interface NadoMatchOrdersTx {
4
4
  product_id: number;
5
5
  };
6
6
  }
7
- interface NadoMatchOrdersRfqTx {
8
- match_orders_r_f_q: {
9
- product_id: number;
10
- };
11
- }
12
7
  interface NadoLiquidateSubaccountTx {
13
8
  liquidate_subaccount: {
14
9
  sender: string;
@@ -52,9 +47,9 @@ interface NadoTransferQuoteTx {
52
47
  nonce: number;
53
48
  };
54
49
  }
55
- type NadoTx = NadoMatchOrdersTx | NadoMatchOrdersRfqTx | NadoLiquidateSubaccountTx | NadoDepositCollateralTx | NadoTransferQuoteTx | NadoWithdrawCollateralTx | NadoWithdrawCollateralV2Tx | {
50
+ type NadoTx = NadoMatchOrdersTx | NadoLiquidateSubaccountTx | NadoDepositCollateralTx | NadoTransferQuoteTx | NadoWithdrawCollateralTx | NadoWithdrawCollateralV2Tx | {
56
51
  [key: string]: never;
57
52
  };
58
53
  //#endregion
59
- export { NadoTransferQuoteTx as a, NadoWithdrawCollateralV2Tx as c, NadoMatchOrdersTx as i, NadoLiquidateSubaccountTx as n, NadoTx as o, NadoMatchOrdersRfqTx as r, NadoWithdrawCollateralTx as s, NadoDepositCollateralTx as t };
60
- //# sourceMappingURL=NadoTx-Bd4U-zDu.d.ts.map
54
+ export { NadoTx as a, NadoTransferQuoteTx as i, NadoLiquidateSubaccountTx as n, NadoWithdrawCollateralTx as o, NadoMatchOrdersTx as r, NadoWithdrawCollateralV2Tx as s, NadoDepositCollateralTx as t };
55
+ //# sourceMappingURL=NadoTx-4BQkGyHz.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NadoTx-4BQkGyHz.d.cts","names":[],"sources":["../src/types/src/types/NadoTx.ts"],"mappings":";UAAiB,iBAAA;EACf,YAAA;IACE,UAAU;EAAA;AAAA;AAAA,UAIG,yBAAA;EACf,oBAAA;IACE,MAAA;IACA,UAAA;IACA,IAAA;IAEA,UAAA;IACA,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,wBAAA;EACf,mBAAA;IACE,MAAA;IACA,UAAA;IACA,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,0BAAA;EACf,sBAAA;IACE,MAAA;IACA,UAAA;IACA,MAAA;IACA,KAAA;IAEA,OAAA;IAEA,QAAA;EAAA;AAAA;AAAA,UAIa,uBAAA;EACf,kBAAA;IACE,MAAA;IACA,UAAA;IACA,MAAA;EAAA;AAAA;AAAA,UAIa,mBAAA;EACf,cAAA;IACE,MAAA;IACA,SAAA;IACA,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,KAIQ,MAAA,GACR,iBAAA,GACA,yBAAA,GACA,uBAAA,GACA,mBAAA,GACA,wBAAA,GACA,0BAAA;EAAA,CAGG,GAAA;AAAA"}
@@ -4,11 +4,6 @@ interface NadoMatchOrdersTx {
4
4
  product_id: number;
5
5
  };
6
6
  }
7
- interface NadoMatchOrdersRfqTx {
8
- match_orders_r_f_q: {
9
- product_id: number;
10
- };
11
- }
12
7
  interface NadoLiquidateSubaccountTx {
13
8
  liquidate_subaccount: {
14
9
  sender: string;
@@ -52,9 +47,9 @@ interface NadoTransferQuoteTx {
52
47
  nonce: number;
53
48
  };
54
49
  }
55
- type NadoTx = NadoMatchOrdersTx | NadoMatchOrdersRfqTx | NadoLiquidateSubaccountTx | NadoDepositCollateralTx | NadoTransferQuoteTx | NadoWithdrawCollateralTx | NadoWithdrawCollateralV2Tx | {
50
+ type NadoTx = NadoMatchOrdersTx | NadoLiquidateSubaccountTx | NadoDepositCollateralTx | NadoTransferQuoteTx | NadoWithdrawCollateralTx | NadoWithdrawCollateralV2Tx | {
56
51
  [key: string]: never;
57
52
  };
58
53
  //#endregion
59
- export { NadoTransferQuoteTx as a, NadoWithdrawCollateralV2Tx as c, NadoMatchOrdersTx as i, NadoLiquidateSubaccountTx as n, NadoTx as o, NadoMatchOrdersRfqTx as r, NadoWithdrawCollateralTx as s, NadoDepositCollateralTx as t };
60
- //# sourceMappingURL=NadoTx-C3_f0YvI.d.cts.map
54
+ export { NadoTx as a, NadoTransferQuoteTx as i, NadoLiquidateSubaccountTx as n, NadoWithdrawCollateralTx as o, NadoMatchOrdersTx as r, NadoWithdrawCollateralV2Tx as s, NadoDepositCollateralTx as t };
55
+ //# sourceMappingURL=NadoTx-DPrcN9Eo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NadoTx-DPrcN9Eo.d.ts","names":[],"sources":["../src/types/src/types/NadoTx.ts"],"mappings":";UAAiB,iBAAA;EACf,YAAA;IACE,UAAU;EAAA;AAAA;AAAA,UAIG,yBAAA;EACf,oBAAA;IACE,MAAA;IACA,UAAA;IACA,IAAA;IAEA,UAAA;IACA,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,wBAAA;EACf,mBAAA;IACE,MAAA;IACA,UAAA;IACA,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,0BAAA;EACf,sBAAA;IACE,MAAA;IACA,UAAA;IACA,MAAA;IACA,KAAA;IAEA,OAAA;IAEA,QAAA;EAAA;AAAA;AAAA,UAIa,uBAAA;EACf,kBAAA;IACE,MAAA;IACA,UAAA;IACA,MAAA;EAAA;AAAA;AAAA,UAIa,mBAAA;EACf,cAAA;IACE,MAAA;IACA,SAAA;IACA,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,KAIQ,MAAA,GACR,iBAAA,GACA,yBAAA,GACA,uBAAA,GACA,mBAAA,GACA,wBAAA,GACA,0BAAA;EAAA,CAGG,GAAA;AAAA"}
@@ -1,8 +1,8 @@
1
1
  import { t as CandlestickPeriod } from "./CandlestickPeriod-1DtcEiOb.js";
2
- import { t as IndexerEventType } from "./IndexerEventType-Brm9aX8w.js";
2
+ import { n as IndexerEventType } from "./IndexerEventType-BFvrhslw.js";
3
3
  import { t as IndexerLeaderboardRankType } from "./IndexerLeaderboardType-DAKw2tfI.js";
4
- import { c as NadoWithdrawCollateralV2Tx, o as NadoTx, s as NadoWithdrawCollateralTx } from "./NadoTx-Bd4U-zDu.js";
5
- import { E as IndexerServerFastWithdrawalSignatureParams, Ut as IndexerServerTriggerTypeFilter, Z as IndexerServerListSubaccountsParams, y as IndexerServerCashIncentivesWalletStatus } from "./serverTypes-BQafrknp.js";
4
+ import { a as NadoTx, o as NadoWithdrawCollateralTx, s as NadoWithdrawCollateralV2Tx } from "./NadoTx-DPrcN9Eo.js";
5
+ import { E as IndexerServerFastWithdrawalSignatureParams, Gt as IndexerServerTriggerTypeFilter, Z as IndexerServerListSubaccountsParams, y as IndexerServerCashIncentivesWalletStatus } from "./serverTypes-Dod9cCEW.js";
6
6
  import { EIP712OrderValues, Market, OrderAppendix, PerpBalance, PerpMarket, ProductEngineType, SignatureParams, SpotBalance, SpotMarket, Subaccount } from "@nadohq/shared";
7
7
  import BigNumber from "bignumber.js";
8
8
  import { Address, Hex } from "viem";
@@ -381,6 +381,108 @@ interface IndexerMatchEvent extends Subaccount {
381
381
  margin: BigNumber | null;
382
382
  }
383
383
  type GetIndexerMatchEventsResponse = IndexerMatchEvent[];
384
+ /**
385
+ * Position history
386
+ */
387
+ /**
388
+ * Params for querying a subaccount's historical positions. All parameters except
389
+ * `subaccount` are optional filters.
390
+ */
391
+ interface GetIndexerPositionsParams {
392
+ /**
393
+ * Subaccount to query. Isolated positions are also returned under the parent
394
+ * subaccount, so always query with the parent.
395
+ */
396
+ subaccount: Subaccount;
397
+ /** When provided, only return positions of the specified product. */
398
+ productId?: number;
399
+ /** `true`: only isolated positions, `false`: only cross positions. Omit for both. */
400
+ isolated?: boolean;
401
+ /** `true`: only positions that are still open, `false`: only closed positions. Omit for both. */
402
+ open?: boolean;
403
+ /**
404
+ * Max `openId`, inclusive. To paginate, pass the last returned position's
405
+ * `openId - 1` as the next request's `startCursor`.
406
+ */
407
+ startCursor?: string;
408
+ /** Max number of positions to return. Defaults to 100, max 500. */
409
+ limit?: number;
410
+ }
411
+ /**
412
+ * A historical position for a subaccount in a product. A position opens when the balance
413
+ * goes from zero to non-zero or flips direction, and closes when the balance returns to
414
+ * zero or flips again. All amount fields are absolute values; the side of the position is
415
+ * given by `direction`.
416
+ */
417
+ interface IndexerPosition {
418
+ /** Subaccount hex ID associated with the position. */
419
+ subaccount: string;
420
+ productId: number;
421
+ isolated: boolean;
422
+ /** Direction of the position. `true` for long, `false` for short. */
423
+ direction: boolean;
424
+ /** `submissionIndex` of the transaction that opened the position. */
425
+ openId: string;
426
+ /** `submissionIndex` of the transaction that closed the position; `-1` if still open. */
427
+ closeId: string;
428
+ /** `submissionIndex` of the last transaction that updated the position. */
429
+ submissionIndex: string;
430
+ /** Current size of the position; `0` once the position is closed. */
431
+ amount: BigNumber;
432
+ /** Peak size reached by the position. */
433
+ maxAmount: BigNumber;
434
+ /** Total amount opened on this position. */
435
+ totalOpenAmount: BigNumber;
436
+ /** Total amount closed on this position. */
437
+ totalCloseAmount: BigNumber;
438
+ /** Volume-weighted average entry price of the position. */
439
+ averageEntryPrice: BigNumber;
440
+ /** Volume-weighted average exit price of the position. */
441
+ averageExitPrice: BigNumber;
442
+ /** Total amount closed by liquidations on this position. */
443
+ liquidatedAmount: BigNumber;
444
+ /**
445
+ * Peak leverage reached by the isolated position; `0` for cross positions.
446
+ * Set to `i128::MAX` (decimal adjusted) when the position's equity is below zero.
447
+ */
448
+ maxIsolatedLeverage: BigNumber;
449
+ /** Total fees paid on fills that increased the position. */
450
+ openFee: BigNumber;
451
+ /** Total fees paid on fills that decreased the position. */
452
+ closeFee: BigNumber;
453
+ /** Realized PnL for this position. */
454
+ realizedPnl: BigNumber;
455
+ /** Unix epoch in seconds of when the position was opened. */
456
+ openTimestamp: BigNumber;
457
+ /** Unix epoch in seconds of when the position was last updated. */
458
+ updateTimestamp: BigNumber;
459
+ /** The transaction type that opened the position, e.g. `match_orders`. */
460
+ openReason: IndexerEventType;
461
+ /** The transaction type that closed the position; `null` if still open. */
462
+ closeReason: IndexerEventType | null;
463
+ /** Net funding payment on this position. Only for perp positions. */
464
+ netFundingPayment: BigNumber;
465
+ /** Net interest payment on this position. Only for spot positions. */
466
+ netInterestPayment: BigNumber;
467
+ /** Digest of the order that opened the position; `null` if not opened by a match. */
468
+ openDigest: string | null;
469
+ /** Digest of the order that closed the position; `null` if not closed by a match or still open. */
470
+ closeDigest: string | null;
471
+ netEntryUnrealized: BigNumber;
472
+ }
473
+ /**
474
+ * Response for the positions query.
475
+ */
476
+ interface GetIndexerPositionsResponse {
477
+ /** Positions in descending order by `openId`. */
478
+ positions: IndexerPosition[];
479
+ /**
480
+ * Events (with their transactions) at each position's boundaries: open and close, or
481
+ * open and latest update while still open. Join them to positions via
482
+ * `openId` / `closeId` / `submissionIndex`.
483
+ */
484
+ events: IndexerEventWithTx[];
485
+ }
384
486
  /**
385
487
  * Quote price
386
488
  */
@@ -890,5 +992,5 @@ interface IndexerV2Symbol {
890
992
  */
891
993
  type GetIndexerV2SymbolsResponse = Record<string, IndexerV2Symbol>;
892
994
  //#endregion
893
- export { GetIndexerOrdersResponse as $, IndexerPointsEpoch as $t, GetIndexerLeaderboardRegistrationsResponse as A, IndexerCashIncentivesWalletSummary as At, GetIndexerMultiProductFundingRatesParams as B, IndexerLeaderboardParticipant as Bt, GetIndexerInterestFundingPaymentsResponse as C, RevokeSocialAccountParams as Cn, IndexerCashIncentivesClaimableClaim as Ct, GetIndexerLeaderboardParticipantParams as D, IndexerCashIncentivesEventWallet as Dt, GetIndexerLeaderboardParams as E, IndexerCashIncentivesEventPlatform as Et, GetIndexerMakerStatisticsResponse as F, IndexerEventWithTx as Ft, GetIndexerMultiProductSnapshotsResponse as G, IndexerMarketSnapshot as Gt, GetIndexerMultiProductPerpPricesParams as H, IndexerLeaderboardTrackPosition as Ht, GetIndexerMarketSnapshotsParams as I, IndexerFundingRate as It, GetIndexerNlpSnapshotsParams as J, IndexerNlpSnapshot as Jt, GetIndexerMultiSubaccountSnapshotsParams as K, IndexerMatchEvent as Kt, GetIndexerMarketSnapshotsResponse as L, IndexerFundingRateHistoryEntry as Lt, GetIndexerLinkedSignerParams as M, IndexerEventBalanceStateSnapshot as Mt, GetIndexerLinkedSignerResponse as N, IndexerEventPerpStateSnapshot as Nt, GetIndexerLeaderboardParticipantResponse as O, IndexerCashIncentivesUnclaimableClaim as Ot, GetIndexerMakerStatisticsParams as P, IndexerEventSpotStateSnapshot as Pt, GetIndexerOrdersParams as Q, IndexerPerpPrices as Qt, GetIndexerMatchEventsParams as R, IndexerLeaderboardContest as Rt, GetIndexerInterestFundingPaymentsParams as S, RegisterLeaderboardResponse as Sn, IndexerBalanceTrackedVars as St, GetIndexerLeaderboardContestsResponse as T, TickerMarketType as Tn, IndexerCashIncentivesEventMetadata as Tt, GetIndexerMultiProductPerpPricesResponse as U, IndexerMaker as Ut, GetIndexerMultiProductFundingRatesResponse as V, IndexerLeaderboardRegistration as Vt, GetIndexerMultiProductSnapshotsParams as W, IndexerMakerSnapshot as Wt, GetIndexerOraclePricesParams as X, IndexerOrder as Xt, GetIndexerNlpSnapshotsResponse as Y, IndexerOraclePrice as Yt, GetIndexerOraclePricesResponse as Z, IndexerPerpBalance as Zt, GetIndexerFastWithdrawalSignatureResponse as _, ListIndexerSocialAccountsParams as _n, GetIndexerV2TickersParams as _t, GetIndexerCandlesticksParams as a, IndexerSnapshotBalance as an, GetIndexerPortfolioResponse as at, GetIndexerFundingRateParams as b, ListIndexerSubaccountsResponse as bn, GetIndexerXPointsResponse as bt, GetIndexerCashIncentivesResponse as c, IndexerSpotBalance as cn, GetIndexerProductSnapshotsParams as ct, GetIndexerEdgeMarketSnapshotResponse as d, IndexerV2Symbol as dn, GetIndexerReferralCodeParams as dt, IndexerPortfolioHistory as en, GetIndexerPerpPricesParams as et, GetIndexerEdgeMarketSnapshotsParams as f, IndexerV2TickerResponse as fn, GetIndexerReferralCodeResponse as ft, GetIndexerFastWithdrawalSignatureParams as g, IndexerXPointsQuest as gn, GetIndexerV2SymbolsResponse as gt, GetIndexerEventsResponse as h, IndexerXPointsEpoch as hn, GetIndexerV2SymbolsParams as ht, GetIndexerBacklogResponse as i, IndexerProductSnapshot as in, GetIndexerPortfolioParams as it, GetIndexerLeaderboardResponse as j, IndexerEvent as jt, GetIndexerLeaderboardRegistrationsParams as k, IndexerCashIncentivesWalletClaim as kt, GetIndexerEdgeCandlesticksParams as l, IndexerSubaccountSnapshot as ln, GetIndexerProductSnapshotsResponse as lt, GetIndexerEventsParams as m, IndexerXPointsAllTime as mn, GetIndexerSubaccountDDAResponse as mt, ConnectSocialAccountParams as n, IndexerPortfolioPoint as nn, GetIndexerPointsParams as nt, GetIndexerCandlesticksResponse as o, IndexerSnapshotsIntervalParams as on, GetIndexerPrivateAlphaChoiceParams as ot, GetIndexerEventsLimitType as p, IndexerV2TradingStatus as pn, GetIndexerSubaccountDDAParams as pt, GetIndexerMultiSubaccountSnapshotsResponse as q, IndexerMatchEventBalances as qt, ConnectSocialAccountResponse as r, IndexerProductPayment as rn, GetIndexerPointsResponse as rt, GetIndexerCashIncentivesParams as s, IndexerSocialAccountInfo as sn, GetIndexerPrivateAlphaChoiceResponse as st, Candlestick as t, IndexerPortfolioPeriod as tn, GetIndexerPerpPricesResponse as tt, GetIndexerEdgeCandlesticksResponse as u, IndexerV2MarketHours as un, GetIndexerQuotePriceResponse as ut, GetIndexerFundingRateHistoryParams as v, ListIndexerSocialAccountsResponse as vn, GetIndexerV2TickersResponse as vt, GetIndexerLeaderboardContestsParams as w, RevokeSocialAccountResponse as wn, IndexerCashIncentivesEvent as wt, GetIndexerFundingRateResponse as x, RegisterLeaderboardParams as xn, IndexerAllTimePoints as xt, GetIndexerFundingRateHistoryResponse as y, ListIndexerSubaccountsParams as yn, GetIndexerXPointsParams as yt, GetIndexerMatchEventsResponse as z, IndexerLeaderboardContestTrack as zt };
894
- //# sourceMappingURL=clientTypes-BLKeWmIr.d.ts.map
995
+ export { GetIndexerOrdersResponse as $, IndexerPerpBalance as $t, GetIndexerLeaderboardRegistrationsResponse as A, IndexerCashIncentivesUnclaimableClaim as At, GetIndexerMultiProductFundingRatesParams as B, IndexerLeaderboardContest as Bt, GetIndexerInterestFundingPaymentsResponse as C, ListIndexerSubaccountsResponse as Cn, IndexerAllTimePoints as Ct, GetIndexerLeaderboardParticipantParams as D, RevokeSocialAccountResponse as Dn, IndexerCashIncentivesEventMetadata as Dt, GetIndexerLeaderboardParams as E, RevokeSocialAccountParams as En, IndexerCashIncentivesEvent as Et, GetIndexerMakerStatisticsResponse as F, IndexerEventPerpStateSnapshot as Ft, GetIndexerMultiProductSnapshotsResponse as G, IndexerMaker as Gt, GetIndexerMultiProductPerpPricesParams as H, IndexerLeaderboardParticipant as Ht, GetIndexerMarketSnapshotsParams as I, IndexerEventSpotStateSnapshot as It, GetIndexerNlpSnapshotsParams as J, IndexerMatchEvent as Jt, GetIndexerMultiSubaccountSnapshotsParams as K, IndexerMakerSnapshot as Kt, GetIndexerMarketSnapshotsResponse as L, IndexerEventWithTx as Lt, GetIndexerLinkedSignerParams as M, IndexerCashIncentivesWalletSummary as Mt, GetIndexerLinkedSignerResponse as N, IndexerEvent as Nt, GetIndexerLeaderboardParticipantResponse as O, TickerMarketType as On, IndexerCashIncentivesEventPlatform as Ot, GetIndexerMakerStatisticsParams as P, IndexerEventBalanceStateSnapshot as Pt, GetIndexerOrdersParams as Q, IndexerOrder as Qt, GetIndexerMatchEventsParams as R, IndexerFundingRate as Rt, GetIndexerInterestFundingPaymentsParams as S, ListIndexerSubaccountsParams as Sn, GetIndexerXPointsResponse as St, GetIndexerLeaderboardContestsResponse as T, RegisterLeaderboardResponse as Tn, IndexerCashIncentivesClaimableClaim as Tt, GetIndexerMultiProductPerpPricesResponse as U, IndexerLeaderboardRegistration as Ut, GetIndexerMultiProductFundingRatesResponse as V, IndexerLeaderboardContestTrack as Vt, GetIndexerMultiProductSnapshotsParams as W, IndexerLeaderboardTrackPosition as Wt, GetIndexerOraclePricesParams as X, IndexerNlpSnapshot as Xt, GetIndexerNlpSnapshotsResponse as Y, IndexerMatchEventBalances as Yt, GetIndexerOraclePricesResponse as Z, IndexerOraclePrice as Zt, GetIndexerFastWithdrawalSignatureResponse as _, IndexerXPointsAllTime as _n, GetIndexerV2SymbolsParams as _t, GetIndexerCandlesticksParams as a, IndexerPosition as an, GetIndexerPortfolioResponse as at, GetIndexerFundingRateParams as b, ListIndexerSocialAccountsParams as bn, GetIndexerV2TickersResponse as bt, GetIndexerCashIncentivesResponse as c, IndexerSnapshotBalance as cn, GetIndexerPrivateAlphaChoiceParams as ct, GetIndexerEdgeMarketSnapshotResponse as d, IndexerSpotBalance as dn, GetIndexerProductSnapshotsResponse as dt, IndexerPerpPrices as en, GetIndexerPerpPricesParams as et, GetIndexerEdgeMarketSnapshotsParams as f, IndexerSubaccountSnapshot as fn, GetIndexerQuotePriceResponse as ft, GetIndexerFastWithdrawalSignatureParams as g, IndexerV2TradingStatus as gn, GetIndexerSubaccountDDAResponse as gt, GetIndexerEventsResponse as h, IndexerV2TickerResponse as hn, GetIndexerSubaccountDDAParams as ht, GetIndexerBacklogResponse as i, IndexerPortfolioPoint as in, GetIndexerPortfolioParams as it, GetIndexerLeaderboardResponse as j, IndexerCashIncentivesWalletClaim as jt, GetIndexerLeaderboardRegistrationsParams as k, IndexerCashIncentivesEventWallet as kt, GetIndexerEdgeCandlesticksParams as l, IndexerSnapshotsIntervalParams as ln, GetIndexerPrivateAlphaChoiceResponse as lt, GetIndexerEventsParams as m, IndexerV2Symbol as mn, GetIndexerReferralCodeResponse as mt, ConnectSocialAccountParams as n, IndexerPortfolioHistory as nn, GetIndexerPointsParams as nt, GetIndexerCandlesticksResponse as o, IndexerProductPayment as on, GetIndexerPositionsParams as ot, GetIndexerEventsLimitType as p, IndexerV2MarketHours as pn, GetIndexerReferralCodeParams as pt, GetIndexerMultiSubaccountSnapshotsResponse as q, IndexerMarketSnapshot as qt, ConnectSocialAccountResponse as r, IndexerPortfolioPeriod as rn, GetIndexerPointsResponse as rt, GetIndexerCashIncentivesParams as s, IndexerProductSnapshot as sn, GetIndexerPositionsResponse as st, Candlestick as t, IndexerPointsEpoch as tn, GetIndexerPerpPricesResponse as tt, GetIndexerEdgeCandlesticksResponse as u, IndexerSocialAccountInfo as un, GetIndexerProductSnapshotsParams as ut, GetIndexerFundingRateHistoryParams as v, IndexerXPointsEpoch as vn, GetIndexerV2SymbolsResponse as vt, GetIndexerLeaderboardContestsParams as w, RegisterLeaderboardParams as wn, IndexerBalanceTrackedVars as wt, GetIndexerFundingRateResponse as x, ListIndexerSocialAccountsResponse as xn, GetIndexerXPointsParams as xt, GetIndexerFundingRateHistoryResponse as y, IndexerXPointsQuest as yn, GetIndexerV2TickersParams as yt, GetIndexerMatchEventsResponse as z, IndexerFundingRateHistoryEntry as zt };
996
+ //# sourceMappingURL=clientTypes-CnswaLwH.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientTypes-CnswaLwH.d.ts","names":[],"sources":["../src/types/src/types/clientTypes.ts"],"mappings":";;;;;;;;;;;;AAiCA;KAAY,kBAAA,GAAqB,IAAI,CAAC,WAAA;AAAA,KAE1B,kBAAA,GAAqB,IAAI,CAAC,WAAA;AAAA,UAErB,6BAAA;EACf,IAAA,EAAM,iBAAA,CAAkB,IAAA;EACxB,UAAA,EAAY,kBAAA;EACZ,WAAA,EAAa,kBAAA;EACb,MAAA,EAAQ,UAAA;AAAA;AAAA,UAGO,6BAAA;EACf,IAAA,EAAM,iBAAA,CAAkB,IAAA;EACxB,UAAA,EAAY,kBAAA;EACZ,WAAA,EAAa,kBAAA;EACb,MAAA,EAAQ,UAAA;AAAA;AAAA,KAGE,gCAAA,GACR,6BAAA,GACA,6BAA6B;AAAA,UAEhB,yBAAA;EACf,qBAAA,EAAuB,SAAA;EACvB,qBAAA,EAAuB,SAAA;EACvB,oBAAA,EAAsB,SAAA;EACtB,oBAAA,EAAsB,SAAA;EACtB,kBAAA,EAAoB,SAAA;EACpB,kBAAA,EAAoB,SAAA;EACpB,qBAAA,EAAuB,SAAA;EACvB,oBAAA,EAAsB,SAAA;AAAA;AAAA,UAGP,YAAA,oBACI,gCAAA,GACjB,gCAAA;EAEF,UAAA;EACA,QAAA;EAEA,iBAAA;EACA,SAAA;EACA,eAAA;EACA,SAAA,EAAW,gBAAA;EACX,KAAA,EAAO,UAAA;EACP,WAAA,EAAa,yBAAA;AAAA;AAAA,UAGE,kBAAA,oBACI,gCAAA,GACjB,gCAAA,UACM,YAAA,CAAa,UAAA;EACrB,SAAA,EAAW,SAAA;EACX,EAAA,EAAI,MAAA;AAAA;;;;KAOM,4BAAA,GAA+B,kCAAkC;AAAA,KAEjE,8BAAA;EACV,KAAA;EAEA,SAAA;EACA,QAAA;AAAA,IACE,UAAU;AApDM;AAGpB;;AAHoB,UA0DH,wCAAA;EACf,WAAA,EAAa,UAAU;EAEvB,UAAA;EAEA,QAAA;AAAA;AAAA,KAGU,sBAAA,oBACS,gCAAA,GACjB,gCAAA,IACA,YAAA,CAAa,UAAA;AAAA,UAEA,yBAAA;EACf,SAAA,EAAW,SAAA;EACX,QAAA,EAAU,sBAAsB;AAAA;AAAA,UAGjB,0CAAA;EAEf,gBAAA;EAEA,SAAA,EAAW,MAAA,SAAe,MAAA,SAAe,yBAAA;AAAA;;;;UAO1B,0BAAA;EACf,SAAS;AAAA;AAAA,UAGM,iBAAA;EACf,SAAA;EACA,UAAA,EAAY,SAAA;EACZ,SAAA,EAAW,SAAA;EAEX,UAAA,EAAY,SAAA;AAAA;AAAA,KAGF,4BAAA,GAA+B,iBAAiB;AAAA,UAE3C,sCAAA;EACf,UAAU;AAAA;AAAA,KAIA,wCAAA,GAA2C,MAAM,SAE3D,iBAAA;;;AA7F+B;UAoGhB,4BAAA;EACf,UAAU;AAAA;AAAA,UAGK,kBAAA;EACf,SAAA;EACA,WAAA,EAAa,SAAA;EAEb,UAAA,EAAY,SAAS;AAAA;AAAA,KAGX,8BAAA,GAAiC,kBAAkB;;;;UAM9C,2BAAA;EACf,SAAS;AAAA;AAAA,UAGM,kBAAA;EACf,SAAA;EACA,WAAA,EAAa,SAAA;EAEb,UAAA,EAAY,SAAS;AAAA;AAAA,KAGX,6BAAA,GAAgC,kBAAkB;AAAA,UAE7C,wCAAA;EACf,UAAU;AAAA;AAAA,KAIA,0CAAA,GAA6C,MAAM,SAE7D,kBAAA;AA1HsC;AAGxC;;AAHwC,UAiIvB,kCAAA;EACf,SAAA;EA7HE;;;;EAkIF,kBAAA;EAjIoB;;;;EAsIpB,gBAAA;EAtIQ;EAwIR,KAAA;AAAA;AAAA,UAGe,8BAAA;EACf,SAAA;EAEA,SAAA,EAAW,SAAA;EA5ID;AAAA;AAOZ;;EA0IE,eAAA,EAAiB,SAAS;AAAA;AA1IiD;AAE7E;;;AAF6E,KAiJjE,oCAAA,GACV,8BAA8B;;;;UAMf,yBAAA;EAjJH;AAAA;AAMd;;EAgJE,UAAA,EAAY,UAAU;AAAA;AAAA,KAGZ,sBAAA;AAAA,UAUK,qBAAA;EAEf,SAAA,EAAW,SAAA;EAEX,KAAA,EAAO,SAAS;AAAA;AA5JR;AAGV;;;;AAHU,UAoKO,uBAAA;EAEf,mBAAA,EAAqB,qBAAA;EAhKnB;;;;EAqKF,UAAA,EAAY,qBAAA;EAtKV;;;;EA2KF,aAAA,EAAe,qBAAA;EAxKA;;;;;;EA+Kf,gBAAA,EAAkB,qBAAA;EA7KR;;AAAsB;AAGlC;EA+KE,kBAAA,EAAoB,qBAAA;AAAA;AAAA,KAGV,2BAAA,GAA8B,MAAA,CACxC,sBAAA,EACA,uBAAA;;;;UAOe,4BAAA;EACf,SAAA;EACA,MAAA,EAAQ,iBAAiB;EAEzB,gBAAA;EACA,KAAA;AAAA;AAAA,UAIe,WAAA;EAEf,IAAA,EAAM,SAAA;EACN,IAAA,EAAM,SAAA;EACN,IAAA,EAAM,SAAA;EACN,GAAA,EAAK,SAAA;EACL,KAAA,EAAO,SAAA;EACP,MAAA,EAAQ,SAAA;AAAA;AAAA,KAGE,8BAAA,GAAiC,WAAW;AAAA,KAE5C,kCAAA,GAAqC,8BAA8B;AAAA,KAEnE,gCAAA,GAAmC,4BAA4B;;;;UAM1D,gCAAA;EAEf,WAAA;EACA,SAAA;EACA,qBAAA;EACA,KAAA;AAAA;AAAA,UAGe,sBAAA,SAA+B,MAAM;EACpD,eAAe;AAAA;AAAA,KAGL,kCAAA,GAAqC,sBAAsB;AAAA,UAEtD,qCAAA;EACf,UAAA;EACA,qBAAqB;AAAA;AAAA,KAIX,uCAAA,GAA0C,MAAA,SAEpD,MAAA,SAAe,sBAAA;AAAA,UAGA,8BAAA;EAxNsC;EA0NrD,WAAA;EAzNU;AAAA;AAIZ;;;EA2NE,gBAAA;EACA,KAAA;AAAA;;;;UAOe,+BAAA,SAAwC,8BAA8B;EAErF,UAAU;AAAA;AAAA,UAGK,qBAAA;EACf,SAAA,EAAW,SAAA;EACX,eAAA,EAAiB,SAAA;EACjB,gBAAA,EAAkB,SAAA;EAClB,GAAA,EAAK,SAAA;EACL,iBAAA,EAAmB,MAAA,SAAe,SAAA;EAClC,mBAAA,EAAqB,MAAA,SAAe,SAAA;EACpC,uBAAA,EAAyB,MAAA,SAAe,SAAA;EACxC,mBAAA,EAAqB,MAAA,SAAe,SAAA;EACpC,gBAAA,EAAkB,MAAA,SAAe,SAAA;EACjC,4BAAA,EAA8B,MAAA,SAAe,SAAA;EAC7C,kBAAA,EAAoB,MAAA,SAAe,SAAA;EACnC,aAAA,EAAe,MAAA,SAAe,SAAA;EAC9B,YAAA,EAAc,MAAA,SAAe,SAAA;EAC7B,YAAA,EAAc,MAAA,SAAe,SAAA;EAC7B,YAAA,EAAc,MAAA,SAAe,SAAA;EAC7B,WAAA,EAAa,MAAA,SAAe,SAAA;EAC5B,oBAAA,EAAsB,MAAA,SAAe,SAAA;EACrC,iBAAA,EAAmB,MAAA,SAAe,SAAA;EAClC,kBAAA,EAAoB,MAAA,SAAe,SAAA;EACnC,YAAA,EAAc,MAAA,SAAe,SAAA;AAAA;AAAA,KAGnB,iCAAA,GAAoC,qBAAqB;AAAA,KAEzD,mCAAA,GACV,8BAA8B;AAAA,KAGpB,oCAAA,GAAuC,MAAM,SAEvD,qBAAA;;;;KAQU,yBAAA;AAAA,UAEK,sBAAA;EAEf,WAAA;EACA,WAAA,GAAc,UAAA;EACd,UAAA;EAEA,QAAA;EACA,UAAA,GAAa,gBAAA;EACb,qBAAA;EAEA,IAAA;EACA,KAAA;IACE,IAAA,EAAM,yBAAA;IACN,KAAA;EAAA;AAAA;AAAA,KAIQ,wBAAA,GAA2B,kBAAkB;;AApPrC;AAOpB;UAmPiB,sBAAA;EAEf,WAAA;EACA,WAAA,GAAc,UAAA;EACd,qBAAA;EACA,qBAAA;EACA,KAAA;EACA,UAAA;EACA,YAAA,GAAe,8BAA8B;EAE7C,QAAA;EACA,OAAA;AAAA;AAAA,UAGe,YAAA;EACf,MAAA;EACA,UAAA;EACA,SAAA;EACA,eAAA;EACA,uBAAA;EACA,MAAA,EAAQ,SAAA;EACR,KAAA,EAAO,SAAA;EACP,UAAA;EAEA,QAAA,EAAU,aAAA;EACV,KAAA,EAAO,SAAA;EACP,QAAA;EAEA,eAAA;EAEA,UAAA,EAAY,SAAA;EAEZ,WAAA,EAAa,SAAA;EAEb,QAAA,EAAU,SAAA;EACV,UAAA,EAAY,SAAA;EACZ,WAAA,EAAa,SAAA;EAEb,YAAA,EAAc,SAAA;EAEd,cAAA,EAAgB,SAAA;EAEhB,cAAA,EAAgB,SAAA;EAEhB,kBAAA,EAAoB,SAAA;EAEpB,iBAAA,EAAmB,SAAA;EAnPa;EAqPhC,WAAA,EAAa,yBAAA;EA3OuB;EA6OpC,YAAA,EAAc,yBAAA;AAAA;AAAA,KAGJ,wBAAA,GAA2B,YAAY;;;;UAMlC,2BAAA;EAEf,WAAA,GAAc,UAAU;EACxB,UAAA;EAEA,QAAA;EACA,qBAAA;EACA,KAAA;EAEA,WAAA;AAAA;AAAA,UAIe,yBAAA;EACf,IAAA,EAAM,kBAAA,GAAqB,kBAAA;EAC3B,KAAA,GAAQ,kBAAA;AAAA;AAAA,UAGO,iBAAA,SAA0B,UAAA;EACzC,SAAA;EACA,MAAA;EACA,QAAA;EACA,KAAA,EAAO,iBAAA;EACP,UAAA,EAAY,SAAA;EACZ,WAAA,EAAa,SAAA;EAEb,QAAA,EAAU,SAAA;EACV,YAAA,EAAc,SAAA;EACd,UAAA,EAAY,SAAA;EACZ,oBAAA,EAAsB,SAAA;EACtB,qBAAA,EAAuB,SAAA;EACvB,aAAA,EAAe,SAAA;EACf,eAAA;EACA,SAAA,EAAW,SAAA;EACX,OAAA;EAEA,mBAAA,EAAqB,IAAA,CACnB,yBAAA;EAGF,WAAA,EAAa,yBAAA;EACb,YAAA,EAAc,yBAAA;EACd,EAAA,EAAI,MAAA;EACJ,WAAA,EAAa,SAAA;EAEb,YAAA,EAAc,SAAA;EAEd,cAAA,EAAgB,SAAA;EAEhB,MAAA,EAAQ,SAAA;AAAA;AAAA,KAGE,6BAAA,GAAgC,iBAAiB;;;;;;;;UAU5C,yBAAA;EA/PV;AAAA;AAIP;;EAgQE,UAAA,EAAY,UAAU;EA9PhB;EAgQN,SAAA;EA9PM;EAgQN,QAAA;EA9PO;EAgQP,IAAA;EA/PiB;;;;EAoQjB,WAAA;EAxQM;EA0QN,KAAA;AAAA;;;;;;;UASe,eAAA;EA/QE;EAiRjB,UAAA;EACA,SAAA;EACA,QAAA;EAhRsD;EAkRtD,SAAA;EAhRU;EAkRV,MAAA;;EAEA,OAAA;EApR6E;EAsR7E,eAAA;EApR0C;EAsR1C,MAAA,EAAQ,SAAA;EAtRiE;EAwRzE,SAAA,EAAW,SAAA;EAlRI;EAoRf,eAAA,EAAiB,SAAA;;EAEjB,gBAAA,EAAkB,SAAA;EApRlB;EAsRA,iBAAA,EAAmB,SAAA;EApRnB;EAsRA,gBAAA,EAAkB,SAAA;EArRb;EAuRL,gBAAA,EAAkB,SAAA;EApRH;;;;EAyRf,mBAAA,EAAqB,SAAA;EArRX;EAuRV,OAAA,EAAS,SAAA;;EAET,QAAA,EAAU,SAAA;EAzR2D;EA2RrE,WAAA,EAAa,SAAA;EAzRuC;EA2RpD,aAAA,EAAe,SAAA;EA1Rf;EA4RA,eAAA,EAAiB,SAAA;EAvRP;EAyRV,UAAA,EAAY,gBAAA;;EAEZ,WAAA,EAAa,gBAAA;EAzRb;EA2RA,iBAAA,EAAmB,SAAA;EA7RuC;EA+R1D,kBAAA,EAAoB,SAAA;EA/RgC;EAiSpD,UAAA;EA/Re;EAiSf,WAAA;EACA,kBAAA,EAAoB,SAAA;AAAA;;;;UAML,2BAAA;EA7Rf;EA+RA,SAAA,EAAW,eAAA;EA9RN;AAAA;AAOP;;;EA6RE,MAAA,EAAQ,kBAAkB;AAAA;AAxR5B;;;AAAA,UA+RiB,4BAAA;EACf,KAAA,EAAO,SAAS;AAAA;;;;UAOD,4BAAA;EACf,UAAA,EAAY,UAAU;AAAA;AAAA,UAGP,8BAAA;EACf,YAAA,EAAc,SAAA;EACd,YAAA,EAAc,SAAA;EAEd,mBAAA,EAAqB,SAAA;EAErB,MAAA;AAAA;;;;UAOe,uCAAA;EACf,UAAA,EAAY,UAAU;EACtB,UAAA;EACA,qBAAA;EACA,KAAA;EAEA,WAAA;AAAA;AAAA,UAGe,qBAAA;EACf,SAAA;EACA,eAAA;EACA,SAAA,EAAW,SAAA;EACX,aAAA,EAAe,SAAA;EAGf,aAAA,EAAe,SAAA;EAEf,iBAAA,EAAmB,SAAA;EACnB,WAAA,EAAa,SAAA;EACb,QAAA;EAEA,iBAAA;AAAA;AAAA,UAGe,yCAAA;EACf,gBAAA,EAAkB,qBAAA;EAClB,eAAA,EAAiB,qBAAqB;EACtC,UAAA;AAAA;;;;UAOe,4BAAA;EACf,UAAA,EAAY,UAAU;AAAA;AAAA,UAGP,8BAAA;EACf,YAAY;AAAA;;;;UAOG,+BAAA;EACf,SAAA;EACA,KAAA;EACA,QAAA;AAAA;AAAA,UAGe,oBAAA;EACf,SAAA,EAAW,SAAA;EACX,QAAA,EAAU,SAAA;EACV,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,SAAA;EACT,MAAA,EAAQ,SAAA;EACR,UAAA,EAAY,SAAA;EACZ,mBAAA,EAAqB,SAAA;AAAA;AAAA,UAGN,YAAA;EACf,OAAA;EACA,SAAA,EAAW,oBAAoB;AAAA;AAAA,UAGhB,iCAAA;EACf,iBAAA,EAAmB,SAAA;EACnB,MAAA,EAAQ,YAAY;AAAA;;;;UAOL,2BAAA;EACf,SAAA;EAtXa;;;;;EA4Xb,QAAA,GAAW,0BAA0B;EAErC,WAAA;EACA,KAAA;EA5XA;EA8XA,KAAA;AAAA;AAAA,UAGe,wBAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,eAAA;AAAA;AAAA,UAGe,+BAAA;EACf,KAAA,EAAO,SAAA;EACP,IAAA,EAAM,SAAS;EACf,mBAAA;AAAA;AAAA,UAOe,6BAAA;EACf,UAAA,EAAY,UAAA;EACZ,SAAA;EAEA,YAAA,EAAc,SAAA;EAEd,UAAA,EAAY,SAAA;EACZ,MAAA,EAAQ,OAAA,CACN,MAAA,CAAO,0BAAA,EAA4B,+BAAA;EAErC,cAAA,EAAgB,wBAAA;AAAA;AAAA,UAGD,6BAAA;EACf,YAAA,EAAc,6BAA6B;AAAA;AAAA,UAG5B,sCAAA;EACf,UAAA;EACA,UAAA,EAAY,UAAU;AAAA;AAAA,UAGP,wCAAA;EAGf,WAAA,EAAa,MAAM,SAAS,6BAAA;AAAA;AAAA,UAGb,wCAAA;EACf,UAAA,EAAY,UAAU;EA7YW;EA+YjC,UAAA;EAzZA;EA2ZA,MAAA;AAAA;AAAA,UAGe,yBAAA,SAAkC,UAAA,EAAY,eAAA;EAC7D,UAAA;EA1ZA;EA4ZA,QAAA,GAAW,SAAA;AAAA;AAAA,UAGI,8BAAA;EACf,UAAA,EAAY,UAAA;EACZ,SAAA;EAEA,UAAA,EAAY,SAAS;AAAA;AAAA,UAGN,0CAAA;EACf,aAAA,EAAe,8BAA8B;AAAA;AAAA,KAGnC,2BAAA,GACV,0CAA0C;AAAA,UAE3B,mCAAA;EAnawC;EAqavD,UAAA;EA/Ze;EAiaf,MAAM;AAAA;AAAA,UAGS,8BAAA;EACf,OAAA;EACA,QAAA,EAAU,0BAAA;EACV,SAAA;EAEA,qBAAA,EAAuB,SAAA;EAEvB,eAAA,EAAiB,SAAA;AAAA;AAAA,UAGF,yBAAA;EACf,SAAA;EAEA,SAAA,EAAW,SAAA;EAEX,OAAA,EAAS,SAAA;EAET,WAAA,EAAa,SAAA;EACb,iBAAA,EAAmB,SAAA;EAEnB,kBAAA;EACA,MAAA;EACA,KAAA;EACA,WAAA;EACA,MAAA,EAAQ,8BAAA;AAAA;AAAA,UAGO,qCAAA;EACf,QAAA,EAAU,yBAAyB;AAAA;;;;UAOpB,0BAAA,SACP,UAAA,EAAY,eAAA;EACpB,QAAA;EAjagB;EAmahB,QAAA,GAAW,SAAA;AAAA;AAAA,UAGI,4BAAA;EACf,GAAG;AAAA;AAAA,UAGY,+BAAA;EACf,OAAA,EAAS,OAAO;AAAA;AAAA,UAGD,iCAAA;EACf,QAAA,EAAU,wBAAwB;AAAA;AAAA,KAGxB,yBAAA,GAA4B,0BAA0B;AAAA,KACtD,2BAAA,GAA8B,iCAAiC;AAAA,KAE/D,uCAAA,GACV,0CAA0C;AAAA,UAE3B,yCAAA;EACf,GAAA;EACA,EAAA,EAAI,wBAAA;EAEJ,IAAA,GAAO,0BAAA;EACP,OAAA,EAAS,GAAA;EACT,UAAA,EAAY,GAAA;AAAA;;;;KAOF,4BAAA,GAA+B,8BAA8B;AAAA,UAExD,kBAAA;EACf,eAAA;EACA,SAAA,EAAW,SAAA;EAEX,gBAAA,EAAkB,SAAA;EAClB,gBAAA,EAAkB,SAAA;EAClB,yBAAA,EAA2B,SAAA;EAC3B,yBAAA,EAA2B,SAAA;EAC3B,aAAA,EAAe,SAAA;EACf,GAAA,EAAK,SAAA;EACL,WAAA,EAAa,SAAA;EACb,UAAA,EAAY,SAAA;AAAA;AAAA,UAGG,8BAAA;EACf,SAAA,EAAW,kBAAkB;AAAA;AAAA,UAGd,yBAAA;EAEf,QAAA,EAAU,SAAA;EAEV,gBAAA,EAAkB,SAAA;EAElB,WAAA,EAAa,SAAA;EAEb,SAAA,EAAW,SAAA;EAEX,mBAAA,EAAqB,SAAA;EAErB,YAAA,EAAc,SAAA;AAAA;AAAA,UAGC,6BAAA;EACf,UAAA,EAAY,UAAU;AAAA;AAAA,UAGP,+BAAA;EACf,OAAA,EAAS,OAAO;AAAA;AA1dlB;;;AAAA,UAieiB,kCAAA;EACf,OAAA,EAAS,OAAO;AAAA;AAAA,UAGD,oCAAA;EACf,MAAA,EAAQ,SAAA;EACR,SAAA,EAAW,SAAS;EACpB,cAAA;AAAA;;AA/dW;AAIb;UAkeiB,sBAAA;EACf,OAAA,EAAS,OAAO;AAAA;AAAA,UAGD,kBAAA;EACf,KAAA;EACA,WAAA;EAte0B;EAwe1B,SAAA,EAAW,SAAA;EAzeL;EA2eN,OAAA,EAAS,SAAA;EACT,WAAA,EAAa,SAAA;EACb,MAAA,EAAQ,SAAA;EACR,IAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,MAAA,EAAQ,SAAS;EACjB,IAAA;EACA,IAAA;AAAA;AAAA,UAGe,wBAAA;EACf,cAAA,EAAgB,kBAAA;EAChB,aAAA,EAAe,oBAAoB;AAAA;;;;UAOpB,uBAAA;EACf,OAAA,EAAS,OAAO;AAAA;AAAA,UAGD,mBAAA;EAzeX;EA2eJ,SAAA;EACA,MAAA,EAAQ,SAAS;AAAA;AAAA,UAGF,mBAAA;EACf,KAAA;EACA,WAAA;EACA,SAAA,EAAW,SAAA;EACX,OAAA,EAAS,SAAA;EACT,WAAA,EAAa,SAAA;EACb,IAAA;EACA,MAAA,EAAQ,mBAAA;AAAA;AAAA,UAGO,qBAAA;EACf,WAAA,EAAa,SAAA;EACb,IAAA;EACA,MAAA,EAAQ,mBAAmB;AAAA;AAAA,UAGZ,yBAAA;EACf,cAAA,EAAgB,mBAAA;EAChB,aAAA,EAAe,qBAAqB;AAAA;;;;UAOrB,8BAAA;EACf,OAAA,EAAS,OAAO;AAAA;AAAA,UAGD,kCAAA;EACf,OAAA;EACA,WAAA;EAvhBA;EAyhBA,UAAA,EAAY,SAAA;EAxhBZ;EA0hBA,QAAA,EAAU,SAAA;EACV,SAAA,EAAW,SAAA;EACX,SAAA,EAAW,SAAA;EACX,SAAA,EAAW,SAAA;EACX,SAAA,EAAW,SAAA;AAAA;AAAA,UAGI,kCAAA;EACf,cAAA,EAAgB,SAAA;EAChB,cAAA,EAAgB,SAAS;AAAA;;;;UAMV,mCAAA;EA5hBC;EA8hBhB,MAAA;EA5hBQ;EA8hBR,cAAA,EAAgB,OAAA;EA9hBC;AAGnB;;;EAgiBE,IAAA;EAhiB2D;AAU7D;;;;EA4hBE,WAAA,EAAa,SAAA;EAvhBD;EAyhBZ,KAAA,EAAO,GAAA;AAAA;;;;UAMQ,qCAAA;EAlhBV;EAohBL,MAAA,EAAQ,OAAO,CAAC,uCAAA;AAAA;;;;;;KAQN,gCAAA,GACR,mCAAA,GACA,qCAAqC;AAAA,UAExB,gCAAA;EA7fG;;;;EAkgBlB,MAAA,EAAQ,SAAA;EArfO;EAuff,KAAA,EAAO,gCAAgC;AAAA;AAAA,UAGxB,0BAAA;EACf,QAAA,EAAU,kCAAA;EACV,QAAA,EAAU,kCAAA;EACV,MAAA,EAAQ,gCAAA;AAAA;AAAA,UAGO,kCAAA;EACf,WAAA,EAAa,SAAA;EACb,eAAA,EAAiB,SAAS;AAAA;AAAA,UAGX,gCAAA;EACf,MAAA,EAAQ,0BAAA;EACR,aAAA,EAAe,kCAAkC;AAAA;;;;;;;KAUvC,gBAAA;;;;UAKK,yBAAA;EAriBG;;;;;EA2iBlB,MAAA,GAAS,gBAAgB;EAliBhB;;;;EAuiBT,IAAA;AAAA;;;;UAMe,uBAAA;EAniBH;EAqiBZ,SAAA;EAniBa;EAqiBb,QAAA;EAniBmB;EAqiBnB,YAAA;EAniBoB;EAqiBpB,aAAA;EAjiBA;EAmiBA,SAAA;EAliBoB;EAoiBpB,UAAA;EApiB6B;EAsiB7B,WAAA;EAhiB0C;EAkiB1C,qBAAA;AAAA;;;;;KAOU,2BAAA,GAA8B,MAAM,SAE9C,uBAAA;AAniB0B;AAO5B;;AAP4B,UAyiBX,yBAAA;EAjiBf;AAAgB;AAOlB;;;EAgiBE,WAAA;EA/hBsB;AAGxB;;;EAiiBE,UAAU;AAAA;;;;UAMK,oBAAA;EAtiBD;EAwiBd,MAAA;EAviBc;EAyiBd,MAAA;EAviBqB;EAyiBrB,SAAA;EAviBM;EAyiBN,QAAA;AAAA;AAAA,KAGU,sBAAA;;;;UAeK,eAAA;EAljBf;EAojBA,IAAA;EAljBA;EAojBA,SAAA;EAljBW;EAojBX,MAAA;EAjjBe;EAmjBf,cAAA,EAAgB,SAAA;;EAEhB,aAAA;EAjjBe;EAmjBf,OAAA;EA9iBmB;EAgjBnB,YAAA,EAAc,SAAA;EA/iBQ;EAijBtB,YAAA,EAAc,SAAA;EA1jBd;EA4jBA,iBAAA,EAAmB,SAAA;EA1jBnB;EA4jBA,qBAAA,EAAuB,SAAA;EA3jBvB;EA6jBA,eAAA,EAAiB,SAAA;EA1jBjB;;;EA8jBA,YAAA,EAAc,SAAA;EA3jBd;EA6jBA,aAAA,EAAe,sBAAA;EA5jBf;EA8jBA,YAAA;EA5jBiB;EA8jBjB,WAAA,EAAa,oBAAA;EA3jBE;;;;EAgkBf,SAAA;EA/jBkB;EAikBlB,eAAA;EAhkBiB;EAkkBjB,eAAA;AAAA;AAjkBU;AAOZ;;;AAPY,KAwkBA,2BAAA,GAA8B,MAAM,SAAS,eAAA"}