@haneullabs/deepbook-v3 0.1.0 → 1.0.11

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 (568) hide show
  1. package/CHANGELOG.md +268 -81
  2. package/dist/client.d.mts +957 -0
  3. package/dist/client.d.mts.map +1 -0
  4. package/dist/client.mjs +2293 -0
  5. package/dist/client.mjs.map +1 -0
  6. package/dist/contracts/deepbook/account.d.mts +38 -0
  7. package/dist/contracts/deepbook/account.d.mts.map +1 -0
  8. package/dist/contracts/deepbook/account.mjs +31 -0
  9. package/dist/contracts/deepbook/account.mjs.map +1 -0
  10. package/dist/contracts/deepbook/balances.d.mts +13 -0
  11. package/dist/contracts/deepbook/balances.d.mts.map +1 -0
  12. package/dist/contracts/deepbook/balances.mjs +24 -0
  13. package/dist/contracts/deepbook/balances.mjs.map +1 -0
  14. package/dist/contracts/deepbook/deep_price.d.mts +13 -0
  15. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -0
  16. package/dist/contracts/deepbook/deep_price.mjs +49 -0
  17. package/dist/contracts/deepbook/deep_price.mjs.map +1 -0
  18. package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts +22 -0
  19. package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts.map +1 -0
  20. package/dist/contracts/deepbook/deps/haneul/vec_set.mjs +26 -0
  21. package/dist/contracts/deepbook/deps/haneul/vec_set.mjs.map +1 -0
  22. package/dist/contracts/deepbook/order.d.mts +24 -0
  23. package/dist/contracts/deepbook/order.d.mts.map +1 -0
  24. package/dist/contracts/deepbook/order.mjs +63 -0
  25. package/dist/contracts/deepbook/order.mjs.map +1 -0
  26. package/dist/contracts/pyth/data_source.mjs +20 -0
  27. package/dist/contracts/pyth/data_source.mjs.map +1 -0
  28. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
  29. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
  30. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
  31. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
  32. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs +16 -0
  33. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs.map +1 -0
  34. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs +16 -0
  35. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs.map +1 -0
  36. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs +16 -0
  37. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs.map +1 -0
  38. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs +16 -0
  39. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs.map +1 -0
  40. package/dist/contracts/pyth/i64.mjs +19 -0
  41. package/dist/contracts/pyth/i64.mjs.map +1 -0
  42. package/dist/contracts/pyth/price.mjs +22 -0
  43. package/dist/contracts/pyth/price.mjs.map +1 -0
  44. package/dist/contracts/pyth/price_feed.mjs +21 -0
  45. package/dist/contracts/pyth/price_feed.mjs.map +1 -0
  46. package/dist/contracts/pyth/price_identifier.mjs +16 -0
  47. package/dist/contracts/pyth/price_identifier.mjs.map +1 -0
  48. package/dist/contracts/pyth/price_info.mjs +28 -0
  49. package/dist/contracts/pyth/price_info.mjs.map +1 -0
  50. package/dist/contracts/pyth/state.mjs +36 -0
  51. package/dist/contracts/pyth/state.mjs.map +1 -0
  52. package/dist/contracts/utils/index.d.mts +34 -0
  53. package/dist/contracts/utils/index.d.mts.map +1 -0
  54. package/dist/contracts/utils/index.mjs +35 -0
  55. package/dist/contracts/utils/index.mjs.map +1 -0
  56. package/dist/contracts/wormhole/bytes32.mjs +16 -0
  57. package/dist/contracts/wormhole/bytes32.mjs.map +1 -0
  58. package/dist/contracts/wormhole/consumed_vaas.mjs +16 -0
  59. package/dist/contracts/wormhole/consumed_vaas.mjs.map +1 -0
  60. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +16 -0
  61. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -0
  62. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
  63. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
  64. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
  65. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
  66. package/dist/contracts/wormhole/external_address.mjs +16 -0
  67. package/dist/contracts/wormhole/external_address.mjs.map +1 -0
  68. package/dist/contracts/wormhole/fee_collector.mjs +20 -0
  69. package/dist/contracts/wormhole/fee_collector.mjs.map +1 -0
  70. package/dist/contracts/wormhole/set.mjs +16 -0
  71. package/dist/contracts/wormhole/set.mjs.map +1 -0
  72. package/dist/contracts/wormhole/state.mjs +31 -0
  73. package/dist/contracts/wormhole/state.mjs.map +1 -0
  74. package/dist/index.d.mts +25 -0
  75. package/dist/index.mjs +26 -0
  76. package/dist/pyth/PriceServiceConnection.d.mts +26 -0
  77. package/dist/pyth/PriceServiceConnection.d.mts.map +1 -0
  78. package/dist/pyth/PriceServiceConnection.mjs +35 -0
  79. package/dist/pyth/PriceServiceConnection.mjs.map +1 -0
  80. package/dist/pyth/pyth-helpers.mjs +18 -0
  81. package/dist/pyth/pyth-helpers.mjs.map +1 -0
  82. package/dist/pyth/pyth.d.mts +69 -0
  83. package/dist/pyth/pyth.d.mts.map +1 -0
  84. package/dist/pyth/pyth.mjs +220 -0
  85. package/dist/pyth/pyth.mjs.map +1 -0
  86. package/dist/transactions/balanceManager.d.mts +174 -0
  87. package/dist/transactions/balanceManager.d.mts.map +1 -0
  88. package/dist/transactions/balanceManager.mjs +233 -0
  89. package/dist/transactions/balanceManager.mjs.map +1 -0
  90. package/dist/transactions/deepbook.d.mts +490 -0
  91. package/dist/transactions/deepbook.d.mts.map +1 -0
  92. package/dist/transactions/deepbook.mjs +978 -0
  93. package/dist/transactions/deepbook.mjs.map +1 -0
  94. package/dist/transactions/deepbookAdmin.d.mts +111 -0
  95. package/dist/transactions/deepbookAdmin.d.mts.map +1 -0
  96. package/dist/transactions/deepbookAdmin.mjs +221 -0
  97. package/dist/transactions/deepbookAdmin.mjs.map +1 -0
  98. package/dist/transactions/flashLoans.d.mts +62 -0
  99. package/dist/transactions/flashLoans.d.mts.map +1 -0
  100. package/dist/transactions/flashLoans.mjs +75 -0
  101. package/dist/transactions/flashLoans.mjs.map +1 -0
  102. package/dist/transactions/governance.d.mts +48 -0
  103. package/dist/transactions/governance.d.mts.map +1 -0
  104. package/dist/transactions/governance.mjs +90 -0
  105. package/dist/transactions/governance.mjs.map +1 -0
  106. package/dist/transactions/marginAdmin.d.mts +139 -0
  107. package/dist/transactions/marginAdmin.d.mts.map +1 -0
  108. package/dist/transactions/marginAdmin.mjs +249 -0
  109. package/dist/transactions/marginAdmin.mjs.map +1 -0
  110. package/dist/transactions/marginLiquidations.d.mts +67 -0
  111. package/dist/transactions/marginLiquidations.d.mts.map +1 -0
  112. package/dist/transactions/marginLiquidations.mjs +109 -0
  113. package/dist/transactions/marginLiquidations.mjs.map +1 -0
  114. package/dist/transactions/marginMaintainer.d.mts +86 -0
  115. package/dist/transactions/marginMaintainer.d.mts.map +1 -0
  116. package/dist/transactions/marginMaintainer.mjs +160 -0
  117. package/dist/transactions/marginMaintainer.mjs.map +1 -0
  118. package/dist/transactions/marginManager.d.mts +255 -0
  119. package/dist/transactions/marginManager.d.mts.map +1 -0
  120. package/dist/transactions/marginManager.mjs +558 -0
  121. package/dist/transactions/marginManager.mjs.map +1 -0
  122. package/dist/transactions/marginPool.d.mts +140 -0
  123. package/dist/transactions/marginPool.d.mts.map +1 -0
  124. package/dist/transactions/marginPool.mjs +206 -0
  125. package/dist/transactions/marginPool.mjs.map +1 -0
  126. package/dist/transactions/marginRegistry.d.mts +100 -0
  127. package/dist/transactions/marginRegistry.d.mts.map +1 -0
  128. package/dist/transactions/marginRegistry.mjs +128 -0
  129. package/dist/transactions/marginRegistry.mjs.map +1 -0
  130. package/dist/transactions/marginTPSL.d.mts +100 -0
  131. package/dist/transactions/marginTPSL.d.mts.map +1 -0
  132. package/dist/transactions/marginTPSL.mjs +175 -0
  133. package/dist/transactions/marginTPSL.mjs.map +1 -0
  134. package/dist/transactions/poolProxy.d.mts +123 -0
  135. package/dist/transactions/poolProxy.d.mts.map +1 -0
  136. package/dist/transactions/poolProxy.mjs +336 -0
  137. package/dist/transactions/poolProxy.mjs.map +1 -0
  138. package/dist/types/bcs.d.mts +5 -0
  139. package/dist/types/bcs.mjs +7 -0
  140. package/dist/types/index.d.mts +237 -0
  141. package/dist/types/index.d.mts.map +1 -0
  142. package/dist/types/index.mjs +18 -0
  143. package/dist/types/index.mjs.map +1 -0
  144. package/dist/utils/config.d.mts +82 -0
  145. package/dist/utils/config.d.mts.map +1 -0
  146. package/dist/utils/config.mjs +88 -0
  147. package/dist/utils/config.mjs.map +1 -0
  148. package/dist/utils/constants.d.mts +85 -0
  149. package/dist/utils/constants.d.mts.map +1 -0
  150. package/dist/utils/constants.mjs +384 -0
  151. package/dist/utils/constants.mjs.map +1 -0
  152. package/dist/utils/errors.d.mts +46 -0
  153. package/dist/utils/errors.d.mts.map +1 -0
  154. package/dist/utils/errors.mjs +59 -0
  155. package/dist/utils/errors.mjs.map +1 -0
  156. package/dist/{cjs/utils/validation.d.ts → utils/validation.d.mts} +11 -7
  157. package/dist/utils/validation.d.mts.map +1 -0
  158. package/dist/utils/validation.mjs +76 -0
  159. package/dist/utils/validation.mjs.map +1 -0
  160. package/package.json +29 -26
  161. package/src/client.ts +1016 -545
  162. package/src/contracts/deepbook/account.ts +15 -15
  163. package/src/contracts/deepbook/balance_manager.ts +343 -57
  164. package/src/contracts/deepbook/balances.ts +3 -2
  165. package/src/contracts/deepbook/big_vector.ts +6 -7
  166. package/src/contracts/deepbook/book.ts +3 -2
  167. package/src/contracts/deepbook/constants.ts +95 -3
  168. package/src/contracts/deepbook/deep_price.ts +7 -7
  169. package/src/contracts/deepbook/deps/{sui → haneul}/bag.ts +8 -8
  170. package/src/contracts/deepbook/deps/{sui → haneul}/balance.ts +4 -3
  171. package/src/contracts/deepbook/deps/{sui → haneul}/table.ts +6 -6
  172. package/src/contracts/deepbook/deps/{sui → haneul}/vec_map.ts +4 -4
  173. package/src/contracts/deepbook/deps/{sui → haneul}/vec_set.ts +4 -4
  174. package/src/contracts/deepbook/deps/{sui → haneul}/versioned.ts +4 -4
  175. package/src/contracts/deepbook/deps/std/type_name.ts +3 -2
  176. package/src/contracts/deepbook/ewma.ts +14 -3
  177. package/src/contracts/deepbook/fill.ts +21 -21
  178. package/src/contracts/deepbook/governance.ts +4 -3
  179. package/src/contracts/deepbook/history.ts +4 -3
  180. package/src/contracts/deepbook/math.ts +15 -15
  181. package/src/contracts/deepbook/order.ts +16 -16
  182. package/src/contracts/deepbook/order_info.ts +39 -27
  183. package/src/contracts/deepbook/order_query.ts +12 -12
  184. package/src/contracts/deepbook/pool.ts +883 -526
  185. package/src/contracts/deepbook/registry.ts +149 -38
  186. package/src/contracts/deepbook/state.ts +14 -3
  187. package/src/contracts/deepbook/trade_params.ts +3 -2
  188. package/src/contracts/deepbook/vault.ts +5 -4
  189. package/src/contracts/pyth/batch_price_attestation.ts +92 -0
  190. package/src/contracts/pyth/contract_upgrade.ts +54 -0
  191. package/src/contracts/pyth/data_source.ts +64 -0
  192. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  193. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  194. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.ts +12 -0
  195. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.ts +13 -0
  196. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.ts +13 -0
  197. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.ts +12 -0
  198. package/src/contracts/pyth/deserialize.ts +117 -0
  199. package/src/contracts/pyth/event.ts +20 -0
  200. package/src/contracts/pyth/governance.ts +113 -0
  201. package/src/contracts/pyth/governance_action.ts +130 -0
  202. package/src/contracts/pyth/governance_instruction.ts +98 -0
  203. package/src/contracts/pyth/hot_potato_vector.ts +70 -0
  204. package/src/contracts/pyth/i64.ts +94 -0
  205. package/src/contracts/pyth/merkle_tree.ts +41 -0
  206. package/src/contracts/pyth/migrate.ts +29 -0
  207. package/src/contracts/pyth/price.ts +102 -0
  208. package/src/contracts/pyth/price_feed.ts +101 -0
  209. package/src/contracts/pyth/price_identifier.ts +46 -0
  210. package/src/contracts/pyth/price_info.ts +220 -0
  211. package/src/contracts/pyth/price_status.ts +74 -0
  212. package/src/contracts/pyth/pyth.ts +236 -0
  213. package/src/contracts/pyth/set.ts +93 -0
  214. package/src/contracts/pyth/set_data_sources.ts +14 -0
  215. package/src/contracts/pyth/set_fee_recipient.ts +13 -0
  216. package/src/contracts/pyth/set_governance_data_source.ts +16 -0
  217. package/src/contracts/pyth/set_stale_price_threshold.ts +13 -0
  218. package/src/contracts/pyth/set_update_fee.ts +14 -0
  219. package/src/contracts/pyth/setup.ts +12 -0
  220. package/src/contracts/pyth/state.ts +227 -0
  221. package/src/contracts/pyth/version_control.ts +25 -0
  222. package/src/contracts/utils/index.ts +100 -50
  223. package/src/contracts/wormhole/bytes32.ts +12 -0
  224. package/src/contracts/wormhole/consumed_vaas.ts +13 -0
  225. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts +12 -0
  226. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  227. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  228. package/src/contracts/wormhole/external_address.ts +13 -0
  229. package/src/contracts/wormhole/fee_collector.ts +15 -0
  230. package/src/contracts/wormhole/set.ts +12 -0
  231. package/src/contracts/wormhole/state.ts +25 -0
  232. package/src/index.ts +17 -3
  233. package/src/pyth/pyth.ts +51 -50
  234. package/src/transactions/deepbook.ts +31 -12
  235. package/src/transactions/deepbookAdmin.ts +3 -3
  236. package/src/transactions/marginAdmin.ts +11 -8
  237. package/src/transactions/marginMaintainer.ts +23 -12
  238. package/src/transactions/marginManager.ts +104 -28
  239. package/src/transactions/marginPool.ts +5 -6
  240. package/src/transactions/marginTPSL.ts +5 -5
  241. package/src/transactions/poolProxy.ts +50 -0
  242. package/src/types/bcs.ts +1 -1
  243. package/src/types/index.ts +19 -2
  244. package/src/utils/config.ts +12 -14
  245. package/src/utils/constants.ts +44 -12
  246. package/src/utils/validation.ts +1 -1
  247. package/dist/cjs/client.d.ts +0 -861
  248. package/dist/cjs/client.js +0 -1982
  249. package/dist/cjs/client.js.map +0 -7
  250. package/dist/cjs/contracts/deepbook/account.d.ts +0 -105
  251. package/dist/cjs/contracts/deepbook/account.js +0 -163
  252. package/dist/cjs/contracts/deepbook/account.js.map +0 -7
  253. package/dist/cjs/contracts/deepbook/balance_manager.d.ts +0 -268
  254. package/dist/cjs/contracts/deepbook/balance_manager.js +0 -361
  255. package/dist/cjs/contracts/deepbook/balance_manager.js.map +0 -7
  256. package/dist/cjs/contracts/deepbook/balances.d.ts +0 -10
  257. package/dist/cjs/contracts/deepbook/balances.js +0 -35
  258. package/dist/cjs/contracts/deepbook/balances.js.map +0 -7
  259. package/dist/cjs/contracts/deepbook/big_vector.d.ts +0 -62
  260. package/dist/cjs/contracts/deepbook/big_vector.js +0 -80
  261. package/dist/cjs/contracts/deepbook/big_vector.js.map +0 -7
  262. package/dist/cjs/contracts/deepbook/book.d.ts +0 -34
  263. package/dist/cjs/contracts/deepbook/book.js +0 -50
  264. package/dist/cjs/contracts/deepbook/book.js.map +0 -7
  265. package/dist/cjs/contracts/deepbook/constants.d.ts +0 -176
  266. package/dist/cjs/contracts/deepbook/constants.js +0 -338
  267. package/dist/cjs/contracts/deepbook/constants.js.map +0 -7
  268. package/dist/cjs/contracts/deepbook/deep_price.d.ts +0 -60
  269. package/dist/cjs/contracts/deepbook/deep_price.js +0 -87
  270. package/dist/cjs/contracts/deepbook/deep_price.js.map +0 -7
  271. package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +0 -14
  272. package/dist/cjs/contracts/deepbook/deps/std/type_name.js +0 -42
  273. package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +0 -7
  274. package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +0 -33
  275. package/dist/cjs/contracts/deepbook/deps/sui/bag.js +0 -47
  276. package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +0 -7
  277. package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +0 -9
  278. package/dist/cjs/contracts/deepbook/deps/sui/balance.js +0 -33
  279. package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +0 -7
  280. package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +0 -5
  281. package/dist/cjs/contracts/deepbook/deps/sui/object.js +0 -33
  282. package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +0 -7
  283. package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +0 -28
  284. package/dist/cjs/contracts/deepbook/deps/sui/table.js +0 -47
  285. package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +0 -7
  286. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
  287. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +0 -45
  288. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
  289. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
  290. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +0 -35
  291. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
  292. package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
  293. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +0 -45
  294. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +0 -7
  295. package/dist/cjs/contracts/deepbook/ewma.d.ts +0 -17
  296. package/dist/cjs/contracts/deepbook/ewma.js +0 -39
  297. package/dist/cjs/contracts/deepbook/ewma.js.map +0 -7
  298. package/dist/cjs/contracts/deepbook/fill.d.ts +0 -153
  299. package/dist/cjs/contracts/deepbook/fill.js +0 -251
  300. package/dist/cjs/contracts/deepbook/fill.js.map +0 -7
  301. package/dist/cjs/contracts/deepbook/governance.d.ts +0 -63
  302. package/dist/cjs/contracts/deepbook/governance.js +0 -79
  303. package/dist/cjs/contracts/deepbook/governance.js.map +0 -7
  304. package/dist/cjs/contracts/deepbook/history.d.ts +0 -60
  305. package/dist/cjs/contracts/deepbook/history.js +0 -78
  306. package/dist/cjs/contracts/deepbook/history.js.map +0 -7
  307. package/dist/cjs/contracts/deepbook/math.d.ts +0 -94
  308. package/dist/cjs/contracts/deepbook/math.js +0 -132
  309. package/dist/cjs/contracts/deepbook/math.js.map +0 -7
  310. package/dist/cjs/contracts/deepbook/order.d.ts +0 -135
  311. package/dist/cjs/contracts/deepbook/order.js +0 -218
  312. package/dist/cjs/contracts/deepbook/order.js.map +0 -7
  313. package/dist/cjs/contracts/deepbook/order_info.d.ts +0 -296
  314. package/dist/cjs/contracts/deepbook/order_info.js +0 -386
  315. package/dist/cjs/contracts/deepbook/order_info.js.map +0 -7
  316. package/dist/cjs/contracts/deepbook/order_query.d.ts +0 -85
  317. package/dist/cjs/contracts/deepbook/order_query.js +0 -96
  318. package/dist/cjs/contracts/deepbook/order_query.js.map +0 -7
  319. package/dist/cjs/contracts/deepbook/pool.d.ts +0 -1218
  320. package/dist/cjs/contracts/deepbook/pool.js +0 -1236
  321. package/dist/cjs/contracts/deepbook/pool.js.map +0 -7
  322. package/dist/cjs/contracts/deepbook/registry.d.ts +0 -134
  323. package/dist/cjs/contracts/deepbook/registry.js +0 -182
  324. package/dist/cjs/contracts/deepbook/registry.js.map +0 -7
  325. package/dist/cjs/contracts/deepbook/state.d.ts +0 -117
  326. package/dist/cjs/contracts/deepbook/state.js +0 -104
  327. package/dist/cjs/contracts/deepbook/state.js.map +0 -7
  328. package/dist/cjs/contracts/deepbook/trade_params.d.ts +0 -7
  329. package/dist/cjs/contracts/deepbook/trade_params.js +0 -35
  330. package/dist/cjs/contracts/deepbook/trade_params.js.map +0 -7
  331. package/dist/cjs/contracts/deepbook/vault.d.ts +0 -30
  332. package/dist/cjs/contracts/deepbook/vault.js +0 -65
  333. package/dist/cjs/contracts/deepbook/vault.js.map +0 -7
  334. package/dist/cjs/contracts/utils/index.d.ts +0 -25
  335. package/dist/cjs/contracts/utils/index.js +0 -148
  336. package/dist/cjs/contracts/utils/index.js.map +0 -7
  337. package/dist/cjs/index.d.ts +0 -23
  338. package/dist/cjs/index.js +0 -81
  339. package/dist/cjs/index.js.map +0 -7
  340. package/dist/cjs/package.json +0 -4
  341. package/dist/cjs/pyth/PriceServiceConnection.d.ts +0 -26
  342. package/dist/cjs/pyth/PriceServiceConnection.js +0 -68
  343. package/dist/cjs/pyth/PriceServiceConnection.js.map +0 -7
  344. package/dist/cjs/pyth/pyth-helpers.d.ts +0 -7
  345. package/dist/cjs/pyth/pyth-helpers.js +0 -36
  346. package/dist/cjs/pyth/pyth-helpers.js.map +0 -7
  347. package/dist/cjs/pyth/pyth.d.ts +0 -65
  348. package/dist/cjs/pyth/pyth.js +0 -269
  349. package/dist/cjs/pyth/pyth.js.map +0 -7
  350. package/dist/cjs/transactions/balanceManager.d.ts +0 -168
  351. package/dist/cjs/transactions/balanceManager.js +0 -384
  352. package/dist/cjs/transactions/balanceManager.js.map +0 -7
  353. package/dist/cjs/transactions/deepbook.d.ts +0 -477
  354. package/dist/cjs/transactions/deepbook.js +0 -1335
  355. package/dist/cjs/transactions/deepbook.js.map +0 -7
  356. package/dist/cjs/transactions/deepbookAdmin.d.ts +0 -105
  357. package/dist/cjs/transactions/deepbookAdmin.js +0 -334
  358. package/dist/cjs/transactions/deepbookAdmin.js.map +0 -7
  359. package/dist/cjs/transactions/flashLoans.d.ts +0 -56
  360. package/dist/cjs/transactions/flashLoans.js +0 -124
  361. package/dist/cjs/transactions/flashLoans.js.map +0 -7
  362. package/dist/cjs/transactions/governance.d.ts +0 -42
  363. package/dist/cjs/transactions/governance.js +0 -135
  364. package/dist/cjs/transactions/governance.js.map +0 -7
  365. package/dist/cjs/transactions/marginAdmin.d.ts +0 -133
  366. package/dist/cjs/transactions/marginAdmin.js +0 -393
  367. package/dist/cjs/transactions/marginAdmin.js.map +0 -7
  368. package/dist/cjs/transactions/marginLiquidations.d.ts +0 -61
  369. package/dist/cjs/transactions/marginLiquidations.js +0 -173
  370. package/dist/cjs/transactions/marginLiquidations.js.map +0 -7
  371. package/dist/cjs/transactions/marginMaintainer.d.ts +0 -80
  372. package/dist/cjs/transactions/marginMaintainer.js +0 -251
  373. package/dist/cjs/transactions/marginMaintainer.js.map +0 -7
  374. package/dist/cjs/transactions/marginManager.d.ts +0 -236
  375. package/dist/cjs/transactions/marginManager.js +0 -688
  376. package/dist/cjs/transactions/marginManager.js.map +0 -7
  377. package/dist/cjs/transactions/marginPool.d.ts +0 -134
  378. package/dist/cjs/transactions/marginPool.js +0 -330
  379. package/dist/cjs/transactions/marginPool.js.map +0 -7
  380. package/dist/cjs/transactions/marginRegistry.d.ts +0 -94
  381. package/dist/cjs/transactions/marginRegistry.js +0 -221
  382. package/dist/cjs/transactions/marginRegistry.js.map +0 -7
  383. package/dist/cjs/transactions/marginTPSL.d.ts +0 -93
  384. package/dist/cjs/transactions/marginTPSL.js +0 -286
  385. package/dist/cjs/transactions/marginTPSL.js.map +0 -7
  386. package/dist/cjs/transactions/poolProxy.d.ts +0 -104
  387. package/dist/cjs/transactions/poolProxy.js +0 -435
  388. package/dist/cjs/transactions/poolProxy.js.map +0 -7
  389. package/dist/cjs/types/bcs.d.ts +0 -5
  390. package/dist/cjs/types/bcs.js +0 -33
  391. package/dist/cjs/types/bcs.js.map +0 -7
  392. package/dist/cjs/types/index.d.ts +0 -218
  393. package/dist/cjs/types/index.js +0 -38
  394. package/dist/cjs/types/index.js.map +0 -7
  395. package/dist/cjs/utils/config.d.ts +0 -65
  396. package/dist/cjs/utils/config.js +0 -144
  397. package/dist/cjs/utils/config.js.map +0 -7
  398. package/dist/cjs/utils/constants.d.ts +0 -76
  399. package/dist/cjs/utils/constants.js +0 -382
  400. package/dist/cjs/utils/constants.js.map +0 -7
  401. package/dist/cjs/utils/errors.d.ts +0 -42
  402. package/dist/cjs/utils/errors.js +0 -70
  403. package/dist/cjs/utils/errors.js.map +0 -7
  404. package/dist/cjs/utils/validation.js +0 -67
  405. package/dist/cjs/utils/validation.js.map +0 -7
  406. package/dist/esm/client.d.ts +0 -861
  407. package/dist/esm/client.js +0 -1967
  408. package/dist/esm/client.js.map +0 -7
  409. package/dist/esm/contracts/deepbook/account.d.ts +0 -105
  410. package/dist/esm/contracts/deepbook/account.js +0 -133
  411. package/dist/esm/contracts/deepbook/account.js.map +0 -7
  412. package/dist/esm/contracts/deepbook/balance_manager.d.ts +0 -268
  413. package/dist/esm/contracts/deepbook/balance_manager.js +0 -331
  414. package/dist/esm/contracts/deepbook/balance_manager.js.map +0 -7
  415. package/dist/esm/contracts/deepbook/balances.d.ts +0 -10
  416. package/dist/esm/contracts/deepbook/balances.js +0 -15
  417. package/dist/esm/contracts/deepbook/balances.js.map +0 -7
  418. package/dist/esm/contracts/deepbook/big_vector.d.ts +0 -62
  419. package/dist/esm/contracts/deepbook/big_vector.js +0 -50
  420. package/dist/esm/contracts/deepbook/big_vector.js.map +0 -7
  421. package/dist/esm/contracts/deepbook/book.d.ts +0 -34
  422. package/dist/esm/contracts/deepbook/book.js +0 -20
  423. package/dist/esm/contracts/deepbook/book.js.map +0 -7
  424. package/dist/esm/contracts/deepbook/constants.d.ts +0 -176
  425. package/dist/esm/contracts/deepbook/constants.js +0 -318
  426. package/dist/esm/contracts/deepbook/constants.js.map +0 -7
  427. package/dist/esm/contracts/deepbook/deep_price.d.ts +0 -60
  428. package/dist/esm/contracts/deepbook/deep_price.js +0 -67
  429. package/dist/esm/contracts/deepbook/deep_price.js.map +0 -7
  430. package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +0 -14
  431. package/dist/esm/contracts/deepbook/deps/std/type_name.js +0 -22
  432. package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +0 -7
  433. package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +0 -33
  434. package/dist/esm/contracts/deepbook/deps/sui/bag.js +0 -17
  435. package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +0 -7
  436. package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +0 -9
  437. package/dist/esm/contracts/deepbook/deps/sui/balance.js +0 -13
  438. package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +0 -7
  439. package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +0 -5
  440. package/dist/esm/contracts/deepbook/deps/sui/object.js +0 -13
  441. package/dist/esm/contracts/deepbook/deps/sui/object.js.map +0 -7
  442. package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +0 -28
  443. package/dist/esm/contracts/deepbook/deps/sui/table.js +0 -17
  444. package/dist/esm/contracts/deepbook/deps/sui/table.js.map +0 -7
  445. package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
  446. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +0 -25
  447. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
  448. package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
  449. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +0 -15
  450. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
  451. package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
  452. package/dist/esm/contracts/deepbook/deps/sui/versioned.js +0 -15
  453. package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +0 -7
  454. package/dist/esm/contracts/deepbook/ewma.d.ts +0 -17
  455. package/dist/esm/contracts/deepbook/ewma.js +0 -19
  456. package/dist/esm/contracts/deepbook/ewma.js.map +0 -7
  457. package/dist/esm/contracts/deepbook/fill.d.ts +0 -153
  458. package/dist/esm/contracts/deepbook/fill.js +0 -221
  459. package/dist/esm/contracts/deepbook/fill.js.map +0 -7
  460. package/dist/esm/contracts/deepbook/governance.d.ts +0 -63
  461. package/dist/esm/contracts/deepbook/governance.js +0 -49
  462. package/dist/esm/contracts/deepbook/governance.js.map +0 -7
  463. package/dist/esm/contracts/deepbook/history.d.ts +0 -60
  464. package/dist/esm/contracts/deepbook/history.js +0 -48
  465. package/dist/esm/contracts/deepbook/history.js.map +0 -7
  466. package/dist/esm/contracts/deepbook/math.d.ts +0 -94
  467. package/dist/esm/contracts/deepbook/math.js +0 -112
  468. package/dist/esm/contracts/deepbook/math.js.map +0 -7
  469. package/dist/esm/contracts/deepbook/order.d.ts +0 -135
  470. package/dist/esm/contracts/deepbook/order.js +0 -188
  471. package/dist/esm/contracts/deepbook/order.js.map +0 -7
  472. package/dist/esm/contracts/deepbook/order_info.d.ts +0 -296
  473. package/dist/esm/contracts/deepbook/order_info.js +0 -356
  474. package/dist/esm/contracts/deepbook/order_info.js.map +0 -7
  475. package/dist/esm/contracts/deepbook/order_query.d.ts +0 -85
  476. package/dist/esm/contracts/deepbook/order_query.js +0 -66
  477. package/dist/esm/contracts/deepbook/order_query.js.map +0 -7
  478. package/dist/esm/contracts/deepbook/pool.d.ts +0 -1218
  479. package/dist/esm/contracts/deepbook/pool.js +0 -1206
  480. package/dist/esm/contracts/deepbook/pool.js.map +0 -7
  481. package/dist/esm/contracts/deepbook/registry.d.ts +0 -134
  482. package/dist/esm/contracts/deepbook/registry.js +0 -152
  483. package/dist/esm/contracts/deepbook/registry.js.map +0 -7
  484. package/dist/esm/contracts/deepbook/state.d.ts +0 -117
  485. package/dist/esm/contracts/deepbook/state.js +0 -74
  486. package/dist/esm/contracts/deepbook/state.js.map +0 -7
  487. package/dist/esm/contracts/deepbook/trade_params.d.ts +0 -7
  488. package/dist/esm/contracts/deepbook/trade_params.js +0 -15
  489. package/dist/esm/contracts/deepbook/trade_params.js.map +0 -7
  490. package/dist/esm/contracts/deepbook/vault.d.ts +0 -30
  491. package/dist/esm/contracts/deepbook/vault.js +0 -35
  492. package/dist/esm/contracts/deepbook/vault.js.map +0 -7
  493. package/dist/esm/contracts/utils/index.d.ts +0 -25
  494. package/dist/esm/contracts/utils/index.js +0 -128
  495. package/dist/esm/contracts/utils/index.js.map +0 -7
  496. package/dist/esm/index.d.ts +0 -23
  497. package/dist/esm/index.js +0 -81
  498. package/dist/esm/index.js.map +0 -7
  499. package/dist/esm/package.json +0 -4
  500. package/dist/esm/pyth/PriceServiceConnection.d.ts +0 -26
  501. package/dist/esm/pyth/PriceServiceConnection.js +0 -38
  502. package/dist/esm/pyth/PriceServiceConnection.js.map +0 -7
  503. package/dist/esm/pyth/pyth-helpers.d.ts +0 -7
  504. package/dist/esm/pyth/pyth-helpers.js +0 -16
  505. package/dist/esm/pyth/pyth-helpers.js.map +0 -7
  506. package/dist/esm/pyth/pyth.d.ts +0 -65
  507. package/dist/esm/pyth/pyth.js +0 -249
  508. package/dist/esm/pyth/pyth.js.map +0 -7
  509. package/dist/esm/transactions/balanceManager.d.ts +0 -168
  510. package/dist/esm/transactions/balanceManager.js +0 -364
  511. package/dist/esm/transactions/balanceManager.js.map +0 -7
  512. package/dist/esm/transactions/deepbook.d.ts +0 -477
  513. package/dist/esm/transactions/deepbook.js +0 -1321
  514. package/dist/esm/transactions/deepbook.js.map +0 -7
  515. package/dist/esm/transactions/deepbookAdmin.d.ts +0 -105
  516. package/dist/esm/transactions/deepbookAdmin.js +0 -314
  517. package/dist/esm/transactions/deepbookAdmin.js.map +0 -7
  518. package/dist/esm/transactions/flashLoans.d.ts +0 -56
  519. package/dist/esm/transactions/flashLoans.js +0 -104
  520. package/dist/esm/transactions/flashLoans.js.map +0 -7
  521. package/dist/esm/transactions/governance.d.ts +0 -42
  522. package/dist/esm/transactions/governance.js +0 -115
  523. package/dist/esm/transactions/governance.js.map +0 -7
  524. package/dist/esm/transactions/marginAdmin.d.ts +0 -133
  525. package/dist/esm/transactions/marginAdmin.js +0 -373
  526. package/dist/esm/transactions/marginAdmin.js.map +0 -7
  527. package/dist/esm/transactions/marginLiquidations.d.ts +0 -61
  528. package/dist/esm/transactions/marginLiquidations.js +0 -153
  529. package/dist/esm/transactions/marginLiquidations.js.map +0 -7
  530. package/dist/esm/transactions/marginMaintainer.d.ts +0 -80
  531. package/dist/esm/transactions/marginMaintainer.js +0 -231
  532. package/dist/esm/transactions/marginMaintainer.js.map +0 -7
  533. package/dist/esm/transactions/marginManager.d.ts +0 -236
  534. package/dist/esm/transactions/marginManager.js +0 -668
  535. package/dist/esm/transactions/marginManager.js.map +0 -7
  536. package/dist/esm/transactions/marginPool.d.ts +0 -134
  537. package/dist/esm/transactions/marginPool.js +0 -310
  538. package/dist/esm/transactions/marginPool.js.map +0 -7
  539. package/dist/esm/transactions/marginRegistry.d.ts +0 -94
  540. package/dist/esm/transactions/marginRegistry.js +0 -201
  541. package/dist/esm/transactions/marginRegistry.js.map +0 -7
  542. package/dist/esm/transactions/marginTPSL.d.ts +0 -93
  543. package/dist/esm/transactions/marginTPSL.js +0 -266
  544. package/dist/esm/transactions/marginTPSL.js.map +0 -7
  545. package/dist/esm/transactions/poolProxy.d.ts +0 -104
  546. package/dist/esm/transactions/poolProxy.js +0 -415
  547. package/dist/esm/transactions/poolProxy.js.map +0 -7
  548. package/dist/esm/types/bcs.d.ts +0 -5
  549. package/dist/esm/types/bcs.js +0 -13
  550. package/dist/esm/types/bcs.js.map +0 -7
  551. package/dist/esm/types/index.d.ts +0 -218
  552. package/dist/esm/types/index.js +0 -18
  553. package/dist/esm/types/index.js.map +0 -7
  554. package/dist/esm/utils/config.d.ts +0 -65
  555. package/dist/esm/utils/config.js +0 -135
  556. package/dist/esm/utils/config.js.map +0 -7
  557. package/dist/esm/utils/constants.d.ts +0 -76
  558. package/dist/esm/utils/constants.js +0 -362
  559. package/dist/esm/utils/constants.js.map +0 -7
  560. package/dist/esm/utils/errors.d.ts +0 -42
  561. package/dist/esm/utils/errors.js +0 -50
  562. package/dist/esm/utils/errors.js.map +0 -7
  563. package/dist/esm/utils/validation.d.ts +0 -50
  564. package/dist/esm/utils/validation.js +0 -47
  565. package/dist/esm/utils/validation.js.map +0 -7
  566. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  567. package/dist/tsconfig.tsbuildinfo +0 -1
  568. package/src/contracts/deepbook/deps/sui/object.ts +0 -14
@@ -281,6 +281,25 @@ export class DeepBookContract {
281
281
  });
282
282
  };
283
283
 
284
+ /**
285
+ * @description Withdraw settled amounts permissionlessly for a balance manager by ID
286
+ * @param {string} poolKey The key to identify the pool
287
+ * @param {string} balanceManagerId The object ID of the BalanceManager
288
+ * @returns A function that takes a Transaction object
289
+ */
290
+ withdrawSettledAmountsManagerID =
291
+ (poolKey: string, balanceManagerId: string) => (tx: Transaction) => {
292
+ const pool = this.#config.getPool(poolKey);
293
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
294
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
295
+
296
+ tx.moveCall({
297
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::withdraw_settled_amounts_permissionless`,
298
+ arguments: [tx.object(pool.address), tx.object(balanceManagerId)],
299
+ typeArguments: [baseCoin.type, quoteCoin.type],
300
+ });
301
+ };
302
+
284
303
  /**
285
304
  * @description Add a deep price point for a target pool using a reference pool
286
305
  * @param {string} targetPoolKey The key to identify the target pool
@@ -506,7 +525,7 @@ export class DeepBookContract {
506
525
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quote_quantity_out`,
507
526
  arguments: [
508
527
  tx.object(pool.address),
509
- tx.pure.u64(baseQuantity * baseCoin.scalar),
528
+ tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
510
529
  tx.object.clock(),
511
530
  ],
512
531
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -529,7 +548,7 @@ export class DeepBookContract {
529
548
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_base_quantity_out`,
530
549
  arguments: [
531
550
  tx.object(pool.address),
532
- tx.pure.u64(quoteQuantity * quoteScalar),
551
+ tx.pure.u64(Math.round(quoteQuantity * quoteScalar)),
533
552
  tx.object.clock(),
534
553
  ],
535
554
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -554,8 +573,8 @@ export class DeepBookContract {
554
573
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quantity_out`,
555
574
  arguments: [
556
575
  tx.object(pool.address),
557
- tx.pure.u64(baseQuantity * baseCoin.scalar),
558
- tx.pure.u64(quoteQuantity * quoteScalar),
576
+ tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
577
+ tx.pure.u64(Math.round(quoteQuantity * quoteScalar)),
559
578
  tx.object.clock(),
560
579
  ],
561
580
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -599,8 +618,8 @@ export class DeepBookContract {
599
618
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_level2_range`,
600
619
  arguments: [
601
620
  tx.object(pool.address),
602
- tx.pure.u64((priceLow * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar),
603
- tx.pure.u64((priceHigh * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar),
621
+ tx.pure.u64(Math.round((priceLow * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar)),
622
+ tx.pure.u64(Math.round((priceHigh * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar)),
604
623
  tx.pure.bool(isBid),
605
624
  tx.object.clock(),
606
625
  ],
@@ -1193,7 +1212,7 @@ export class DeepBookContract {
1193
1212
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quote_quantity_out_input_fee`,
1194
1213
  arguments: [
1195
1214
  tx.object(pool.address),
1196
- tx.pure.u64(baseQuantity * baseCoin.scalar),
1215
+ tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
1197
1216
  tx.object.clock(),
1198
1217
  ],
1199
1218
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -1215,7 +1234,7 @@ export class DeepBookContract {
1215
1234
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_base_quantity_out_input_fee`,
1216
1235
  arguments: [
1217
1236
  tx.object(pool.address),
1218
- tx.pure.u64(quoteQuantity * quoteCoin.scalar),
1237
+ tx.pure.u64(Math.round(quoteQuantity * quoteCoin.scalar)),
1219
1238
  tx.object.clock(),
1220
1239
  ],
1221
1240
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -1239,8 +1258,8 @@ export class DeepBookContract {
1239
1258
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quantity_out_input_fee`,
1240
1259
  arguments: [
1241
1260
  tx.object(pool.address),
1242
- tx.pure.u64(baseQuantity * baseCoin.scalar),
1243
- tx.pure.u64(quoteQuantity * quoteCoin.scalar),
1261
+ tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
1262
+ tx.pure.u64(Math.round(quoteQuantity * quoteCoin.scalar)),
1244
1263
  tx.object.clock(),
1245
1264
  ],
1246
1265
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -1264,7 +1283,7 @@ export class DeepBookContract {
1264
1283
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_base_quantity_in`,
1265
1284
  arguments: [
1266
1285
  tx.object(pool.address),
1267
- tx.pure.u64(targetQuoteQuantity * quoteCoin.scalar),
1286
+ tx.pure.u64(Math.round(targetQuoteQuantity * quoteCoin.scalar)),
1268
1287
  tx.pure.bool(payWithDeep),
1269
1288
  tx.object.clock(),
1270
1289
  ],
@@ -1289,7 +1308,7 @@ export class DeepBookContract {
1289
1308
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quote_quantity_in`,
1290
1309
  arguments: [
1291
1310
  tx.object(pool.address),
1292
- tx.pure.u64(targetBaseQuantity * baseCoin.scalar),
1311
+ tx.pure.u64(Math.round(targetBaseQuantity * baseCoin.scalar)),
1293
1312
  tx.pure.bool(payWithDeep),
1294
1313
  tx.object.clock(),
1295
1314
  ],
@@ -197,7 +197,7 @@ export class DeepBookAdminContract {
197
197
  const baseScalar = baseCoin.scalar;
198
198
  const quoteScalar = quoteCoin.scalar;
199
199
 
200
- const adjustedTickSize = (newTickSize * FLOAT_SCALAR * quoteScalar) / baseScalar;
200
+ const adjustedTickSize = Math.round((newTickSize * FLOAT_SCALAR * quoteScalar) / baseScalar);
201
201
 
202
202
  tx.moveCall({
203
203
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::adjust_tick_size_admin`,
@@ -227,8 +227,8 @@ export class DeepBookAdminContract {
227
227
 
228
228
  const baseScalar = baseCoin.scalar;
229
229
 
230
- const adjustedLotSize = newLotSize * baseScalar;
231
- const adjustedMinSize = newMinSize * baseScalar;
230
+ const adjustedLotSize = Math.round(newLotSize * baseScalar);
231
+ const adjustedMinSize = Math.round(newMinSize * baseScalar);
232
232
 
233
233
  tx.moveCall({
234
234
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::adjust_min_lot_size_admin`,
@@ -7,7 +7,7 @@ import type { DeepBookConfig } from '../utils/config.js';
7
7
  import type { TransactionArgument } from '@haneullabs/haneul/transactions';
8
8
  import type { PoolConfigParams } from '../types/index.js';
9
9
  import { FLOAT_SCALAR } from '../utils/config.js';
10
- import { hexToBytes } from '@noble/hashes/utils';
10
+ import { hexToBytes } from '@noble/hashes/utils.js';
11
11
 
12
12
  /**
13
13
  * MarginAdminContract class for managing admin actions.
@@ -239,12 +239,12 @@ export class MarginAdminContract {
239
239
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config`,
240
240
  arguments: [
241
241
  tx.object(this.#config.MARGIN_REGISTRY_ID),
242
- tx.pure.u64(minWithdrawRiskRatio * FLOAT_SCALAR),
243
- tx.pure.u64(minBorrowRiskRatio * FLOAT_SCALAR),
244
- tx.pure.u64(liquidationRiskRatio * FLOAT_SCALAR),
245
- tx.pure.u64(targetLiquidationRiskRatio * FLOAT_SCALAR),
246
- tx.pure.u64(userLiquidationReward * FLOAT_SCALAR),
247
- tx.pure.u64(poolLiquidationReward * FLOAT_SCALAR),
242
+ tx.pure.u64(Math.round(minWithdrawRiskRatio * FLOAT_SCALAR)),
243
+ tx.pure.u64(Math.round(minBorrowRiskRatio * FLOAT_SCALAR)),
244
+ tx.pure.u64(Math.round(liquidationRiskRatio * FLOAT_SCALAR)),
245
+ tx.pure.u64(Math.round(targetLiquidationRiskRatio * FLOAT_SCALAR)),
246
+ tx.pure.u64(Math.round(userLiquidationReward * FLOAT_SCALAR)),
247
+ tx.pure.u64(Math.round(poolLiquidationReward * FLOAT_SCALAR)),
248
248
  ],
249
249
  typeArguments: [baseCoin.type, quoteCoin.type],
250
250
  });
@@ -262,7 +262,10 @@ export class MarginAdminContract {
262
262
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
263
263
  tx.moveCall({
264
264
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config_with_leverage`,
265
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.u64(leverage * FLOAT_SCALAR)],
265
+ arguments: [
266
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
267
+ tx.pure.u64(Math.round(leverage * FLOAT_SCALAR)),
268
+ ],
266
269
  typeArguments: [baseCoin.type, quoteCoin.type],
267
270
  });
268
271
  };
@@ -102,9 +102,9 @@ export class MarginMaintainerContract {
102
102
  return tx.moveCall({
103
103
  target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config`,
104
104
  arguments: [
105
- tx.pure.u64(supplyCap * coin.scalar),
106
- tx.pure.u64(maxUtilizationRate * FLOAT_SCALAR),
107
- tx.pure.u64(referralSpread * FLOAT_SCALAR),
105
+ tx.pure.u64(Math.round(supplyCap * coin.scalar)),
106
+ tx.pure.u64(Math.round(maxUtilizationRate * FLOAT_SCALAR)),
107
+ tx.pure.u64(Math.round(referralSpread * FLOAT_SCALAR)),
108
108
  tx.pure.u64(Math.round(minBorrow * coin.scalar)),
109
109
  ],
110
110
  });
@@ -141,9 +141,9 @@ export class MarginMaintainerContract {
141
141
  return tx.moveCall({
142
142
  target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config_with_rate_limit`,
143
143
  arguments: [
144
- tx.pure.u64(supplyCap * coin.scalar),
145
- tx.pure.u64(maxUtilizationRate * FLOAT_SCALAR),
146
- tx.pure.u64(referralSpread * FLOAT_SCALAR),
144
+ tx.pure.u64(Math.round(supplyCap * coin.scalar)),
145
+ tx.pure.u64(Math.round(maxUtilizationRate * FLOAT_SCALAR)),
146
+ tx.pure.u64(Math.round(referralSpread * FLOAT_SCALAR)),
147
147
  tx.pure.u64(Math.round(minBorrow * coin.scalar)),
148
148
  tx.pure.u64(Math.round(rateLimitCapacity * coin.scalar)),
149
149
  tx.pure.u64(Math.round(rateLimitRefillRatePerMs * coin.scalar)),
@@ -162,10 +162,10 @@ export class MarginMaintainerContract {
162
162
  return tx.moveCall({
163
163
  target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_interest_config`,
164
164
  arguments: [
165
- tx.pure.u64(baseRate * FLOAT_SCALAR),
166
- tx.pure.u64(baseSlope * FLOAT_SCALAR),
167
- tx.pure.u64(optimalUtilization * FLOAT_SCALAR),
168
- tx.pure.u64(excessSlope * FLOAT_SCALAR),
165
+ tx.pure.u64(Math.round(baseRate * FLOAT_SCALAR)),
166
+ tx.pure.u64(Math.round(baseSlope * FLOAT_SCALAR)),
167
+ tx.pure.u64(Math.round(optimalUtilization * FLOAT_SCALAR)),
168
+ tx.pure.u64(Math.round(excessSlope * FLOAT_SCALAR)),
169
169
  ],
170
170
  });
171
171
  };
@@ -253,7 +253,7 @@ export class MarginMaintainerContract {
253
253
  * @description Update the margin pool config
254
254
  * @param {string} coinKey The key to identify the margin pool
255
255
  * @param {TransactionObjectArgument} marginPoolCap The margin pool cap
256
- * @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool
256
+ * @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool (with optional rate limit)
257
257
  * @returns A function that takes a Transaction object
258
258
  */
259
259
  updateMarginPoolConfig =
@@ -264,7 +264,18 @@ export class MarginMaintainerContract {
264
264
  ) =>
265
265
  (tx: Transaction) => {
266
266
  const marginPool = this.#config.getMarginPool(coinKey);
267
- const marginPoolConfigObject = this.newMarginPoolConfig(coinKey, marginPoolConfig)(tx);
267
+ const hasRateLimit =
268
+ marginPoolConfig.rateLimitCapacity !== undefined &&
269
+ marginPoolConfig.rateLimitRefillRatePerMs !== undefined &&
270
+ marginPoolConfig.rateLimitEnabled !== undefined;
271
+ const marginPoolConfigObject = hasRateLimit
272
+ ? this.newMarginPoolConfigWithRateLimit(coinKey, {
273
+ ...marginPoolConfig,
274
+ rateLimitCapacity: marginPoolConfig.rateLimitCapacity!,
275
+ rateLimitRefillRatePerMs: marginPoolConfig.rateLimitRefillRatePerMs!,
276
+ rateLimitEnabled: marginPoolConfig.rateLimitEnabled!,
277
+ })(tx)
278
+ : this.newMarginPoolConfig(coinKey, marginPoolConfig)(tx);
268
279
  tx.moveCall({
269
280
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::update_margin_pool_config`,
270
281
  arguments: [
@@ -4,6 +4,7 @@ import type { Transaction, TransactionArgument } from '@haneullabs/haneul/transa
4
4
  import { coinWithBalance } from '@haneullabs/haneul/transactions';
5
5
 
6
6
  import type { DeepBookConfig } from '../utils/config.js';
7
+ import type { DepositParams, DepositDuringInitParams } from '../types/index.js';
7
8
 
8
9
  /**
9
10
  * MarginManagerContract class for managing MarginManager operations.
@@ -81,21 +82,62 @@ export class MarginManagerContract {
81
82
  });
82
83
  };
83
84
 
85
+ /**
86
+ * @description Deposit into a margin manager during initialization (before sharing).
87
+ * Use this when you need to deposit funds into a newly created manager in the same transaction.
88
+ * @param {DepositDuringInitParams} params The deposit parameters
89
+ * @returns A function that takes a Transaction object
90
+ */
91
+ depositDuringInitialization = (params: DepositDuringInitParams) => (tx: Transaction) => {
92
+ const { manager, poolKey, coinType } = params;
93
+ const pool = this.#config.getPool(poolKey);
94
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
95
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
96
+
97
+ // Get the deposit coin from config using the coinType key (e.g., 'HANEUL', 'DBUSDC', 'DEEP')
98
+ const depositCoin = this.#config.getCoin(coinType);
99
+
100
+ // If amount is provided, create a coin with balance; otherwise use the provided coin
101
+ const coin =
102
+ 'amount' in params && params.amount !== undefined
103
+ ? coinWithBalance({
104
+ type: depositCoin.type,
105
+ balance: Math.round(params.amount * depositCoin.scalar),
106
+ })
107
+ : params.coin;
108
+
109
+ tx.moveCall({
110
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
111
+ arguments: [
112
+ manager,
113
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
114
+ tx.object(baseCoin.priceInfoObjectId!),
115
+ tx.object(quoteCoin.priceInfoObjectId!),
116
+ coin,
117
+ tx.object.clock(),
118
+ ],
119
+ typeArguments: [baseCoin.type, quoteCoin.type, depositCoin.type],
120
+ });
121
+ };
122
+
84
123
  /**
85
124
  * @description Deposit base into a margin manager
86
- * @param {string} managerKey The key to identify the manager
87
- * @param {number} amount The amount to deposit
125
+ * @param {DepositParams} params The deposit parameters
88
126
  * @returns A function that takes a Transaction object
89
127
  */
90
- depositBase = (managerKey: string, amount: number) => (tx: Transaction) => {
128
+ depositBase = (params: DepositParams) => (tx: Transaction) => {
129
+ const { managerKey } = params;
91
130
  const manager = this.#config.getMarginManager(managerKey);
92
131
  const pool = this.#config.getPool(manager.poolKey);
93
132
  const baseCoin = this.#config.getCoin(pool.baseCoin);
94
133
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
95
- const coin = coinWithBalance({
96
- type: baseCoin.type,
97
- balance: amount * baseCoin.scalar,
98
- });
134
+ const coin =
135
+ 'amount' in params && params.amount !== undefined
136
+ ? coinWithBalance({
137
+ type: baseCoin.type,
138
+ balance: Math.round(params.amount * baseCoin.scalar),
139
+ })
140
+ : params.coin;
99
141
  tx.moveCall({
100
142
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
101
143
  arguments: [
@@ -112,19 +154,22 @@ export class MarginManagerContract {
112
154
 
113
155
  /**
114
156
  * @description Deposit quote into a margin manager
115
- * @param {string} managerKey The key to identify the manager
116
- * @param {number} amount The amount to deposit
157
+ * @param {DepositParams} params The deposit parameters
117
158
  * @returns A function that takes a Transaction object
118
159
  */
119
- depositQuote = (managerKey: string, amount: number) => (tx: Transaction) => {
160
+ depositQuote = (params: DepositParams) => (tx: Transaction) => {
161
+ const { managerKey } = params;
120
162
  const manager = this.#config.getMarginManager(managerKey);
121
163
  const pool = this.#config.getPool(manager.poolKey);
122
164
  const baseCoin = this.#config.getCoin(pool.baseCoin);
123
165
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
124
- const coin = coinWithBalance({
125
- type: quoteCoin.type,
126
- balance: amount * quoteCoin.scalar,
127
- });
166
+ const coin =
167
+ 'amount' in params && params.amount !== undefined
168
+ ? coinWithBalance({
169
+ type: quoteCoin.type,
170
+ balance: Math.round(params.amount * quoteCoin.scalar),
171
+ })
172
+ : params.coin;
128
173
  tx.moveCall({
129
174
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
130
175
  arguments: [
@@ -141,20 +186,23 @@ export class MarginManagerContract {
141
186
 
142
187
  /**
143
188
  * @description Deposit deep into a margin manager
144
- * @param {string} managerKey The key to identify the manager
145
- * @param {number} amount The amount to deposit
189
+ * @param {DepositParams} params The deposit parameters
146
190
  * @returns A function that takes a Transaction object
147
191
  */
148
- depositDeep = (managerKey: string, amount: number) => (tx: Transaction) => {
192
+ depositDeep = (params: DepositParams) => (tx: Transaction) => {
193
+ const { managerKey } = params;
149
194
  const manager = this.#config.getMarginManager(managerKey);
150
195
  const pool = this.#config.getPool(manager.poolKey);
151
196
  const baseCoin = this.#config.getCoin(pool.baseCoin);
152
197
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
153
198
  const deepCoin = this.#config.getCoin('DEEP');
154
- const coin = coinWithBalance({
155
- type: deepCoin.type,
156
- balance: amount * deepCoin.scalar,
157
- });
199
+ const coin =
200
+ 'amount' in params && params.amount !== undefined
201
+ ? coinWithBalance({
202
+ type: deepCoin.type,
203
+ balance: Math.round(params.amount * deepCoin.scalar),
204
+ })
205
+ : params.coin;
158
206
  tx.moveCall({
159
207
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
160
208
  arguments: [
@@ -192,7 +240,7 @@ export class MarginManagerContract {
192
240
  tx.object(baseCoin.priceInfoObjectId!),
193
241
  tx.object(quoteCoin.priceInfoObjectId!),
194
242
  tx.object(pool.address),
195
- tx.pure.u64(amount * baseCoin.scalar),
243
+ tx.pure.u64(Math.round(amount * baseCoin.scalar)),
196
244
  tx.object.clock(),
197
245
  ],
198
246
  typeArguments: [baseCoin.type, quoteCoin.type, baseCoin.type],
@@ -222,7 +270,7 @@ export class MarginManagerContract {
222
270
  tx.object(baseCoin.priceInfoObjectId!),
223
271
  tx.object(quoteCoin.priceInfoObjectId!),
224
272
  tx.object(pool.address),
225
- tx.pure.u64(amount * quoteCoin.scalar),
273
+ tx.pure.u64(Math.round(amount * quoteCoin.scalar)),
226
274
  tx.object.clock(),
227
275
  ],
228
276
  typeArguments: [baseCoin.type, quoteCoin.type, quoteCoin.type],
@@ -253,7 +301,7 @@ export class MarginManagerContract {
253
301
  tx.object(baseCoin.priceInfoObjectId!),
254
302
  tx.object(quoteCoin.priceInfoObjectId!),
255
303
  tx.object(pool.address),
256
- tx.pure.u64(amount * deepCoin.scalar),
304
+ tx.pure.u64(Math.round(amount * deepCoin.scalar)),
257
305
  tx.object.clock(),
258
306
  ],
259
307
  typeArguments: [baseCoin.type, quoteCoin.type, deepCoin.type],
@@ -281,7 +329,7 @@ export class MarginManagerContract {
281
329
  tx.object(baseCoin.priceInfoObjectId!),
282
330
  tx.object(quoteCoin.priceInfoObjectId!),
283
331
  tx.object(pool.address),
284
- tx.pure.u64(amount * baseCoin.scalar),
332
+ tx.pure.u64(Math.round(amount * baseCoin.scalar)),
285
333
  tx.object.clock(),
286
334
  ],
287
335
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -309,7 +357,7 @@ export class MarginManagerContract {
309
357
  tx.object(baseCoin.priceInfoObjectId!),
310
358
  tx.object(quoteCoin.priceInfoObjectId!),
311
359
  tx.object(pool.address),
312
- tx.pure.u64(amount * quoteCoin.scalar),
360
+ tx.pure.u64(Math.round(amount * quoteCoin.scalar)),
313
361
  tx.object.clock(),
314
362
  ],
315
363
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -336,7 +384,7 @@ export class MarginManagerContract {
336
384
  tx.object(baseMarginPool.address),
337
385
  tx.object.option({
338
386
  type: 'u64',
339
- value: amount ? tx.pure.u64(amount * baseCoin.scalar) : null,
387
+ value: amount ? tx.pure.u64(Math.round(amount * baseCoin.scalar)) : null,
340
388
  }),
341
389
  tx.object.clock(),
342
390
  ],
@@ -364,7 +412,7 @@ export class MarginManagerContract {
364
412
  tx.object(quoteMarginPool.address),
365
413
  tx.object.option({
366
414
  type: 'u64',
367
- value: amount ? tx.pure.u64(amount * quoteCoin.scalar) : null,
415
+ value: amount ? tx.pure.u64(Math.round(amount * quoteCoin.scalar)) : null,
368
416
  }),
369
417
  tx.object.clock(),
370
418
  ],
@@ -705,4 +753,32 @@ export class MarginManagerContract {
705
753
  typeArguments: [baseCoin.type, quoteCoin.type],
706
754
  });
707
755
  };
756
+
757
+ /**
758
+ * @description Get account order details for a margin manager.
759
+ * This retrieves the balance manager from the margin manager and calls get_account_order_details.
760
+ * @param {string} poolKey The key to identify the pool
761
+ * @param {string} marginManagerId The ID of the margin manager
762
+ * @returns A function that takes a Transaction object
763
+ */
764
+ getMarginAccountOrderDetails =
765
+ (poolKey: string, marginManagerId: string) => (tx: Transaction) => {
766
+ const pool = this.#config.getPool(poolKey);
767
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
768
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
769
+
770
+ // Get the balance manager from the margin manager
771
+ const balanceManager = tx.moveCall({
772
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::balance_manager`,
773
+ arguments: [tx.object(marginManagerId)],
774
+ typeArguments: [baseCoin.type, quoteCoin.type],
775
+ });
776
+
777
+ // Call get_account_order_details with the balance manager
778
+ return tx.moveCall({
779
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_account_order_details`,
780
+ arguments: [tx.object(pool.address), balanceManager],
781
+ typeArguments: [baseCoin.type, quoteCoin.type],
782
+ });
783
+ };
708
784
  }
@@ -72,10 +72,10 @@ export class MarginPoolContract {
72
72
  };
73
73
 
74
74
  /**
75
- * @description Withdraw from a margin pool
75
+ * @description Withdraw from a margin pool. If amountToWithdraw is not provided, withdraws all.
76
76
  * @param {string} coinKey The key to identify the pool
77
77
  * @param {TransactionObjectArgument} supplierCap The supplier cap object
78
- * @param {number} amountToWithdraw The amount to withdraw
78
+ * @param {number} [amountToWithdraw] The amount to withdraw. If omitted, withdraws all.
79
79
  * @returns A function that takes a Transaction object
80
80
  */
81
81
  withdrawFromMarginPool =
@@ -83,16 +83,15 @@ export class MarginPoolContract {
83
83
  (tx: Transaction) => {
84
84
  const marginPool = this.#config.getMarginPool(coinKey);
85
85
  const coin = this.#config.getCoin(coinKey);
86
- const withdrawInput = amountToWithdraw
87
- ? tx.pure.u64(Math.round(amountToWithdraw * coin.scalar))
88
- : null;
86
+ const withdrawInput =
87
+ amountToWithdraw !== undefined ? Math.round(amountToWithdraw * coin.scalar) : null;
89
88
  return tx.moveCall({
90
89
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::withdraw`,
91
90
  arguments: [
92
91
  tx.object(marginPool.address),
93
92
  tx.object(this.#config.MARGIN_REGISTRY_ID),
94
93
  supplierCap,
95
- tx.object.option({ type: 'u64', value: withdrawInput }),
94
+ tx.pure.option('u64', withdrawInput),
96
95
  tx.object.clock(),
97
96
  ],
98
97
  typeArguments: [marginPool.type],
@@ -195,20 +195,20 @@ export class MarginTPSLContract {
195
195
  /**
196
196
  * @description Execute conditional orders that have been triggered
197
197
  * This is a permissionless function that can be called by anyone
198
- * @param {string} marginManagerKey The key to identify the margin manager
198
+ * @param {string} managerAddress The address of the margin manager
199
+ * @param {string} poolKey The key to identify the pool (e.g., 'SUI_USDC')
199
200
  * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
200
201
  * @returns A function that takes a Transaction object
201
202
  */
202
203
  executeConditionalOrders =
203
- (marginManagerKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
204
- const manager = this.#config.getMarginManager(marginManagerKey);
205
- const pool = this.#config.getPool(manager.poolKey);
204
+ (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
205
+ const pool = this.#config.getPool(poolKey);
206
206
  const baseCoin = this.#config.getCoin(pool.baseCoin);
207
207
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
208
208
  return tx.moveCall({
209
209
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::execute_conditional_orders`,
210
210
  arguments: [
211
- tx.object(manager.address),
211
+ tx.object(managerAddress),
212
212
  tx.object(pool.address),
213
213
  tx.object(baseCoin.priceInfoObjectId!),
214
214
  tx.object(quoteCoin.priceInfoObjectId!),
@@ -435,4 +435,54 @@ export class PoolProxyContract {
435
435
  typeArguments: [baseCoin.type, quoteCoin.type],
436
436
  });
437
437
  };
438
+
439
+ /**
440
+ * @description Withdraw settled amounts permissionlessly for a margin manager by ID
441
+ * @param {string} poolKey The key to identify the pool
442
+ * @param {string} marginManagerId The object ID of the MarginManager
443
+ * @returns A function that takes a Transaction object
444
+ */
445
+ withdrawMarginSettledAmounts =
446
+ (poolKey: string, marginManagerId: string) => (tx: Transaction) => {
447
+ const pool = this.#config.getPool(poolKey);
448
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
449
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
450
+ tx.moveCall({
451
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::withdraw_settled_amounts_permissionless`,
452
+ arguments: [
453
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
454
+ tx.object(marginManagerId),
455
+ tx.object(pool.address),
456
+ ],
457
+ typeArguments: [baseCoin.type, quoteCoin.type],
458
+ });
459
+ };
460
+
461
+ /**
462
+ * @description Update the current price for a pool using Pyth oracle
463
+ * @param {string} poolKey The key to identify the pool
464
+ * @returns A function that takes a Transaction object
465
+ */
466
+ updateCurrentPrice = (poolKey: string) => (tx: Transaction) => {
467
+ const pool = this.#config.getPool(poolKey);
468
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
469
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
470
+ if (!baseCoin.priceInfoObjectId) {
471
+ throw new Error(`Missing priceInfoObjectId for ${pool.baseCoin}`);
472
+ }
473
+ if (!quoteCoin.priceInfoObjectId) {
474
+ throw new Error(`Missing priceInfoObjectId for ${pool.quoteCoin}`);
475
+ }
476
+ tx.moveCall({
477
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::update_current_price`,
478
+ arguments: [
479
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
480
+ tx.object(pool.address),
481
+ tx.object(baseCoin.priceInfoObjectId),
482
+ tx.object(quoteCoin.priceInfoObjectId),
483
+ tx.object.clock(),
484
+ ],
485
+ typeArguments: [baseCoin.type, quoteCoin.type],
486
+ });
487
+ };
438
488
  }
package/src/types/bcs.ts CHANGED
@@ -5,4 +5,4 @@ export { Account } from '../contracts/deepbook/account.js';
5
5
  export { Balances } from '../contracts/deepbook/balances.js';
6
6
  export { OrderDeepPrice } from '../contracts/deepbook/deep_price.js';
7
7
  export { Order } from '../contracts/deepbook/order.js';
8
- export { VecSet } from '../contracts/deepbook/deps/sui/vec_set.js';
8
+ export { VecSet } from '../contracts/deepbook/deps/haneul/vec_set.js';
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Mysten Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import type { TransactionObjectArgument } from '@haneullabs/haneul/transactions';
4
+ import type { TransactionArgument, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
5
5
 
6
6
  // SPDX-License-Identifier: Apache-2.0
7
7
  export interface BalanceManager {
@@ -252,4 +252,21 @@ export interface Config {
252
252
  DEEP_TREASURY_ID: string;
253
253
  }
254
254
 
255
- export type Environment = 'mainnet' | 'testnet';
255
+ /**
256
+ * Parameters for depositing into a margin manager.
257
+ * Either `amount` (number) or `coin` (TransactionArgument) must be provided, but not both.
258
+ */
259
+ export type DepositParams = {
260
+ managerKey: string;
261
+ } & ({ amount: number; coin?: never } | { amount?: never; coin: TransactionArgument });
262
+
263
+ /**
264
+ * Parameters for depositing during margin manager initialization.
265
+ * Either (`coinType` + `amount`) or (`coinType` + `coin`) must be provided.
266
+ * `coinType` should be a coin key from config (e.g., 'HANEUL', 'DBUSDC', 'DEEP').
267
+ */
268
+ export type DepositDuringInitParams = {
269
+ manager: TransactionArgument;
270
+ poolKey: string;
271
+ coinType: string;
272
+ } & ({ amount: number; coin?: never } | { amount?: never; coin: TransactionArgument });