@nadohq/indexer-client 0.34.0 → 0.36.0

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.
@@ -35,9 +35,12 @@ var IndexerBaseClient = class {
35
35
  this.opts = opts;
36
36
  this.axiosInstance = axios.default.create({
37
37
  withCredentials: true,
38
- validateStatus: () => true
38
+ validateStatus: () => true,
39
+ headers: (0, _nadohq_shared.getNadoClientTypeHeaders)(opts.clientType)
39
40
  });
40
- this.v2Url = opts.v2Url ? opts.v2Url : opts.url.replace("v1", "v2");
41
+ this.v1Url = `${opts.url}/v1`;
42
+ this.v2Url = `${opts.url}/v2`;
43
+ this.rewardsUrl = `${opts.url}/rewards/v1`;
41
44
  }
42
45
  /**
43
46
  * Sets the linked signer for execute requests
@@ -421,7 +424,7 @@ var IndexerBaseClient = class {
421
424
  * @param params
422
425
  */
423
426
  async getLeaderboard(params) {
424
- return { participants: (await this.query("leaderboard", {
427
+ return { participants: (await this.rewardsQuery("leaderboard", {
425
428
  contest_id: params.contestId,
426
429
  rank_type: params.rankType,
427
430
  start: params.startCursor,
@@ -435,7 +438,7 @@ var IndexerBaseClient = class {
435
438
  * @param params
436
439
  */
437
440
  async getLeaderboardParticipant(params) {
438
- return { participant: (0, _nadohq_shared.mapValues)((await this.query("leaderboard_rank", {
441
+ return { participant: (0, _nadohq_shared.mapValues)((await this.rewardsQuery("leaderboard_rank", {
439
442
  subaccount: (0, _nadohq_shared.subaccountToHex)(params.subaccount),
440
443
  contest_ids: params.contestIds
441
444
  })).positions, (position) => require_dataMappers.mapIndexerLeaderboardPosition(position)) };
@@ -456,7 +459,7 @@ var IndexerBaseClient = class {
456
459
  tx: (0, _nadohq_shared.getNadoEIP712Values)("leaderboard_authentication", signatureParams),
457
460
  signature: await this.sign("leaderboard_authentication", params.verifyingAddr, params.chainId, signatureParams)
458
461
  };
459
- return { registrations: (await this.query("leaderboard_register", { update_registration: updateRegistrationTx })).registrations.map(require_dataMappers.mapIndexerLeaderboardRegistration) };
462
+ return { registrations: (await this.rewardsQuery("leaderboard_register", { update_registration: updateRegistrationTx })).registrations.map(require_dataMappers.mapIndexerLeaderboardRegistration) };
460
463
  }
461
464
  /**
462
465
  * Retrieves contest registrations for a subaccount. Supports batch lookup
@@ -465,7 +468,7 @@ var IndexerBaseClient = class {
465
468
  * @param params - Query parameters including subaccount and contest IDs.
466
469
  */
467
470
  async getLeaderboardRegistrations(params) {
468
- return { registrations: (await this.query("leaderboard_registrations", {
471
+ return { registrations: (await this.rewardsQuery("leaderboard_registrations", {
469
472
  subaccount: (0, _nadohq_shared.subaccountToHex)(params.subaccount),
470
473
  contest_ids: params.contestIds,
471
474
  active: params.active
@@ -477,7 +480,7 @@ var IndexerBaseClient = class {
477
480
  * @param params
478
481
  */
479
482
  async getLeaderboardContests(params) {
480
- return { contests: (await this.query("leaderboard_contests", {
483
+ return { contests: (await this.rewardsQuery("leaderboard_contests", {
481
484
  contest_ids: params.contestIds,
482
485
  active: params.active
483
486
  })).contests.map(require_dataMappers.mapIndexerLeaderboardContest) };
@@ -527,7 +530,7 @@ var IndexerBaseClient = class {
527
530
  * @param params
528
531
  */
529
532
  async getPrivateAlphaChoice(params) {
530
- const baseResponse = await this.query("private_alpha_choice", { address: params.address });
533
+ const baseResponse = await this.rewardsQuery("private_alpha_choice", { address: params.address });
531
534
  return {
532
535
  points: (0, _nadohq_shared.toBigNumber)(baseResponse.points),
533
536
  feeRefund: (0, _nadohq_shared.toBigNumber)(baseResponse.fee_refund),
@@ -539,7 +542,7 @@ var IndexerBaseClient = class {
539
542
  * @param params
540
543
  */
541
544
  async getPoints(params) {
542
- const baseResponse = await this.query("nado_points", { address: params.address });
545
+ const baseResponse = await this.rewardsQuery("nado_points", { address: params.address });
543
546
  return {
544
547
  pointsPerEpoch: baseResponse.points_per_epoch.map((epoch) => ({
545
548
  epoch: epoch.epoch,
@@ -564,7 +567,7 @@ var IndexerBaseClient = class {
564
567
  * @param params
565
568
  */
566
569
  async getXPoints(params) {
567
- const baseResponse = await this.query("nado_xpoints", { address: params.address });
570
+ const baseResponse = await this.rewardsQuery("nado_xpoints", { address: params.address });
568
571
  const mapQuests = (quests) => quests.map((quest) => ({
569
572
  questType: quest.quest_type,
570
573
  points: (0, _nadohq_shared.toBigNumber)(quest.points)
@@ -593,7 +596,7 @@ var IndexerBaseClient = class {
593
596
  * @param params
594
597
  */
595
598
  async getCashIncentives(params) {
596
- const baseResponse = await this.query("cash_incentives", { wallet_address: params.address });
599
+ const baseResponse = await this.rewardsQuery("cash_incentives", { wallet_address: params.address });
597
600
  return {
598
601
  events: baseResponse.events.map((event) => ({
599
602
  metadata: {
@@ -642,7 +645,7 @@ var IndexerBaseClient = class {
642
645
  };
643
646
  const tx = (0, _nadohq_shared.getNadoEIP712Values)("social_authentication", signatureParams);
644
647
  const signature = await this.sign("social_authentication", params.verifyingAddr, params.chainId, signatureParams);
645
- return { url: (await this.query("social_connect", { update_social_account: {
648
+ return { url: (await this.rewardsQuery("social_connect", { update_social_account: {
646
649
  tx,
647
650
  signature
648
651
  } })).url };
@@ -653,7 +656,7 @@ var IndexerBaseClient = class {
653
656
  * @param params - Query parameters including the wallet address.
654
657
  */
655
658
  async listSocialAccounts(params) {
656
- return { accounts: (await this.query("list_social_accounts", { address: params.address })).accounts.map((a) => ({
659
+ return { accounts: (await this.rewardsQuery("list_social_accounts", { address: params.address })).accounts.map((a) => ({
657
660
  provider: a.provider,
658
661
  username: a.username,
659
662
  displayName: a.display_name,
@@ -674,7 +677,7 @@ var IndexerBaseClient = class {
674
677
  };
675
678
  const tx = (0, _nadohq_shared.getNadoEIP712Values)("social_authentication", signatureParams);
676
679
  const signature = await this.sign("social_authentication", params.verifyingAddr, params.chainId, signatureParams);
677
- return { accounts: (await this.query("revoke_social_account", { update_social_account: {
680
+ return { accounts: (await this.rewardsQuery("revoke_social_account", { update_social_account: {
678
681
  tx,
679
682
  signature
680
683
  } })).accounts.map((a) => ({
@@ -705,9 +708,19 @@ var IndexerBaseClient = class {
705
708
  this.checkResponseStatus(response);
706
709
  return (0, _nadohq_shared.mapValues)(response.data, require_dataMappers.mapIndexerV2Symbols);
707
710
  }
708
- async query(requestType, params) {
711
+ query(requestType, params) {
712
+ return this.queryWithUrl(this.v1Url, requestType, params);
713
+ }
714
+ /**
715
+ * Runs a query against the rewards endpoint, which serves leaderboard, points,
716
+ * cash incentives, private alpha, and social account queries
717
+ */
718
+ rewardsQuery(requestType, params) {
719
+ return this.queryWithUrl(this.rewardsUrl, requestType, params);
720
+ }
721
+ async queryWithUrl(url, requestType, params) {
709
722
  const reqBody = { [requestType]: params };
710
- const response = await this.axiosInstance.post(this.opts.url, reqBody);
723
+ const response = await this.axiosInstance.post(url, reqBody);
711
724
  this.checkResponseStatus(response);
712
725
  return response.data;
713
726
  }
@@ -741,4 +754,4 @@ Object.defineProperty(exports, "__toESM", {
741
754
  }
742
755
  });
743
756
 
744
- //# sourceMappingURL=IndexerBaseClient-DKxLMijD.cjs.map
757
+ //# sourceMappingURL=IndexerBaseClient-DxlRS6pt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexerBaseClient-DxlRS6pt.cjs","names":["mapIndexerEvent","mapIndexerFundingRate","mapIndexerFundingRateHistory","mapIndexerPortfolio","mapIndexerPerpPrices","mapIndexerCandlesticks","mapIndexerServerProduct","mapIndexerEventWithTx","mapIndexerOrder","mapIndexerMatchEventBalances","mapIndexerProductPayment","mapSnapshotsIntervalToServerParams","mapIndexerMarketSnapshot","mapIndexerMakerStatistics","mapIndexerLeaderboardPosition","mapIndexerLeaderboardRegistration","mapIndexerLeaderboardContest","getValidatedHex","mapIndexerNlpSnapshot","mapIndexerV2Ticker","mapIndexerV2Symbols","WalletNotProvidedError","isIndexerServerFailureResponse","IndexerServerFailureError"],"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://archive.prod.nado.xyz`)\n url: 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.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,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_IndexerBaseClient = require("./IndexerBaseClient-DKxLMijD.cjs");
2
+ const require_IndexerBaseClient = require("./IndexerBaseClient-DxlRS6pt.cjs");
3
3
  exports.IndexerBaseClient = require_IndexerBaseClient.IndexerBaseClient;
@@ -6,16 +6,18 @@ import { AxiosInstance } from "axios";
6
6
  //#region src/IndexerBaseClient.d.ts
7
7
  interface IndexerClientOpts {
8
8
  url: string;
9
- v2Url?: string;
10
9
  walletClient?: WalletClientWithAccount;
11
10
  linkedSignerWalletClient?: WalletClientWithAccount;
11
+ clientType?: string;
12
12
  }
13
13
  /**
14
14
  * Base client for all indexer requests
15
15
  */
16
16
  declare class IndexerBaseClient {
17
17
  readonly opts: IndexerClientOpts;
18
+ readonly v1Url: string;
18
19
  readonly v2Url: string;
20
+ readonly rewardsUrl: string;
19
21
  readonly axiosInstance: AxiosInstance;
20
22
  constructor(opts: IndexerClientOpts);
21
23
  /**
@@ -259,6 +261,12 @@ declare class IndexerBaseClient {
259
261
  */
260
262
  getV2Symbols(params?: GetIndexerV2SymbolsParams): Promise<GetIndexerV2SymbolsResponse>;
261
263
  protected query<TRequestType extends IndexerServerQueryRequestType>(requestType: TRequestType, params: IndexerServerQueryRequestByType[TRequestType]): Promise<IndexerServerQueryResponseByType[TRequestType]>;
264
+ /**
265
+ * Runs a query against the rewards endpoint, which serves leaderboard, points,
266
+ * cash incentives, private alpha, and social account queries
267
+ */
268
+ protected rewardsQuery<TRequestType extends IndexerServerQueryRequestType>(requestType: TRequestType, params: IndexerServerQueryRequestByType[TRequestType]): Promise<IndexerServerQueryResponseByType[TRequestType]>;
269
+ private queryWithUrl;
262
270
  protected sign<T extends SignableRequestType>(requestType: T, verifyingContract: string, chainId: number, params: SignableRequestTypeToParams[T]): Promise<`0x${string}`>;
263
271
  private checkResponseStatus;
264
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerBaseClient.d.cts","names":[],"sources":["../src/src/IndexerBaseClient.ts"],"mappings":"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"}
1
+ {"version":3,"file":"IndexerBaseClient.d.cts","names":[],"sources":["../src/src/IndexerBaseClient.ts"],"mappings":"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"}
@@ -6,16 +6,18 @@ import { AxiosInstance } from "axios";
6
6
  //#region src/IndexerBaseClient.d.ts
7
7
  interface IndexerClientOpts {
8
8
  url: string;
9
- v2Url?: string;
10
9
  walletClient?: WalletClientWithAccount;
11
10
  linkedSignerWalletClient?: WalletClientWithAccount;
11
+ clientType?: string;
12
12
  }
13
13
  /**
14
14
  * Base client for all indexer requests
15
15
  */
16
16
  declare class IndexerBaseClient {
17
17
  readonly opts: IndexerClientOpts;
18
+ readonly v1Url: string;
18
19
  readonly v2Url: string;
20
+ readonly rewardsUrl: string;
19
21
  readonly axiosInstance: AxiosInstance;
20
22
  constructor(opts: IndexerClientOpts);
21
23
  /**
@@ -259,6 +261,12 @@ declare class IndexerBaseClient {
259
261
  */
260
262
  getV2Symbols(params?: GetIndexerV2SymbolsParams): Promise<GetIndexerV2SymbolsResponse>;
261
263
  protected query<TRequestType extends IndexerServerQueryRequestType>(requestType: TRequestType, params: IndexerServerQueryRequestByType[TRequestType]): Promise<IndexerServerQueryResponseByType[TRequestType]>;
264
+ /**
265
+ * Runs a query against the rewards endpoint, which serves leaderboard, points,
266
+ * cash incentives, private alpha, and social account queries
267
+ */
268
+ protected rewardsQuery<TRequestType extends IndexerServerQueryRequestType>(requestType: TRequestType, params: IndexerServerQueryRequestByType[TRequestType]): Promise<IndexerServerQueryResponseByType[TRequestType]>;
269
+ private queryWithUrl;
262
270
  protected sign<T extends SignableRequestType>(requestType: T, verifyingContract: string, chainId: number, params: SignableRequestTypeToParams[T]): Promise<`0x${string}`>;
263
271
  private checkResponseStatus;
264
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerBaseClient.d.ts","names":[],"sources":["../src/src/IndexerBaseClient.ts"],"mappings":"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"}
1
+ {"version":3,"file":"IndexerBaseClient.d.ts","names":[],"sources":["../src/src/IndexerBaseClient.ts"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { mapIndexerCandlesticks, mapIndexerEvent, mapIndexerEventWithTx, mapIndexerFundingRate, mapIndexerFundingRateHistory, mapIndexerLeaderboardContest, mapIndexerLeaderboardPosition, mapIndexerLeaderboardRegistration, mapIndexerMakerStatistics, mapIndexerMarketSnapshot, mapIndexerMatchEventBalances, mapIndexerNlpSnapshot, mapIndexerOrder, mapIndexerPerpPrices, mapIndexerPortfolio, mapIndexerProductPayment, mapIndexerServerProduct, mapIndexerV2Symbols, mapIndexerV2Ticker, mapSnapshotsIntervalToServerParams } from "./dataMappers.js";
2
2
  import { IndexerServerFailureError } from "./types/IndexerServerFailureError.js";
3
3
  import { isIndexerServerFailureResponse } from "./types/serverTypes.js";
4
- import { WalletNotProvidedError, getDefaultRecvTime, getNadoEIP712Values, getSignedTransactionRequest, getValidatedAddress, getValidatedHex, mapValues, nowInSeconds, removeDecimals, subaccountFromHex, subaccountToHex, toBigInt, toBigNumber, toIntegerString } from "@nadohq/shared";
4
+ import { WalletNotProvidedError, getDefaultRecvTime, getNadoClientTypeHeaders, getNadoEIP712Values, getSignedTransactionRequest, getValidatedAddress, getValidatedHex, mapValues, nowInSeconds, removeDecimals, subaccountFromHex, subaccountToHex, toBigInt, toBigNumber, toIntegerString } from "@nadohq/shared";
5
5
  import axios from "axios";
6
6
  //#region src/IndexerBaseClient.ts
7
7
  /**
@@ -12,9 +12,12 @@ var IndexerBaseClient = class {
12
12
  this.opts = opts;
13
13
  this.axiosInstance = axios.create({
14
14
  withCredentials: true,
15
- validateStatus: () => true
15
+ validateStatus: () => true,
16
+ headers: getNadoClientTypeHeaders(opts.clientType)
16
17
  });
17
- this.v2Url = opts.v2Url ? opts.v2Url : opts.url.replace("v1", "v2");
18
+ this.v1Url = `${opts.url}/v1`;
19
+ this.v2Url = `${opts.url}/v2`;
20
+ this.rewardsUrl = `${opts.url}/rewards/v1`;
18
21
  }
19
22
  /**
20
23
  * Sets the linked signer for execute requests
@@ -398,7 +401,7 @@ var IndexerBaseClient = class {
398
401
  * @param params
399
402
  */
400
403
  async getLeaderboard(params) {
401
- return { participants: (await this.query("leaderboard", {
404
+ return { participants: (await this.rewardsQuery("leaderboard", {
402
405
  contest_id: params.contestId,
403
406
  rank_type: params.rankType,
404
407
  start: params.startCursor,
@@ -412,7 +415,7 @@ var IndexerBaseClient = class {
412
415
  * @param params
413
416
  */
414
417
  async getLeaderboardParticipant(params) {
415
- return { participant: mapValues((await this.query("leaderboard_rank", {
418
+ return { participant: mapValues((await this.rewardsQuery("leaderboard_rank", {
416
419
  subaccount: subaccountToHex(params.subaccount),
417
420
  contest_ids: params.contestIds
418
421
  })).positions, (position) => mapIndexerLeaderboardPosition(position)) };
@@ -433,7 +436,7 @@ var IndexerBaseClient = class {
433
436
  tx: getNadoEIP712Values("leaderboard_authentication", signatureParams),
434
437
  signature: await this.sign("leaderboard_authentication", params.verifyingAddr, params.chainId, signatureParams)
435
438
  };
436
- return { registrations: (await this.query("leaderboard_register", { update_registration: updateRegistrationTx })).registrations.map(mapIndexerLeaderboardRegistration) };
439
+ return { registrations: (await this.rewardsQuery("leaderboard_register", { update_registration: updateRegistrationTx })).registrations.map(mapIndexerLeaderboardRegistration) };
437
440
  }
438
441
  /**
439
442
  * Retrieves contest registrations for a subaccount. Supports batch lookup
@@ -442,7 +445,7 @@ var IndexerBaseClient = class {
442
445
  * @param params - Query parameters including subaccount and contest IDs.
443
446
  */
444
447
  async getLeaderboardRegistrations(params) {
445
- return { registrations: (await this.query("leaderboard_registrations", {
448
+ return { registrations: (await this.rewardsQuery("leaderboard_registrations", {
446
449
  subaccount: subaccountToHex(params.subaccount),
447
450
  contest_ids: params.contestIds,
448
451
  active: params.active
@@ -454,7 +457,7 @@ var IndexerBaseClient = class {
454
457
  * @param params
455
458
  */
456
459
  async getLeaderboardContests(params) {
457
- return { contests: (await this.query("leaderboard_contests", {
460
+ return { contests: (await this.rewardsQuery("leaderboard_contests", {
458
461
  contest_ids: params.contestIds,
459
462
  active: params.active
460
463
  })).contests.map(mapIndexerLeaderboardContest) };
@@ -504,7 +507,7 @@ var IndexerBaseClient = class {
504
507
  * @param params
505
508
  */
506
509
  async getPrivateAlphaChoice(params) {
507
- const baseResponse = await this.query("private_alpha_choice", { address: params.address });
510
+ const baseResponse = await this.rewardsQuery("private_alpha_choice", { address: params.address });
508
511
  return {
509
512
  points: toBigNumber(baseResponse.points),
510
513
  feeRefund: toBigNumber(baseResponse.fee_refund),
@@ -516,7 +519,7 @@ var IndexerBaseClient = class {
516
519
  * @param params
517
520
  */
518
521
  async getPoints(params) {
519
- const baseResponse = await this.query("nado_points", { address: params.address });
522
+ const baseResponse = await this.rewardsQuery("nado_points", { address: params.address });
520
523
  return {
521
524
  pointsPerEpoch: baseResponse.points_per_epoch.map((epoch) => ({
522
525
  epoch: epoch.epoch,
@@ -541,7 +544,7 @@ var IndexerBaseClient = class {
541
544
  * @param params
542
545
  */
543
546
  async getXPoints(params) {
544
- const baseResponse = await this.query("nado_xpoints", { address: params.address });
547
+ const baseResponse = await this.rewardsQuery("nado_xpoints", { address: params.address });
545
548
  const mapQuests = (quests) => quests.map((quest) => ({
546
549
  questType: quest.quest_type,
547
550
  points: toBigNumber(quest.points)
@@ -570,7 +573,7 @@ var IndexerBaseClient = class {
570
573
  * @param params
571
574
  */
572
575
  async getCashIncentives(params) {
573
- const baseResponse = await this.query("cash_incentives", { wallet_address: params.address });
576
+ const baseResponse = await this.rewardsQuery("cash_incentives", { wallet_address: params.address });
574
577
  return {
575
578
  events: baseResponse.events.map((event) => ({
576
579
  metadata: {
@@ -619,7 +622,7 @@ var IndexerBaseClient = class {
619
622
  };
620
623
  const tx = getNadoEIP712Values("social_authentication", signatureParams);
621
624
  const signature = await this.sign("social_authentication", params.verifyingAddr, params.chainId, signatureParams);
622
- return { url: (await this.query("social_connect", { update_social_account: {
625
+ return { url: (await this.rewardsQuery("social_connect", { update_social_account: {
623
626
  tx,
624
627
  signature
625
628
  } })).url };
@@ -630,7 +633,7 @@ var IndexerBaseClient = class {
630
633
  * @param params - Query parameters including the wallet address.
631
634
  */
632
635
  async listSocialAccounts(params) {
633
- return { accounts: (await this.query("list_social_accounts", { address: params.address })).accounts.map((a) => ({
636
+ return { accounts: (await this.rewardsQuery("list_social_accounts", { address: params.address })).accounts.map((a) => ({
634
637
  provider: a.provider,
635
638
  username: a.username,
636
639
  displayName: a.display_name,
@@ -651,7 +654,7 @@ var IndexerBaseClient = class {
651
654
  };
652
655
  const tx = getNadoEIP712Values("social_authentication", signatureParams);
653
656
  const signature = await this.sign("social_authentication", params.verifyingAddr, params.chainId, signatureParams);
654
- return { accounts: (await this.query("revoke_social_account", { update_social_account: {
657
+ return { accounts: (await this.rewardsQuery("revoke_social_account", { update_social_account: {
655
658
  tx,
656
659
  signature
657
660
  } })).accounts.map((a) => ({
@@ -682,9 +685,19 @@ var IndexerBaseClient = class {
682
685
  this.checkResponseStatus(response);
683
686
  return mapValues(response.data, mapIndexerV2Symbols);
684
687
  }
685
- async query(requestType, params) {
688
+ query(requestType, params) {
689
+ return this.queryWithUrl(this.v1Url, requestType, params);
690
+ }
691
+ /**
692
+ * Runs a query against the rewards endpoint, which serves leaderboard, points,
693
+ * cash incentives, private alpha, and social account queries
694
+ */
695
+ rewardsQuery(requestType, params) {
696
+ return this.queryWithUrl(this.rewardsUrl, requestType, params);
697
+ }
698
+ async queryWithUrl(url, requestType, params) {
686
699
  const reqBody = { [requestType]: params };
687
- const response = await this.axiosInstance.post(this.opts.url, reqBody);
700
+ const response = await this.axiosInstance.post(url, reqBody);
688
701
  this.checkResponseStatus(response);
689
702
  return response.data;
690
703
  }