@nadohq/indexer-client 0.68.0 → 0.69.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.
Files changed (67) hide show
  1. package/dist/{IndexerBaseClient-BXL3f89a.cjs → IndexerBaseClient-sTFmCNm1.cjs} +12 -1
  2. package/dist/IndexerBaseClient-sTFmCNm1.cjs.map +1 -0
  3. package/dist/IndexerBaseClient.cjs +1 -1
  4. package/dist/IndexerBaseClient.d.cts +11 -2
  5. package/dist/IndexerBaseClient.d.cts.map +1 -1
  6. package/dist/IndexerBaseClient.d.ts +11 -2
  7. package/dist/IndexerBaseClient.d.ts.map +1 -1
  8. package/dist/IndexerBaseClient.js +12 -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/{IndexerServerFailureError-B4ApuzjS.d.cts → IndexerServerFailureError-BbGtf70f.d.cts} +2 -2
  14. package/dist/{IndexerServerFailureError-B4ApuzjS.d.cts.map → IndexerServerFailureError-BbGtf70f.d.cts.map} +1 -1
  15. package/dist/{IndexerServerFailureError-bu0sv0uX.d.ts → IndexerServerFailureError-DtGJaiFT.d.ts} +2 -2
  16. package/dist/{IndexerServerFailureError-bu0sv0uX.d.ts.map → IndexerServerFailureError-DtGJaiFT.d.ts.map} +1 -1
  17. package/dist/{clientTypes-Cu3A5QOU.d.ts → clientTypes-BM_sHp6y.d.ts} +14 -3
  18. package/dist/{clientTypes-Cu3A5QOU.d.ts.map → clientTypes-BM_sHp6y.d.ts.map} +1 -1
  19. package/dist/{clientTypes-DnLNlJrL.d.cts → clientTypes-BpMw4SA8.d.cts} +14 -3
  20. package/dist/{clientTypes-DnLNlJrL.d.cts.map → clientTypes-BpMw4SA8.d.cts.map} +1 -1
  21. package/dist/dataMappers.cjs +9 -0
  22. package/dist/dataMappers.cjs.map +1 -1
  23. package/dist/dataMappers.d.cts +5 -4
  24. package/dist/dataMappers.d.cts.map +1 -1
  25. package/dist/dataMappers.d.ts +5 -4
  26. package/dist/dataMappers.d.ts.map +1 -1
  27. package/dist/dataMappers.js +9 -1
  28. package/dist/dataMappers.js.map +1 -1
  29. package/dist/index.cjs +1 -1
  30. package/dist/index.d.cts +6 -6
  31. package/dist/index.d.ts +6 -6
  32. package/dist/{indexerBalanceValue-Bsv5-9MT.d.cts → indexerBalanceValue-MvNqN-LX.d.cts} +2 -2
  33. package/dist/{indexerBalanceValue-Bsv5-9MT.d.cts.map → indexerBalanceValue-MvNqN-LX.d.cts.map} +1 -1
  34. package/dist/{indexerBalanceValue-Za1caHGW.d.ts → indexerBalanceValue-h-otrIPx.d.ts} +2 -2
  35. package/dist/{indexerBalanceValue-Za1caHGW.d.ts.map → indexerBalanceValue-h-otrIPx.d.ts.map} +1 -1
  36. package/dist/{paginatedEventsTypes-CP13L-n_.d.cts → paginatedEventsTypes-CcwCeN-a.d.cts} +2 -2
  37. package/dist/{paginatedEventsTypes-CP13L-n_.d.cts.map → paginatedEventsTypes-CcwCeN-a.d.cts.map} +1 -1
  38. package/dist/{paginatedEventsTypes-BBdpmfMF.d.ts → paginatedEventsTypes-Pm82ssO_.d.ts} +2 -2
  39. package/dist/{paginatedEventsTypes-BBdpmfMF.d.ts.map → paginatedEventsTypes-Pm82ssO_.d.ts.map} +1 -1
  40. package/dist/{serverTypes--eKZMPkr.d.ts → serverTypes-896-YJ8B.d.ts} +10 -2
  41. package/dist/serverTypes-896-YJ8B.d.ts.map +1 -0
  42. package/dist/{serverTypes-sSPZDJZ-.d.cts → serverTypes-CiKfBcvC.d.cts} +10 -2
  43. package/dist/serverTypes-CiKfBcvC.d.cts.map +1 -0
  44. package/dist/types/IndexerServerFailureError.d.cts +1 -1
  45. package/dist/types/IndexerServerFailureError.d.ts +1 -1
  46. package/dist/types/clientTypes.d.cts +2 -2
  47. package/dist/types/clientTypes.d.ts +2 -2
  48. package/dist/types/index.d.cts +5 -5
  49. package/dist/types/index.d.ts +5 -5
  50. package/dist/types/paginatedEventsTypes.d.cts +1 -1
  51. package/dist/types/paginatedEventsTypes.d.ts +1 -1
  52. package/dist/types/serverTypes.cjs.map +1 -1
  53. package/dist/types/serverTypes.d.cts +2 -2
  54. package/dist/types/serverTypes.d.ts +2 -2
  55. package/dist/types/serverTypes.js.map +1 -1
  56. package/dist/utils/index.d.cts +1 -1
  57. package/dist/utils/index.d.ts +1 -1
  58. package/dist/utils/indexerBalanceValue.d.cts +1 -1
  59. package/dist/utils/indexerBalanceValue.d.ts +1 -1
  60. package/package.json +4 -4
  61. package/src/IndexerBaseClient.ts +25 -0
  62. package/src/dataMappers.ts +13 -0
  63. package/src/types/clientTypes.ts +13 -0
  64. package/src/types/serverTypes.ts +12 -0
  65. package/dist/IndexerBaseClient-BXL3f89a.cjs.map +0 -1
  66. package/dist/serverTypes--eKZMPkr.d.ts.map +0 -1
  67. package/dist/serverTypes-sSPZDJZ-.d.cts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"serverTypes.js","names":[],"sources":["../../src/types/serverTypes.ts"],"sourcesContent":["import {\n EIP712LeaderboardAuthenticationValues,\n EIP712SocialAuthenticationValues,\n SignedTx,\n} from '@nadohq/shared';\nimport { IndexerEventType } from './IndexerEventType';\nimport { IndexerLeaderboardRankType } from './IndexerLeaderboardType';\nimport { NadoWithdrawCollateralTx, NadoWithdrawCollateralV2Tx } from './NadoTx';\nimport {\n IndexerServerCandlestick,\n IndexerServerEvent,\n IndexerServerLeaderboardContest,\n IndexerServerLeaderboardPosition,\n IndexerServerLeaderboardRegistration,\n IndexerServerMaker,\n IndexerServerMarketSnapshot,\n IndexerServerMarketSnapshotInterval,\n IndexerServerMatchEvent,\n IndexerServerNlpSnapshot,\n IndexerServerOraclePrice,\n IndexerServerOrder,\n IndexerServerPosition,\n IndexerServerProductPayment,\n IndexerServerProductSnapshot,\n IndexerServerSnapshotsInterval,\n IndexerServerSocialAccount,\n IndexerServerTx,\n} from './serverModelTypes';\n\n/**\n * Params\n */\n\nexport interface IndexerServerListSubaccountsParams {\n // Inclusive, defaults to 0\n start?: number;\n // Defaults to 100\n limit?: number;\n address?: string;\n}\n\nexport interface IndexerServerMultiSubaccountSnapshotsParams {\n // Subaccount hex identifiers\n subaccounts: string[];\n timestamps: number[];\n // If not given, will return both isolated & non-iso balances\n isolated?: boolean;\n}\n\nexport interface IndexerServerReferralCodeParams {\n subaccount: string;\n}\n\nexport interface IndexerServerFundingRateParams {\n product_id: number;\n}\n\nexport interface IndexerServerFundingRatesParams {\n product_ids: number[];\n}\n\nexport interface IndexerServerFundingRateHistoryParams {\n product_id: number;\n start_time?: number | string;\n end_time?: number | string;\n // Max number of rates to return. Defaults to 100, max 1000.\n limit?: number;\n}\n\nexport interface IndexerServerPriceParams {\n product_id: number;\n}\n\nexport interface IndexerServerPerpPricesParams {\n product_ids: number[];\n}\n\nexport interface IndexerServerPortfolioParams {\n subaccount: string;\n}\n\nexport interface IndexerServerPortfolioCalendarParams {\n subaccount: string;\n // Unix seconds, UTC midnight\n start_time: number | string;\n end_time: number | string;\n}\n\nexport interface IndexerServerOraclePricesParams {\n product_ids: number[];\n}\n\nexport interface IndexerServerCandlesticksParams {\n product_id: number;\n granularity: number;\n // Seconds\n max_time?: number;\n limit: number;\n}\n\nexport type IndexerEdgeServerCandlesticksParams =\n IndexerServerCandlesticksParams;\n\nexport interface IndexerServerProductsParams {\n product_id: number;\n max_time?: number;\n limit: number;\n // submission_idx for pagination, inclusive\n idx?: string;\n}\n\nexport interface IndexerServerMultiProductsParams {\n product_ids: number[];\n max_time: number[];\n}\n\nexport interface IndexerServerEventsParams {\n subaccounts?: string[];\n product_ids?: number[];\n // If not given, will return both isolated & non-iso events\n isolated?: boolean;\n event_types?: IndexerEventType[];\n // Descending order for idx (time), defaults to true\n desc?: boolean;\n // submission_idx for pagination, inclusive\n idx?: string;\n max_time?: number;\n limit?:\n | {\n raw: number;\n }\n | {\n txs: number;\n };\n}\n\nexport type IndexerServerTriggerTypeFilter =\n | 'none'\n | 'price_trigger'\n | 'time_trigger';\n\nexport interface IndexerServerOrdersParams {\n subaccounts?: string[];\n product_ids?: number[];\n trigger_types?: IndexerServerTriggerTypeFilter[];\n digests?: string[];\n max_time?: number;\n limit?: number;\n // If not given, will return both isolated & non-iso orders\n isolated?: boolean;\n // submission_idx for pagination, inclusive\n idx?: string;\n}\n\nexport interface IndexerServerMatchEventsParams {\n subaccounts?: string[];\n product_ids?: number[];\n // If not given, will return both isolated & non-iso events\n isolated?: boolean;\n max_time?: number;\n limit: number;\n // submission_idx for pagination, inclusive\n idx?: string;\n}\n\n/**\n * Params for the positions query. All parameters except `subaccount` are optional filters.\n */\nexport interface IndexerServerPositionsParams {\n // Subaccount hex identifier. Isolated positions are also returned under the parent subaccount\n subaccount: string;\n // When provided, only return positions of the specified product\n product_id?: number;\n // If not given, will return both isolated & cross positions\n isolated?: boolean;\n // If not given, will return both open & closed positions\n open?: boolean;\n // open_id for pagination, inclusive (only positions with open_id <= idx are returned)\n idx?: number | string;\n // Max number of positions to return. Defaults to 100, max 500\n limit?: number;\n}\n\nexport interface IndexerServerLinkedSignerParams {\n subaccount: string;\n}\n\nexport interface IndexerServerMarketSnapshotsParams {\n interval: IndexerServerMarketSnapshotInterval;\n // Defaults to all\n product_ids?: number[];\n}\n\nexport interface IndexerEdgeServerMarketSnapshotsParams {\n interval: IndexerServerMarketSnapshotInterval;\n}\n\nexport interface IndexerServerInterestFundingParams {\n subaccount: string;\n product_ids: number[];\n // If not given, defaults to latest\n max_idx?: string;\n max_time?: number;\n limit: number;\n}\n\nexport interface IndexerServerMakerStatisticsParams {\n product_id: number;\n epoch: number;\n interval: number;\n}\n\nexport interface IndexerServerLeaderboardParams {\n contest_id: number;\n rank_type?: IndexerLeaderboardRankType;\n start?: number | string;\n limit?: number | string;\n order?: 'ASC' | 'DESC';\n}\n\nexport interface IndexerServerLeaderboardRankParams {\n subaccount: string;\n contest_ids: number[];\n}\n\nexport interface IndexerServerLeaderboardContestsParams {\n contest_ids?: number[];\n active?: boolean;\n}\n\nexport interface IndexerServerLeaderboardRegistrationsParams {\n subaccount: string;\n contest_ids?: number[];\n active?: boolean;\n}\n\nexport interface IndexerServerLeaderboardRegisterParams {\n update_registration: SignedTx<EIP712LeaderboardAuthenticationValues>;\n}\n\nexport interface IndexerServerSocialConnectParams {\n update_social_account: SignedTx<EIP712SocialAuthenticationValues>;\n}\n\nexport interface IndexerServerListSocialAccountsParams {\n address: string;\n}\n\nexport type IndexerServerRevokeSocialAccountParams =\n IndexerServerSocialConnectParams;\n\nexport interface IndexerServerFastWithdrawalSignatureParams {\n /**\n * The submission index of the WithdrawCollateral tx to be used for fast withdraw.\n */\n idx: number | string;\n}\n\nexport interface IndexerServerNlpSnapshotsParams {\n interval: IndexerServerSnapshotsInterval;\n}\n\nexport interface IndexerServerDDAQueryParams {\n subaccount: string;\n}\n\nexport interface IndexerServerPrivateAlphaChoiceParams {\n address: string;\n}\n\nexport interface IndexerServerPointsParams {\n address: string;\n}\n\nexport interface IndexerServerXPointsParams {\n address: string;\n}\n\nexport interface IndexerServerCashIncentivesParams {\n wallet_address: string;\n}\n\n// Request\nexport interface IndexerServerQueryRequestByType {\n account_snapshots: IndexerServerMultiSubaccountSnapshotsParams;\n backlog: Record<string, never>;\n candlesticks: IndexerServerCandlesticksParams;\n direct_deposit_address: IndexerServerDDAQueryParams;\n edge_candlesticks: IndexerEdgeServerCandlesticksParams;\n edge_market_snapshots: IndexerEdgeServerMarketSnapshotsParams;\n events: IndexerServerEventsParams;\n fast_withdrawal_signature: IndexerServerFastWithdrawalSignatureParams;\n funding_rate: IndexerServerFundingRateParams;\n funding_rate_history: IndexerServerFundingRateHistoryParams;\n funding_rates: IndexerServerFundingRatesParams;\n interest_and_funding: IndexerServerInterestFundingParams;\n leaderboard: IndexerServerLeaderboardParams;\n leaderboard_contests: IndexerServerLeaderboardContestsParams;\n leaderboard_rank: IndexerServerLeaderboardRankParams;\n leaderboard_register: IndexerServerLeaderboardRegisterParams;\n leaderboard_registrations: IndexerServerLeaderboardRegistrationsParams;\n linked_signer_rate_limit: IndexerServerLinkedSignerParams;\n maker_statistics: IndexerServerMakerStatisticsParams;\n market_snapshots: IndexerServerMarketSnapshotsParams;\n matches: IndexerServerMatchEventsParams;\n oracle_price: IndexerServerOraclePricesParams;\n orders: IndexerServerOrdersParams;\n perp_prices: IndexerServerPerpPricesParams;\n portfolio: IndexerServerPortfolioParams;\n portfolio_calendar: IndexerServerPortfolioCalendarParams;\n positions: IndexerServerPositionsParams;\n price: IndexerServerPriceParams;\n product_snapshots: IndexerServerMultiProductsParams;\n products: IndexerServerProductsParams;\n referral_code: IndexerServerReferralCodeParams;\n subaccounts: IndexerServerListSubaccountsParams;\n quote_price: Record<string, never>;\n nlp_snapshots: IndexerServerNlpSnapshotsParams;\n private_alpha_choice: IndexerServerPrivateAlphaChoiceParams;\n nado_points: IndexerServerPointsParams;\n nado_xpoints: IndexerServerXPointsParams;\n cash_incentives: IndexerServerCashIncentivesParams;\n social_connect: IndexerServerSocialConnectParams;\n list_social_accounts: IndexerServerListSocialAccountsParams;\n revoke_social_account: IndexerServerRevokeSocialAccountParams;\n}\n\nexport type IndexerServerQueryRequestType =\n keyof IndexerServerQueryRequestByType;\n\n/**\n * Responses\n */\n\nexport interface IndexerServerListSubaccountsResponse {\n subaccounts: {\n id: string;\n // Hex of subaccount bytes\n subaccount: string;\n // UNIX timestamp in seconds\n created_at: string;\n isolated: boolean;\n }[];\n}\n\nexport interface IndexerServerMultiSubaccountSnapshotsResponse {\n // Map of subaccount hex -> timestamp requested -> latest events corresponding to each product\n snapshots: Record<string, Record<string, IndexerServerEvent[]>>;\n}\n\nexport interface IndexerServerReferralCodeResponse {\n referral_code: string | null;\n}\n\nexport interface IndexerServerFundingRate {\n product_id: number;\n funding_rate_x18: string;\n update_time: number;\n}\n\nexport type IndexerServerFundingRateResponse = IndexerServerFundingRate;\n\n// Map of productId -> IndexerServerFundingRate\nexport type IndexerServerFundingRatesResponse = Record<\n string,\n IndexerServerFundingRate\n>;\n\nexport interface IndexerServerFundingRateHistoryEntry {\n product_id: number;\n // Epoch time in seconds of the settlement tick this funding rate was recorded at.\n timestamp: string;\n // Realized hourly funding rate at this tick, multiplied by 10^18 (% = rate * 100).\n funding_rate_x18: string;\n}\n\nexport interface IndexerServerFundingRateHistoryResponse {\n // Always ascending by timestamp.\n funding_rates: IndexerServerFundingRateHistoryEntry[];\n}\n\nexport type IndexerServerPortfolioPeriod =\n | 'day'\n | 'week'\n | 'month'\n | 'allTime'\n | 'perpDay'\n | 'perpWeek'\n | 'perpMonth'\n | 'perpAllTime';\n\n/**\n * [timestamp (unix seconds), value] — both x18-free decimal strings. Values are\n * USDT0-denominated, except `marketCountHistory` points, which are integer counts.\n */\nexport type IndexerServerPortfolioPoint = [string, string];\n\n// All five series are aligned: same timestamps, same length.\nexport interface IndexerServerPortfolioHistory {\n accountValueHistory: IndexerServerPortfolioPoint[];\n pnlHistory: IndexerServerPortfolioPoint[];\n volumeHistory: IndexerServerPortfolioPoint[];\n tradeSizeHistory: IndexerServerPortfolioPoint[];\n marketCountHistory: IndexerServerPortfolioPoint[];\n}\n\nexport type IndexerServerPortfolioResponse = [\n IndexerServerPortfolioPeriod,\n IndexerServerPortfolioHistory,\n][];\n\nexport interface IndexerServerPortfolioCalendarDay {\n // UTC midnight of the day, unix seconds.\n date: string;\n pnl: string;\n volume: string;\n trade_count: string;\n // Markets with at least one fill during the day, ascending. Empty when nothing was traded.\n product_ids: number[];\n}\n\n// Both scopes cover the same set of days, ascending.\nexport interface IndexerServerPortfolioCalendarResponse {\n spot: IndexerServerPortfolioCalendarDay[];\n perp: IndexerServerPortfolioCalendarDay[];\n}\n\nexport interface IndexerServerPerpPrices {\n product_id: number;\n index_price_x18: string;\n mark_price_x18: string;\n update_time: number;\n}\n\nexport type IndexerServerPriceResponse = IndexerServerPerpPrices;\n\n// Map of productId -> IndexerServerPerpPrices\nexport type IndexerServerPerpPricesResponse = Record<\n string,\n IndexerServerPerpPrices\n>;\n\nexport interface IndexerServerOraclePricesResponse {\n prices: IndexerServerOraclePrice[];\n}\n\nexport interface IndexerServerCandlesticksResponse {\n candlesticks: IndexerServerCandlestick[];\n}\n\nexport type IndexerEdgeServerCandlesticksResponse =\n IndexerServerCandlesticksResponse;\n\nexport interface IndexerServerProductsResponse {\n products: IndexerServerProductSnapshot[];\n txs: IndexerServerTx[];\n}\n\n// Map of timestamp -> (productID -> IndexerServerProductSnapshot)\nexport type IndexerServerMultiProductsResponse = Record<\n string,\n Record<string, IndexerServerProductSnapshot>\n>;\n\nexport interface IndexerServerEventsResponse {\n events: IndexerServerEvent[];\n txs: IndexerServerTx[];\n}\n\nexport interface IndexerServerOrdersResponse {\n orders: IndexerServerOrder[];\n}\n\nexport interface IndexerServerMatchEventsResponse {\n matches: IndexerServerMatchEvent[];\n txs: IndexerServerTx[];\n}\n\n/**\n * Response for the positions query. Positions are in descending order by `open_id`.\n * `events` / `txs` are the events and transactions at each position's boundaries\n * (open and close, or open and latest update while still open), joined to positions\n * via `open_id` / `close_id` / `submission_idx`.\n */\nexport interface IndexerServerPositionsResponse {\n positions: IndexerServerPosition[];\n events: IndexerServerEvent[];\n txs: IndexerServerTx[];\n}\n\nexport interface IndexerServerQuotePriceResponse {\n price_x18: string;\n}\n\nexport interface IndexerServerLinkedSignerResponse {\n total_tx_limit: string;\n remaining_tx: string;\n wait_time: string;\n signer: string;\n}\n\nexport interface IndexerServerMarketSnapshotsResponse {\n snapshots: IndexerServerMarketSnapshot[];\n}\n\nexport interface IndexerEdgeServerMarketSnapshotsResponse {\n snapshots: Record<number, IndexerServerMarketSnapshot[]>;\n}\n\nexport interface IndexerServerInterestFundingResponse {\n interest_payments: IndexerServerProductPayment[];\n funding_payments: IndexerServerProductPayment[];\n next_idx: string;\n}\n\nexport interface IndexerServerMakerStatisticsResponse {\n reward_coefficient: string;\n makers: IndexerServerMaker[];\n}\n\nexport interface IndexerServerLeaderboardResponse {\n positions: IndexerServerLeaderboardPosition[];\n}\n\nexport interface IndexerServerLeaderboardRegistrationsResponse {\n registrations: IndexerServerLeaderboardRegistration[];\n}\n\nexport type IndexerServerLeaderboardRegisterResponse =\n IndexerServerLeaderboardRegistrationsResponse;\n\nexport interface IndexerServerLeaderboardRankResponse {\n // If the subaccount is not eligible for a given contest, it would not be included in the response.\n // contestId -> IndexerServerLeaderboardPosition\n positions: Record<string, IndexerServerLeaderboardPosition>;\n}\n\nexport interface IndexerServerLeaderboardContestsResponse {\n contests: IndexerServerLeaderboardContest[];\n}\n\nexport interface IndexerServerFastWithdrawalSignatureResponse {\n idx: string;\n tx: NadoWithdrawCollateralTx['withdraw_collateral'];\n // Present only for `WithdrawCollateralV2` withdrawals.\n tx_v2?: NadoWithdrawCollateralV2Tx['withdraw_collateral_v2'];\n tx_bytes: string;\n signatures: string[];\n}\n\nexport interface IndexerServerNlpSnapshotsResponse {\n snapshots: IndexerServerNlpSnapshot[];\n}\n\nexport interface IndexerServerDDAResponse {\n v1_address: string;\n}\n\nexport interface IndexerServerBacklogResponse {\n // Total number of transactions stored in the indexer DB\n total_txs: string;\n // Current nSubmissions value from the chain (i.e., number of processed txs)\n total_submissions: string;\n // Number of unprocessed transactions (total_txs - total_submissions)\n backlog_size: string;\n // UNIX timestamp (in seconds) of when the data was last updated\n updated_at: string;\n // Estimated time in seconds (float) to clear the entire backlog (null if unavailable)\n backlog_eta_in_seconds: string | null;\n // Current submission rate in transactions per second (float) (null if unavailable)\n txs_per_second: string | null;\n}\n\nexport interface IndexerServerPrivateAlphaChoiceResponse {\n points: string;\n fee_refund: string;\n nft_eligibility: boolean;\n}\n\nexport interface IndexerServerPointsEpoch {\n epoch: number;\n description: string;\n start_time: string;\n end_time: string;\n total_points: string;\n points: string;\n rank: number;\n tier: number;\n}\n\nexport interface IndexerServerAllTimePoints {\n points: string;\n rank: number;\n tier: number;\n}\n\nexport interface IndexerServerPointsResponse {\n points_per_epoch: IndexerServerPointsEpoch[];\n all_time_points: IndexerServerAllTimePoints;\n}\n\nexport interface IndexerServerXPointsQuest {\n quest_type: string;\n points: string;\n}\n\nexport interface IndexerServerXPointsEpoch {\n epoch: number;\n description: string;\n start_time: string;\n end_time: string;\n total_points: string;\n rank: number;\n quests: IndexerServerXPointsQuest[];\n}\n\nexport interface IndexerServerXPointsAllTime {\n total_points: string;\n rank: number;\n quests: IndexerServerXPointsQuest[];\n}\n\nexport interface IndexerServerXPointsResponse {\n points_per_epoch: IndexerServerXPointsEpoch[];\n all_time_points: IndexerServerXPointsAllTime;\n}\n\nexport interface IndexerServerCashIncentivesEventMetadata {\n event_id: number;\n description: string;\n // UNIX timestamp in seconds\n epoch_start: string;\n // UNIX timestamp in seconds\n epoch_end: string;\n // x18 string\n max_volume: string;\n // x18 string\n max_reward: string;\n // x18 string\n min_volume: string;\n // x18 string\n min_reward: string;\n}\n\nexport interface IndexerServerCashIncentivesEventPlatform {\n // x18 string\n platform_volume: string;\n // x18 string\n unlocked_reward: string;\n}\n\n/**\n * Claim status of a wallet for a single Cash Incentives event.\n *\n * - `in_progress`: the event is still active.\n * - `pending`: the event has ended, but its settlement has not been published.\n * - `no_reward`: the settlement exists, but the wallet has no reward.\n * - `claimable`: the settlement grants this wallet a reward, and the proof to claim it is included.\n *\n * There is deliberately no `claimed` status. The airdrop contract's `getClaimed` is the source of\n * truth for whether a reward has already been taken, so a reward stays `claimable` here even after\n * it has been claimed onchain.\n */\nexport const INDEXER_SERVER_CASH_INCENTIVES_WALLET_STATUSES = [\n 'in_progress',\n 'pending',\n 'no_reward',\n 'claimable',\n] as const;\n\nexport type IndexerServerCashIncentivesWalletStatus =\n (typeof INDEXER_SERVER_CASH_INCENTIVES_WALLET_STATUSES)[number];\n\n/**\n * `wallet.claim` variant carrying everything needed to claim onchain.\n */\nexport interface IndexerServerCashIncentivesClaimableClaim {\n status: 'claimable';\n airdrop_address: string;\n // Reward event id within the airdrop contract, distinct from `metadata.event_id`\n week: number;\n // Integer string in raw token units, as committed to by the merkle root\n total_amount: string;\n // Merkle proof hashes\n proof: string[];\n}\n\n/**\n * `wallet.claim` variant for events with nothing to claim, which carries only the status.\n */\nexport interface IndexerServerCashIncentivesUnclaimableClaim {\n status: Exclude<IndexerServerCashIncentivesWalletStatus, 'claimable'>;\n}\n\n/**\n * Always present, tagged on `status`. Only the `claimable` variant carries proof data.\n */\nexport type IndexerServerCashIncentivesWalletClaim =\n | IndexerServerCashIncentivesClaimableClaim\n | IndexerServerCashIncentivesUnclaimableClaim;\n\nexport interface IndexerServerCashIncentivesEventWallet {\n // x18 string\n reward: string;\n claim: IndexerServerCashIncentivesWalletClaim;\n}\n\nexport interface IndexerServerCashIncentivesEvent {\n metadata: IndexerServerCashIncentivesEventMetadata;\n platform: IndexerServerCashIncentivesEventPlatform;\n wallet: IndexerServerCashIncentivesEventWallet;\n}\n\nexport interface IndexerServerCashIncentivesWalletSummary {\n // x18 string\n total_reward: string;\n // x18 string\n claimable_reward: string;\n}\n\nexport interface IndexerServerCashIncentivesResponse {\n events: IndexerServerCashIncentivesEvent[];\n wallet_summary: IndexerServerCashIncentivesWalletSummary;\n}\n\nexport interface IndexerServerSocialConnectResponse {\n url: string;\n}\n\nexport interface IndexerServerSocialAccountsResponse {\n accounts: IndexerServerSocialAccount[];\n}\n\n// Response\nexport interface IndexerServerQueryResponseByType {\n account_snapshots: IndexerServerMultiSubaccountSnapshotsResponse;\n backlog: IndexerServerBacklogResponse;\n candlesticks: IndexerServerCandlesticksResponse;\n direct_deposit_address: IndexerServerDDAResponse;\n edge_candlesticks: IndexerEdgeServerCandlesticksResponse;\n edge_market_snapshots: IndexerEdgeServerMarketSnapshotsResponse;\n events: IndexerServerEventsResponse;\n fast_withdrawal_signature: IndexerServerFastWithdrawalSignatureResponse;\n funding_rate: IndexerServerFundingRateResponse;\n funding_rate_history: IndexerServerFundingRateHistoryResponse;\n funding_rates: IndexerServerFundingRatesResponse;\n interest_and_funding: IndexerServerInterestFundingResponse;\n leaderboard: IndexerServerLeaderboardResponse;\n leaderboard_contests: IndexerServerLeaderboardContestsResponse;\n leaderboard_rank: IndexerServerLeaderboardRankResponse;\n leaderboard_register: IndexerServerLeaderboardRegisterResponse;\n leaderboard_registrations: IndexerServerLeaderboardRegistrationsResponse;\n linked_signer_rate_limit: IndexerServerLinkedSignerResponse;\n maker_statistics: IndexerServerMakerStatisticsResponse;\n market_snapshots: IndexerServerMarketSnapshotsResponse;\n matches: IndexerServerMatchEventsResponse;\n oracle_price: IndexerServerOraclePricesResponse;\n orders: IndexerServerOrdersResponse;\n perp_prices: IndexerServerPerpPricesResponse;\n portfolio: IndexerServerPortfolioResponse;\n portfolio_calendar: IndexerServerPortfolioCalendarResponse;\n positions: IndexerServerPositionsResponse;\n price: IndexerServerPriceResponse;\n product_snapshots: IndexerServerMultiProductsResponse;\n products: IndexerServerProductsResponse;\n referral_code: IndexerServerReferralCodeResponse;\n subaccounts: IndexerServerListSubaccountsResponse;\n quote_price: IndexerServerQuotePriceResponse;\n nlp_snapshots: IndexerServerNlpSnapshotsResponse;\n private_alpha_choice: IndexerServerPrivateAlphaChoiceResponse;\n nado_points: IndexerServerPointsResponse;\n nado_xpoints: IndexerServerXPointsResponse;\n cash_incentives: IndexerServerCashIncentivesResponse;\n social_connect: IndexerServerSocialConnectResponse;\n list_social_accounts: IndexerServerSocialAccountsResponse;\n revoke_social_account: IndexerServerSocialAccountsResponse;\n}\n\n/**\n * V2 API Types\n */\n\n/**\n * Individual ticker data from v2 indexer endpoint (server format)\n */\nexport interface IndexerServerV2TickerResponse {\n product_id: number;\n ticker_id: string;\n base_currency: string;\n quote_currency: string;\n last_price: number;\n base_volume: number;\n quote_volume: number;\n price_change_percent_24h: number;\n}\n\n/**\n * Response from v2 tickers endpoint (server format)\n * Maps ticker IDs to their respective ticker data\n */\nexport type IndexerServerV2TickersResponse = Record<\n string,\n IndexerServerV2TickerResponse\n>;\n\n/**\n * Market hours data from v2 symbols endpoint (server format)\n */\nexport interface IndexerServerV2MarketHours {\n is_open: boolean;\n reason: string | null;\n next_close: string | null;\n next_open: string | null;\n}\n\n/**\n * Individual symbol data from v2 indexer endpoint (server format)\n */\nexport interface IndexerServerV2Symbol {\n type: string;\n product_id: number;\n symbol: string;\n price_increment_x18: string;\n size_increment: string;\n min_size: string;\n maker_fee_rate_x18: string;\n taker_fee_rate_x18: string;\n long_weight_initial_x18: string;\n long_weight_maintenance_x18: string;\n /**\n * Defined only for perp markets with a max OI cap\n */\n max_open_interest_x18: string | null;\n /**\n * Defined only for xStocks spot markets\n */\n exchange_rate_x18: string | null;\n trading_status: string;\n isolated_only: boolean;\n market_hours: IndexerServerV2MarketHours | null;\n /**\n * Boost tier for products with rewards boosts. Null for non-boosted products.\n * 0 = none, 1 = taker 4x / maker 4x, 2 = taker 3x / maker 4x\n */\n boost_type: number | null;\n /**\n * Taker rewards multiplier. Null for non-boosted products.\n */\n taker_multiplier: number | null;\n /**\n * Maker rewards multiplier. Null for non-boosted products.\n */\n maker_multiplier: number | null;\n}\n\n/**\n * Response from v2 symbols endpoint (server format)\n * Maps symbols to their respective data\n */\nexport type IndexerServerV2SymbolsResponse = Record<\n string,\n IndexerServerV2Symbol\n>;\n\n/**\n * Wire `request_type` the indexer echoes on failure envelopes. The indexer's failure envelope is\n * keyed by route (`<verb>_<query_type>`), mirroring the engine and trigger services. Kept as a\n * `${string}_${string}` template to avoid enumerating the full set of v1 query types declared\n * above.\n */\nexport type IndexerServerRequestType = `${string}_${string}`;\n\n/**\n * Failure envelope returned by the indexer service API. Mirrors the failure shape used by the\n * engine and trigger services: a `status: 'failure'` discriminant plus an `error`/`error_code`\n * pair and the originating `request_type`. A response missing this envelope shape (e.g. a\n * malformed body, or a non-JSON response) is a transport-level error, not a domain error.\n *\n * The v2 REST endpoints do not return this envelope — they use plain HTTP error responses\n * without an `error_code` field.\n */\nexport interface IndexerServerFailureResponse {\n status: 'failure';\n error: string;\n error_code: number;\n request_type: IndexerServerRequestType;\n}\n\n/**\n * Narrows an unknown response body to the indexer service API failure envelope.\n */\nexport function isIndexerServerFailureResponse(\n data: unknown,\n): data is IndexerServerFailureResponse {\n return (\n typeof data === 'object' &&\n data !== null &&\n (data as Record<string, unknown>).status === 'failure'\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAupBA,MAAa,iDAAiD;CAC5D;CACA;CACA;CACA;AACF;;;;AA+NA,SAAgB,+BACd,MACsC;CACtC,OACE,OAAO,SAAS,YAChB,SAAS,QACR,KAAiC,WAAW;AAEjD"}
1
+ {"version":3,"file":"serverTypes.js","names":[],"sources":["../../src/types/serverTypes.ts"],"sourcesContent":["import {\n EIP712LeaderboardAuthenticationValues,\n EIP712SocialAuthenticationValues,\n SignedTx,\n} from '@nadohq/shared';\nimport { IndexerEventType } from './IndexerEventType';\nimport { IndexerLeaderboardRankType } from './IndexerLeaderboardType';\nimport { NadoWithdrawCollateralTx, NadoWithdrawCollateralV2Tx } from './NadoTx';\nimport {\n IndexerServerCandlestick,\n IndexerServerEvent,\n IndexerServerLeaderboardContest,\n IndexerServerLeaderboardPosition,\n IndexerServerLeaderboardRegistration,\n IndexerServerMaker,\n IndexerServerMarketSnapshot,\n IndexerServerMarketSnapshotInterval,\n IndexerServerMatchEvent,\n IndexerServerNlpSnapshot,\n IndexerServerOraclePrice,\n IndexerServerOrder,\n IndexerServerPosition,\n IndexerServerProductPayment,\n IndexerServerProductSnapshot,\n IndexerServerSnapshotsInterval,\n IndexerServerSocialAccount,\n IndexerServerTx,\n} from './serverModelTypes';\n\n/**\n * Params\n */\n\nexport interface IndexerServerListSubaccountsParams {\n // Inclusive, defaults to 0\n start?: number;\n // Defaults to 100\n limit?: number;\n address?: string;\n}\n\nexport interface IndexerServerMultiSubaccountSnapshotsParams {\n // Subaccount hex identifiers\n subaccounts: string[];\n timestamps: number[];\n // If not given, will return both isolated & non-iso balances\n isolated?: boolean;\n}\n\nexport interface IndexerServerReferralCodeParams {\n subaccount: string;\n}\n\nexport interface IndexerServerFundingRateParams {\n product_id: number;\n}\n\nexport interface IndexerServerFundingRatesParams {\n product_ids: number[];\n}\n\nexport interface IndexerServerFundingRateHistoryParams {\n product_id: number;\n start_time?: number | string;\n end_time?: number | string;\n // Max number of rates to return. Defaults to 100, max 1000.\n limit?: number;\n}\n\nexport interface IndexerServerPriceParams {\n product_id: number;\n}\n\nexport interface IndexerServerPerpPricesParams {\n product_ids: number[];\n}\n\nexport interface IndexerServerPortfolioParams {\n subaccount: string;\n}\n\nexport interface IndexerServerPortfolioCalendarParams {\n subaccount: string;\n // Unix seconds, UTC midnight\n start_time: number | string;\n end_time: number | string;\n}\n\nexport interface IndexerServerOraclePricesParams {\n product_ids: number[];\n}\n\nexport interface IndexerServerCandlesticksParams {\n product_id: number;\n granularity: number;\n // Seconds\n max_time?: number;\n limit: number;\n}\n\nexport type IndexerEdgeServerCandlesticksParams =\n IndexerServerCandlesticksParams;\n\nexport interface IndexerServerProductsParams {\n product_id: number;\n max_time?: number;\n limit: number;\n // submission_idx for pagination, inclusive\n idx?: string;\n}\n\nexport interface IndexerServerMultiProductsParams {\n product_ids: number[];\n max_time: number[];\n}\n\nexport interface IndexerServerEventsParams {\n subaccounts?: string[];\n product_ids?: number[];\n // If not given, will return both isolated & non-iso events\n isolated?: boolean;\n event_types?: IndexerEventType[];\n // Descending order for idx (time), defaults to true\n desc?: boolean;\n // submission_idx for pagination, inclusive\n idx?: string;\n max_time?: number;\n limit?:\n | {\n raw: number;\n }\n | {\n txs: number;\n };\n}\n\nexport type IndexerServerTriggerTypeFilter =\n | 'none'\n | 'price_trigger'\n | 'time_trigger';\n\nexport interface IndexerServerOrdersParams {\n subaccounts?: string[];\n product_ids?: number[];\n trigger_types?: IndexerServerTriggerTypeFilter[];\n digests?: string[];\n max_time?: number;\n limit?: number;\n // If not given, will return both isolated & non-iso orders\n isolated?: boolean;\n // submission_idx for pagination, inclusive\n idx?: string;\n}\n\nexport interface IndexerServerMatchEventsParams {\n subaccounts?: string[];\n product_ids?: number[];\n // If not given, will return both isolated & non-iso events\n isolated?: boolean;\n max_time?: number;\n limit: number;\n // submission_idx for pagination, inclusive\n idx?: string;\n}\n\n/**\n * Params for the positions query. All parameters except `subaccount` are optional filters.\n */\nexport interface IndexerServerPositionsParams {\n // Subaccount hex identifier. Isolated positions are also returned under the parent subaccount\n subaccount: string;\n // When provided, only return positions of the specified product\n product_id?: number;\n // If not given, will return both isolated & cross positions\n isolated?: boolean;\n // If not given, will return both open & closed positions\n open?: boolean;\n // open_id for pagination, inclusive (only positions with open_id <= idx are returned)\n idx?: number | string;\n // Max number of positions to return. Defaults to 100, max 500\n limit?: number;\n}\n\nexport interface IndexerServerLinkedSignerParams {\n subaccount: string;\n}\n\nexport interface IndexerServerMarketSnapshotsParams {\n interval: IndexerServerMarketSnapshotInterval;\n // Defaults to all\n product_ids?: number[];\n}\n\nexport interface IndexerEdgeServerMarketSnapshotsParams {\n interval: IndexerServerMarketSnapshotInterval;\n}\n\nexport interface IndexerServerInterestFundingParams {\n subaccount: string;\n product_ids: number[];\n // If not given, defaults to latest\n max_idx?: string;\n max_time?: number;\n limit: number;\n}\n\nexport interface IndexerServerMakerStatisticsParams {\n product_id: number;\n epoch: number;\n interval: number;\n}\n\nexport interface IndexerServerLeaderboardParams {\n contest_id: number;\n rank_type?: IndexerLeaderboardRankType;\n start?: number | string;\n limit?: number | string;\n order?: 'ASC' | 'DESC';\n}\n\nexport interface IndexerServerLeaderboardRankParams {\n subaccount: string;\n contest_ids: number[];\n}\n\nexport interface IndexerServerLeaderboardContestsParams {\n contest_ids?: number[];\n active?: boolean;\n}\n\nexport interface IndexerServerLeaderboardRegistrationsParams {\n subaccount: string;\n contest_ids?: number[];\n active?: boolean;\n}\n\nexport interface IndexerServerLeaderboardRegisterParams {\n update_registration: SignedTx<EIP712LeaderboardAuthenticationValues>;\n}\n\nexport interface IndexerServerSocialConnectParams {\n update_social_account: SignedTx<EIP712SocialAuthenticationValues>;\n}\n\nexport interface IndexerServerListSocialAccountsParams {\n address: string;\n}\n\nexport interface IndexerServerListSocialAccountsBatchParams {\n // Max 100 addresses per request\n addresses: string[];\n}\n\nexport type IndexerServerRevokeSocialAccountParams =\n IndexerServerSocialConnectParams;\n\nexport interface IndexerServerFastWithdrawalSignatureParams {\n /**\n * The submission index of the WithdrawCollateral tx to be used for fast withdraw.\n */\n idx: number | string;\n}\n\nexport interface IndexerServerNlpSnapshotsParams {\n interval: IndexerServerSnapshotsInterval;\n}\n\nexport interface IndexerServerDDAQueryParams {\n subaccount: string;\n}\n\nexport interface IndexerServerPrivateAlphaChoiceParams {\n address: string;\n}\n\nexport interface IndexerServerPointsParams {\n address: string;\n}\n\nexport interface IndexerServerXPointsParams {\n address: string;\n}\n\nexport interface IndexerServerCashIncentivesParams {\n wallet_address: string;\n}\n\n// Request\nexport interface IndexerServerQueryRequestByType {\n account_snapshots: IndexerServerMultiSubaccountSnapshotsParams;\n backlog: Record<string, never>;\n candlesticks: IndexerServerCandlesticksParams;\n direct_deposit_address: IndexerServerDDAQueryParams;\n edge_candlesticks: IndexerEdgeServerCandlesticksParams;\n edge_market_snapshots: IndexerEdgeServerMarketSnapshotsParams;\n events: IndexerServerEventsParams;\n fast_withdrawal_signature: IndexerServerFastWithdrawalSignatureParams;\n funding_rate: IndexerServerFundingRateParams;\n funding_rate_history: IndexerServerFundingRateHistoryParams;\n funding_rates: IndexerServerFundingRatesParams;\n interest_and_funding: IndexerServerInterestFundingParams;\n leaderboard: IndexerServerLeaderboardParams;\n leaderboard_contests: IndexerServerLeaderboardContestsParams;\n leaderboard_rank: IndexerServerLeaderboardRankParams;\n leaderboard_register: IndexerServerLeaderboardRegisterParams;\n leaderboard_registrations: IndexerServerLeaderboardRegistrationsParams;\n linked_signer_rate_limit: IndexerServerLinkedSignerParams;\n maker_statistics: IndexerServerMakerStatisticsParams;\n market_snapshots: IndexerServerMarketSnapshotsParams;\n matches: IndexerServerMatchEventsParams;\n oracle_price: IndexerServerOraclePricesParams;\n orders: IndexerServerOrdersParams;\n perp_prices: IndexerServerPerpPricesParams;\n portfolio: IndexerServerPortfolioParams;\n portfolio_calendar: IndexerServerPortfolioCalendarParams;\n positions: IndexerServerPositionsParams;\n price: IndexerServerPriceParams;\n product_snapshots: IndexerServerMultiProductsParams;\n products: IndexerServerProductsParams;\n referral_code: IndexerServerReferralCodeParams;\n subaccounts: IndexerServerListSubaccountsParams;\n quote_price: Record<string, never>;\n nlp_snapshots: IndexerServerNlpSnapshotsParams;\n private_alpha_choice: IndexerServerPrivateAlphaChoiceParams;\n nado_points: IndexerServerPointsParams;\n nado_xpoints: IndexerServerXPointsParams;\n cash_incentives: IndexerServerCashIncentivesParams;\n social_connect: IndexerServerSocialConnectParams;\n list_social_accounts: IndexerServerListSocialAccountsParams;\n list_social_accounts_batch: IndexerServerListSocialAccountsBatchParams;\n revoke_social_account: IndexerServerRevokeSocialAccountParams;\n}\n\nexport type IndexerServerQueryRequestType =\n keyof IndexerServerQueryRequestByType;\n\n/**\n * Responses\n */\n\nexport interface IndexerServerListSubaccountsResponse {\n subaccounts: {\n id: string;\n // Hex of subaccount bytes\n subaccount: string;\n // UNIX timestamp in seconds\n created_at: string;\n isolated: boolean;\n }[];\n}\n\nexport interface IndexerServerMultiSubaccountSnapshotsResponse {\n // Map of subaccount hex -> timestamp requested -> latest events corresponding to each product\n snapshots: Record<string, Record<string, IndexerServerEvent[]>>;\n}\n\nexport interface IndexerServerReferralCodeResponse {\n referral_code: string | null;\n}\n\nexport interface IndexerServerFundingRate {\n product_id: number;\n funding_rate_x18: string;\n update_time: number;\n}\n\nexport type IndexerServerFundingRateResponse = IndexerServerFundingRate;\n\n// Map of productId -> IndexerServerFundingRate\nexport type IndexerServerFundingRatesResponse = Record<\n string,\n IndexerServerFundingRate\n>;\n\nexport interface IndexerServerFundingRateHistoryEntry {\n product_id: number;\n // Epoch time in seconds of the settlement tick this funding rate was recorded at.\n timestamp: string;\n // Realized hourly funding rate at this tick, multiplied by 10^18 (% = rate * 100).\n funding_rate_x18: string;\n}\n\nexport interface IndexerServerFundingRateHistoryResponse {\n // Always ascending by timestamp.\n funding_rates: IndexerServerFundingRateHistoryEntry[];\n}\n\nexport type IndexerServerPortfolioPeriod =\n | 'day'\n | 'week'\n | 'month'\n | 'allTime'\n | 'perpDay'\n | 'perpWeek'\n | 'perpMonth'\n | 'perpAllTime';\n\n/**\n * [timestamp (unix seconds), value] — both x18-free decimal strings. Values are\n * USDT0-denominated, except `marketCountHistory` points, which are integer counts.\n */\nexport type IndexerServerPortfolioPoint = [string, string];\n\n// All five series are aligned: same timestamps, same length.\nexport interface IndexerServerPortfolioHistory {\n accountValueHistory: IndexerServerPortfolioPoint[];\n pnlHistory: IndexerServerPortfolioPoint[];\n volumeHistory: IndexerServerPortfolioPoint[];\n tradeSizeHistory: IndexerServerPortfolioPoint[];\n marketCountHistory: IndexerServerPortfolioPoint[];\n}\n\nexport type IndexerServerPortfolioResponse = [\n IndexerServerPortfolioPeriod,\n IndexerServerPortfolioHistory,\n][];\n\nexport interface IndexerServerPortfolioCalendarDay {\n // UTC midnight of the day, unix seconds.\n date: string;\n pnl: string;\n volume: string;\n trade_count: string;\n // Markets with at least one fill during the day, ascending. Empty when nothing was traded.\n product_ids: number[];\n}\n\n// Both scopes cover the same set of days, ascending.\nexport interface IndexerServerPortfolioCalendarResponse {\n spot: IndexerServerPortfolioCalendarDay[];\n perp: IndexerServerPortfolioCalendarDay[];\n}\n\nexport interface IndexerServerPerpPrices {\n product_id: number;\n index_price_x18: string;\n mark_price_x18: string;\n update_time: number;\n}\n\nexport type IndexerServerPriceResponse = IndexerServerPerpPrices;\n\n// Map of productId -> IndexerServerPerpPrices\nexport type IndexerServerPerpPricesResponse = Record<\n string,\n IndexerServerPerpPrices\n>;\n\nexport interface IndexerServerOraclePricesResponse {\n prices: IndexerServerOraclePrice[];\n}\n\nexport interface IndexerServerCandlesticksResponse {\n candlesticks: IndexerServerCandlestick[];\n}\n\nexport type IndexerEdgeServerCandlesticksResponse =\n IndexerServerCandlesticksResponse;\n\nexport interface IndexerServerProductsResponse {\n products: IndexerServerProductSnapshot[];\n txs: IndexerServerTx[];\n}\n\n// Map of timestamp -> (productID -> IndexerServerProductSnapshot)\nexport type IndexerServerMultiProductsResponse = Record<\n string,\n Record<string, IndexerServerProductSnapshot>\n>;\n\nexport interface IndexerServerEventsResponse {\n events: IndexerServerEvent[];\n txs: IndexerServerTx[];\n}\n\nexport interface IndexerServerOrdersResponse {\n orders: IndexerServerOrder[];\n}\n\nexport interface IndexerServerMatchEventsResponse {\n matches: IndexerServerMatchEvent[];\n txs: IndexerServerTx[];\n}\n\n/**\n * Response for the positions query. Positions are in descending order by `open_id`.\n * `events` / `txs` are the events and transactions at each position's boundaries\n * (open and close, or open and latest update while still open), joined to positions\n * via `open_id` / `close_id` / `submission_idx`.\n */\nexport interface IndexerServerPositionsResponse {\n positions: IndexerServerPosition[];\n events: IndexerServerEvent[];\n txs: IndexerServerTx[];\n}\n\nexport interface IndexerServerQuotePriceResponse {\n price_x18: string;\n}\n\nexport interface IndexerServerLinkedSignerResponse {\n total_tx_limit: string;\n remaining_tx: string;\n wait_time: string;\n signer: string;\n}\n\nexport interface IndexerServerMarketSnapshotsResponse {\n snapshots: IndexerServerMarketSnapshot[];\n}\n\nexport interface IndexerEdgeServerMarketSnapshotsResponse {\n snapshots: Record<number, IndexerServerMarketSnapshot[]>;\n}\n\nexport interface IndexerServerInterestFundingResponse {\n interest_payments: IndexerServerProductPayment[];\n funding_payments: IndexerServerProductPayment[];\n next_idx: string;\n}\n\nexport interface IndexerServerMakerStatisticsResponse {\n reward_coefficient: string;\n makers: IndexerServerMaker[];\n}\n\nexport interface IndexerServerLeaderboardResponse {\n positions: IndexerServerLeaderboardPosition[];\n}\n\nexport interface IndexerServerLeaderboardRegistrationsResponse {\n registrations: IndexerServerLeaderboardRegistration[];\n}\n\nexport type IndexerServerLeaderboardRegisterResponse =\n IndexerServerLeaderboardRegistrationsResponse;\n\nexport interface IndexerServerLeaderboardRankResponse {\n // If the subaccount is not eligible for a given contest, it would not be included in the response.\n // contestId -> IndexerServerLeaderboardPosition\n positions: Record<string, IndexerServerLeaderboardPosition>;\n}\n\nexport interface IndexerServerLeaderboardContestsResponse {\n contests: IndexerServerLeaderboardContest[];\n}\n\nexport interface IndexerServerFastWithdrawalSignatureResponse {\n idx: string;\n tx: NadoWithdrawCollateralTx['withdraw_collateral'];\n // Present only for `WithdrawCollateralV2` withdrawals.\n tx_v2?: NadoWithdrawCollateralV2Tx['withdraw_collateral_v2'];\n tx_bytes: string;\n signatures: string[];\n}\n\nexport interface IndexerServerNlpSnapshotsResponse {\n snapshots: IndexerServerNlpSnapshot[];\n}\n\nexport interface IndexerServerDDAResponse {\n v1_address: string;\n}\n\nexport interface IndexerServerBacklogResponse {\n // Total number of transactions stored in the indexer DB\n total_txs: string;\n // Current nSubmissions value from the chain (i.e., number of processed txs)\n total_submissions: string;\n // Number of unprocessed transactions (total_txs - total_submissions)\n backlog_size: string;\n // UNIX timestamp (in seconds) of when the data was last updated\n updated_at: string;\n // Estimated time in seconds (float) to clear the entire backlog (null if unavailable)\n backlog_eta_in_seconds: string | null;\n // Current submission rate in transactions per second (float) (null if unavailable)\n txs_per_second: string | null;\n}\n\nexport interface IndexerServerPrivateAlphaChoiceResponse {\n points: string;\n fee_refund: string;\n nft_eligibility: boolean;\n}\n\nexport interface IndexerServerPointsEpoch {\n epoch: number;\n description: string;\n start_time: string;\n end_time: string;\n total_points: string;\n points: string;\n rank: number;\n tier: number;\n}\n\nexport interface IndexerServerAllTimePoints {\n points: string;\n rank: number;\n tier: number;\n}\n\nexport interface IndexerServerPointsResponse {\n points_per_epoch: IndexerServerPointsEpoch[];\n all_time_points: IndexerServerAllTimePoints;\n}\n\nexport interface IndexerServerXPointsQuest {\n quest_type: string;\n points: string;\n}\n\nexport interface IndexerServerXPointsEpoch {\n epoch: number;\n description: string;\n start_time: string;\n end_time: string;\n total_points: string;\n rank: number;\n quests: IndexerServerXPointsQuest[];\n}\n\nexport interface IndexerServerXPointsAllTime {\n total_points: string;\n rank: number;\n quests: IndexerServerXPointsQuest[];\n}\n\nexport interface IndexerServerXPointsResponse {\n points_per_epoch: IndexerServerXPointsEpoch[];\n all_time_points: IndexerServerXPointsAllTime;\n}\n\nexport interface IndexerServerCashIncentivesEventMetadata {\n event_id: number;\n description: string;\n // UNIX timestamp in seconds\n epoch_start: string;\n // UNIX timestamp in seconds\n epoch_end: string;\n // x18 string\n max_volume: string;\n // x18 string\n max_reward: string;\n // x18 string\n min_volume: string;\n // x18 string\n min_reward: string;\n}\n\nexport interface IndexerServerCashIncentivesEventPlatform {\n // x18 string\n platform_volume: string;\n // x18 string\n unlocked_reward: string;\n}\n\n/**\n * Claim status of a wallet for a single Cash Incentives event.\n *\n * - `in_progress`: the event is still active.\n * - `pending`: the event has ended, but its settlement has not been published.\n * - `no_reward`: the settlement exists, but the wallet has no reward.\n * - `claimable`: the settlement grants this wallet a reward, and the proof to claim it is included.\n *\n * There is deliberately no `claimed` status. The airdrop contract's `getClaimed` is the source of\n * truth for whether a reward has already been taken, so a reward stays `claimable` here even after\n * it has been claimed onchain.\n */\nexport const INDEXER_SERVER_CASH_INCENTIVES_WALLET_STATUSES = [\n 'in_progress',\n 'pending',\n 'no_reward',\n 'claimable',\n] as const;\n\nexport type IndexerServerCashIncentivesWalletStatus =\n (typeof INDEXER_SERVER_CASH_INCENTIVES_WALLET_STATUSES)[number];\n\n/**\n * `wallet.claim` variant carrying everything needed to claim onchain.\n */\nexport interface IndexerServerCashIncentivesClaimableClaim {\n status: 'claimable';\n airdrop_address: string;\n // Reward event id within the airdrop contract, distinct from `metadata.event_id`\n week: number;\n // Integer string in raw token units, as committed to by the merkle root\n total_amount: string;\n // Merkle proof hashes\n proof: string[];\n}\n\n/**\n * `wallet.claim` variant for events with nothing to claim, which carries only the status.\n */\nexport interface IndexerServerCashIncentivesUnclaimableClaim {\n status: Exclude<IndexerServerCashIncentivesWalletStatus, 'claimable'>;\n}\n\n/**\n * Always present, tagged on `status`. Only the `claimable` variant carries proof data.\n */\nexport type IndexerServerCashIncentivesWalletClaim =\n | IndexerServerCashIncentivesClaimableClaim\n | IndexerServerCashIncentivesUnclaimableClaim;\n\nexport interface IndexerServerCashIncentivesEventWallet {\n // x18 string\n reward: string;\n claim: IndexerServerCashIncentivesWalletClaim;\n}\n\nexport interface IndexerServerCashIncentivesEvent {\n metadata: IndexerServerCashIncentivesEventMetadata;\n platform: IndexerServerCashIncentivesEventPlatform;\n wallet: IndexerServerCashIncentivesEventWallet;\n}\n\nexport interface IndexerServerCashIncentivesWalletSummary {\n // x18 string\n total_reward: string;\n // x18 string\n claimable_reward: string;\n}\n\nexport interface IndexerServerCashIncentivesResponse {\n events: IndexerServerCashIncentivesEvent[];\n wallet_summary: IndexerServerCashIncentivesWalletSummary;\n}\n\nexport interface IndexerServerSocialConnectResponse {\n url: string;\n}\n\nexport interface IndexerServerSocialAccountsResponse {\n accounts: IndexerServerSocialAccount[];\n}\n\nexport interface IndexerServerSocialAccountsBatchResponse {\n // Keyed by lowercase address. Every requested address is present, with `[]` when nothing is linked.\n accounts: Record<string, IndexerServerSocialAccount[]>;\n}\n\n// Response\nexport interface IndexerServerQueryResponseByType {\n account_snapshots: IndexerServerMultiSubaccountSnapshotsResponse;\n backlog: IndexerServerBacklogResponse;\n candlesticks: IndexerServerCandlesticksResponse;\n direct_deposit_address: IndexerServerDDAResponse;\n edge_candlesticks: IndexerEdgeServerCandlesticksResponse;\n edge_market_snapshots: IndexerEdgeServerMarketSnapshotsResponse;\n events: IndexerServerEventsResponse;\n fast_withdrawal_signature: IndexerServerFastWithdrawalSignatureResponse;\n funding_rate: IndexerServerFundingRateResponse;\n funding_rate_history: IndexerServerFundingRateHistoryResponse;\n funding_rates: IndexerServerFundingRatesResponse;\n interest_and_funding: IndexerServerInterestFundingResponse;\n leaderboard: IndexerServerLeaderboardResponse;\n leaderboard_contests: IndexerServerLeaderboardContestsResponse;\n leaderboard_rank: IndexerServerLeaderboardRankResponse;\n leaderboard_register: IndexerServerLeaderboardRegisterResponse;\n leaderboard_registrations: IndexerServerLeaderboardRegistrationsResponse;\n linked_signer_rate_limit: IndexerServerLinkedSignerResponse;\n maker_statistics: IndexerServerMakerStatisticsResponse;\n market_snapshots: IndexerServerMarketSnapshotsResponse;\n matches: IndexerServerMatchEventsResponse;\n oracle_price: IndexerServerOraclePricesResponse;\n orders: IndexerServerOrdersResponse;\n perp_prices: IndexerServerPerpPricesResponse;\n portfolio: IndexerServerPortfolioResponse;\n portfolio_calendar: IndexerServerPortfolioCalendarResponse;\n positions: IndexerServerPositionsResponse;\n price: IndexerServerPriceResponse;\n product_snapshots: IndexerServerMultiProductsResponse;\n products: IndexerServerProductsResponse;\n referral_code: IndexerServerReferralCodeResponse;\n subaccounts: IndexerServerListSubaccountsResponse;\n quote_price: IndexerServerQuotePriceResponse;\n nlp_snapshots: IndexerServerNlpSnapshotsResponse;\n private_alpha_choice: IndexerServerPrivateAlphaChoiceResponse;\n nado_points: IndexerServerPointsResponse;\n nado_xpoints: IndexerServerXPointsResponse;\n cash_incentives: IndexerServerCashIncentivesResponse;\n social_connect: IndexerServerSocialConnectResponse;\n list_social_accounts: IndexerServerSocialAccountsResponse;\n list_social_accounts_batch: IndexerServerSocialAccountsBatchResponse;\n revoke_social_account: IndexerServerSocialAccountsResponse;\n}\n\n/**\n * V2 API Types\n */\n\n/**\n * Individual ticker data from v2 indexer endpoint (server format)\n */\nexport interface IndexerServerV2TickerResponse {\n product_id: number;\n ticker_id: string;\n base_currency: string;\n quote_currency: string;\n last_price: number;\n base_volume: number;\n quote_volume: number;\n price_change_percent_24h: number;\n}\n\n/**\n * Response from v2 tickers endpoint (server format)\n * Maps ticker IDs to their respective ticker data\n */\nexport type IndexerServerV2TickersResponse = Record<\n string,\n IndexerServerV2TickerResponse\n>;\n\n/**\n * Market hours data from v2 symbols endpoint (server format)\n */\nexport interface IndexerServerV2MarketHours {\n is_open: boolean;\n reason: string | null;\n next_close: string | null;\n next_open: string | null;\n}\n\n/**\n * Individual symbol data from v2 indexer endpoint (server format)\n */\nexport interface IndexerServerV2Symbol {\n type: string;\n product_id: number;\n symbol: string;\n price_increment_x18: string;\n size_increment: string;\n min_size: string;\n maker_fee_rate_x18: string;\n taker_fee_rate_x18: string;\n long_weight_initial_x18: string;\n long_weight_maintenance_x18: string;\n /**\n * Defined only for perp markets with a max OI cap\n */\n max_open_interest_x18: string | null;\n /**\n * Defined only for xStocks spot markets\n */\n exchange_rate_x18: string | null;\n trading_status: string;\n isolated_only: boolean;\n market_hours: IndexerServerV2MarketHours | null;\n /**\n * Boost tier for products with rewards boosts. Null for non-boosted products.\n * 0 = none, 1 = taker 4x / maker 4x, 2 = taker 3x / maker 4x\n */\n boost_type: number | null;\n /**\n * Taker rewards multiplier. Null for non-boosted products.\n */\n taker_multiplier: number | null;\n /**\n * Maker rewards multiplier. Null for non-boosted products.\n */\n maker_multiplier: number | null;\n}\n\n/**\n * Response from v2 symbols endpoint (server format)\n * Maps symbols to their respective data\n */\nexport type IndexerServerV2SymbolsResponse = Record<\n string,\n IndexerServerV2Symbol\n>;\n\n/**\n * Wire `request_type` the indexer echoes on failure envelopes. The indexer's failure envelope is\n * keyed by route (`<verb>_<query_type>`), mirroring the engine and trigger services. Kept as a\n * `${string}_${string}` template to avoid enumerating the full set of v1 query types declared\n * above.\n */\nexport type IndexerServerRequestType = `${string}_${string}`;\n\n/**\n * Failure envelope returned by the indexer service API. Mirrors the failure shape used by the\n * engine and trigger services: a `status: 'failure'` discriminant plus an `error`/`error_code`\n * pair and the originating `request_type`. A response missing this envelope shape (e.g. a\n * malformed body, or a non-JSON response) is a transport-level error, not a domain error.\n *\n * The v2 REST endpoints do not return this envelope — they use plain HTTP error responses\n * without an `error_code` field.\n */\nexport interface IndexerServerFailureResponse {\n status: 'failure';\n error: string;\n error_code: number;\n request_type: IndexerServerRequestType;\n}\n\n/**\n * Narrows an unknown response body to the indexer service API failure envelope.\n */\nexport function isIndexerServerFailureResponse(\n data: unknown,\n): data is IndexerServerFailureResponse {\n return (\n typeof data === 'object' &&\n data !== null &&\n (data as Record<string, unknown>).status === 'failure'\n );\n}\n"],"mappings":";;;;;;;;;;;;;AA6pBA,MAAa,iDAAiD;CAC5D;CACA;CACA;CACA;AACF;;;;AAqOA,SAAgB,+BACd,MACsC;CACtC,OACE,OAAO,SAAS,YAChB,SAAS,QACR,KAAiC,WAAW;AAEjD"}
@@ -1,2 +1,2 @@
1
- import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-Bsv5-9MT.cjs";
1
+ import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-MvNqN-LX.cjs";
2
2
  export { calcIndexerPerpBalanceNotionalValue, calcIndexerPerpBalanceValue, calcIndexerSpotBalanceValue };
@@ -1,2 +1,2 @@
1
- import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-Za1caHGW.js";
1
+ import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-h-otrIPx.js";
2
2
  export { calcIndexerPerpBalanceNotionalValue, calcIndexerPerpBalanceValue, calcIndexerSpotBalanceValue };
@@ -1,2 +1,2 @@
1
- import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-Bsv5-9MT.cjs";
1
+ import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-MvNqN-LX.cjs";
2
2
  export { calcIndexerPerpBalanceNotionalValue, calcIndexerPerpBalanceValue, calcIndexerSpotBalanceValue };
@@ -1,2 +1,2 @@
1
- import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-Za1caHGW.js";
1
+ import { n as calcIndexerPerpBalanceValue, r as calcIndexerSpotBalanceValue, t as calcIndexerPerpBalanceNotionalValue } from "../indexerBalanceValue-h-otrIPx.js";
2
2
  export { calcIndexerPerpBalanceNotionalValue, calcIndexerPerpBalanceValue, calcIndexerSpotBalanceValue };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadohq/indexer-client",
3
- "version": "0.68.0",
3
+ "version": "0.69.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "HTTP client for the Nado indexer — historical data, events, and analytics queries",
@@ -41,8 +41,8 @@
41
41
  "module": "./dist/index.js",
42
42
  "types": "./dist/index.d.ts",
43
43
  "dependencies": {
44
- "@nadohq/engine-client": "^0.68.0",
45
- "@nadohq/shared": "^0.68.0",
44
+ "@nadohq/engine-client": "^0.69.0",
45
+ "@nadohq/shared": "^0.69.0",
46
46
  "axios": "1.16.1",
47
47
  "ts-mixer": "6.0.4"
48
48
  },
@@ -54,5 +54,5 @@
54
54
  "bignumber.js": "11.1.1",
55
55
  "viem": "2.52.0"
56
56
  },
57
- "gitHead": "ba847031f9af4ec15d639258e2d29ed9d28aabff"
57
+ "gitHead": "72370c0f94b66ca1c697d2ec6f671dc3a020c886"
58
58
  }
@@ -43,6 +43,7 @@ import {
43
43
  mapIndexerPosition,
44
44
  mapIndexerProductPayment,
45
45
  mapIndexerServerProduct,
46
+ mapIndexerSocialAccount,
46
47
  mapIndexerV2Symbols,
47
48
  mapIndexerV2Ticker,
48
49
  mapSnapshotsIntervalToServerParams,
@@ -137,6 +138,8 @@ import {
137
138
  IndexerSnapshotBalance,
138
139
  IndexerSubaccountSnapshot,
139
140
  isIndexerServerFailureResponse,
141
+ ListIndexerSocialAccountsBatchParams,
142
+ ListIndexerSocialAccountsBatchResponse,
140
143
  ListIndexerSocialAccountsParams,
141
144
  ListIndexerSocialAccountsResponse,
142
145
  ListIndexerSubaccountsParams,
@@ -1207,6 +1210,28 @@ export class IndexerBaseClient {
1207
1210
  };
1208
1211
  }
1209
1212
 
1213
+ /**
1214
+ * Lists linked social accounts for multiple addresses in a single request.
1215
+ *
1216
+ * Results are keyed by lowercase address (`accounts[address.toLowerCase()]`);
1217
+ * addresses with no linked account map to `[]`. Max 100 addresses per request.
1218
+ *
1219
+ * @param params - Query parameters including the wallet addresses.
1220
+ */
1221
+ async listSocialAccountsBatch(
1222
+ params: ListIndexerSocialAccountsBatchParams,
1223
+ ): Promise<ListIndexerSocialAccountsBatchResponse> {
1224
+ const baseResponse = await this.rewardsQuery('list_social_accounts_batch', {
1225
+ addresses: params.addresses,
1226
+ });
1227
+
1228
+ return {
1229
+ accounts: mapValues(baseResponse.accounts, (accounts) =>
1230
+ accounts.map(mapIndexerSocialAccount),
1231
+ ),
1232
+ };
1233
+ }
1234
+
1210
1235
  /**
1211
1236
  * Revokes a linked social account. Requires EIP-712 signing.
1212
1237
  *
@@ -59,11 +59,13 @@ import {
59
59
  IndexerServerProduct,
60
60
  IndexerServerProductPayment,
61
61
  IndexerServerSnapshotsInterval,
62
+ IndexerServerSocialAccount,
62
63
  IndexerServerTx,
63
64
  IndexerServerV2MarketHours,
64
65
  IndexerServerV2Symbol,
65
66
  IndexerServerV2TickerResponse,
66
67
  IndexerSnapshotsIntervalParams,
68
+ IndexerSocialAccountInfo,
67
69
  IndexerSpotBalance,
68
70
  IndexerV2MarketHours,
69
71
  IndexerV2Symbol,
@@ -393,6 +395,17 @@ export function mapIndexerLeaderboardPosition(
393
395
  };
394
396
  }
395
397
 
398
+ export function mapIndexerSocialAccount(
399
+ account: IndexerServerSocialAccount,
400
+ ): IndexerSocialAccountInfo {
401
+ return {
402
+ provider: account.provider,
403
+ username: account.username,
404
+ displayName: account.display_name,
405
+ profileImageUrl: account.profile_image_url,
406
+ };
407
+ }
408
+
396
409
  export function mapIndexerLeaderboardRegistration(
397
410
  registration: IndexerServerLeaderboardRegistration,
398
411
  ): IndexerLeaderboardRegistration {
@@ -967,6 +967,19 @@ export interface ListIndexerSocialAccountsResponse {
967
967
  accounts: IndexerSocialAccountInfo[];
968
968
  }
969
969
 
970
+ export interface ListIndexerSocialAccountsBatchParams {
971
+ /** Wallet addresses to look up, in any casing. Max 100 per request */
972
+ addresses: Address[];
973
+ }
974
+
975
+ export interface ListIndexerSocialAccountsBatchResponse {
976
+ /**
977
+ * Linked social accounts keyed by **lowercase** address; every requested
978
+ * address is present (`[]` if none linked).
979
+ */
980
+ accounts: Record<string, IndexerSocialAccountInfo[]>;
981
+ }
982
+
970
983
  export type RevokeSocialAccountParams = ConnectSocialAccountParams;
971
984
  export type RevokeSocialAccountResponse = ListIndexerSocialAccountsResponse;
972
985
 
@@ -246,6 +246,11 @@ export interface IndexerServerListSocialAccountsParams {
246
246
  address: string;
247
247
  }
248
248
 
249
+ export interface IndexerServerListSocialAccountsBatchParams {
250
+ // Max 100 addresses per request
251
+ addresses: string[];
252
+ }
253
+
249
254
  export type IndexerServerRevokeSocialAccountParams =
250
255
  IndexerServerSocialConnectParams;
251
256
 
@@ -322,6 +327,7 @@ export interface IndexerServerQueryRequestByType {
322
327
  cash_incentives: IndexerServerCashIncentivesParams;
323
328
  social_connect: IndexerServerSocialConnectParams;
324
329
  list_social_accounts: IndexerServerListSocialAccountsParams;
330
+ list_social_accounts_batch: IndexerServerListSocialAccountsBatchParams;
325
331
  revoke_social_account: IndexerServerRevokeSocialAccountParams;
326
332
  }
327
333
 
@@ -731,6 +737,11 @@ export interface IndexerServerSocialAccountsResponse {
731
737
  accounts: IndexerServerSocialAccount[];
732
738
  }
733
739
 
740
+ export interface IndexerServerSocialAccountsBatchResponse {
741
+ // Keyed by lowercase address. Every requested address is present, with `[]` when nothing is linked.
742
+ accounts: Record<string, IndexerServerSocialAccount[]>;
743
+ }
744
+
734
745
  // Response
735
746
  export interface IndexerServerQueryResponseByType {
736
747
  account_snapshots: IndexerServerMultiSubaccountSnapshotsResponse;
@@ -773,6 +784,7 @@ export interface IndexerServerQueryResponseByType {
773
784
  cash_incentives: IndexerServerCashIncentivesResponse;
774
785
  social_connect: IndexerServerSocialConnectResponse;
775
786
  list_social_accounts: IndexerServerSocialAccountsResponse;
787
+ list_social_accounts_batch: IndexerServerSocialAccountsBatchResponse;
776
788
  revoke_social_account: IndexerServerSocialAccountsResponse;
777
789
  }
778
790
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexerBaseClient-BXL3f89a.cjs","names":["mapIndexerEvent","mapIndexerFundingRate","mapIndexerFundingRateHistory","mapIndexerPortfolio","mapIndexerPortfolioCalendar","mapIndexerPerpPrices","mapIndexerCandlesticks","mapIndexerServerProduct","mapIndexerEventWithTx","mapIndexerOrder","mapIndexerMatchEventBalances","mapIndexerPosition","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 mapIndexerPortfolioCalendar,\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 GetIndexerPortfolioCalendarParams,\n GetIndexerPortfolioCalendarResponse,\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 a subaccount's per-UTC-day PnL, traded volume, trade count, and\n * markets traded between `startTime` and `endTime` (inclusive), split into\n * `spot` and `perp` scopes. The value aggregates the cross-margin account plus\n * every isolated child; the queried subaccount must be cross-margin.\n *\n * Use this for calendar/heat-map style views of daily performance. For\n * continuous time series, use `getPortfolio` instead.\n *\n * `startTime`/`endTime` must be UTC midnight (divisible by 86400); the range\n * is capped at 500 days. Days before the subaccount's first recorded activity\n * return zeroed entries; days after the latest available data are omitted, so\n * a range ending in the future stops at today. The current (partial) day is\n * measured up to the latest available snapshot, which can be up to ~20\n * minutes stale.\n *\n * @param params\n */\n async getPortfolioCalendar(\n params: GetIndexerPortfolioCalendarParams,\n ): Promise<GetIndexerPortfolioCalendarResponse> {\n const baseResponse = await this.query('portfolio_calendar', {\n subaccount: subaccountToHex(params.subaccount),\n start_time: params.startTime,\n end_time: params.endTime,\n });\n\n return mapIndexerPortfolioCalendar(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":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverTypes--eKZMPkr.d.ts","names":[],"sources":["../src/types/src/types/serverTypes.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverTypes-sSPZDJZ-.d.cts","names":[],"sources":["../src/types/src/types/serverTypes.ts"],"mappings":"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"}