@n1xyz/nord-ts 0.0.4 → 0.0.5

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 (306) hide show
  1. package/dist/bridge/client.d.ts +4 -4
  2. package/dist/bridge/client.js +4 -4
  3. package/dist/bridge/const.d.ts +2 -2
  4. package/dist/bridge/const.js +22 -22
  5. package/dist/bridge/index.d.ts +4 -4
  6. package/dist/bridge/types.d.ts +3 -3
  7. package/dist/bridge/utils.d.ts +4 -4
  8. package/dist/bridge/utils.js +10 -10
  9. package/dist/const.d.ts +1 -1
  10. package/dist/const.js +17 -17
  11. package/dist/gen/nord.d.ts +1 -4
  12. package/dist/idl/bridge.d.ts +1 -1
  13. package/dist/idl/bridge.js +185 -185
  14. package/dist/index.d.ts +8 -8
  15. package/dist/nord/api/actions.d.ts +3 -3
  16. package/dist/nord/api/actions.js +21 -21
  17. package/dist/nord/api/core.d.ts +3 -3
  18. package/dist/nord/api/core.js +12 -12
  19. package/dist/nord/api/market.d.ts +1 -1
  20. package/dist/nord/api/market.js +12 -12
  21. package/dist/nord/api/metrics.d.ts +1 -1
  22. package/dist/nord/api/metrics.js +6 -6
  23. package/dist/nord/api/queries.d.ts +1 -1
  24. package/dist/nord/api/queries.js +9 -9
  25. package/dist/nord/client/Nord.d.ts +4 -4
  26. package/dist/nord/client/Nord.js +18 -18
  27. package/dist/nord/client/NordUser.d.ts +7 -7
  28. package/dist/nord/client/NordUser.js +45 -49
  29. package/dist/nord/index.d.ts +9 -9
  30. package/dist/nord/models/Subscriber.d.ts +6 -6
  31. package/dist/nord/models/Subscriber.js +1 -5
  32. package/dist/nord/utils/NordError.js +2 -2
  33. package/dist/types.d.ts +1 -1
  34. package/dist/types.js +1 -1
  35. package/dist/utils.d.ts +6 -6
  36. package/dist/utils.js +8 -8
  37. package/dist/websocket/NordWebSocketClient.d.ts +2 -2
  38. package/dist/websocket/NordWebSocketClient.js +38 -38
  39. package/dist/websocket/events.d.ts +1 -1
  40. package/dist/websocket/index.d.ts +2 -2
  41. package/docs/assets/hierarchy.js +1 -0
  42. package/docs/assets/highlight.css +16 -16
  43. package/docs/assets/icons.js +17 -14
  44. package/docs/assets/icons.svg +1 -1
  45. package/docs/assets/main.js +5 -4
  46. package/docs/assets/navigation.js +1 -1
  47. package/docs/assets/search.js +1 -1
  48. package/docs/assets/style.css +1423 -1227
  49. package/docs/classes/Nord.html +190 -31
  50. package/docs/classes/NordError.html +24 -0
  51. package/docs/classes/NordUser.html +120 -35
  52. package/docs/classes/NordWebSocketClient.html +335 -0
  53. package/docs/classes/SolanaBridgeClient.html +86 -0
  54. package/docs/classes/Subscriber.html +10 -0
  55. package/docs/enums/FillMode.html +5 -5
  56. package/docs/enums/KeyType.html +4 -4
  57. package/docs/enums/MetricPeriod.html +9 -0
  58. package/docs/enums/PdaSeedType.html +9 -0
  59. package/docs/enums/PeakTpsPeriodUnit.html +7 -7
  60. package/docs/enums/Side.html +3 -3
  61. package/docs/enums/WebSocketMessageType.html +7 -0
  62. package/docs/functions/actionQueryRollman.html +6 -0
  63. package/docs/functions/actionsQueryRollman.html +6 -0
  64. package/docs/functions/aggregateMetrics-1.html +7 -0
  65. package/docs/functions/assert.html +1 -1
  66. package/docs/functions/bigIntToProtoU128.html +3 -3
  67. package/docs/functions/blockQueryRollman.html +6 -0
  68. package/docs/functions/blockSummaryQueryRollman.html +6 -0
  69. package/docs/functions/bridgeToBN.html +5 -0
  70. package/docs/functions/bufferToHex.html +4 -0
  71. package/docs/functions/cancelOrder.html +1 -0
  72. package/docs/functions/checkPubKeyLength.html +1 -1
  73. package/docs/functions/checkedFetch.html +4 -4
  74. package/docs/functions/createSession.html +1 -0
  75. package/docs/functions/decodeLengthDelimited.html +7 -6
  76. package/docs/functions/encodeLengthDelimited.html +4 -4
  77. package/docs/functions/fillModeToProtoFillMode.html +4 -4
  78. package/docs/functions/findMarket.html +1 -1
  79. package/docs/functions/findPda.html +6 -0
  80. package/docs/functions/findToken.html +1 -1
  81. package/docs/functions/fromBN.html +5 -0
  82. package/docs/functions/getAccount.html +6 -0
  83. package/docs/functions/getActionNonce.html +5 -0
  84. package/docs/functions/getCurrentTps.html +6 -0
  85. package/docs/functions/getInfo.html +5 -0
  86. package/docs/functions/getMedianLatency.html +6 -0
  87. package/docs/functions/getOrderbook.html +6 -0
  88. package/docs/functions/getPeakTps.html +6 -0
  89. package/docs/functions/getTimestamp.html +5 -0
  90. package/docs/functions/getTotalTransactions.html +5 -0
  91. package/docs/functions/getTrades.html +6 -0
  92. package/docs/functions/getUserAccountIds.html +6 -0
  93. package/docs/functions/hexToBuffer.html +4 -0
  94. package/docs/functions/initWebSocketClient.html +12 -0
  95. package/docs/functions/keypairFromPrivateKey.html +4 -0
  96. package/docs/functions/makeSigningFunction.html +4 -0
  97. package/docs/functions/makeWalletSignFn.html +5 -5
  98. package/docs/functions/marketsStats.html +5 -0
  99. package/docs/functions/optExpect.html +4 -4
  100. package/docs/functions/optMap.html +5 -5
  101. package/docs/functions/optUnwrap.html +2 -2
  102. package/docs/functions/panic.html +1 -1
  103. package/docs/functions/placeOrder.html +1 -0
  104. package/docs/functions/queryAction.html +6 -0
  105. package/docs/functions/queryBlock.html +6 -0
  106. package/docs/functions/queryLastNBlocks.html +5 -0
  107. package/docs/functions/queryPrometheus.html +6 -0
  108. package/docs/functions/queryRecentActions.html +6 -0
  109. package/docs/functions/queryRecentBlocks.html +6 -0
  110. package/docs/functions/revokeSession.html +1 -0
  111. package/docs/functions/shortenPublicKey.html +5 -0
  112. package/docs/functions/signAction.html +2 -2
  113. package/docs/functions/toBN.html +5 -0
  114. package/docs/functions/toScaledU128.html +5 -5
  115. package/docs/functions/toScaledU64.html +5 -5
  116. package/docs/functions/transfer.html +1 -0
  117. package/docs/functions/withdraw.html +1 -0
  118. package/docs/hierarchy.html +1 -0
  119. package/docs/index.html +39 -20
  120. package/docs/interfaces/Account.html +8 -8
  121. package/docs/interfaces/ActionInfo.html +8 -8
  122. package/docs/interfaces/ActionNonceResponse.html +3 -0
  123. package/docs/interfaces/ActionQuery.html +4 -4
  124. package/docs/interfaces/ActionResponse.html +8 -8
  125. package/docs/interfaces/ActionsExtendedInfo.html +10 -10
  126. package/docs/interfaces/ActionsQuery.html +5 -5
  127. package/docs/interfaces/ActionsResponse.html +6 -6
  128. package/docs/interfaces/AggregateMetrics.html +12 -12
  129. package/docs/interfaces/BlockFacts.html +10 -0
  130. package/docs/interfaces/BlockQuery.html +6 -6
  131. package/docs/interfaces/BlockResponse.html +6 -6
  132. package/docs/interfaces/BlockSummary.html +8 -8
  133. package/docs/interfaces/BlockSummaryResponse.html +6 -6
  134. package/docs/interfaces/DeltaEvent.html +6 -6
  135. package/docs/interfaces/DepositSplParams.html +10 -0
  136. package/docs/interfaces/Info.html +3 -3
  137. package/docs/interfaces/Market.html +8 -6
  138. package/docs/interfaces/MarketStats.html +7 -7
  139. package/docs/interfaces/MarketsStatsResponse.html +2 -2
  140. package/docs/interfaces/NordConfig.html +14 -5
  141. package/docs/interfaces/NordWebSocketClientEvents.html +4 -0
  142. package/docs/interfaces/NordWebSocketEvents.html +8 -0
  143. package/docs/interfaces/Order.html +6 -6
  144. package/docs/interfaces/OrderInfo.html +6 -6
  145. package/docs/interfaces/OrderbookEntry.html +4 -0
  146. package/docs/interfaces/OrderbookQuery.html +6 -0
  147. package/docs/interfaces/OrderbookResponse.html +6 -0
  148. package/docs/interfaces/OrderbookSubscription.html +159 -0
  149. package/docs/interfaces/PerpMarketStats.html +5 -5
  150. package/docs/interfaces/RollmanActionExtendedInfo.html +4 -4
  151. package/docs/interfaces/RollmanActionInfo.html +4 -4
  152. package/docs/interfaces/RollmanActionResponse.html +4 -4
  153. package/docs/interfaces/RollmanActionsResponse.html +2 -2
  154. package/docs/interfaces/RollmanBlockResponse.html +3 -3
  155. package/docs/interfaces/SPLTokenInfo.html +10 -0
  156. package/docs/interfaces/SolanaBridgeConfig.html +10 -0
  157. package/docs/interfaces/StateFacts.html +10 -0
  158. package/docs/interfaces/SubscriberConfig.html +3 -3
  159. package/docs/interfaces/TimestampResponse.html +3 -0
  160. package/docs/interfaces/Token.html +5 -5
  161. package/docs/interfaces/TokenInfo.html +5 -0
  162. package/docs/interfaces/Trade.html +5 -5
  163. package/docs/interfaces/TradeSubscription.html +159 -0
  164. package/docs/interfaces/Trades.html +5 -5
  165. package/docs/interfaces/TradesQuery.html +6 -0
  166. package/docs/interfaces/TradesResponse.html +7 -0
  167. package/docs/interfaces/TransferParams.html +8 -0
  168. package/docs/interfaces/UserAccountIdsQuery.html +3 -0
  169. package/docs/interfaces/UserAccountIdsResponse.html +3 -0
  170. package/docs/interfaces/WebSocketDeltaUpdate.html +9 -0
  171. package/docs/interfaces/WebSocketSubscription.html +4 -0
  172. package/docs/interfaces/WebSocketTradeUpdate.html +6 -0
  173. package/docs/interfaces/WebSocketUserUpdate.html +6 -0
  174. package/docs/interfaces/WithdrawalClaim.html +14 -0
  175. package/docs/interfaces/WithdrawalParams.html +8 -0
  176. package/docs/modules.html +1 -70
  177. package/docs/types/BigIntValue.html +2 -2
  178. package/docs/types/WebSocketMessage.html +1 -0
  179. package/docs/variables/DEBUG_KEYS.html +1 -1
  180. package/docs/variables/DEFAULT_FUNDING_AMOUNTS.html +1 -1
  181. package/docs/variables/DEV_TOKEN_INFOS.html +1 -1
  182. package/docs/variables/DEV_URL.html +1 -1
  183. package/docs/variables/MAX_BUFFER_LEN.html +1 -1
  184. package/docs/variables/SESSION_TTL.html +1 -1
  185. package/docs/variables/WEBSERVER_DEV_URL.html +1 -1
  186. package/docs/variables/ZERO_DECIMAL.html +1 -1
  187. package/docs/variables/_private.html +2 -0
  188. package/eslint.config.mjs +66 -0
  189. package/package.json +12 -13
  190. package/src/bridge/client.ts +10 -10
  191. package/src/bridge/const.ts +24 -24
  192. package/src/bridge/index.ts +4 -4
  193. package/src/bridge/types.ts +10 -10
  194. package/src/bridge/utils.ts +14 -14
  195. package/src/const.ts +18 -18
  196. package/src/gen/nord.ts +1 -4
  197. package/src/idl/bridge.ts +186 -186
  198. package/src/index.ts +8 -8
  199. package/src/nord/api/actions.ts +25 -25
  200. package/src/nord/api/core.ts +16 -16
  201. package/src/nord/api/market.ts +15 -15
  202. package/src/nord/api/metrics.ts +16 -16
  203. package/src/nord/api/queries.ts +12 -12
  204. package/src/nord/client/Nord.ts +27 -27
  205. package/src/nord/client/NordUser.ts +59 -63
  206. package/src/nord/index.ts +9 -9
  207. package/src/nord/models/Subscriber.ts +11 -12
  208. package/src/nord/utils/NordError.ts +2 -2
  209. package/src/types.ts +12 -12
  210. package/src/utils.ts +20 -20
  211. package/src/websocket/NordWebSocketClient.ts +42 -42
  212. package/src/websocket/events.ts +1 -1
  213. package/src/websocket/index.ts +2 -2
  214. package/tests/utils.spec.ts +24 -24
  215. package/tsconfig.eslint.json +12 -0
  216. package/.eslintignore +0 -1
  217. package/.eslintrc.js +0 -31
  218. package/dist/abis/ERC20_ABI.d.ts +0 -39
  219. package/dist/abis/ERC20_ABI.js +0 -313
  220. package/dist/abis/NORD_GETTERS_FACET_ABI.d.ts +0 -34
  221. package/dist/abis/NORD_GETTERS_FACET_ABI.js +0 -195
  222. package/dist/abis/NORD_RAMP_FACET_ABI.d.ts +0 -35
  223. package/dist/abis/NORD_RAMP_FACET_ABI.js +0 -144
  224. package/dist/abis/index.d.ts +0 -3
  225. package/dist/abis/index.js +0 -9
  226. package/dist/bridge/NordUser.d.ts +0 -78
  227. package/dist/bridge/NordUser.js +0 -196
  228. package/dist/client.d.ts +0 -70
  229. package/dist/client.js +0 -129
  230. package/dist/constants/endpoints.d.ts +0 -65
  231. package/dist/constants/endpoints.js +0 -68
  232. package/dist/models/account.d.ts +0 -58
  233. package/dist/models/account.js +0 -6
  234. package/dist/models/index.d.ts +0 -8
  235. package/dist/models/index.js +0 -28
  236. package/dist/models/market.d.ts +0 -137
  237. package/dist/models/market.js +0 -6
  238. package/dist/models/order.d.ts +0 -211
  239. package/dist/models/order.js +0 -6
  240. package/dist/models/token.d.ts +0 -50
  241. package/dist/models/token.js +0 -6
  242. package/dist/nord/Nord.d.ts +0 -249
  243. package/dist/nord/Nord.js +0 -388
  244. package/dist/nord/NordError.d.ts +0 -23
  245. package/dist/nord/NordError.js +0 -48
  246. package/dist/nord/NordImpl.d.ts +0 -11
  247. package/dist/nord/NordImpl.js +0 -26
  248. package/dist/nord/NordUser.d.ts +0 -243
  249. package/dist/nord/NordUser.js +0 -481
  250. package/dist/nord/Subscriber.d.ts +0 -37
  251. package/dist/nord/Subscriber.js +0 -29
  252. package/dist/nord/actions.d.ts +0 -101
  253. package/dist/nord/actions.js +0 -254
  254. package/dist/nord/api/index.d.ts +0 -1
  255. package/dist/nord/api/index.js +0 -17
  256. package/dist/nord/api/orderFunctions.d.ts +0 -168
  257. package/dist/nord/api/orderFunctions.js +0 -133
  258. package/dist/nord/core.d.ts +0 -48
  259. package/dist/nord/core.js +0 -97
  260. package/dist/nord/market.d.ts +0 -36
  261. package/dist/nord/market.js +0 -90
  262. package/dist/nord/metrics.d.ts +0 -67
  263. package/dist/nord/metrics.js +0 -124
  264. package/dist/nord/queries.d.ts +0 -81
  265. package/dist/nord/queries.js +0 -181
  266. package/dist/nord/types.d.ts +0 -88
  267. package/dist/nord/types.js +0 -2
  268. package/dist/nord/websocket.d.ts +0 -49
  269. package/dist/nord/websocket.js +0 -107
  270. package/dist/operations/account.d.ts +0 -58
  271. package/dist/operations/account.js +0 -112
  272. package/dist/operations/market.d.ts +0 -65
  273. package/dist/operations/market.js +0 -131
  274. package/dist/operations/orders.d.ts +0 -57
  275. package/dist/operations/orders.js +0 -129
  276. package/dist/solana/NordUser.d.ts +0 -78
  277. package/dist/solana/NordUser.js +0 -196
  278. package/dist/solana/client.d.ts +0 -139
  279. package/dist/solana/client.js +0 -360
  280. package/dist/solana/const.d.ts +0 -23
  281. package/dist/solana/const.js +0 -47
  282. package/dist/solana/index.d.ts +0 -5
  283. package/dist/solana/index.js +0 -23
  284. package/dist/solana/types.d.ts +0 -118
  285. package/dist/solana/types.js +0 -16
  286. package/dist/solana/utils.d.ts +0 -64
  287. package/dist/solana/utils.js +0 -131
  288. package/dist/types/api.d.ts +0 -152
  289. package/dist/types/api.js +0 -6
  290. package/dist/types/config.d.ts +0 -34
  291. package/dist/types/config.js +0 -6
  292. package/dist/utils/errors.d.ts +0 -96
  293. package/dist/utils/errors.js +0 -132
  294. package/dist/utils/http.d.ts +0 -35
  295. package/dist/utils/http.js +0 -105
  296. package/dist/websocket/client.d.ts +0 -93
  297. package/dist/websocket/client.js +0 -222
  298. package/dist/websocket.d.ts +0 -55
  299. package/dist/websocket.js +0 -211
  300. package/docs/interfaces/ERC20TokenInfo.html +0 -5
  301. package/docs/variables/DEV_CONTRACT_ADDRESS.html +0 -1
  302. package/docs/variables/ERC20_ABI.html +0 -1
  303. package/docs/variables/EVM_DEV_URL.html +0 -1
  304. package/docs/variables/FAUCET_PRIVATE_ADDRESS.html +0 -1
  305. package/docs/variables/NORD_GETTERS_FACET_ABI.html +0 -1
  306. package/docs/variables/NORD_RAMP_FACET_ABI.html +0 -1
@@ -1,254 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports._private = void 0;
37
- exports.createSession = createSession;
38
- exports.revokeSession = revokeSession;
39
- exports.withdraw = withdraw;
40
- exports.placeOrder = placeOrder;
41
- exports.cancelOrder = cancelOrder;
42
- exports.transfer = transfer;
43
- const ethers_1 = require("ethers");
44
- const types_1 = require("../types");
45
- const utils_1 = require("../utils");
46
- const proto = __importStar(require("../gen/nord"));
47
- async function sessionSign(signFn, message) {
48
- const signature = await signFn(message);
49
- return new Uint8Array([...message, ...signature]);
50
- }
51
- async function walletSign(walletSignFn, message) {
52
- const signature = await walletSignFn(message);
53
- return new Uint8Array([
54
- ...message,
55
- ...ethers_1.ethers.getBytes(signature.slice(0, -2)),
56
- ]);
57
- }
58
- function makeSendHttp(serverUrl) {
59
- return async (body) => {
60
- const response = await (0, utils_1.checkedFetch)(`${serverUrl}/action`, {
61
- method: "POST",
62
- headers: {
63
- "Content-Type": "application/json",
64
- },
65
- body,
66
- });
67
- return new Uint8Array(await response.arrayBuffer());
68
- };
69
- }
70
- async function sendAction(sendFn, makeSignedMessage, action, actionErrorDesc) {
71
- const encoded = (0, utils_1.encodeLengthDelimited)(action, proto.Action);
72
- const body = await makeSignedMessage(encoded);
73
- const rawResp = await sendFn(body);
74
- const resp = (0, utils_1.decodeLengthDelimited)(rawResp, proto.Receipt);
75
- if (resp.kind?.$case === "err") {
76
- throw new Error(`Could not ${actionErrorDesc}, reason: ${proto.errorToJSON(resp.kind.value)}`);
77
- }
78
- return resp;
79
- }
80
- async function createSessionImpl(sendFn, walletSignFn, currentTimestamp, nonce, params) {
81
- (0, utils_1.checkPubKeyLength)(types_1.KeyType.Secp256k1, params.userPubkey.length);
82
- (0, utils_1.checkPubKeyLength)(types_1.KeyType.Ed25519, params.sessionPubkey.length);
83
- let expiry = 0n;
84
- if (params.expiryTimestamp !== undefined) {
85
- expiry = params.expiryTimestamp;
86
- (0, utils_1.assert)(expiry > currentTimestamp, "Cannot set expiry timestamp in the past");
87
- }
88
- else {
89
- expiry = currentTimestamp + utils_1.SESSION_TTL;
90
- }
91
- const action = {
92
- currentTimestamp,
93
- nonce,
94
- kind: {
95
- $case: "createSession",
96
- value: {
97
- userPubkey: params.userPubkey,
98
- blstPubkey: params.sessionPubkey,
99
- expiryTimestamp: expiry,
100
- },
101
- },
102
- };
103
- const resp = await sendAction(sendFn, (m) => walletSign(walletSignFn, m), action, "create a new session");
104
- if (resp.kind?.$case === "createSessionResult") {
105
- return resp.kind.value.sessionId;
106
- }
107
- else {
108
- throw new Error(`Unexpected receipt kind ${resp.kind?.$case}`);
109
- }
110
- }
111
- async function createSession(serverUrl, walletSignFn, currentTimestamp, nonce, params) {
112
- return createSessionImpl(makeSendHttp(serverUrl), walletSignFn, currentTimestamp, nonce, params);
113
- }
114
- async function revokeSessionImpl(sendFn, walletSignFn, currentTimestamp, nonce, params) {
115
- const action = {
116
- currentTimestamp,
117
- nonce,
118
- kind: {
119
- $case: "revokeSession",
120
- value: {
121
- sessionId: BigInt(params.sessionId),
122
- },
123
- },
124
- };
125
- await sendAction(sendFn, (m) => walletSign(walletSignFn, m), action, "create a new session");
126
- }
127
- async function revokeSession(serverUrl, walletSignFn, currentTimestamp, nonce, params) {
128
- return revokeSessionImpl(makeSendHttp(serverUrl), walletSignFn, currentTimestamp, nonce, params);
129
- }
130
- async function withdrawImpl(sendFn, signFn, currentTimestamp, nonce, params) {
131
- const amount = (0, utils_1.toScaledU64)(params.amount, params.sizeDecimals);
132
- if (amount <= 0) {
133
- throw new Error("Withdraw amount must be positive");
134
- }
135
- const action = {
136
- currentTimestamp,
137
- nonce,
138
- kind: {
139
- $case: "withdraw",
140
- value: {
141
- sessionId: BigInt(params.sessionId),
142
- tokenId: params.tokenId,
143
- amount,
144
- },
145
- },
146
- };
147
- await sendAction(sendFn, (m) => sessionSign(signFn, m), action, "withdraw");
148
- }
149
- async function withdraw(serverUrl, signFn, currentTimestamp, nonce, params) {
150
- return withdrawImpl(makeSendHttp(serverUrl), signFn, currentTimestamp, nonce, params);
151
- }
152
- async function placeOrderImpl(sendFn, signFn, currentTimestamp, nonce, params) {
153
- const price = (0, utils_1.toScaledU64)(params.price ?? 0, params.priceDecimals);
154
- const size = (0, utils_1.toScaledU64)(params.size ?? 0, params.sizeDecimals);
155
- const quoteSize = (0, utils_1.toScaledU128)(params.quoteSize ?? 0, params.priceDecimals + params.sizeDecimals);
156
- // Compose action object
157
- const action = {
158
- currentTimestamp,
159
- nonce,
160
- kind: {
161
- $case: "placeOrder",
162
- value: {
163
- sessionId: BigInt(params.sessionId),
164
- senderAccountId: params.senderId,
165
- marketId: params.marketId,
166
- side: params.side === types_1.Side.Bid ? proto.Side.BID : proto.Side.ASK,
167
- fillMode: (0, types_1.fillModeToProtoFillMode)(params.fillMode),
168
- isReduceOnly: params.isReduceOnly,
169
- price,
170
- size,
171
- quoteSize: (0, utils_1.bigIntToProtoU128)(quoteSize),
172
- clientOrderId: (0, utils_1.optMap)(params.clientOrderId, (x) => BigInt(x)),
173
- delegatorAccountId: params.liquidateeId,
174
- },
175
- },
176
- };
177
- const resp = await sendAction(sendFn, (m) => sessionSign(signFn, m), action, "place the order");
178
- if (resp.kind?.$case === "placeOrderResult") {
179
- return resp.kind.value.posted?.orderId;
180
- }
181
- else {
182
- throw new Error(`Unexpected receipt kind ${resp.kind?.$case}`);
183
- }
184
- }
185
- async function placeOrder(serverUrl, signFn, currentTimestamp, nonce, params) {
186
- return placeOrderImpl(makeSendHttp(serverUrl), signFn, currentTimestamp, nonce, params);
187
- }
188
- async function cancelOrderImpl(sendFn, signFn, currentTimestamp, nonce, params) {
189
- const action = {
190
- currentTimestamp,
191
- nonce: nonce,
192
- kind: {
193
- $case: "cancelOrderById",
194
- value: {
195
- orderId: BigInt(params.orderId),
196
- sessionId: BigInt(params.sessionId),
197
- senderAccountId: params.senderId,
198
- delegatorAccountId: params.liquidateeId,
199
- },
200
- },
201
- };
202
- const resp = await sendAction(sendFn, (m) => sessionSign(signFn, m), action, "cancel the order");
203
- if (resp.kind?.$case === "cancelOrderResult") {
204
- return resp.kind.value.orderId;
205
- }
206
- else {
207
- throw new Error(`Unexpected receipt kind ${resp.kind?.$case}`);
208
- }
209
- }
210
- async function cancelOrder(serverUrl, signFn, currentTimestamp, nonce, params) {
211
- return cancelOrderImpl(makeSendHttp(serverUrl), signFn, currentTimestamp, nonce, params);
212
- }
213
- async function transferImpl(sendFn, signFn, currentTimestamp, nonce, params) {
214
- const action = {
215
- currentTimestamp,
216
- nonce: nonce,
217
- kind: {
218
- $case: "transfer",
219
- value: {
220
- sessionId: BigInt(params.sessionId),
221
- fromAccountId: params.fromAccountId,
222
- toAccountId: params.toAccountId,
223
- tokenId: params.tokenId,
224
- amount: (0, utils_1.toScaledU64)(params.amount ?? 0, params.tokenDecimals),
225
- },
226
- },
227
- };
228
- const resp = await sendAction(sendFn, (m) => sessionSign(signFn, m), action, "transfer asset to other account");
229
- if (resp.kind?.$case === "transferred") {
230
- if (resp.kind.value.accountCreated) {
231
- return resp.kind.value.toAccountId;
232
- }
233
- else {
234
- return undefined;
235
- }
236
- }
237
- else {
238
- throw new Error(`Unexpected receipt kind ${resp.kind?.$case}`);
239
- }
240
- }
241
- async function transfer(serverUrl, signFn, currentTimestamp, nonce, params) {
242
- return transferImpl(makeSendHttp(serverUrl), signFn, currentTimestamp, nonce, params);
243
- }
244
- /**
245
- * For testing purposes
246
- */
247
- exports._private = {
248
- createSessionImpl,
249
- revokeSessionImpl,
250
- withdrawImpl,
251
- placeOrderImpl,
252
- cancelOrderImpl,
253
- transferImpl,
254
- };
@@ -1 +0,0 @@
1
- export * from "./orderFunctions";
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./orderFunctions"), exports);
@@ -1,168 +0,0 @@
1
- import { FillMode, Side } from "../../types";
2
- import { BigIntValue } from "../../utils";
3
- /**
4
- * Interface for placing a new order
5
- */
6
- export interface PlaceOrderParams {
7
- /**
8
- * Server URL for the Nord API
9
- */
10
- serverUrl: string;
11
- /**
12
- * Function to sign messages
13
- */
14
- signFn: (message: Uint8Array) => Promise<Uint8Array>;
15
- /**
16
- * Current timestamp as bigint
17
- */
18
- currentTimestamp: bigint;
19
- /**
20
- * Nonce for the transaction
21
- */
22
- nonce: number;
23
- /**
24
- * Session ID
25
- */
26
- sessionId: BigIntValue;
27
- /**
28
- * Sender account ID (optional)
29
- */
30
- senderId?: number;
31
- /**
32
- * Market ID
33
- */
34
- marketId: number;
35
- /**
36
- * Number of decimals for size
37
- */
38
- sizeDecimals: number;
39
- /**
40
- * Number of decimals for price
41
- */
42
- priceDecimals: number;
43
- /**
44
- * Order side (Bid = buy, Ask = sell)
45
- */
46
- side: Side;
47
- /**
48
- * Order size
49
- */
50
- size: number | string;
51
- /**
52
- * Order price
53
- */
54
- price: number | string;
55
- /**
56
- * Fill mode for the order
57
- */
58
- fillMode?: FillMode;
59
- /**
60
- * Whether the order is reduce-only
61
- */
62
- isReduceOnly?: boolean;
63
- /**
64
- * Quote size (optional)
65
- */
66
- quoteSize?: number | string;
67
- /**
68
- * Liquidatee ID (optional)
69
- */
70
- liquidateeId?: number;
71
- /**
72
- * Client order ID (optional)
73
- */
74
- clientOrderId?: BigIntValue;
75
- }
76
- /**
77
- * Interface for canceling an existing order
78
- */
79
- export interface CancelOrderParams {
80
- /**
81
- * Server URL for the Nord API
82
- */
83
- serverUrl: string;
84
- /**
85
- * Function to sign messages
86
- */
87
- signFn: (message: Uint8Array) => Promise<Uint8Array>;
88
- /**
89
- * Current timestamp as bigint
90
- */
91
- currentTimestamp: bigint;
92
- /**
93
- * Nonce for the transaction
94
- */
95
- nonce: number;
96
- /**
97
- * Session ID
98
- */
99
- sessionId: BigIntValue;
100
- /**
101
- * Sender account ID (optional)
102
- */
103
- senderId?: number;
104
- /**
105
- * Order ID to cancel
106
- */
107
- orderId: BigIntValue;
108
- /**
109
- * Liquidatee ID (optional)
110
- */
111
- liquidateeId?: number;
112
- }
113
- /**
114
- * Places a new order
115
- *
116
- * @param params - Parameters for placing an order
117
- * @returns The order ID if successful, undefined otherwise
118
- */
119
- export declare function placeNewOrder(params: PlaceOrderParams): Promise<bigint | undefined>;
120
- /**
121
- * Cancels an existing order
122
- *
123
- * @param params - Parameters for canceling an order
124
- * @returns The canceled order ID if successful
125
- */
126
- export declare function cancelExistingOrder(params: CancelOrderParams): Promise<bigint>;
127
- /**
128
- * Places a market buy order
129
- *
130
- * @param params - Parameters for placing an order (without price)
131
- * @returns The order ID if successful, undefined otherwise
132
- */
133
- export declare function placeMarketBuyOrder(params: Omit<PlaceOrderParams, 'side' | 'fillMode' | 'price'>): Promise<bigint | undefined>;
134
- /**
135
- * Places a market sell order
136
- *
137
- * @param params - Parameters for placing an order (without price)
138
- * @returns The order ID if successful, undefined otherwise
139
- */
140
- export declare function placeMarketSellOrder(params: Omit<PlaceOrderParams, 'side' | 'fillMode' | 'price'>): Promise<bigint | undefined>;
141
- /**
142
- * Places a limit buy order
143
- *
144
- * @param params - Parameters for placing an order
145
- * @returns The order ID if successful, undefined otherwise
146
- */
147
- export declare function placeLimitBuyOrder(params: Omit<PlaceOrderParams, 'side' | 'fillMode'>): Promise<bigint | undefined>;
148
- /**
149
- * Places a limit sell order
150
- *
151
- * @param params - Parameters for placing an order
152
- * @returns The order ID if successful, undefined otherwise
153
- */
154
- export declare function placeLimitSellOrder(params: Omit<PlaceOrderParams, 'side' | 'fillMode'>): Promise<bigint | undefined>;
155
- /**
156
- * Places a post-only buy order
157
- *
158
- * @param params - Parameters for placing an order
159
- * @returns The order ID if successful, undefined otherwise
160
- */
161
- export declare function placePostOnlyBuyOrder(params: Omit<PlaceOrderParams, 'side' | 'fillMode'>): Promise<bigint | undefined>;
162
- /**
163
- * Places a post-only sell order
164
- *
165
- * @param params - Parameters for placing an order
166
- * @returns The order ID if successful, undefined otherwise
167
- */
168
- export declare function placePostOnlySellOrder(params: Omit<PlaceOrderParams, 'side' | 'fillMode'>): Promise<bigint | undefined>;
@@ -1,133 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.placeNewOrder = placeNewOrder;
7
- exports.cancelExistingOrder = cancelExistingOrder;
8
- exports.placeMarketBuyOrder = placeMarketBuyOrder;
9
- exports.placeMarketSellOrder = placeMarketSellOrder;
10
- exports.placeLimitBuyOrder = placeLimitBuyOrder;
11
- exports.placeLimitSellOrder = placeLimitSellOrder;
12
- exports.placePostOnlyBuyOrder = placePostOnlyBuyOrder;
13
- exports.placePostOnlySellOrder = placePostOnlySellOrder;
14
- const decimal_js_1 = __importDefault(require("decimal.js"));
15
- const actions_1 = require("./actions");
16
- const types_1 = require("../../types");
17
- /**
18
- * Places a new order
19
- *
20
- * @param params - Parameters for placing an order
21
- * @returns The order ID if successful, undefined otherwise
22
- */
23
- async function placeNewOrder(params) {
24
- return (0, actions_1.placeOrder)(params.serverUrl, params.signFn, params.currentTimestamp, params.nonce, {
25
- sessionId: params.sessionId,
26
- senderId: params.senderId,
27
- sizeDecimals: params.sizeDecimals,
28
- priceDecimals: params.priceDecimals,
29
- marketId: params.marketId,
30
- side: params.side,
31
- fillMode: params.fillMode || types_1.FillMode.Limit,
32
- isReduceOnly: params.isReduceOnly || false,
33
- size: new decimal_js_1.default(params.size),
34
- price: new decimal_js_1.default(params.price),
35
- quoteSize: params.quoteSize ? new decimal_js_1.default(params.quoteSize) : undefined,
36
- liquidateeId: params.liquidateeId,
37
- clientOrderId: params.clientOrderId,
38
- });
39
- }
40
- /**
41
- * Cancels an existing order
42
- *
43
- * @param params - Parameters for canceling an order
44
- * @returns The canceled order ID if successful
45
- */
46
- async function cancelExistingOrder(params) {
47
- return (0, actions_1.cancelOrder)(params.serverUrl, params.signFn, params.currentTimestamp, params.nonce, {
48
- sessionId: params.sessionId,
49
- senderId: params.senderId,
50
- orderId: params.orderId,
51
- liquidateeId: params.liquidateeId,
52
- });
53
- }
54
- /**
55
- * Places a market buy order
56
- *
57
- * @param params - Parameters for placing an order (without price)
58
- * @returns The order ID if successful, undefined otherwise
59
- */
60
- async function placeMarketBuyOrder(params) {
61
- return placeNewOrder({
62
- ...params,
63
- side: types_1.Side.Bid,
64
- fillMode: types_1.FillMode.ImmediateOrCancel,
65
- price: '999999999', // Use a very high price to ensure it executes as a market order
66
- });
67
- }
68
- /**
69
- * Places a market sell order
70
- *
71
- * @param params - Parameters for placing an order (without price)
72
- * @returns The order ID if successful, undefined otherwise
73
- */
74
- async function placeMarketSellOrder(params) {
75
- return placeNewOrder({
76
- ...params,
77
- side: types_1.Side.Ask,
78
- fillMode: types_1.FillMode.ImmediateOrCancel,
79
- price: '0.000001', // Use a very low price to ensure it executes as a market order
80
- });
81
- }
82
- /**
83
- * Places a limit buy order
84
- *
85
- * @param params - Parameters for placing an order
86
- * @returns The order ID if successful, undefined otherwise
87
- */
88
- async function placeLimitBuyOrder(params) {
89
- return placeNewOrder({
90
- ...params,
91
- side: types_1.Side.Bid,
92
- fillMode: types_1.FillMode.Limit,
93
- });
94
- }
95
- /**
96
- * Places a limit sell order
97
- *
98
- * @param params - Parameters for placing an order
99
- * @returns The order ID if successful, undefined otherwise
100
- */
101
- async function placeLimitSellOrder(params) {
102
- return placeNewOrder({
103
- ...params,
104
- side: types_1.Side.Ask,
105
- fillMode: types_1.FillMode.Limit,
106
- });
107
- }
108
- /**
109
- * Places a post-only buy order
110
- *
111
- * @param params - Parameters for placing an order
112
- * @returns The order ID if successful, undefined otherwise
113
- */
114
- async function placePostOnlyBuyOrder(params) {
115
- return placeNewOrder({
116
- ...params,
117
- side: types_1.Side.Bid,
118
- fillMode: types_1.FillMode.PostOnly,
119
- });
120
- }
121
- /**
122
- * Places a post-only sell order
123
- *
124
- * @param params - Parameters for placing an order
125
- * @returns The order ID if successful, undefined otherwise
126
- */
127
- async function placePostOnlySellOrder(params) {
128
- return placeNewOrder({
129
- ...params,
130
- side: types_1.Side.Ask,
131
- fillMode: types_1.FillMode.PostOnly,
132
- });
133
- }
@@ -1,48 +0,0 @@
1
- import { Account, Info } from "../types";
2
- import { NordWebSocketClient } from "../websocket/index";
3
- /**
4
- * Get the current timestamp from the Nord server
5
- *
6
- * @param webServerUrl - Base URL for the Nord web server
7
- * @returns Current timestamp as a bigint
8
- * @throws {NordError} If the request fails
9
- */
10
- export declare function getTimestamp(webServerUrl: string): Promise<bigint>;
11
- /**
12
- * Get the next action nonce from the Nord server
13
- *
14
- * @param webServerUrl - Base URL for the Nord web server
15
- * @returns Next action nonce
16
- * @throws {NordError} If the request fails
17
- */
18
- export declare function getActionNonce(webServerUrl: string): Promise<number>;
19
- /**
20
- * Get information about the Nord server
21
- *
22
- * @param webServerUrl - Base URL for the Nord web server
23
- * @returns Information about markets and tokens
24
- * @throws {NordError} If the request fails
25
- */
26
- export declare function getInfo(webServerUrl: string): Promise<Info>;
27
- /**
28
- * Get account information
29
- *
30
- * @param webServerUrl - Base URL for the Nord web server
31
- * @param accountId - Account ID to get information for
32
- * @returns Account information
33
- * @throws {NordError} If the request fails
34
- */
35
- export declare function getAccount(webServerUrl: string, accountId: number): Promise<Account>;
36
- /**
37
- * Initialize a WebSocket client for Nord
38
- *
39
- * Connects to one of the specific Nord WebSocket endpoints:
40
- * - /ws/trades - For trade updates (default)
41
- * - /ws/deltas - For orderbook delta updates
42
- * - /ws/user - For user-specific updates
43
- *
44
- * @param webServerUrl - Base URL for the Nord web server
45
- * @param endpoint - Specific WebSocket endpoint to connect to (trades, deltas, or user)
46
- * @returns WebSocket client
47
- */
48
- export declare function initWebSocketClient(webServerUrl: string, endpoint?: 'trades' | 'deltas' | 'user'): NordWebSocketClient;