@n1xyz/nord-ts 0.0.1 → 0.0.4

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 (237) hide show
  1. package/.eslintrc.js +11 -0
  2. package/README.md +148 -65
  3. package/dist/bridge/NordUser.d.ts +78 -0
  4. package/dist/bridge/NordUser.js +196 -0
  5. package/dist/bridge/client.d.ts +150 -0
  6. package/dist/bridge/client.js +394 -0
  7. package/dist/bridge/const.d.ts +23 -0
  8. package/dist/bridge/const.js +47 -0
  9. package/dist/bridge/index.d.ts +5 -0
  10. package/dist/bridge/index.js +23 -0
  11. package/dist/bridge/types.d.ts +118 -0
  12. package/dist/bridge/types.js +16 -0
  13. package/dist/bridge/utils.d.ts +64 -0
  14. package/dist/bridge/utils.js +131 -0
  15. package/dist/client.d.ts +70 -0
  16. package/dist/client.js +129 -0
  17. package/dist/const.d.ts +2 -5
  18. package/dist/const.js +18 -22
  19. package/dist/constants/endpoints.d.ts +65 -0
  20. package/dist/constants/endpoints.js +68 -0
  21. package/dist/gen/common.d.ts +6 -1
  22. package/dist/gen/common.js +19 -9
  23. package/dist/gen/nord.d.ts +75 -17
  24. package/dist/gen/nord.js +987 -423
  25. package/dist/idl/bridge.d.ts +2 -0
  26. package/dist/idl/bridge.js +703 -0
  27. package/dist/index.d.ts +8 -5
  28. package/dist/index.js +18 -2
  29. package/dist/models/account.d.ts +58 -0
  30. package/dist/models/account.js +6 -0
  31. package/dist/models/index.d.ts +8 -0
  32. package/dist/models/index.js +28 -0
  33. package/dist/models/market.d.ts +137 -0
  34. package/dist/models/market.js +6 -0
  35. package/dist/models/order.d.ts +211 -0
  36. package/dist/models/order.js +6 -0
  37. package/dist/models/token.d.ts +50 -0
  38. package/dist/models/token.js +6 -0
  39. package/dist/nord/Nord.d.ts +222 -49
  40. package/dist/nord/Nord.js +290 -278
  41. package/dist/nord/NordError.d.ts +23 -0
  42. package/dist/nord/NordError.js +48 -0
  43. package/dist/nord/NordImpl.d.ts +6 -2
  44. package/dist/nord/NordImpl.js +21 -1
  45. package/dist/nord/NordUser.d.ts +208 -42
  46. package/dist/nord/NordUser.js +389 -157
  47. package/dist/nord/Subscriber.d.ts +37 -0
  48. package/dist/nord/Subscriber.js +29 -0
  49. package/dist/nord/api/actions.d.ts +101 -0
  50. package/dist/nord/api/actions.js +250 -0
  51. package/dist/nord/api/core.d.ts +49 -0
  52. package/dist/nord/api/core.js +121 -0
  53. package/dist/nord/api/index.d.ts +1 -0
  54. package/dist/nord/api/index.js +17 -0
  55. package/dist/nord/api/market.d.ts +36 -0
  56. package/dist/nord/api/market.js +98 -0
  57. package/dist/nord/api/metrics.d.ts +67 -0
  58. package/dist/nord/api/metrics.js +132 -0
  59. package/dist/nord/api/orderFunctions.d.ts +168 -0
  60. package/dist/nord/api/orderFunctions.js +133 -0
  61. package/dist/nord/api/queries.d.ts +81 -0
  62. package/dist/nord/api/queries.js +187 -0
  63. package/dist/nord/client/Nord.d.ts +335 -0
  64. package/dist/nord/client/Nord.js +532 -0
  65. package/dist/nord/client/NordUser.d.ts +320 -0
  66. package/dist/nord/client/NordUser.js +701 -0
  67. package/dist/nord/core.d.ts +48 -0
  68. package/dist/nord/core.js +97 -0
  69. package/dist/nord/index.d.ts +9 -2
  70. package/dist/nord/index.js +30 -6
  71. package/dist/nord/market.d.ts +36 -0
  72. package/dist/nord/market.js +90 -0
  73. package/dist/nord/metrics.d.ts +67 -0
  74. package/dist/nord/metrics.js +124 -0
  75. package/dist/nord/models/Subscriber.d.ts +37 -0
  76. package/dist/nord/models/Subscriber.js +29 -0
  77. package/dist/nord/queries.d.ts +81 -0
  78. package/dist/nord/queries.js +181 -0
  79. package/dist/nord/types.d.ts +88 -0
  80. package/dist/nord/types.js +2 -0
  81. package/dist/nord/utils/NordError.d.ts +35 -0
  82. package/dist/nord/utils/NordError.js +46 -0
  83. package/dist/nord/websocket.d.ts +49 -0
  84. package/dist/nord/websocket.js +107 -0
  85. package/dist/operations/account.d.ts +58 -0
  86. package/dist/operations/account.js +112 -0
  87. package/dist/operations/market.d.ts +65 -0
  88. package/dist/operations/market.js +131 -0
  89. package/dist/operations/orders.d.ts +57 -0
  90. package/dist/operations/orders.js +129 -0
  91. package/dist/solana/NordUser.d.ts +78 -0
  92. package/dist/solana/NordUser.js +196 -0
  93. package/dist/solana/client.d.ts +139 -0
  94. package/dist/solana/client.js +360 -0
  95. package/dist/solana/const.d.ts +23 -0
  96. package/dist/solana/const.js +47 -0
  97. package/dist/solana/index.d.ts +5 -0
  98. package/dist/solana/index.js +23 -0
  99. package/dist/solana/types.d.ts +118 -0
  100. package/dist/solana/types.js +16 -0
  101. package/dist/solana/utils.d.ts +64 -0
  102. package/dist/solana/utils.js +131 -0
  103. package/dist/types/api.d.ts +152 -0
  104. package/dist/types/api.js +6 -0
  105. package/dist/types/config.d.ts +34 -0
  106. package/dist/types/config.js +6 -0
  107. package/dist/types.d.ts +144 -87
  108. package/dist/types.js +13 -2
  109. package/dist/utils/errors.d.ts +96 -0
  110. package/dist/utils/errors.js +132 -0
  111. package/dist/utils/http.d.ts +35 -0
  112. package/dist/utils/http.js +105 -0
  113. package/dist/utils.d.ts +14 -5
  114. package/dist/utils.js +26 -7
  115. package/dist/websocket/NordWebSocketClient.d.ts +71 -0
  116. package/dist/websocket/NordWebSocketClient.js +343 -0
  117. package/dist/websocket/client.d.ts +93 -0
  118. package/dist/websocket/client.js +222 -0
  119. package/dist/websocket/events.d.ts +19 -0
  120. package/dist/websocket/events.js +2 -0
  121. package/dist/websocket/index.d.ts +2 -0
  122. package/dist/websocket/index.js +5 -0
  123. package/dist/websocket.d.ts +55 -0
  124. package/dist/websocket.js +211 -0
  125. package/docs/assets/navigation.js +1 -1
  126. package/docs/assets/search.js +1 -1
  127. package/docs/classes/Nord.html +2 -15
  128. package/docs/classes/NordUser.html +4 -4
  129. package/docs/enums/FillMode.html +2 -2
  130. package/docs/enums/KeyType.html +2 -2
  131. package/docs/enums/PeakTpsPeriodUnit.html +2 -2
  132. package/docs/enums/Side.html +2 -2
  133. package/docs/functions/assert.html +1 -1
  134. package/docs/functions/bigIntToProtoU128.html +1 -1
  135. package/docs/functions/checkPubKeyLength.html +1 -1
  136. package/docs/functions/checkedFetch.html +1 -1
  137. package/docs/functions/decodeLengthDelimited.html +1 -1
  138. package/docs/functions/encodeLengthDelimited.html +1 -1
  139. package/docs/functions/fillModeToProtoFillMode.html +1 -1
  140. package/docs/functions/findMarket.html +1 -1
  141. package/docs/functions/findToken.html +1 -1
  142. package/docs/functions/makeWalletSignFn.html +1 -1
  143. package/docs/functions/optExpect.html +1 -1
  144. package/docs/functions/optMap.html +1 -1
  145. package/docs/functions/optUnwrap.html +1 -1
  146. package/docs/functions/panic.html +1 -1
  147. package/docs/functions/signAction.html +1 -1
  148. package/docs/functions/toScaledU128.html +1 -1
  149. package/docs/functions/toScaledU64.html +1 -1
  150. package/docs/interfaces/Account.html +2 -2
  151. package/docs/interfaces/ActionInfo.html +2 -2
  152. package/docs/interfaces/ActionQuery.html +2 -2
  153. package/docs/interfaces/ActionResponse.html +2 -2
  154. package/docs/interfaces/ActionsExtendedInfo.html +2 -2
  155. package/docs/interfaces/ActionsQuery.html +2 -2
  156. package/docs/interfaces/ActionsResponse.html +2 -2
  157. package/docs/interfaces/AggregateMetrics.html +2 -2
  158. package/docs/interfaces/BlockQuery.html +2 -2
  159. package/docs/interfaces/BlockResponse.html +2 -2
  160. package/docs/interfaces/BlockSummary.html +2 -2
  161. package/docs/interfaces/BlockSummaryResponse.html +2 -2
  162. package/docs/interfaces/DeltaEvent.html +2 -2
  163. package/docs/interfaces/ERC20TokenInfo.html +2 -2
  164. package/docs/interfaces/Info.html +2 -2
  165. package/docs/interfaces/Market.html +2 -2
  166. package/docs/interfaces/MarketStats.html +2 -2
  167. package/docs/interfaces/MarketsStatsResponse.html +2 -2
  168. package/docs/interfaces/NordConfig.html +2 -2
  169. package/docs/interfaces/Order.html +2 -2
  170. package/docs/interfaces/OrderInfo.html +2 -2
  171. package/docs/interfaces/PerpMarketStats.html +2 -2
  172. package/docs/interfaces/RollmanActionExtendedInfo.html +2 -2
  173. package/docs/interfaces/RollmanActionInfo.html +2 -2
  174. package/docs/interfaces/RollmanActionResponse.html +2 -2
  175. package/docs/interfaces/RollmanActionsResponse.html +2 -2
  176. package/docs/interfaces/RollmanBlockResponse.html +2 -2
  177. package/docs/interfaces/SubscriberConfig.html +2 -2
  178. package/docs/interfaces/Token.html +2 -2
  179. package/docs/interfaces/Trade.html +2 -2
  180. package/docs/interfaces/Trades.html +2 -2
  181. package/docs/modules.html +0 -7
  182. package/docs/types/BigIntValue.html +1 -1
  183. package/docs/variables/DEBUG_KEYS.html +1 -1
  184. package/docs/variables/DEFAULT_FUNDING_AMOUNTS.html +1 -1
  185. package/docs/variables/DEV_CONTRACT_ADDRESS.html +1 -1
  186. package/docs/variables/DEV_TOKEN_INFOS.html +1 -1
  187. package/docs/variables/DEV_URL.html +1 -1
  188. package/docs/variables/ERC20_ABI.html +1 -1
  189. package/docs/variables/EVM_DEV_URL.html +1 -1
  190. package/docs/variables/FAUCET_PRIVATE_ADDRESS.html +1 -1
  191. package/docs/variables/MAX_BUFFER_LEN.html +1 -1
  192. package/docs/variables/NORD_GETTERS_FACET_ABI.html +1 -1
  193. package/docs/variables/NORD_RAMP_FACET_ABI.html +1 -1
  194. package/docs/variables/SESSION_TTL.html +1 -1
  195. package/docs/variables/WEBSERVER_DEV_URL.html +1 -1
  196. package/docs/variables/ZERO_DECIMAL.html +1 -1
  197. package/package.json +10 -12
  198. package/src/bridge/client.ts +487 -0
  199. package/src/bridge/const.ts +53 -0
  200. package/src/bridge/index.ts +7 -0
  201. package/src/bridge/types.ts +127 -0
  202. package/src/bridge/utils.ts +140 -0
  203. package/src/const.ts +20 -25
  204. package/src/gen/common.ts +27 -10
  205. package/src/gen/nord.ts +1044 -483
  206. package/src/idl/bridge.ts +702 -0
  207. package/src/index.ts +24 -5
  208. package/src/nord/{actions.ts → api/actions.ts} +33 -37
  209. package/src/nord/api/core.ts +130 -0
  210. package/src/nord/api/market.ts +125 -0
  211. package/src/nord/api/metrics.ts +154 -0
  212. package/src/nord/api/queries.ts +236 -0
  213. package/src/nord/client/Nord.ts +652 -0
  214. package/src/nord/client/NordUser.ts +1105 -0
  215. package/src/nord/index.ts +16 -2
  216. package/src/nord/models/Subscriber.ts +57 -0
  217. package/src/nord/utils/NordError.ts +72 -0
  218. package/src/types.ts +170 -99
  219. package/src/utils.ts +40 -19
  220. package/src/websocket/NordWebSocketClient.ts +432 -0
  221. package/src/websocket/events.ts +31 -0
  222. package/src/websocket/index.ts +2 -0
  223. package/tests/utils.spec.ts +24 -24
  224. package/docs/classes/Subscriber.html +0 -6
  225. package/docs/functions/createWebSocketSubscription.html +0 -12
  226. package/docs/interfaces/OrderbookOrder.html +0 -6
  227. package/docs/interfaces/OrderbookResponse.html +0 -10
  228. package/docs/interfaces/TradeInfo.html +0 -20
  229. package/docs/interfaces/TradesQueryParams.html +0 -10
  230. package/docs/interfaces/TradesResponse.html +0 -12
  231. package/src/abis/ERC20_ABI.ts +0 -310
  232. package/src/abis/NORD_GETTERS_FACET_ABI.ts +0 -192
  233. package/src/abis/NORD_RAMP_FACET_ABI.ts +0 -141
  234. package/src/abis/index.ts +0 -3
  235. package/src/nord/Nord.ts +0 -504
  236. package/src/nord/NordImpl.ts +0 -8
  237. package/src/nord/NordUser.ts +0 -469
@@ -0,0 +1,320 @@
1
+ import { Connection, PublicKey } from '@solana/web3.js';
2
+ import Decimal from 'decimal.js';
3
+ import { SolanaBridgeClient } from '../../bridge/client';
4
+ import { SPLTokenInfo } from '../../bridge/types';
5
+ import { FillMode, Order, Side } from '../../types';
6
+ import { BigIntValue } from '../../utils';
7
+ import { Nord } from './Nord';
8
+ /**
9
+ * Parameters for creating a NordUser instance
10
+ */
11
+ export interface NordUserParams {
12
+ /** Nord client instance */
13
+ nord: Nord;
14
+ /** User's blockchain address */
15
+ address: string;
16
+ /** Function to sign messages with the user's wallet */
17
+ walletSignFn: (message: Uint8Array | string) => Promise<Uint8Array>;
18
+ /** Function to sign messages with the user's session key */
19
+ sessionSignFn: (message: Uint8Array) => Promise<Uint8Array>;
20
+ /** Function to sign transactions with the user's wallet (optional) */
21
+ transactionSignFn: (transaction: any) => Promise<any>;
22
+ /** Solana connection (optional) */
23
+ connection?: Connection;
24
+ /** Session ID (optional) */
25
+ sessionId?: bigint;
26
+ /** Session public key (required) */
27
+ sessionPubKey: Uint8Array;
28
+ /** Session public key (required) */
29
+ publicKey: PublicKey;
30
+ }
31
+ /**
32
+ * Parameters for placing an order
33
+ */
34
+ export interface PlaceOrderParams {
35
+ /** Market ID */
36
+ marketId: number;
37
+ /** Order side (bid or ask) */
38
+ side: Side;
39
+ /** Fill mode (limit, market, etc.) */
40
+ fillMode: FillMode;
41
+ /** Whether the order is reduce-only */
42
+ isReduceOnly: boolean;
43
+ /** Order size */
44
+ size?: Decimal.Value;
45
+ /** Order price */
46
+ price?: Decimal.Value;
47
+ /** Quote size (for market orders) */
48
+ quoteSize?: Decimal.Value;
49
+ /** Account ID to place the order from */
50
+ accountId?: number;
51
+ }
52
+ /**
53
+ * Parameters for transferring tokens between accounts
54
+ */
55
+ export interface TransferParams {
56
+ /** Recipient user */
57
+ to: NordUser;
58
+ /** Token ID to transfer */
59
+ tokenId: number;
60
+ /** Amount to transfer */
61
+ amount: Decimal.Value;
62
+ /** Source account ID */
63
+ fromAccountId: number;
64
+ /** Destination account ID */
65
+ toAccountId: number;
66
+ }
67
+ /**
68
+ * Parameters for creating a new account
69
+ */
70
+ export interface CreateAccountParams {
71
+ /** Token ID for initial funding */
72
+ tokenId: number;
73
+ /** Initial funding amount */
74
+ amount: Decimal.Value;
75
+ }
76
+ /**
77
+ * User class for interacting with the Nord protocol
78
+ */
79
+ export declare class NordUser {
80
+ /** Nord client instance */
81
+ readonly nord: Nord;
82
+ /** User's blockchain address */
83
+ readonly address: string;
84
+ /** Function to sign messages with the user's wallet */
85
+ readonly walletSignFn: (message: Uint8Array | string) => Promise<Uint8Array>;
86
+ /** Function to sign messages with the user's session key */
87
+ readonly sessionSignFn: (message: Uint8Array) => Promise<Uint8Array>;
88
+ /** Function to sign transactions with the user's wallet */
89
+ readonly transactionSignFn: (transaction: any) => Promise<any>;
90
+ /** User balances by token symbol */
91
+ balances: {
92
+ [key: string]: {
93
+ accountId: number;
94
+ balance: number;
95
+ symbol: string;
96
+ }[];
97
+ };
98
+ /** User orders by market symbol */
99
+ orders: {
100
+ [key: string]: Order[];
101
+ };
102
+ /** User positions by account ID */
103
+ positions: {
104
+ [key: string]: {
105
+ marketId: number;
106
+ openOrders: number;
107
+ perp?: {
108
+ baseSize: number;
109
+ price: number;
110
+ updatedFundingRateIndex: number;
111
+ fundingPaymentPnl: number;
112
+ sizePricePnl: number;
113
+ isLong: boolean;
114
+ };
115
+ actionId: number;
116
+ }[];
117
+ };
118
+ /** User margins by account ID */
119
+ margins: {
120
+ [key: string]: {
121
+ omf: number;
122
+ mf: number;
123
+ imf: number;
124
+ cmf: number;
125
+ mmf: number;
126
+ pon: number;
127
+ pn: number;
128
+ bankruptcy: boolean;
129
+ };
130
+ };
131
+ /** User's account IDs */
132
+ accountIds?: number[];
133
+ /** Current session ID */
134
+ sessionId?: bigint;
135
+ /** User's public key */
136
+ publicKey: PublicKey;
137
+ /** Session public key */
138
+ sessionPubKey: Uint8Array;
139
+ /** Last timestamp used */
140
+ lastTs: number;
141
+ /** Last nonce used */
142
+ lastNonce: number;
143
+ /** Solana bridge client */
144
+ bridgeClient?: SolanaBridgeClient;
145
+ /** Solana connection */
146
+ connection: Connection;
147
+ /** SPL token information */
148
+ splTokenInfos: SPLTokenInfo[];
149
+ /**
150
+ * Create a new NordUser instance
151
+ *
152
+ * @param params - Parameters for creating a NordUser
153
+ * @throws {NordError} If required parameters are missing
154
+ */
155
+ constructor(params: NordUserParams);
156
+ /**
157
+ * Create a clone of this NordUser instance
158
+ *
159
+ * @returns A new NordUser instance with the same properties
160
+ */
161
+ clone(): NordUser;
162
+ /**
163
+ * Initialize the Solana bridge client
164
+ *
165
+ * @private
166
+ * @throws {NordError} If required parameters are missing
167
+ */
168
+ private initBridgeClient;
169
+ /**
170
+ * Create a NordUser from a private key
171
+ *
172
+ * @param nord - Nord instance
173
+ * @param privateKey - Private key as string or Uint8Array
174
+ * @param connection - Solana connection (optional)
175
+ * @returns NordUser instance
176
+ * @throws {NordError} If the private key is invalid
177
+ */
178
+ static fromPrivateKey(nord: Nord, privateKey: string | Uint8Array, connection?: Connection): NordUser;
179
+ /**
180
+ * Get the associated token account for a token mint
181
+ *
182
+ * @param mint - Token mint address
183
+ * @returns Associated token account address
184
+ * @throws {NordError} If required parameters are missing or operation fails
185
+ */
186
+ getAssociatedTokenAccount(mint: PublicKey): Promise<PublicKey>;
187
+ /**
188
+ * Deposit SPL tokens to the bridge
189
+ *
190
+ * @param amount - Amount to deposit
191
+ * @param tokenId - Token ID
192
+ * @returns Transaction signature
193
+ * @throws {NordError} If required parameters are missing or operation fails
194
+ */
195
+ depositSpl(amount: number, tokenId: number): Promise<string>;
196
+ /**
197
+ * Withdraw SPL tokens from the bridge
198
+ *
199
+ * @param claim - Claim data
200
+ * @returns Transaction signature
201
+ * @throws {NordError} If required parameters are missing or operation fails
202
+ */
203
+ withdrawSpl(claim: any): Promise<string>;
204
+ /**
205
+ * Get a new nonce for actions
206
+ *
207
+ * @returns Nonce as number
208
+ */
209
+ getNonce(): number;
210
+ /**
211
+ * Update account IDs for this user
212
+ *
213
+ * @throws {NordError} If the operation fails
214
+ */
215
+ updateAccountId(): Promise<void>;
216
+ /**
217
+ * Fetch user information including balances and orders
218
+ *
219
+ * @throws {NordError} If the operation fails
220
+ */
221
+ fetchInfo(): Promise<void>;
222
+ /**
223
+ * Refresh the user's session
224
+ *
225
+ * @throws {NordError} If the operation fails
226
+ */
227
+ refreshSession(): Promise<void>;
228
+ /**
229
+ * Revoke a session
230
+ *
231
+ * @param sessionId - Session ID to revoke
232
+ * @throws {NordError} If the operation fails
233
+ */
234
+ revokeSession(sessionId: BigIntValue): Promise<void>;
235
+ /**
236
+ * Checks if the session is valid
237
+ * @private
238
+ * @throws {NordError} If the session is not valid
239
+ */
240
+ private checkSessionValidity;
241
+ /**
242
+ * Withdraw tokens from the exchange
243
+ *
244
+ * @param tokenId - Token ID to withdraw
245
+ * @param amount - Amount to withdraw
246
+ * @throws {NordError} If the operation fails
247
+ */
248
+ withdraw(tokenId: number, amount: number): Promise<void>;
249
+ /**
250
+ * Place an order on the exchange
251
+ *
252
+ * @param params - Order parameters
253
+ * @returns Order ID if successful
254
+ * @throws {NordError} If the operation fails
255
+ */
256
+ placeOrder(params: PlaceOrderParams): Promise<bigint | undefined>;
257
+ /**
258
+ * Cancel an order
259
+ *
260
+ * @param orderId - Order ID to cancel
261
+ * @param accountId - Account ID that placed the order
262
+ * @returns Action ID if successful
263
+ * @throws {NordError} If the operation fails
264
+ */
265
+ cancelOrder(orderId: BigIntValue, providedAccountId?: number): Promise<bigint>;
266
+ /**
267
+ * Transfer tokens to another account
268
+ *
269
+ * @param params - Transfer parameters
270
+ * @throws {NordError} If the operation fails
271
+ */
272
+ transferToAccount(params: TransferParams): Promise<void>;
273
+ /**
274
+ * Create a new account
275
+ *
276
+ * @param params - Account creation parameters
277
+ * @returns New NordUser instance
278
+ * @throws {NordError} If the operation fails
279
+ */
280
+ createAccount(params: CreateAccountParams): Promise<NordUser>;
281
+ /**
282
+ * Helper function to retry a promise with exponential backoff
283
+ *
284
+ * @param fn - Function to retry
285
+ * @param maxRetries - Maximum number of retries
286
+ * @param initialDelay - Initial delay in milliseconds
287
+ * @returns Promise result
288
+ */
289
+ private retryWithBackoff;
290
+ /**
291
+ * Get user's token balances on Solana chain using mintAddr
292
+ *
293
+ * @param options - Optional parameters
294
+ * @param options.includeZeroBalances - Whether to include tokens with zero balance (default: true)
295
+ * @param options.includeTokenAccounts - Whether to include token account addresses in the result (default: false)
296
+ * @param options.maxConcurrent - Maximum number of concurrent requests (default: 5)
297
+ * @param options.maxRetries - Maximum number of retries for rate-limited requests (default: 3)
298
+ * @returns Object with token balances and optional token account addresses
299
+ * @throws {NordError} If required parameters are missing or operation fails
300
+ */
301
+ getSolanaBalances(options?: {
302
+ includeZeroBalances?: boolean;
303
+ includeTokenAccounts?: boolean;
304
+ maxConcurrent?: number;
305
+ maxRetries?: number;
306
+ }): Promise<{
307
+ balances: {
308
+ [symbol: string]: number;
309
+ };
310
+ tokenAccounts?: {
311
+ [symbol: string]: string;
312
+ };
313
+ }>;
314
+ /**
315
+ * Get the Solana public key derived from the address
316
+ *
317
+ * @returns The Solana public key
318
+ */
319
+ getSolanaPublicKey(): PublicKey;
320
+ }