@mysten/deepbook-v3 1.5.8 → 1.6.2

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 (182) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/dist/client.d.mts +5 -0
  3. package/dist/client.d.mts.map +1 -1
  4. package/dist/client.mjs +7 -0
  5. package/dist/client.mjs.map +1 -1
  6. package/dist/contracts/deepbook/account.d.mts +18 -18
  7. package/dist/contracts/deepbook/account.d.mts.map +1 -1
  8. package/dist/contracts/deepbook/balance_manager.mjs +413 -0
  9. package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
  10. package/dist/contracts/deepbook/big_vector.mjs +43 -0
  11. package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
  12. package/dist/contracts/deepbook/book.mjs +29 -0
  13. package/dist/contracts/deepbook/book.mjs.map +1 -0
  14. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  15. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
  16. package/dist/contracts/deepbook/deep_price.mjs +1 -1
  17. package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
  18. package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
  19. package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
  20. package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
  21. package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
  22. package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
  23. package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
  24. package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
  25. package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
  26. package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
  27. package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
  28. package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
  29. package/dist/contracts/deepbook/governance.mjs +49 -0
  30. package/dist/contracts/deepbook/governance.mjs.map +1 -0
  31. package/dist/contracts/deepbook/history.mjs +56 -0
  32. package/dist/contracts/deepbook/history.mjs.map +1 -0
  33. package/dist/contracts/deepbook/order.d.mts +12 -12
  34. package/dist/contracts/deepbook/pool.mjs +1739 -0
  35. package/dist/contracts/deepbook/pool.mjs.map +1 -0
  36. package/dist/contracts/deepbook/registry.mjs +295 -0
  37. package/dist/contracts/deepbook/registry.mjs.map +1 -0
  38. package/dist/contracts/deepbook/state.mjs +89 -0
  39. package/dist/contracts/deepbook/state.mjs.map +1 -0
  40. package/dist/contracts/deepbook/trade_params.mjs +21 -0
  41. package/dist/contracts/deepbook/trade_params.mjs.map +1 -0
  42. package/dist/contracts/deepbook/vault.mjs +42 -0
  43. package/dist/contracts/deepbook/vault.mjs.map +1 -0
  44. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs +53 -0
  45. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs.map +1 -0
  46. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs +17 -0
  47. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs.map +1 -0
  48. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs +43 -0
  49. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs.map +1 -0
  50. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs +21 -0
  51. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs.map +1 -0
  52. package/dist/contracts/deepbook_margin/deps/sui/table.mjs +38 -0
  53. package/dist/contracts/deepbook_margin/deps/sui/table.mjs.map +1 -0
  54. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs +37 -0
  55. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs.map +1 -0
  56. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs +26 -0
  57. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs.map +1 -0
  58. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs +19 -0
  59. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs.map +1 -0
  60. package/dist/contracts/deepbook_margin/margin_manager.mjs +989 -0
  61. package/dist/contracts/deepbook_margin/margin_manager.mjs.map +1 -0
  62. package/dist/contracts/deepbook_margin/margin_pool.mjs +550 -0
  63. package/dist/contracts/deepbook_margin/margin_pool.mjs.map +1 -0
  64. package/dist/contracts/deepbook_margin/margin_registry.mjs +786 -0
  65. package/dist/contracts/deepbook_margin/margin_registry.mjs.map +1 -0
  66. package/dist/contracts/deepbook_margin/margin_state.mjs +30 -0
  67. package/dist/contracts/deepbook_margin/margin_state.mjs.map +1 -0
  68. package/dist/contracts/deepbook_margin/oracle.mjs +82 -0
  69. package/dist/contracts/deepbook_margin/oracle.mjs.map +1 -0
  70. package/dist/contracts/deepbook_margin/pool_proxy.mjs +644 -0
  71. package/dist/contracts/deepbook_margin/pool_proxy.mjs.map +1 -0
  72. package/dist/contracts/deepbook_margin/position_manager.mjs +32 -0
  73. package/dist/contracts/deepbook_margin/position_manager.mjs.map +1 -0
  74. package/dist/contracts/deepbook_margin/protocol_config.mjs +122 -0
  75. package/dist/contracts/deepbook_margin/protocol_config.mjs.map +1 -0
  76. package/dist/contracts/deepbook_margin/protocol_fees.mjs +58 -0
  77. package/dist/contracts/deepbook_margin/protocol_fees.mjs.map +1 -0
  78. package/dist/contracts/deepbook_margin/rate_limiter.mjs +26 -0
  79. package/dist/contracts/deepbook_margin/rate_limiter.mjs.map +1 -0
  80. package/dist/contracts/deepbook_margin/tpsl.mjs +171 -0
  81. package/dist/contracts/deepbook_margin/tpsl.mjs.map +1 -0
  82. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs +43 -0
  83. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs.map +1 -0
  84. package/dist/contracts/margin_liquidation/liquidation_vault.mjs +179 -0
  85. package/dist/contracts/margin_liquidation/liquidation_vault.mjs.map +1 -0
  86. package/dist/contracts/utils/index.d.mts +1 -1
  87. package/dist/contracts/utils/index.mjs +92 -3
  88. package/dist/contracts/utils/index.mjs.map +1 -1
  89. package/dist/queries/registryQueries.mjs +13 -0
  90. package/dist/queries/registryQueries.mjs.map +1 -1
  91. package/dist/transactions/balanceManager.d.mts.map +1 -1
  92. package/dist/transactions/balanceManager.mjs +119 -100
  93. package/dist/transactions/balanceManager.mjs.map +1 -1
  94. package/dist/transactions/deepbook.d.mts.map +1 -1
  95. package/dist/transactions/deepbook.mjs +464 -439
  96. package/dist/transactions/deepbook.mjs.map +1 -1
  97. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  98. package/dist/transactions/deepbookAdmin.mjs +151 -135
  99. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  100. package/dist/transactions/flashLoans.d.mts.map +1 -1
  101. package/dist/transactions/flashLoans.mjs +29 -22
  102. package/dist/transactions/flashLoans.mjs.map +1 -1
  103. package/dist/transactions/governance.d.mts.map +1 -1
  104. package/dist/transactions/governance.mjs +34 -33
  105. package/dist/transactions/governance.mjs.map +1 -1
  106. package/dist/transactions/marginAdmin.d.mts +17 -7
  107. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  108. package/dist/transactions/marginAdmin.mjs +186 -169
  109. package/dist/transactions/marginAdmin.mjs.map +1 -1
  110. package/dist/transactions/marginLiquidations.d.mts +3 -3
  111. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  112. package/dist/transactions/marginLiquidations.mjs +53 -54
  113. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  114. package/dist/transactions/marginMaintainer.d.mts +5 -5
  115. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  116. package/dist/transactions/marginMaintainer.mjs +83 -83
  117. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  118. package/dist/transactions/marginManager.d.mts +32 -32
  119. package/dist/transactions/marginManager.d.mts.map +1 -1
  120. package/dist/transactions/marginManager.mjs +330 -317
  121. package/dist/transactions/marginManager.mjs.map +1 -1
  122. package/dist/transactions/marginPool.d.mts +18 -18
  123. package/dist/transactions/marginPool.d.mts.map +1 -1
  124. package/dist/transactions/marginPool.mjs +93 -89
  125. package/dist/transactions/marginPool.mjs.map +1 -1
  126. package/dist/transactions/marginRegistry.d.mts +22 -15
  127. package/dist/transactions/marginRegistry.d.mts.map +1 -1
  128. package/dist/transactions/marginRegistry.mjs +101 -68
  129. package/dist/transactions/marginRegistry.mjs.map +1 -1
  130. package/dist/transactions/marginTPSL.d.mts +27 -9
  131. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  132. package/dist/transactions/marginTPSL.mjs +108 -82
  133. package/dist/transactions/marginTPSL.mjs.map +1 -1
  134. package/dist/transactions/poolProxy.d.mts +37 -5
  135. package/dist/transactions/poolProxy.d.mts.map +1 -1
  136. package/dist/transactions/poolProxy.mjs +269 -189
  137. package/dist/transactions/poolProxy.mjs.map +1 -1
  138. package/dist/utils/constants.mjs +4 -4
  139. package/dist/utils/constants.mjs.map +1 -1
  140. package/package.json +3 -3
  141. package/src/client.ts +8 -0
  142. package/src/contracts/deepbook/balance_manager.ts +46 -5
  143. package/src/contracts/deepbook/constants.ts +13 -0
  144. package/src/contracts/deepbook/pool.ts +133 -0
  145. package/src/contracts/deepbook/registry.ts +136 -1
  146. package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
  147. package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
  148. package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
  149. package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
  150. package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
  151. package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
  152. package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
  153. package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
  154. package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
  155. package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
  156. package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
  157. package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
  158. package/src/contracts/deepbook_margin/margin_state.ts +26 -0
  159. package/src/contracts/deepbook_margin/oracle.ts +99 -0
  160. package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
  161. package/src/contracts/deepbook_margin/position_manager.ts +28 -0
  162. package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
  163. package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
  164. package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
  165. package/src/contracts/deepbook_margin/tpsl.ts +559 -0
  166. package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
  167. package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
  168. package/src/queries/registryQueries.ts +15 -0
  169. package/src/transactions/balanceManager.ts +140 -90
  170. package/src/transactions/deepbook.ts +586 -494
  171. package/src/transactions/deepbookAdmin.ts +154 -146
  172. package/src/transactions/flashLoans.ts +29 -20
  173. package/src/transactions/governance.ts +50 -37
  174. package/src/transactions/marginAdmin.ts +247 -188
  175. package/src/transactions/marginLiquidations.ts +70 -55
  176. package/src/transactions/marginMaintainer.ts +106 -88
  177. package/src/transactions/marginManager.ts +414 -348
  178. package/src/transactions/marginPool.ts +140 -103
  179. package/src/transactions/marginRegistry.ts +103 -70
  180. package/src/transactions/marginTPSL.ts +151 -87
  181. package/src/transactions/poolProxy.ts +384 -205
  182. package/src/utils/constants.ts +4 -4
@@ -11,6 +11,8 @@ import type {
11
11
  import { OrderType, SelfMatchingOptions } from '../types/index.js';
12
12
  import { MAX_TIMESTAMP, FLOAT_SCALAR } from '../utils/config.js';
13
13
  import { convertQuantity, convertPrice } from '../utils/conversion.js';
14
+ import * as marginManagerMoveCalls from '../contracts/deepbook_margin/margin_manager.js';
15
+ import * as tpslMoveCalls from '../contracts/deepbook_margin/tpsl.js';
14
16
 
15
17
  /**
16
18
  * MarginTPSLContract class for managing Take Profit / Stop Loss operations.
@@ -46,10 +48,12 @@ export class MarginTPSLContract {
46
48
  quoteCoin.scalar,
47
49
  baseCoin.scalar,
48
50
  );
49
- return tx.moveCall({
50
- target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_condition`,
51
- arguments: [tx.pure.bool(triggerBelowPrice), tx.pure.u64(inputPrice)],
52
- });
51
+ return tx.add(
52
+ tpslMoveCalls.newCondition({
53
+ package: this.#config.MARGIN_PACKAGE_ID,
54
+ arguments: { triggerBelowPrice, triggerPrice: inputPrice },
55
+ }),
56
+ );
53
57
  };
54
58
 
55
59
  /**
@@ -75,19 +79,21 @@ export class MarginTPSLContract {
75
79
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
76
80
  const inputPrice = convertPrice(price, FLOAT_SCALAR, quoteCoin.scalar, baseCoin.scalar);
77
81
  const inputQuantity = convertQuantity(quantity, baseCoin.scalar);
78
- return tx.moveCall({
79
- target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_pending_limit_order`,
80
- arguments: [
81
- tx.pure.u64(clientOrderId),
82
- tx.pure.u8(orderType),
83
- tx.pure.u8(selfMatchingOption),
84
- tx.pure.u64(inputPrice),
85
- tx.pure.u64(inputQuantity),
86
- tx.pure.bool(isBid),
87
- tx.pure.bool(payWithDeep),
88
- tx.pure.u64(expireTimestamp),
89
- ],
90
- });
82
+ return tx.add(
83
+ tpslMoveCalls.newPendingLimitOrder({
84
+ package: this.#config.MARGIN_PACKAGE_ID,
85
+ arguments: {
86
+ clientOrderId: BigInt(clientOrderId),
87
+ orderType,
88
+ selfMatchingOption,
89
+ price: inputPrice,
90
+ quantity: inputQuantity,
91
+ isBid,
92
+ payWithDeep,
93
+ expireTimestamp,
94
+ },
95
+ }),
96
+ );
91
97
  };
92
98
 
93
99
  /**
@@ -108,16 +114,18 @@ export class MarginTPSLContract {
108
114
  const pool = this.#config.getPool(poolKey);
109
115
  const baseCoin = this.#config.getCoin(pool.baseCoin);
110
116
  const inputQuantity = convertQuantity(quantity, baseCoin.scalar);
111
- return tx.moveCall({
112
- target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_pending_market_order`,
113
- arguments: [
114
- tx.pure.u64(clientOrderId),
115
- tx.pure.u8(selfMatchingOption),
116
- tx.pure.u64(inputQuantity),
117
- tx.pure.bool(isBid),
118
- tx.pure.bool(payWithDeep),
119
- ],
120
- });
117
+ return tx.add(
118
+ tpslMoveCalls.newPendingMarketOrder({
119
+ package: this.#config.MARGIN_PACKAGE_ID,
120
+ arguments: {
121
+ clientOrderId: BigInt(clientOrderId),
122
+ selfMatchingOption,
123
+ quantity: inputQuantity,
124
+ isBid,
125
+ payWithDeep,
126
+ },
127
+ }),
128
+ );
121
129
  };
122
130
 
123
131
  // === Public Functions ===
@@ -144,21 +152,22 @@ export class MarginTPSLContract {
144
152
  ? this.newPendingLimitOrder(manager.poolKey, pendingOrder as PendingLimitOrderParams)(tx)
145
153
  : this.newPendingMarketOrder(manager.poolKey, pendingOrder as PendingMarketOrderParams)(tx);
146
154
 
147
- tx.moveCall({
148
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::add_conditional_order`,
149
- arguments: [
150
- tx.object(manager.address),
151
- tx.object(pool.address),
152
- tx.object(baseCoin.priceInfoObjectId!),
153
- tx.object(quoteCoin.priceInfoObjectId!),
154
- tx.object(this.#config.MARGIN_REGISTRY_ID),
155
- tx.pure.u64(conditionalOrderId),
156
- condition,
157
- pending,
158
- tx.object.clock(),
159
- ],
160
- typeArguments: [baseCoin.type, quoteCoin.type],
161
- });
155
+ tx.add(
156
+ marginManagerMoveCalls.addConditionalOrder({
157
+ package: this.#config.MARGIN_PACKAGE_ID,
158
+ arguments: {
159
+ self: manager.address,
160
+ pool: pool.address,
161
+ basePriceInfoObject: baseCoin.priceInfoObjectId!,
162
+ quotePriceInfoObject: quoteCoin.priceInfoObjectId!,
163
+ registry: this.#config.MARGIN_REGISTRY_ID,
164
+ conditionalOrderId: BigInt(conditionalOrderId),
165
+ condition,
166
+ pendingOrder: pending,
167
+ },
168
+ typeArguments: [baseCoin.type, quoteCoin.type],
169
+ }),
170
+ );
162
171
  };
163
172
 
164
173
  /**
@@ -171,11 +180,13 @@ export class MarginTPSLContract {
171
180
  const pool = this.#config.getPool(manager.poolKey);
172
181
  const baseCoin = this.#config.getCoin(pool.baseCoin);
173
182
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
174
- tx.moveCall({
175
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::cancel_all_conditional_orders`,
176
- arguments: [tx.object(manager.address), tx.object.clock()],
177
- typeArguments: [baseCoin.type, quoteCoin.type],
178
- });
183
+ tx.add(
184
+ marginManagerMoveCalls.cancelAllConditionalOrders({
185
+ package: this.#config.MARGIN_PACKAGE_ID,
186
+ arguments: { self: manager.address },
187
+ typeArguments: [baseCoin.type, quoteCoin.type],
188
+ }),
189
+ );
179
190
  };
180
191
 
181
192
  /**
@@ -190,11 +201,13 @@ export class MarginTPSLContract {
190
201
  const pool = this.#config.getPool(manager.poolKey);
191
202
  const baseCoin = this.#config.getCoin(pool.baseCoin);
192
203
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
193
- tx.moveCall({
194
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::cancel_conditional_order`,
195
- arguments: [tx.object(manager.address), tx.pure.u64(conditionalOrderId), tx.object.clock()],
196
- typeArguments: [baseCoin.type, quoteCoin.type],
197
- });
204
+ tx.add(
205
+ marginManagerMoveCalls.cancelConditionalOrder({
206
+ package: this.#config.MARGIN_PACKAGE_ID,
207
+ arguments: { self: manager.address, conditionalOrderId: BigInt(conditionalOrderId) },
208
+ typeArguments: [baseCoin.type, quoteCoin.type],
209
+ }),
210
+ );
198
211
  };
199
212
 
200
213
  /**
@@ -215,21 +228,64 @@ export class MarginTPSLContract {
215
228
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
216
229
  const baseMarginPool = this.#config.getMarginPool(pool.baseCoin);
217
230
  const quoteMarginPool = this.#config.getMarginPool(pool.quoteCoin);
218
- return tx.moveCall({
219
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::execute_conditional_orders_v2`,
220
- arguments: [
221
- tx.object(managerAddress),
222
- tx.object(pool.address),
223
- tx.object(baseMarginPool.address),
224
- tx.object(quoteMarginPool.address),
225
- tx.object(baseCoin.priceInfoObjectId!),
226
- tx.object(quoteCoin.priceInfoObjectId!),
227
- tx.object(this.#config.MARGIN_REGISTRY_ID),
228
- tx.pure.u64(maxOrdersToExecute),
229
- tx.object.clock(),
230
- ],
231
- typeArguments: [baseCoin.type, quoteCoin.type],
232
- });
231
+ return tx.add(
232
+ marginManagerMoveCalls.executeConditionalOrdersV2({
233
+ package: this.#config.MARGIN_PACKAGE_ID,
234
+ arguments: {
235
+ self: managerAddress,
236
+ pool: pool.address,
237
+ baseMarginPool: baseMarginPool.address,
238
+ quoteMarginPool: quoteMarginPool.address,
239
+ basePriceInfoObject: baseCoin.priceInfoObjectId!,
240
+ quotePriceInfoObject: quoteCoin.priceInfoObjectId!,
241
+ registry: this.#config.MARGIN_REGISTRY_ID,
242
+ maxOrdersToExecute,
243
+ },
244
+ typeArguments: [baseCoin.type, quoteCoin.type],
245
+ }),
246
+ );
247
+ };
248
+
249
+ /**
250
+ * @description Execute conditional orders, deleveraging on each market-type
251
+ * fill. Permissionless, with the same trigger and cancellation handling as
252
+ * {@link executeConditionalOrders}, but the market proceeds are repaid into
253
+ * the loan before the risk check, and the gate is the *net* post-repay
254
+ * `risk_ratio` being at least the pre-fill ratio.
255
+ *
256
+ * This is what lets a stop-loss fire in the `liquidation..min_borrow` danger
257
+ * band: a swap alone only lowers the oracle-valued ratio (so the v2
258
+ * borrow-floor gate rejects it), while repaying actually improves it. If a
259
+ * single triggered fill would worsen net solvency the whole txn aborts — no
260
+ * partial-state landing.
261
+ * @param {string} managerAddress The address of the margin manager
262
+ * @param {string} poolKey The key to identify the pool (e.g., 'SUI_USDC')
263
+ * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
264
+ * @returns A function that takes a Transaction object
265
+ */
266
+ executeConditionalOrdersV3 =
267
+ (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
268
+ const pool = this.#config.getPool(poolKey);
269
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
270
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
271
+ const baseMarginPool = this.#config.getMarginPool(pool.baseCoin);
272
+ const quoteMarginPool = this.#config.getMarginPool(pool.quoteCoin);
273
+ return tx.add(
274
+ marginManagerMoveCalls.executeConditionalOrdersV3({
275
+ package: this.#config.MARGIN_PACKAGE_ID,
276
+ arguments: {
277
+ self: managerAddress,
278
+ pool: pool.address,
279
+ baseMarginPool: baseMarginPool.address,
280
+ quoteMarginPool: quoteMarginPool.address,
281
+ basePriceInfoObject: baseCoin.priceInfoObjectId!,
282
+ quotePriceInfoObject: quoteCoin.priceInfoObjectId!,
283
+ registry: this.#config.MARGIN_REGISTRY_ID,
284
+ maxOrdersToExecute,
285
+ },
286
+ typeArguments: [baseCoin.type, quoteCoin.type],
287
+ }),
288
+ );
233
289
  };
234
290
 
235
291
  // === Read-Only Functions ===
@@ -244,11 +300,13 @@ export class MarginTPSLContract {
244
300
  const pool = this.#config.getPool(poolKey);
245
301
  const baseCoin = this.#config.getCoin(pool.baseCoin);
246
302
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
247
- return tx.moveCall({
248
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::conditional_order_ids`,
249
- arguments: [tx.object(marginManagerId)],
250
- typeArguments: [baseCoin.type, quoteCoin.type],
251
- });
303
+ return tx.add(
304
+ marginManagerMoveCalls.conditionalOrderIds({
305
+ package: this.#config.MARGIN_PACKAGE_ID,
306
+ arguments: { self: marginManagerId },
307
+ typeArguments: [baseCoin.type, quoteCoin.type],
308
+ }),
309
+ );
252
310
  };
253
311
 
254
312
  /**
@@ -263,11 +321,13 @@ export class MarginTPSLContract {
263
321
  const pool = this.#config.getPool(poolKey);
264
322
  const baseCoin = this.#config.getCoin(pool.baseCoin);
265
323
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
266
- return tx.moveCall({
267
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::conditional_order`,
268
- arguments: [tx.object(marginManagerId), tx.pure.u64(conditionalOrderId)],
269
- typeArguments: [baseCoin.type, quoteCoin.type],
270
- });
324
+ return tx.add(
325
+ marginManagerMoveCalls.conditionalOrder({
326
+ package: this.#config.MARGIN_PACKAGE_ID,
327
+ arguments: { self: marginManagerId, conditionalOrderId: BigInt(conditionalOrderId) },
328
+ typeArguments: [baseCoin.type, quoteCoin.type],
329
+ }),
330
+ );
271
331
  };
272
332
 
273
333
  /**
@@ -281,11 +341,13 @@ export class MarginTPSLContract {
281
341
  const pool = this.#config.getPool(poolKey);
282
342
  const baseCoin = this.#config.getCoin(pool.baseCoin);
283
343
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
284
- return tx.moveCall({
285
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::lowest_trigger_above_price`,
286
- arguments: [tx.object(marginManagerId)],
287
- typeArguments: [baseCoin.type, quoteCoin.type],
288
- });
344
+ return tx.add(
345
+ marginManagerMoveCalls.lowestTriggerAbovePrice({
346
+ package: this.#config.MARGIN_PACKAGE_ID,
347
+ arguments: { self: marginManagerId },
348
+ typeArguments: [baseCoin.type, quoteCoin.type],
349
+ }),
350
+ );
289
351
  };
290
352
 
291
353
  /**
@@ -299,10 +361,12 @@ export class MarginTPSLContract {
299
361
  const pool = this.#config.getPool(poolKey);
300
362
  const baseCoin = this.#config.getCoin(pool.baseCoin);
301
363
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
302
- return tx.moveCall({
303
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::highest_trigger_below_price`,
304
- arguments: [tx.object(marginManagerId)],
305
- typeArguments: [baseCoin.type, quoteCoin.type],
306
- });
364
+ return tx.add(
365
+ marginManagerMoveCalls.highestTriggerBelowPrice({
366
+ package: this.#config.MARGIN_PACKAGE_ID,
367
+ arguments: { self: marginManagerId },
368
+ typeArguments: [baseCoin.type, quoteCoin.type],
369
+ }),
370
+ );
307
371
  };
308
372
  }