@n1xyz/nord-ts 0.0.16 → 0.0.18-8121ed05.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 (192) hide show
  1. package/dist/bridge/client.js +45 -6
  2. package/dist/gen/nord.d.ts +48 -4
  3. package/dist/gen/nord.js +634 -34
  4. package/dist/idl/bridge.d.ts +569 -0
  5. package/dist/idl/bridge.js +8 -0
  6. package/dist/idl/bridge.json +75 -62
  7. package/dist/idl/index.d.ts +71 -49
  8. package/dist/index.d.ts +1 -3
  9. package/dist/index.js +6 -13
  10. package/dist/nord/api/actions.d.ts +7 -2
  11. package/dist/nord/api/actions.js +7 -1
  12. package/dist/nord/api/core.d.ts +1 -1
  13. package/dist/nord/api/core.js +3 -3
  14. package/dist/nord/api/market.js +1 -3
  15. package/dist/nord/api/queries.js +2 -2
  16. package/dist/nord/client/Nord.d.ts +9 -14
  17. package/dist/nord/client/Nord.js +27 -38
  18. package/dist/nord/client/NordUser.d.ts +7 -23
  19. package/dist/nord/client/NordUser.js +67 -143
  20. package/dist/nord/utils/NordError.js +5 -2
  21. package/dist/types.d.ts +34 -50
  22. package/dist/utils.d.ts +2 -9
  23. package/dist/utils.js +13 -18
  24. package/package.json +17 -18
  25. package/protoc-generate.sh +0 -0
  26. package/src/idl/bridge.json +75 -62
  27. package/src/index.ts +9 -12
  28. package/src/nord/api/actions.ts +14 -3
  29. package/src/nord/api/core.ts +4 -2
  30. package/src/nord/api/market.ts +1 -4
  31. package/src/nord/api/queries.ts +2 -2
  32. package/src/nord/client/Nord.ts +45 -50
  33. package/src/nord/client/NordUser.ts +90 -171
  34. package/src/nord/utils/NordError.ts +6 -2
  35. package/src/types.ts +34 -49
  36. package/src/utils.ts +16 -19
  37. package/codebase.md +0 -18886
  38. package/docs/.nojekyll +0 -1
  39. package/docs/assets/hierarchy.js +0 -1
  40. package/docs/assets/highlight.css +0 -92
  41. package/docs/assets/icons.js +0 -18
  42. package/docs/assets/icons.svg +0 -1
  43. package/docs/assets/main.js +0 -60
  44. package/docs/assets/navigation.js +0 -1
  45. package/docs/assets/search.js +0 -1
  46. package/docs/assets/style.css +0 -1611
  47. package/docs/classes/Nord.html +0 -189
  48. package/docs/classes/NordError.html +0 -24
  49. package/docs/classes/NordUser.html +0 -115
  50. package/docs/classes/NordWebSocketClient.html +0 -330
  51. package/docs/classes/SolanaBridgeClient.html +0 -91
  52. package/docs/classes/Subscriber.html +0 -10
  53. package/docs/enums/FillMode.html +0 -5
  54. package/docs/enums/KeyType.html +0 -4
  55. package/docs/enums/MetricPeriod.html +0 -9
  56. package/docs/enums/PdaSeedType.html +0 -11
  57. package/docs/enums/PeakTpsPeriodUnit.html +0 -15
  58. package/docs/enums/Side.html +0 -3
  59. package/docs/enums/WebSocketMessageType.html +0 -7
  60. package/docs/functions/actionQueryRollman.html +0 -6
  61. package/docs/functions/actionsQueryRollman.html +0 -6
  62. package/docs/functions/aggregateMetrics-1.html +0 -7
  63. package/docs/functions/assert.html +0 -1
  64. package/docs/functions/bigIntToProtoU128.html +0 -4
  65. package/docs/functions/bridgeToBN.html +0 -5
  66. package/docs/functions/bufferToHex.html +0 -4
  67. package/docs/functions/cancelOrder.html +0 -1
  68. package/docs/functions/checkPubKeyLength.html +0 -1
  69. package/docs/functions/checkedFetch.html +0 -6
  70. package/docs/functions/createSession.html +0 -1
  71. package/docs/functions/decodeLengthDelimited.html +0 -11
  72. package/docs/functions/encodeLengthDelimited.html +0 -6
  73. package/docs/functions/fillModeToProtoFillMode.html +0 -5
  74. package/docs/functions/findMarket.html +0 -1
  75. package/docs/functions/findPda.html +0 -6
  76. package/docs/functions/findToken.html +0 -1
  77. package/docs/functions/fromBN.html +0 -5
  78. package/docs/functions/getAccount.html +0 -6
  79. package/docs/functions/getActionNonce.html +0 -5
  80. package/docs/functions/getCurrentTps.html +0 -6
  81. package/docs/functions/getInfo.html +0 -5
  82. package/docs/functions/getLastActionId.html +0 -5
  83. package/docs/functions/getMedianLatency.html +0 -6
  84. package/docs/functions/getOrderbook.html +0 -6
  85. package/docs/functions/getPeakTps.html +0 -6
  86. package/docs/functions/getTimestamp.html +0 -5
  87. package/docs/functions/getTotalTransactions.html +0 -5
  88. package/docs/functions/getTrades.html +0 -6
  89. package/docs/functions/getUserAccountIds.html +0 -6
  90. package/docs/functions/hexToBuffer.html +0 -4
  91. package/docs/functions/initWebSocketClient.html +0 -12
  92. package/docs/functions/keypairFromPrivateKey.html +0 -4
  93. package/docs/functions/makeSigningFunction.html +0 -4
  94. package/docs/functions/makeWalletSignFn.html +0 -6
  95. package/docs/functions/marketsStats.html +0 -5
  96. package/docs/functions/optExpect.html +0 -5
  97. package/docs/functions/optMap.html +0 -5
  98. package/docs/functions/optUnwrap.html +0 -2
  99. package/docs/functions/panic.html +0 -1
  100. package/docs/functions/placeOrder.html +0 -1
  101. package/docs/functions/queryAction.html +0 -6
  102. package/docs/functions/queryPrometheus.html +0 -6
  103. package/docs/functions/queryRecentActions.html +0 -7
  104. package/docs/functions/revokeSession.html +0 -1
  105. package/docs/functions/shortenPublicKey.html +0 -5
  106. package/docs/functions/signAction.html +0 -6
  107. package/docs/functions/toBN.html +0 -5
  108. package/docs/functions/toScaledU128.html +0 -8
  109. package/docs/functions/toScaledU64.html +0 -8
  110. package/docs/functions/transfer.html +0 -1
  111. package/docs/functions/withdraw.html +0 -1
  112. package/docs/hierarchy.html +0 -1
  113. package/docs/index.html +0 -40
  114. package/docs/interfaces/Account.html +0 -8
  115. package/docs/interfaces/ActionInfo.html +0 -8
  116. package/docs/interfaces/ActionNonceResponse.html +0 -3
  117. package/docs/interfaces/ActionQuery.html +0 -4
  118. package/docs/interfaces/ActionResponse.html +0 -8
  119. package/docs/interfaces/ActionsExtendedInfo.html +0 -10
  120. package/docs/interfaces/ActionsQuery.html +0 -5
  121. package/docs/interfaces/ActionsResponse.html +0 -6
  122. package/docs/interfaces/AggregateMetrics.html +0 -12
  123. package/docs/interfaces/BlockFacts.html +0 -10
  124. package/docs/interfaces/BlockQuery.html +0 -6
  125. package/docs/interfaces/BlockResponse.html +0 -6
  126. package/docs/interfaces/BlockSummary.html +0 -8
  127. package/docs/interfaces/BlockSummaryResponse.html +0 -6
  128. package/docs/interfaces/DeltaEvent.html +0 -6
  129. package/docs/interfaces/DepositSplParams.html +0 -8
  130. package/docs/interfaces/Info.html +0 -3
  131. package/docs/interfaces/Market.html +0 -8
  132. package/docs/interfaces/MarketStats.html +0 -7
  133. package/docs/interfaces/MarketsStatsResponse.html +0 -2
  134. package/docs/interfaces/NordConfig.html +0 -24
  135. package/docs/interfaces/NordWebSocketClientEvents.html +0 -4
  136. package/docs/interfaces/NordWebSocketEvents.html +0 -8
  137. package/docs/interfaces/Order.html +0 -6
  138. package/docs/interfaces/OrderInfo.html +0 -6
  139. package/docs/interfaces/OrderbookEntry.html +0 -4
  140. package/docs/interfaces/OrderbookQuery.html +0 -6
  141. package/docs/interfaces/OrderbookResponse.html +0 -6
  142. package/docs/interfaces/OrderbookSubscription.html +0 -159
  143. package/docs/interfaces/PerpMarketStats.html +0 -5
  144. package/docs/interfaces/RollmanActionExtendedInfo.html +0 -4
  145. package/docs/interfaces/RollmanActionInfo.html +0 -4
  146. package/docs/interfaces/RollmanActionResponse.html +0 -4
  147. package/docs/interfaces/RollmanActionsResponse.html +0 -2
  148. package/docs/interfaces/RollmanBlockResponse.html +0 -3
  149. package/docs/interfaces/SPLTokenInfo.html +0 -10
  150. package/docs/interfaces/SolanaBridgeConfig.html +0 -12
  151. package/docs/interfaces/StateFacts.html +0 -10
  152. package/docs/interfaces/SubscriberConfig.html +0 -3
  153. package/docs/interfaces/TimestampResponse.html +0 -3
  154. package/docs/interfaces/Token.html +0 -5
  155. package/docs/interfaces/TokenInfo.html +0 -6
  156. package/docs/interfaces/Trade.html +0 -5
  157. package/docs/interfaces/TradeSubscription.html +0 -159
  158. package/docs/interfaces/Trades.html +0 -5
  159. package/docs/interfaces/TradesQuery.html +0 -6
  160. package/docs/interfaces/TradesResponse.html +0 -7
  161. package/docs/interfaces/TransferParams.html +0 -8
  162. package/docs/interfaces/UserAccountIdsQuery.html +0 -3
  163. package/docs/interfaces/UserAccountIdsResponse.html +0 -3
  164. package/docs/interfaces/WebSocketAccountUpdate.html +0 -6
  165. package/docs/interfaces/WebSocketDeltaUpdate.html +0 -9
  166. package/docs/interfaces/WebSocketSubscription.html +0 -4
  167. package/docs/interfaces/WebSocketTradeUpdate.html +0 -6
  168. package/docs/interfaces/WithdrawalClaim.html +0 -14
  169. package/docs/interfaces/WithdrawalParams.html +0 -8
  170. package/docs/modules.html +0 -1
  171. package/docs/types/BigIntValue.html +0 -2
  172. package/docs/types/SubscriptionPattern.html +0 -4
  173. package/docs/types/SubscriptionType.html +0 -2
  174. package/docs/types/WebSocketMessage.html +0 -1
  175. package/docs/variables/DEBUG_KEYS.html +0 -1
  176. package/docs/variables/DEFAULT_FUNDING_AMOUNTS.html +0 -1
  177. package/docs/variables/DEV_TOKEN_INFOS.html +0 -1
  178. package/docs/variables/DEV_URL.html +0 -1
  179. package/docs/variables/MAX_BUFFER_LEN.html +0 -1
  180. package/docs/variables/SESSION_TTL.html +0 -1
  181. package/docs/variables/WEBSERVER_DEV_URL.html +0 -1
  182. package/docs/variables/ZERO_DECIMAL.html +0 -1
  183. package/docs/variables/_private.html +0 -2
  184. package/idl-generate.sh +0 -4
  185. package/src/bridge/client.ts +0 -498
  186. package/src/bridge/const.ts +0 -53
  187. package/src/bridge/index.ts +0 -6
  188. package/src/bridge/types.ts +0 -129
  189. package/src/bridge/utils.ts +0 -140
  190. package/src/gen/common.ts +0 -297
  191. package/src/gen/nord.ts +0 -6716
  192. package/src/idl/index.ts +0 -2
package/src/types.ts CHANGED
@@ -39,22 +39,11 @@ export interface NordConfig {
39
39
  bridgeVk: string;
40
40
  /** Solana cluster URL */
41
41
  solanaUrl: string;
42
- /** Whether to initialize WebSockets on creation, defaults to true */
43
- initWebSockets?: boolean;
44
- /**
45
- * Initial subscriptions for the trades WebSocket
46
- * Supports both formats:
47
- * - Legacy format: ["BTCUSDC", "ETHUSDC"]
48
- * - New format: ["trades@BTCUSDC", "trades@ETHUSDC"]
49
- */
50
- tradesSubscriptions?: SubscriptionPattern[];
51
42
  /**
52
- * Initial subscriptions for the deltas WebSocket
53
- * Supports both formats:
54
- * - Legacy format: ["BTCUSDC", "ETHUSDC"]
55
- * - New format: ["deltas@BTCUSDC", "deltas@ETHUSDC"]
43
+ * Whether to initialize WebSockets on creation, defaults to true
44
+ * @deprecated this is a funky api we're gonna be removing it
56
45
  */
57
- deltasSubscriptions?: SubscriptionPattern[];
46
+ initWebSockets?: boolean;
58
47
  }
59
48
 
60
49
  /**
@@ -150,7 +139,7 @@ export interface OrderInfo {
150
139
  account_id: number;
151
140
  }
152
141
 
153
- interface HashMap<T> {
142
+ export interface HashMap<T> {
154
143
  [key: number]: T;
155
144
  }
156
145
 
@@ -166,9 +155,8 @@ export interface Account {
166
155
 
167
156
  /**
168
157
  * Query the transactions in the specified L2 block.
169
- * @field {number} block_number specifies the block number to query.
170
- * If not specified, transactions from latest block
171
- * are returned.
158
+ * block_number specifies the block number to query.
159
+ * If not specified, transactions from latest block are returned.
172
160
  */
173
161
  export interface BlockQuery {
174
162
  block_number?: number;
@@ -176,8 +164,8 @@ export interface BlockQuery {
176
164
 
177
165
  /**
178
166
  * Response for BlockQuery.
179
- * @field {number} block_number specifies the block number being returned.
180
- * @field {BlockActions} actions are the list of transactions from the block.
167
+ * block_number specifies the block number being returned.
168
+ * actions are the list of transactions from the block.
181
169
  */
182
170
  export interface BlockResponse {
183
171
  block_number: number;
@@ -186,9 +174,9 @@ export interface BlockResponse {
186
174
 
187
175
  /**
188
176
  * Response for BlockSummaryQuery.
189
- * @field {BlockSummary} block_summary is the summary of upto the last N blocks.
190
- * The server can return fewer than last_n block summary if
191
- * fewer blocks are available or if it exceeds a max cap.
177
+ * block_summary is the summary of upto the last N blocks.
178
+ * The server can return fewer than last_n block summary if
179
+ * fewer blocks are available or if it exceeds a max cap.
192
180
  */
193
181
  export interface BlockSummaryResponse {
194
182
  block_summary: BlockSummary[];
@@ -196,7 +184,7 @@ export interface BlockSummaryResponse {
196
184
 
197
185
  /**
198
186
  * Query the action for the specified action id.
199
- * @field {number} action_id specifies the action to query.
187
+ * action_id specifies the action to query.
200
188
  */
201
189
  export interface ActionQuery {
202
190
  action_id: number;
@@ -204,10 +192,9 @@ export interface ActionQuery {
204
192
 
205
193
  /**
206
194
  * Response for ActionQuery.
207
- * @field {number} block_number the block the action is part of.
208
- * If the action is not yet included in any block,
209
- * null is returned.
210
- * @field {Action} the transaction.
195
+ * block_number the block the action is part of.
196
+ * If the action is not yet included in any block, null is returned.
197
+ * action the transaction.
211
198
  */
212
199
  export interface ActionResponse {
213
200
  block_number?: number;
@@ -216,8 +203,7 @@ export interface ActionResponse {
216
203
 
217
204
  /**
218
205
  * Query the recent actions
219
- * @field {number} last_n requests last N actions.
220
- * @field {number} action_id specifies the action to query.
206
+ * last_n requests last N actions.
221
207
  */
222
208
  export interface ActionsQuery {
223
209
  last_n: number;
@@ -225,9 +211,9 @@ export interface ActionsQuery {
225
211
 
226
212
  /**
227
213
  * Response for ActionsQuery.
228
- * @field {ActionsExtendedInfo} actions returns upto the last N actions.
229
- * The server can return fewer than last_n actions if
230
- * fewer actions are available or if it exceeds a max cap.
214
+ * actions returns upto the last N actions.
215
+ * The server can return fewer than last_n actions if
216
+ * fewer actions are available or if it exceeds a max cap.
231
217
  */
232
218
  export interface ActionsResponse {
233
219
  actions: ActionsExtendedInfo[];
@@ -235,9 +221,9 @@ export interface ActionsResponse {
235
221
 
236
222
  /**
237
223
  * Block summary.
238
- * @field {number} block_number Block number.
239
- * @field {Action} from First action_id in the block.
240
- * @field {Action} to Last action_id in the block.
224
+ * block_number Block number.
225
+ * from_action_id First action_id in the block.
226
+ * to_action_id Last action_id in the block.
241
227
  */
242
228
  export interface BlockSummary {
243
229
  block_number: number;
@@ -247,9 +233,9 @@ export interface BlockSummary {
247
233
 
248
234
  /**
249
235
  * Info about the block transaction.
250
- * @field {number} action_id is the action identifier.
251
- * @field {Action} action in protobuf format.
252
- * @field {number} exec_timestamp is the execution timestamp.
236
+ * action_id is the action identifier.
237
+ * action in protobuf format.
238
+ * exec_timestamp is the execution timestamp.
253
239
  */
254
240
  export interface ActionInfo {
255
241
  action_id: number;
@@ -259,11 +245,10 @@ export interface ActionInfo {
259
245
 
260
246
  /**
261
247
  * Extended info about the block transaction.
262
- * @field {number} block_number the block the action is part of.
263
- * If the action is not yet included in any block,
264
- * null is returned.
265
- * @field {number} action_id of the action.
266
- * @field {Action} action the transaction.
248
+ * block_number the block the action is part of.
249
+ * If the action is not yet included in any block, null is returned.
250
+ * action_id of the action.
251
+ * action the transaction.
267
252
  */
268
253
  export interface ActionsExtendedInfo {
269
254
  block_number?: number;
@@ -273,11 +258,11 @@ export interface ActionsExtendedInfo {
273
258
 
274
259
  /**
275
260
  * Aggregate metrics
276
- * @field {number} blocks_total: Total number of L2 blocks.
277
- * @field {number} tx_total: Total number of transactions.
278
- * @field {number} tx_tps: Transaction throughput.
279
- * @field {number} tx_tps_peak: Peak transaction throughput.
280
- * @field {number} request_latency_average: Average request latency.
261
+ * blocks_total: Total number of L2 blocks.
262
+ * tx_total: Total number of transactions.
263
+ * tx_tps: Transaction throughput.
264
+ * tx_tps_peak: Peak transaction throughput.
265
+ * request_latency_average: Average request latency.
281
266
  */
282
267
  export interface AggregateMetrics {
283
268
  blocks_total: number;
package/src/utils.ts CHANGED
@@ -9,7 +9,8 @@ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
9
9
  import { ethers } from "ethers";
10
10
  import fetch from "node-fetch";
11
11
  import { RequestInfo, RequestInit, Response } from "node-fetch";
12
- import { BN } from "@coral-xyz/anchor";
12
+ import { Keypair } from "@solana/web3.js";
13
+ import bs58 from "bs58";
13
14
 
14
15
  export const SESSION_TTL: bigint = 60n * 60n * 24n * 30n;
15
16
  export const ZERO_DECIMAL = new Decimal(0);
@@ -300,22 +301,18 @@ export function findToken(tokens: Token[], tokenId: number): Token {
300
301
  return tokens[tokenId];
301
302
  }
302
303
 
303
- /**
304
- * Convert a number to a BN with the specified number of decimals
305
- *
306
- * @param amount Amount as a number
307
- * @param decimals Number of decimal places
308
- * @returns Amount as a BN
309
- */
310
- export function toBN(amount: number, decimals: number): BN {
311
- const amountString = amount.toFixed(decimals);
312
- const [whole, fraction] = amountString.split(".");
313
-
314
- // Convert to smallest units (no decimals)
315
- const wholeBN = new BN(whole).mul(new BN(10).pow(new BN(decimals)));
316
- const fractionBN = fraction
317
- ? new BN(fraction.padEnd(decimals, "0").slice(0, decimals))
318
- : new BN(0);
319
-
320
- return wholeBN.add(fractionBN);
304
+ export function keypairFromPrivateKey(
305
+ privateKey: string | Uint8Array,
306
+ ): Keypair {
307
+ if (typeof privateKey === "string") {
308
+ if (!privateKey.startsWith("0x")) {
309
+ return Keypair.fromSecretKey(bs58.decode(privateKey));
310
+ }
311
+ const hex = privateKey.startsWith("0x") ? privateKey.slice(2) : privateKey;
312
+ const bytes = new Uint8Array(
313
+ hex.match(/.{1,2}/g)!.map((byte) => parseInt(byte, 16)),
314
+ );
315
+ return Keypair.fromSecretKey(bytes);
316
+ }
317
+ return Keypair.fromSecretKey(privateKey);
321
318
  }