@mysten/deepbook-v3 1.1.5 → 1.2.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 (112) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/client.d.mts +58 -763
  3. package/dist/client.d.mts.map +1 -1
  4. package/dist/client.mjs +253 -2127
  5. package/dist/client.mjs.map +1 -1
  6. package/dist/contracts/utils/index.mjs +1 -1
  7. package/dist/index.d.mts +4 -4
  8. package/dist/index.mjs +4 -4
  9. package/dist/pyth/pyth.mjs +1 -1
  10. package/dist/queries/accountQueries.mjs +104 -0
  11. package/dist/queries/accountQueries.mjs.map +1 -0
  12. package/dist/queries/balanceManagerQueries.mjs +113 -0
  13. package/dist/queries/balanceManagerQueries.mjs.map +1 -0
  14. package/dist/queries/context.mjs +15 -0
  15. package/dist/queries/context.mjs.map +1 -0
  16. package/dist/queries/marginManagerQueries.mjs +365 -0
  17. package/dist/queries/marginManagerQueries.mjs.map +1 -0
  18. package/dist/queries/marginPoolQueries.mjs +184 -0
  19. package/dist/queries/marginPoolQueries.mjs.map +1 -0
  20. package/dist/queries/orderQueries.mjs +165 -0
  21. package/dist/queries/orderQueries.mjs.map +1 -0
  22. package/dist/queries/poolQueries.mjs +234 -0
  23. package/dist/queries/poolQueries.mjs.map +1 -0
  24. package/dist/queries/priceFeedQueries.mjs +83 -0
  25. package/dist/queries/priceFeedQueries.mjs.map +1 -0
  26. package/dist/queries/quantityQueries.mjs +216 -0
  27. package/dist/queries/quantityQueries.mjs.map +1 -0
  28. package/dist/queries/referralQueries.mjs +96 -0
  29. package/dist/queries/referralQueries.mjs.map +1 -0
  30. package/dist/queries/registryQueries.mjs +162 -0
  31. package/dist/queries/registryQueries.mjs.map +1 -0
  32. package/dist/queries/tpslQueries.mjs +62 -0
  33. package/dist/queries/tpslQueries.mjs.map +1 -0
  34. package/dist/transactions/balanceManager.d.mts.map +1 -1
  35. package/dist/transactions/balanceManager.mjs +5 -4
  36. package/dist/transactions/balanceManager.mjs.map +1 -1
  37. package/dist/transactions/deepbook.d.mts +24 -24
  38. package/dist/transactions/deepbook.d.mts.map +1 -1
  39. package/dist/transactions/deepbook.mjs +48 -47
  40. package/dist/transactions/deepbook.mjs.map +1 -1
  41. package/dist/transactions/deepbookAdmin.d.mts +2 -2
  42. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  43. package/dist/transactions/deepbookAdmin.mjs +10 -9
  44. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  45. package/dist/transactions/flashLoans.d.mts.map +1 -1
  46. package/dist/transactions/flashLoans.mjs +6 -4
  47. package/dist/transactions/flashLoans.mjs.map +1 -1
  48. package/dist/transactions/governance.d.mts.map +1 -1
  49. package/dist/transactions/governance.mjs +5 -4
  50. package/dist/transactions/governance.mjs.map +1 -1
  51. package/dist/transactions/marginAdmin.d.mts +7 -7
  52. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  53. package/dist/transactions/marginAdmin.mjs +8 -7
  54. package/dist/transactions/marginAdmin.mjs.map +1 -1
  55. package/dist/transactions/marginLiquidations.d.mts +3 -3
  56. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  57. package/dist/transactions/marginLiquidations.mjs +5 -4
  58. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  59. package/dist/transactions/marginMaintainer.d.mts +5 -5
  60. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  61. package/dist/transactions/marginMaintainer.mjs +15 -14
  62. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  63. package/dist/transactions/marginManager.d.mts +23 -23
  64. package/dist/transactions/marginManager.d.mts.map +1 -1
  65. package/dist/transactions/marginManager.mjs +12 -11
  66. package/dist/transactions/marginManager.mjs.map +1 -1
  67. package/dist/transactions/marginPool.d.mts.map +1 -1
  68. package/dist/transactions/marginPool.mjs +3 -2
  69. package/dist/transactions/marginPool.mjs.map +1 -1
  70. package/dist/transactions/marginRegistry.d.mts +15 -15
  71. package/dist/transactions/marginTPSL.d.mts +1 -1
  72. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  73. package/dist/transactions/marginTPSL.mjs +6 -8
  74. package/dist/transactions/marginTPSL.mjs.map +1 -1
  75. package/dist/transactions/poolProxy.d.mts.map +1 -1
  76. package/dist/transactions/poolProxy.mjs +13 -13
  77. package/dist/transactions/poolProxy.mjs.map +1 -1
  78. package/dist/types/index.d.mts +189 -52
  79. package/dist/types/index.d.mts.map +1 -1
  80. package/dist/types/index.mjs.map +1 -1
  81. package/dist/utils/conversion.mjs +26 -0
  82. package/dist/utils/conversion.mjs.map +1 -0
  83. package/package.json +4 -3
  84. package/src/client.ts +421 -2662
  85. package/src/index.ts +27 -0
  86. package/src/queries/accountQueries.ts +117 -0
  87. package/src/queries/balanceManagerQueries.ts +156 -0
  88. package/src/queries/context.ts +44 -0
  89. package/src/queries/index.ts +16 -0
  90. package/src/queries/marginManagerQueries.ts +575 -0
  91. package/src/queries/marginPoolQueries.ts +226 -0
  92. package/src/queries/orderQueries.ts +202 -0
  93. package/src/queries/poolQueries.ts +266 -0
  94. package/src/queries/priceFeedQueries.ts +141 -0
  95. package/src/queries/quantityQueries.ts +266 -0
  96. package/src/queries/referralQueries.ts +112 -0
  97. package/src/queries/registryQueries.ts +185 -0
  98. package/src/queries/tpslQueries.ts +88 -0
  99. package/src/transactions/balanceManager.ts +5 -4
  100. package/src/transactions/deepbook.ts +98 -84
  101. package/src/transactions/deepbookAdmin.ts +10 -9
  102. package/src/transactions/flashLoans.ts +5 -4
  103. package/src/transactions/governance.ts +5 -4
  104. package/src/transactions/marginAdmin.ts +8 -7
  105. package/src/transactions/marginLiquidations.ts +5 -4
  106. package/src/transactions/marginMaintainer.ts +15 -14
  107. package/src/transactions/marginManager.ts +12 -11
  108. package/src/transactions/marginPool.ts +3 -2
  109. package/src/transactions/marginTPSL.ts +11 -6
  110. package/src/transactions/poolProxy.ts +12 -11
  111. package/src/types/index.ts +200 -53
  112. package/src/utils/conversion.ts +33 -0
@@ -55,8 +55,8 @@ export interface PlaceLimitOrderParams {
55
55
  poolKey: string;
56
56
  balanceManagerKey: string;
57
57
  clientOrderId: string;
58
- price: number;
59
- quantity: number;
58
+ price: number | bigint;
59
+ quantity: number | bigint;
60
60
  isBid: boolean;
61
61
  expiration?: number | bigint;
62
62
  orderType?: OrderType;
@@ -68,7 +68,7 @@ export interface PlaceMarketOrderParams {
68
68
  poolKey: string;
69
69
  balanceManagerKey: string;
70
70
  clientOrderId: string;
71
- quantity: number;
71
+ quantity: number | bigint;
72
72
  isBid: boolean;
73
73
  selfMatchingOption?: SelfMatchingOptions;
74
74
  payWithDeep?: boolean;
@@ -77,8 +77,8 @@ export interface PlaceMarketOrderParams {
77
77
  export interface CanPlaceLimitOrderParams {
78
78
  poolKey: string;
79
79
  balanceManagerKey: string;
80
- price: number;
81
- quantity: number;
80
+ price: number | bigint;
81
+ quantity: number | bigint;
82
82
  isBid: boolean;
83
83
  payWithDeep: boolean;
84
84
  expireTimestamp: number;
@@ -87,7 +87,7 @@ export interface CanPlaceLimitOrderParams {
87
87
  export interface CanPlaceMarketOrderParams {
88
88
  poolKey: string;
89
89
  balanceManagerKey: string;
90
- quantity: number;
90
+ quantity: number | bigint;
91
91
  isBid: boolean;
92
92
  payWithDeep: boolean;
93
93
  }
@@ -96,8 +96,8 @@ export interface PlaceMarginLimitOrderParams {
96
96
  poolKey: string;
97
97
  marginManagerKey: string;
98
98
  clientOrderId: string;
99
- price: number;
100
- quantity: number;
99
+ price: number | bigint;
100
+ quantity: number | bigint;
101
101
  isBid: boolean;
102
102
  expiration?: number | bigint;
103
103
  orderType?: OrderType;
@@ -109,7 +109,7 @@ export interface PlaceMarginMarketOrderParams {
109
109
  poolKey: string;
110
110
  marginManagerKey: string;
111
111
  clientOrderId: string;
112
- quantity: number;
112
+ quantity: number | bigint;
113
113
  isBid: boolean;
114
114
  selfMatchingOption?: SelfMatchingOptions;
115
115
  payWithDeep?: boolean;
@@ -119,8 +119,8 @@ export interface PendingLimitOrderParams {
119
119
  clientOrderId: string;
120
120
  orderType?: OrderType;
121
121
  selfMatchingOption?: SelfMatchingOptions;
122
- price: number;
123
- quantity: number;
122
+ price: number | bigint;
123
+ quantity: number | bigint;
124
124
  isBid: boolean;
125
125
  payWithDeep?: boolean;
126
126
  expireTimestamp?: number | bigint;
@@ -129,7 +129,7 @@ export interface PendingLimitOrderParams {
129
129
  export interface PendingMarketOrderParams {
130
130
  clientOrderId: string;
131
131
  selfMatchingOption?: SelfMatchingOptions;
132
- quantity: number;
132
+ quantity: number | bigint;
133
133
  isBid: boolean;
134
134
  payWithDeep?: boolean;
135
135
  }
@@ -138,29 +138,29 @@ export interface AddConditionalOrderParams {
138
138
  marginManagerKey: string;
139
139
  conditionalOrderId: string;
140
140
  triggerBelowPrice: boolean;
141
- triggerPrice: number;
141
+ triggerPrice: number | bigint;
142
142
  pendingOrder: PendingLimitOrderParams | PendingMarketOrderParams;
143
143
  }
144
144
 
145
145
  export interface ProposalParams {
146
146
  poolKey: string;
147
147
  balanceManagerKey: string;
148
- takerFee: number;
149
- makerFee: number;
150
- stakeRequired: number;
148
+ takerFee: number | bigint;
149
+ makerFee: number | bigint;
150
+ stakeRequired: number | bigint;
151
151
  }
152
152
 
153
153
  export interface MarginProposalParams {
154
- takerFee: number;
155
- makerFee: number;
156
- stakeRequired: number;
154
+ takerFee: number | bigint;
155
+ makerFee: number | bigint;
156
+ stakeRequired: number | bigint;
157
157
  }
158
158
 
159
159
  export interface SwapParams {
160
160
  poolKey: string;
161
- amount: number;
162
- deepAmount: number;
163
- minOut: number;
161
+ amount: number | bigint;
162
+ deepAmount: number | bigint;
163
+ minOut: number | bigint;
164
164
  deepCoin?: TransactionObjectArgument;
165
165
  baseCoin?: TransactionObjectArgument;
166
166
  quoteCoin?: TransactionObjectArgument;
@@ -172,8 +172,8 @@ export interface SwapWithManagerParams {
172
172
  tradeCap: string;
173
173
  depositCap: string;
174
174
  withdrawCap: string;
175
- amount: number;
176
- minOut: number;
175
+ amount: number | bigint;
176
+ minOut: number | bigint;
177
177
  baseCoin?: TransactionObjectArgument;
178
178
  quoteCoin?: TransactionObjectArgument;
179
179
  }
@@ -181,7 +181,7 @@ export interface SwapWithManagerParams {
181
181
  export interface StakeParams {
182
182
  poolKey: string;
183
183
  balanceManagerKey: string;
184
- amount: number;
184
+ amount: number | bigint;
185
185
  }
186
186
 
187
187
  export interface VoteParams {
@@ -192,15 +192,15 @@ export interface VoteParams {
192
192
 
193
193
  export interface FlashLoanParams {
194
194
  poolKey: string;
195
- amount: number;
195
+ amount: number | bigint;
196
196
  }
197
197
 
198
198
  export interface CreatePoolAdminParams {
199
199
  baseCoinKey: string;
200
200
  quoteCoinKey: string;
201
- tickSize: number;
202
- lotSize: number;
203
- minSize: number;
201
+ tickSize: number | bigint;
202
+ lotSize: number | bigint;
203
+ minSize: number | bigint;
204
204
  whitelisted: boolean;
205
205
  stablePool: boolean;
206
206
  }
@@ -208,42 +208,42 @@ export interface CreatePoolAdminParams {
208
208
  export interface CreatePermissionlessPoolParams {
209
209
  baseCoinKey: string;
210
210
  quoteCoinKey: string;
211
- tickSize: number;
212
- lotSize: number;
213
- minSize: number;
211
+ tickSize: number | bigint;
212
+ lotSize: number | bigint;
213
+ minSize: number | bigint;
214
214
  deepCoin?: TransactionObjectArgument;
215
215
  }
216
216
 
217
217
  export interface SetEwmaParams {
218
- alpha: number;
219
- zScoreThreshold: number;
220
- additionalTakerFee: number;
218
+ alpha: number | bigint;
219
+ zScoreThreshold: number | bigint;
220
+ additionalTakerFee: number | bigint;
221
221
  }
222
222
 
223
223
  export interface PoolConfigParams {
224
- minWithdrawRiskRatio: number;
225
- minBorrowRiskRatio: number;
226
- liquidationRiskRatio: number;
227
- targetLiquidationRiskRatio: number;
228
- userLiquidationReward: number;
229
- poolLiquidationReward: number;
224
+ minWithdrawRiskRatio: number | bigint;
225
+ minBorrowRiskRatio: number | bigint;
226
+ liquidationRiskRatio: number | bigint;
227
+ targetLiquidationRiskRatio: number | bigint;
228
+ userLiquidationReward: number | bigint;
229
+ poolLiquidationReward: number | bigint;
230
230
  }
231
231
 
232
232
  export interface MarginPoolConfigParams {
233
- supplyCap: number;
234
- maxUtilizationRate: number;
235
- referralSpread: number;
236
- minBorrow: number;
237
- rateLimitCapacity?: number;
238
- rateLimitRefillRatePerMs?: number;
233
+ supplyCap: number | bigint;
234
+ maxUtilizationRate: number | bigint;
235
+ referralSpread: number | bigint;
236
+ minBorrow: number | bigint;
237
+ rateLimitCapacity?: number | bigint;
238
+ rateLimitRefillRatePerMs?: number | bigint;
239
239
  rateLimitEnabled?: boolean;
240
240
  }
241
241
 
242
242
  export interface InterestConfigParams {
243
- baseRate: number;
244
- baseSlope: number;
245
- optimalUtilization: number;
246
- excessSlope: number;
243
+ baseRate: number | bigint;
244
+ baseSlope: number | bigint;
245
+ optimalUtilization: number | bigint;
246
+ excessSlope: number | bigint;
247
247
  }
248
248
 
249
249
  export interface Config {
@@ -252,13 +252,160 @@ export interface Config {
252
252
  DEEP_TREASURY_ID: string;
253
253
  }
254
254
 
255
+ // === Named Return Types ===
256
+
257
+ // Balance
258
+ export interface ManagerBalance {
259
+ coinType: string;
260
+ balance: number;
261
+ }
262
+ export interface VaultBalances {
263
+ base: number;
264
+ quote: number;
265
+ deep: number;
266
+ }
267
+ export interface LockedBalances {
268
+ base: number;
269
+ quote: number;
270
+ deep: number;
271
+ }
272
+ export interface ReferralBalances {
273
+ base: number;
274
+ quote: number;
275
+ deep: number;
276
+ }
277
+
278
+ // Pool
279
+ export interface PoolTradeParams {
280
+ takerFee: number;
281
+ makerFee: number;
282
+ stakeRequired: number;
283
+ }
284
+ export interface PoolBookParams {
285
+ tickSize: number;
286
+ lotSize: number;
287
+ minSize: number;
288
+ }
289
+ export type PoolDeepPrice =
290
+ | { asset_is_base: true; deep_per_base: number }
291
+ | { asset_is_base: false; deep_per_quote: number };
292
+
293
+ // Quantity calculations
294
+ export interface QuoteQuantityOut {
295
+ baseQuantity: number;
296
+ baseOut: number;
297
+ quoteOut: number;
298
+ deepRequired: number;
299
+ }
300
+ export interface BaseQuantityOut {
301
+ quoteQuantity: number;
302
+ baseOut: number;
303
+ quoteOut: number;
304
+ deepRequired: number;
305
+ }
306
+ export interface QuantityOut {
307
+ baseQuantity: number;
308
+ quoteQuantity: number;
309
+ baseOut: number;
310
+ quoteOut: number;
311
+ deepRequired: number;
312
+ }
313
+ export interface BaseQuantityIn {
314
+ baseIn: number;
315
+ quoteOut: number;
316
+ deepRequired: number;
317
+ }
318
+ export interface QuoteQuantityIn {
319
+ baseOut: number;
320
+ quoteIn: number;
321
+ deepRequired: number;
322
+ }
323
+ export interface OrderDeepRequiredResult {
324
+ deepRequiredTaker: number;
325
+ deepRequiredMaker: number;
326
+ }
327
+
328
+ // Order book
329
+ export interface Level2Range {
330
+ prices: number[];
331
+ quantities: number[];
332
+ }
333
+ export interface Level2TicksFromMid {
334
+ bid_prices: number[];
335
+ bid_quantities: number[];
336
+ ask_prices: number[];
337
+ ask_quantities: number[];
338
+ }
339
+
340
+ // Account
341
+ export interface AccountBalances {
342
+ base: number;
343
+ quote: number;
344
+ deep: number;
345
+ }
346
+ export interface AccountInfo {
347
+ epoch: string;
348
+ open_orders: { contents: string[] };
349
+ taker_volume: number;
350
+ maker_volume: number;
351
+ active_stake: number;
352
+ inactive_stake: number;
353
+ created_proposal: boolean;
354
+ voted_proposal: string | null;
355
+ unclaimed_rebates: AccountBalances;
356
+ settled_balances: AccountBalances;
357
+ owed_balances: AccountBalances;
358
+ }
359
+
360
+ // Order
361
+ export interface DecodedOrderId {
362
+ isBid: boolean;
363
+ price: number;
364
+ orderId: number;
365
+ }
366
+
367
+ // Margin
368
+ export interface MarginManagerState {
369
+ managerId: string;
370
+ deepbookPoolId: string;
371
+ riskRatio: number;
372
+ baseAsset: string;
373
+ quoteAsset: string;
374
+ baseDebt: string;
375
+ quoteDebt: string;
376
+ basePythPrice: string;
377
+ basePythDecimals: number;
378
+ quotePythPrice: string;
379
+ quotePythDecimals: number;
380
+ currentPrice: bigint;
381
+ lowestTriggerAbovePrice: bigint;
382
+ highestTriggerBelowPrice: bigint;
383
+ }
384
+ export interface MarginManagerAssets {
385
+ baseAsset: string;
386
+ quoteAsset: string;
387
+ }
388
+ export interface MarginManagerDebts {
389
+ baseDebt: string;
390
+ quoteDebt: string;
391
+ }
392
+ export interface MarginManagerBalancesResult {
393
+ base: string;
394
+ quote: string;
395
+ deep: string;
396
+ }
397
+ export interface BorrowedShares {
398
+ baseShares: string;
399
+ quoteShares: string;
400
+ }
401
+
255
402
  /**
256
403
  * Parameters for depositing into a margin manager.
257
404
  * Either `amount` (number) or `coin` (TransactionArgument) must be provided, but not both.
258
405
  */
259
406
  export type DepositParams = {
260
407
  managerKey: string;
261
- } & ({ amount: number; coin?: never } | { amount?: never; coin: TransactionArgument });
408
+ } & ({ amount: number | bigint; coin?: never } | { amount?: never; coin: TransactionArgument });
262
409
 
263
410
  /**
264
411
  * Parameters for depositing during margin manager initialization.
@@ -269,4 +416,4 @@ export type DepositDuringInitParams = {
269
416
  manager: TransactionArgument;
270
417
  poolKey: string;
271
418
  coinType: string;
272
- } & ({ amount: number; coin?: never } | { amount?: never; coin: TransactionArgument });
419
+ } & ({ amount: number | bigint; coin?: never } | { amount?: never; coin: TransactionArgument });
@@ -0,0 +1,33 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * Convert a quantity value (amount, deposit, etc.) to on-chain u64.
6
+ * If bigint: use as raw on-chain value. If number: scale with Math.round.
7
+ */
8
+ export function convertQuantity(value: number | bigint, scalar: number): bigint {
9
+ return typeof value === 'bigint' ? value : BigInt(Math.round(value * scalar));
10
+ }
11
+
12
+ /**
13
+ * Convert a price value to on-chain u64.
14
+ * If bigint: use as raw on-chain value. If number: scale with cross-scalar formula.
15
+ */
16
+ export function convertPrice(
17
+ value: number | bigint,
18
+ floatScalar: number,
19
+ quoteScalar: number,
20
+ baseScalar: number,
21
+ ): bigint {
22
+ return typeof value === 'bigint'
23
+ ? value
24
+ : BigInt(Math.round((value * floatScalar * quoteScalar) / baseScalar));
25
+ }
26
+
27
+ /**
28
+ * Convert a rate/fee value to on-chain u64.
29
+ * If bigint: use as raw on-chain value. If number: scale with FLOAT_SCALAR.
30
+ */
31
+ export function convertRate(value: number | bigint, floatScalar: number): bigint {
32
+ return typeof value === 'bigint' ? value : BigInt(Math.round(value * floatScalar));
33
+ }