@haneullabs/deepbook-v3 0.1.0 → 1.2.1

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 (612) hide show
  1. package/CHANGELOG.md +342 -81
  2. package/dist/client.d.mts +238 -0
  3. package/dist/client.d.mts.map +1 -0
  4. package/dist/client.mjs +397 -0
  5. package/dist/client.mjs.map +1 -0
  6. package/dist/contracts/deepbook/account.d.mts +37 -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 +12 -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 +12 -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 +21 -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 +23 -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/queries/accountQueries.mjs +104 -0
  87. package/dist/queries/accountQueries.mjs.map +1 -0
  88. package/dist/queries/balanceManagerQueries.mjs +113 -0
  89. package/dist/queries/balanceManagerQueries.mjs.map +1 -0
  90. package/dist/queries/context.mjs +15 -0
  91. package/dist/queries/context.mjs.map +1 -0
  92. package/dist/queries/marginManagerQueries.mjs +365 -0
  93. package/dist/queries/marginManagerQueries.mjs.map +1 -0
  94. package/dist/queries/marginPoolQueries.mjs +184 -0
  95. package/dist/queries/marginPoolQueries.mjs.map +1 -0
  96. package/dist/queries/orderQueries.mjs +165 -0
  97. package/dist/queries/orderQueries.mjs.map +1 -0
  98. package/dist/queries/poolQueries.mjs +234 -0
  99. package/dist/queries/poolQueries.mjs.map +1 -0
  100. package/dist/queries/priceFeedQueries.mjs +83 -0
  101. package/dist/queries/priceFeedQueries.mjs.map +1 -0
  102. package/dist/queries/quantityQueries.mjs +216 -0
  103. package/dist/queries/quantityQueries.mjs.map +1 -0
  104. package/dist/queries/referralQueries.mjs +96 -0
  105. package/dist/queries/referralQueries.mjs.map +1 -0
  106. package/dist/queries/registryQueries.mjs +162 -0
  107. package/dist/queries/registryQueries.mjs.map +1 -0
  108. package/dist/queries/tpslQueries.mjs +62 -0
  109. package/dist/queries/tpslQueries.mjs.map +1 -0
  110. package/dist/transactions/balanceManager.d.mts +174 -0
  111. package/dist/transactions/balanceManager.d.mts.map +1 -0
  112. package/dist/transactions/balanceManager.mjs +234 -0
  113. package/dist/transactions/balanceManager.mjs.map +1 -0
  114. package/dist/transactions/deepbook.d.mts +490 -0
  115. package/dist/transactions/deepbook.d.mts.map +1 -0
  116. package/dist/transactions/deepbook.mjs +979 -0
  117. package/dist/transactions/deepbook.mjs.map +1 -0
  118. package/dist/transactions/deepbookAdmin.d.mts +111 -0
  119. package/dist/transactions/deepbookAdmin.d.mts.map +1 -0
  120. package/dist/transactions/deepbookAdmin.mjs +222 -0
  121. package/dist/transactions/deepbookAdmin.mjs.map +1 -0
  122. package/dist/transactions/flashLoans.d.mts +61 -0
  123. package/dist/transactions/flashLoans.d.mts.map +1 -0
  124. package/dist/transactions/flashLoans.mjs +77 -0
  125. package/dist/transactions/flashLoans.mjs.map +1 -0
  126. package/dist/transactions/governance.d.mts +47 -0
  127. package/dist/transactions/governance.d.mts.map +1 -0
  128. package/dist/transactions/governance.mjs +91 -0
  129. package/dist/transactions/governance.mjs.map +1 -0
  130. package/dist/transactions/marginAdmin.d.mts +138 -0
  131. package/dist/transactions/marginAdmin.d.mts.map +1 -0
  132. package/dist/transactions/marginAdmin.mjs +250 -0
  133. package/dist/transactions/marginAdmin.mjs.map +1 -0
  134. package/dist/transactions/marginLiquidations.d.mts +67 -0
  135. package/dist/transactions/marginLiquidations.d.mts.map +1 -0
  136. package/dist/transactions/marginLiquidations.mjs +110 -0
  137. package/dist/transactions/marginLiquidations.mjs.map +1 -0
  138. package/dist/transactions/marginMaintainer.d.mts +86 -0
  139. package/dist/transactions/marginMaintainer.d.mts.map +1 -0
  140. package/dist/transactions/marginMaintainer.mjs +161 -0
  141. package/dist/transactions/marginMaintainer.mjs.map +1 -0
  142. package/dist/transactions/marginManager.d.mts +247 -0
  143. package/dist/transactions/marginManager.d.mts.map +1 -0
  144. package/dist/transactions/marginManager.mjs +548 -0
  145. package/dist/transactions/marginManager.mjs.map +1 -0
  146. package/dist/transactions/marginPool.d.mts +140 -0
  147. package/dist/transactions/marginPool.d.mts.map +1 -0
  148. package/dist/transactions/marginPool.mjs +207 -0
  149. package/dist/transactions/marginPool.mjs.map +1 -0
  150. package/dist/transactions/marginRegistry.d.mts +100 -0
  151. package/dist/transactions/marginRegistry.d.mts.map +1 -0
  152. package/dist/transactions/marginRegistry.mjs +128 -0
  153. package/dist/transactions/marginRegistry.mjs.map +1 -0
  154. package/dist/transactions/marginTPSL.d.mts +100 -0
  155. package/dist/transactions/marginTPSL.d.mts.map +1 -0
  156. package/dist/transactions/marginTPSL.mjs +173 -0
  157. package/dist/transactions/marginTPSL.mjs.map +1 -0
  158. package/dist/transactions/poolProxy.d.mts +123 -0
  159. package/dist/transactions/poolProxy.d.mts.map +1 -0
  160. package/dist/transactions/poolProxy.mjs +336 -0
  161. package/dist/transactions/poolProxy.mjs.map +1 -0
  162. package/dist/types/bcs.d.mts +5 -0
  163. package/dist/types/bcs.mjs +7 -0
  164. package/dist/types/index.d.mts +374 -0
  165. package/dist/types/index.d.mts.map +1 -0
  166. package/dist/types/index.mjs +18 -0
  167. package/dist/types/index.mjs.map +1 -0
  168. package/dist/utils/config.d.mts +90 -0
  169. package/dist/utils/config.d.mts.map +1 -0
  170. package/dist/utils/config.mjs +104 -0
  171. package/dist/utils/config.mjs.map +1 -0
  172. package/dist/utils/constants.d.mts +93 -0
  173. package/dist/utils/constants.d.mts.map +1 -0
  174. package/dist/utils/constants.mjs +408 -0
  175. package/dist/utils/constants.mjs.map +1 -0
  176. package/dist/utils/conversion.mjs +26 -0
  177. package/dist/utils/conversion.mjs.map +1 -0
  178. package/dist/utils/errors.d.mts +46 -0
  179. package/dist/utils/errors.d.mts.map +1 -0
  180. package/dist/utils/errors.mjs +59 -0
  181. package/dist/utils/errors.mjs.map +1 -0
  182. package/dist/{cjs/utils/validation.d.ts → utils/validation.d.mts} +11 -7
  183. package/dist/utils/validation.d.mts.map +1 -0
  184. package/dist/utils/validation.mjs +76 -0
  185. package/dist/utils/validation.mjs.map +1 -0
  186. package/package.json +30 -26
  187. package/src/client.ts +467 -2255
  188. package/src/contracts/deepbook/account.ts +15 -15
  189. package/src/contracts/deepbook/balance_manager.ts +343 -57
  190. package/src/contracts/deepbook/balances.ts +3 -2
  191. package/src/contracts/deepbook/big_vector.ts +6 -7
  192. package/src/contracts/deepbook/book.ts +3 -2
  193. package/src/contracts/deepbook/constants.ts +95 -3
  194. package/src/contracts/deepbook/deep_price.ts +7 -7
  195. package/src/contracts/deepbook/deps/{sui → haneul}/bag.ts +8 -8
  196. package/src/contracts/deepbook/deps/{sui → haneul}/balance.ts +4 -3
  197. package/src/contracts/deepbook/deps/{sui → haneul}/table.ts +6 -6
  198. package/src/contracts/deepbook/deps/{sui → haneul}/vec_map.ts +4 -4
  199. package/src/contracts/deepbook/deps/{sui → haneul}/vec_set.ts +4 -4
  200. package/src/contracts/deepbook/deps/{sui → haneul}/versioned.ts +4 -4
  201. package/src/contracts/deepbook/deps/std/type_name.ts +3 -2
  202. package/src/contracts/deepbook/ewma.ts +14 -3
  203. package/src/contracts/deepbook/fill.ts +21 -21
  204. package/src/contracts/deepbook/governance.ts +4 -3
  205. package/src/contracts/deepbook/history.ts +4 -3
  206. package/src/contracts/deepbook/math.ts +15 -15
  207. package/src/contracts/deepbook/order.ts +16 -16
  208. package/src/contracts/deepbook/order_info.ts +39 -27
  209. package/src/contracts/deepbook/order_query.ts +12 -12
  210. package/src/contracts/deepbook/pool.ts +883 -526
  211. package/src/contracts/deepbook/registry.ts +149 -38
  212. package/src/contracts/deepbook/state.ts +14 -3
  213. package/src/contracts/deepbook/trade_params.ts +3 -2
  214. package/src/contracts/deepbook/vault.ts +5 -4
  215. package/src/contracts/pyth/batch_price_attestation.ts +92 -0
  216. package/src/contracts/pyth/contract_upgrade.ts +54 -0
  217. package/src/contracts/pyth/data_source.ts +64 -0
  218. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  219. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  220. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.ts +12 -0
  221. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.ts +13 -0
  222. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.ts +13 -0
  223. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.ts +12 -0
  224. package/src/contracts/pyth/deserialize.ts +117 -0
  225. package/src/contracts/pyth/event.ts +20 -0
  226. package/src/contracts/pyth/governance.ts +113 -0
  227. package/src/contracts/pyth/governance_action.ts +130 -0
  228. package/src/contracts/pyth/governance_instruction.ts +98 -0
  229. package/src/contracts/pyth/hot_potato_vector.ts +70 -0
  230. package/src/contracts/pyth/i64.ts +94 -0
  231. package/src/contracts/pyth/merkle_tree.ts +41 -0
  232. package/src/contracts/pyth/migrate.ts +29 -0
  233. package/src/contracts/pyth/price.ts +102 -0
  234. package/src/contracts/pyth/price_feed.ts +101 -0
  235. package/src/contracts/pyth/price_identifier.ts +46 -0
  236. package/src/contracts/pyth/price_info.ts +220 -0
  237. package/src/contracts/pyth/price_status.ts +74 -0
  238. package/src/contracts/pyth/pyth.ts +236 -0
  239. package/src/contracts/pyth/set.ts +93 -0
  240. package/src/contracts/pyth/set_data_sources.ts +14 -0
  241. package/src/contracts/pyth/set_fee_recipient.ts +13 -0
  242. package/src/contracts/pyth/set_governance_data_source.ts +16 -0
  243. package/src/contracts/pyth/set_stale_price_threshold.ts +13 -0
  244. package/src/contracts/pyth/set_update_fee.ts +14 -0
  245. package/src/contracts/pyth/setup.ts +12 -0
  246. package/src/contracts/pyth/state.ts +227 -0
  247. package/src/contracts/pyth/version_control.ts +25 -0
  248. package/src/contracts/utils/index.ts +100 -50
  249. package/src/contracts/wormhole/bytes32.ts +12 -0
  250. package/src/contracts/wormhole/consumed_vaas.ts +13 -0
  251. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts +12 -0
  252. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  253. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  254. package/src/contracts/wormhole/external_address.ts +13 -0
  255. package/src/contracts/wormhole/fee_collector.ts +15 -0
  256. package/src/contracts/wormhole/set.ts +12 -0
  257. package/src/contracts/wormhole/state.ts +25 -0
  258. package/src/index.ts +44 -3
  259. package/src/pyth/pyth.ts +51 -50
  260. package/src/queries/accountQueries.ts +117 -0
  261. package/src/queries/balanceManagerQueries.ts +156 -0
  262. package/src/queries/context.ts +44 -0
  263. package/src/queries/index.ts +16 -0
  264. package/src/queries/marginManagerQueries.ts +575 -0
  265. package/src/queries/marginPoolQueries.ts +226 -0
  266. package/src/queries/orderQueries.ts +202 -0
  267. package/src/queries/poolQueries.ts +266 -0
  268. package/src/queries/priceFeedQueries.ts +141 -0
  269. package/src/queries/quantityQueries.ts +266 -0
  270. package/src/queries/referralQueries.ts +112 -0
  271. package/src/queries/registryQueries.ts +185 -0
  272. package/src/queries/tpslQueries.ts +88 -0
  273. package/src/transactions/balanceManager.ts +5 -4
  274. package/src/transactions/deepbook.ts +117 -84
  275. package/src/transactions/deepbookAdmin.ts +10 -9
  276. package/src/transactions/flashLoans.ts +5 -4
  277. package/src/transactions/governance.ts +5 -4
  278. package/src/transactions/marginAdmin.ts +12 -8
  279. package/src/transactions/marginLiquidations.ts +5 -4
  280. package/src/transactions/marginMaintainer.ts +28 -16
  281. package/src/transactions/marginManager.ts +78 -29
  282. package/src/transactions/marginPool.ts +7 -7
  283. package/src/transactions/marginTPSL.ts +16 -11
  284. package/src/transactions/poolProxy.ts +62 -11
  285. package/src/types/bcs.ts +1 -1
  286. package/src/types/index.ts +217 -53
  287. package/src/utils/config.ts +38 -17
  288. package/src/utils/constants.ts +73 -18
  289. package/src/utils/conversion.ts +33 -0
  290. package/src/utils/validation.ts +1 -1
  291. package/dist/cjs/client.d.ts +0 -861
  292. package/dist/cjs/client.js +0 -1982
  293. package/dist/cjs/client.js.map +0 -7
  294. package/dist/cjs/contracts/deepbook/account.d.ts +0 -105
  295. package/dist/cjs/contracts/deepbook/account.js +0 -163
  296. package/dist/cjs/contracts/deepbook/account.js.map +0 -7
  297. package/dist/cjs/contracts/deepbook/balance_manager.d.ts +0 -268
  298. package/dist/cjs/contracts/deepbook/balance_manager.js +0 -361
  299. package/dist/cjs/contracts/deepbook/balance_manager.js.map +0 -7
  300. package/dist/cjs/contracts/deepbook/balances.d.ts +0 -10
  301. package/dist/cjs/contracts/deepbook/balances.js +0 -35
  302. package/dist/cjs/contracts/deepbook/balances.js.map +0 -7
  303. package/dist/cjs/contracts/deepbook/big_vector.d.ts +0 -62
  304. package/dist/cjs/contracts/deepbook/big_vector.js +0 -80
  305. package/dist/cjs/contracts/deepbook/big_vector.js.map +0 -7
  306. package/dist/cjs/contracts/deepbook/book.d.ts +0 -34
  307. package/dist/cjs/contracts/deepbook/book.js +0 -50
  308. package/dist/cjs/contracts/deepbook/book.js.map +0 -7
  309. package/dist/cjs/contracts/deepbook/constants.d.ts +0 -176
  310. package/dist/cjs/contracts/deepbook/constants.js +0 -338
  311. package/dist/cjs/contracts/deepbook/constants.js.map +0 -7
  312. package/dist/cjs/contracts/deepbook/deep_price.d.ts +0 -60
  313. package/dist/cjs/contracts/deepbook/deep_price.js +0 -87
  314. package/dist/cjs/contracts/deepbook/deep_price.js.map +0 -7
  315. package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +0 -14
  316. package/dist/cjs/contracts/deepbook/deps/std/type_name.js +0 -42
  317. package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +0 -7
  318. package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +0 -33
  319. package/dist/cjs/contracts/deepbook/deps/sui/bag.js +0 -47
  320. package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +0 -7
  321. package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +0 -9
  322. package/dist/cjs/contracts/deepbook/deps/sui/balance.js +0 -33
  323. package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +0 -7
  324. package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +0 -5
  325. package/dist/cjs/contracts/deepbook/deps/sui/object.js +0 -33
  326. package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +0 -7
  327. package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +0 -28
  328. package/dist/cjs/contracts/deepbook/deps/sui/table.js +0 -47
  329. package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +0 -7
  330. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
  331. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +0 -45
  332. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
  333. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
  334. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +0 -35
  335. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
  336. package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
  337. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +0 -45
  338. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +0 -7
  339. package/dist/cjs/contracts/deepbook/ewma.d.ts +0 -17
  340. package/dist/cjs/contracts/deepbook/ewma.js +0 -39
  341. package/dist/cjs/contracts/deepbook/ewma.js.map +0 -7
  342. package/dist/cjs/contracts/deepbook/fill.d.ts +0 -153
  343. package/dist/cjs/contracts/deepbook/fill.js +0 -251
  344. package/dist/cjs/contracts/deepbook/fill.js.map +0 -7
  345. package/dist/cjs/contracts/deepbook/governance.d.ts +0 -63
  346. package/dist/cjs/contracts/deepbook/governance.js +0 -79
  347. package/dist/cjs/contracts/deepbook/governance.js.map +0 -7
  348. package/dist/cjs/contracts/deepbook/history.d.ts +0 -60
  349. package/dist/cjs/contracts/deepbook/history.js +0 -78
  350. package/dist/cjs/contracts/deepbook/history.js.map +0 -7
  351. package/dist/cjs/contracts/deepbook/math.d.ts +0 -94
  352. package/dist/cjs/contracts/deepbook/math.js +0 -132
  353. package/dist/cjs/contracts/deepbook/math.js.map +0 -7
  354. package/dist/cjs/contracts/deepbook/order.d.ts +0 -135
  355. package/dist/cjs/contracts/deepbook/order.js +0 -218
  356. package/dist/cjs/contracts/deepbook/order.js.map +0 -7
  357. package/dist/cjs/contracts/deepbook/order_info.d.ts +0 -296
  358. package/dist/cjs/contracts/deepbook/order_info.js +0 -386
  359. package/dist/cjs/contracts/deepbook/order_info.js.map +0 -7
  360. package/dist/cjs/contracts/deepbook/order_query.d.ts +0 -85
  361. package/dist/cjs/contracts/deepbook/order_query.js +0 -96
  362. package/dist/cjs/contracts/deepbook/order_query.js.map +0 -7
  363. package/dist/cjs/contracts/deepbook/pool.d.ts +0 -1218
  364. package/dist/cjs/contracts/deepbook/pool.js +0 -1236
  365. package/dist/cjs/contracts/deepbook/pool.js.map +0 -7
  366. package/dist/cjs/contracts/deepbook/registry.d.ts +0 -134
  367. package/dist/cjs/contracts/deepbook/registry.js +0 -182
  368. package/dist/cjs/contracts/deepbook/registry.js.map +0 -7
  369. package/dist/cjs/contracts/deepbook/state.d.ts +0 -117
  370. package/dist/cjs/contracts/deepbook/state.js +0 -104
  371. package/dist/cjs/contracts/deepbook/state.js.map +0 -7
  372. package/dist/cjs/contracts/deepbook/trade_params.d.ts +0 -7
  373. package/dist/cjs/contracts/deepbook/trade_params.js +0 -35
  374. package/dist/cjs/contracts/deepbook/trade_params.js.map +0 -7
  375. package/dist/cjs/contracts/deepbook/vault.d.ts +0 -30
  376. package/dist/cjs/contracts/deepbook/vault.js +0 -65
  377. package/dist/cjs/contracts/deepbook/vault.js.map +0 -7
  378. package/dist/cjs/contracts/utils/index.d.ts +0 -25
  379. package/dist/cjs/contracts/utils/index.js +0 -148
  380. package/dist/cjs/contracts/utils/index.js.map +0 -7
  381. package/dist/cjs/index.d.ts +0 -23
  382. package/dist/cjs/index.js +0 -81
  383. package/dist/cjs/index.js.map +0 -7
  384. package/dist/cjs/package.json +0 -4
  385. package/dist/cjs/pyth/PriceServiceConnection.d.ts +0 -26
  386. package/dist/cjs/pyth/PriceServiceConnection.js +0 -68
  387. package/dist/cjs/pyth/PriceServiceConnection.js.map +0 -7
  388. package/dist/cjs/pyth/pyth-helpers.d.ts +0 -7
  389. package/dist/cjs/pyth/pyth-helpers.js +0 -36
  390. package/dist/cjs/pyth/pyth-helpers.js.map +0 -7
  391. package/dist/cjs/pyth/pyth.d.ts +0 -65
  392. package/dist/cjs/pyth/pyth.js +0 -269
  393. package/dist/cjs/pyth/pyth.js.map +0 -7
  394. package/dist/cjs/transactions/balanceManager.d.ts +0 -168
  395. package/dist/cjs/transactions/balanceManager.js +0 -384
  396. package/dist/cjs/transactions/balanceManager.js.map +0 -7
  397. package/dist/cjs/transactions/deepbook.d.ts +0 -477
  398. package/dist/cjs/transactions/deepbook.js +0 -1335
  399. package/dist/cjs/transactions/deepbook.js.map +0 -7
  400. package/dist/cjs/transactions/deepbookAdmin.d.ts +0 -105
  401. package/dist/cjs/transactions/deepbookAdmin.js +0 -334
  402. package/dist/cjs/transactions/deepbookAdmin.js.map +0 -7
  403. package/dist/cjs/transactions/flashLoans.d.ts +0 -56
  404. package/dist/cjs/transactions/flashLoans.js +0 -124
  405. package/dist/cjs/transactions/flashLoans.js.map +0 -7
  406. package/dist/cjs/transactions/governance.d.ts +0 -42
  407. package/dist/cjs/transactions/governance.js +0 -135
  408. package/dist/cjs/transactions/governance.js.map +0 -7
  409. package/dist/cjs/transactions/marginAdmin.d.ts +0 -133
  410. package/dist/cjs/transactions/marginAdmin.js +0 -393
  411. package/dist/cjs/transactions/marginAdmin.js.map +0 -7
  412. package/dist/cjs/transactions/marginLiquidations.d.ts +0 -61
  413. package/dist/cjs/transactions/marginLiquidations.js +0 -173
  414. package/dist/cjs/transactions/marginLiquidations.js.map +0 -7
  415. package/dist/cjs/transactions/marginMaintainer.d.ts +0 -80
  416. package/dist/cjs/transactions/marginMaintainer.js +0 -251
  417. package/dist/cjs/transactions/marginMaintainer.js.map +0 -7
  418. package/dist/cjs/transactions/marginManager.d.ts +0 -236
  419. package/dist/cjs/transactions/marginManager.js +0 -688
  420. package/dist/cjs/transactions/marginManager.js.map +0 -7
  421. package/dist/cjs/transactions/marginPool.d.ts +0 -134
  422. package/dist/cjs/transactions/marginPool.js +0 -330
  423. package/dist/cjs/transactions/marginPool.js.map +0 -7
  424. package/dist/cjs/transactions/marginRegistry.d.ts +0 -94
  425. package/dist/cjs/transactions/marginRegistry.js +0 -221
  426. package/dist/cjs/transactions/marginRegistry.js.map +0 -7
  427. package/dist/cjs/transactions/marginTPSL.d.ts +0 -93
  428. package/dist/cjs/transactions/marginTPSL.js +0 -286
  429. package/dist/cjs/transactions/marginTPSL.js.map +0 -7
  430. package/dist/cjs/transactions/poolProxy.d.ts +0 -104
  431. package/dist/cjs/transactions/poolProxy.js +0 -435
  432. package/dist/cjs/transactions/poolProxy.js.map +0 -7
  433. package/dist/cjs/types/bcs.d.ts +0 -5
  434. package/dist/cjs/types/bcs.js +0 -33
  435. package/dist/cjs/types/bcs.js.map +0 -7
  436. package/dist/cjs/types/index.d.ts +0 -218
  437. package/dist/cjs/types/index.js +0 -38
  438. package/dist/cjs/types/index.js.map +0 -7
  439. package/dist/cjs/utils/config.d.ts +0 -65
  440. package/dist/cjs/utils/config.js +0 -144
  441. package/dist/cjs/utils/config.js.map +0 -7
  442. package/dist/cjs/utils/constants.d.ts +0 -76
  443. package/dist/cjs/utils/constants.js +0 -382
  444. package/dist/cjs/utils/constants.js.map +0 -7
  445. package/dist/cjs/utils/errors.d.ts +0 -42
  446. package/dist/cjs/utils/errors.js +0 -70
  447. package/dist/cjs/utils/errors.js.map +0 -7
  448. package/dist/cjs/utils/validation.js +0 -67
  449. package/dist/cjs/utils/validation.js.map +0 -7
  450. package/dist/esm/client.d.ts +0 -861
  451. package/dist/esm/client.js +0 -1967
  452. package/dist/esm/client.js.map +0 -7
  453. package/dist/esm/contracts/deepbook/account.d.ts +0 -105
  454. package/dist/esm/contracts/deepbook/account.js +0 -133
  455. package/dist/esm/contracts/deepbook/account.js.map +0 -7
  456. package/dist/esm/contracts/deepbook/balance_manager.d.ts +0 -268
  457. package/dist/esm/contracts/deepbook/balance_manager.js +0 -331
  458. package/dist/esm/contracts/deepbook/balance_manager.js.map +0 -7
  459. package/dist/esm/contracts/deepbook/balances.d.ts +0 -10
  460. package/dist/esm/contracts/deepbook/balances.js +0 -15
  461. package/dist/esm/contracts/deepbook/balances.js.map +0 -7
  462. package/dist/esm/contracts/deepbook/big_vector.d.ts +0 -62
  463. package/dist/esm/contracts/deepbook/big_vector.js +0 -50
  464. package/dist/esm/contracts/deepbook/big_vector.js.map +0 -7
  465. package/dist/esm/contracts/deepbook/book.d.ts +0 -34
  466. package/dist/esm/contracts/deepbook/book.js +0 -20
  467. package/dist/esm/contracts/deepbook/book.js.map +0 -7
  468. package/dist/esm/contracts/deepbook/constants.d.ts +0 -176
  469. package/dist/esm/contracts/deepbook/constants.js +0 -318
  470. package/dist/esm/contracts/deepbook/constants.js.map +0 -7
  471. package/dist/esm/contracts/deepbook/deep_price.d.ts +0 -60
  472. package/dist/esm/contracts/deepbook/deep_price.js +0 -67
  473. package/dist/esm/contracts/deepbook/deep_price.js.map +0 -7
  474. package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +0 -14
  475. package/dist/esm/contracts/deepbook/deps/std/type_name.js +0 -22
  476. package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +0 -7
  477. package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +0 -33
  478. package/dist/esm/contracts/deepbook/deps/sui/bag.js +0 -17
  479. package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +0 -7
  480. package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +0 -9
  481. package/dist/esm/contracts/deepbook/deps/sui/balance.js +0 -13
  482. package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +0 -7
  483. package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +0 -5
  484. package/dist/esm/contracts/deepbook/deps/sui/object.js +0 -13
  485. package/dist/esm/contracts/deepbook/deps/sui/object.js.map +0 -7
  486. package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +0 -28
  487. package/dist/esm/contracts/deepbook/deps/sui/table.js +0 -17
  488. package/dist/esm/contracts/deepbook/deps/sui/table.js.map +0 -7
  489. package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
  490. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +0 -25
  491. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
  492. package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
  493. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +0 -15
  494. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
  495. package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
  496. package/dist/esm/contracts/deepbook/deps/sui/versioned.js +0 -15
  497. package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +0 -7
  498. package/dist/esm/contracts/deepbook/ewma.d.ts +0 -17
  499. package/dist/esm/contracts/deepbook/ewma.js +0 -19
  500. package/dist/esm/contracts/deepbook/ewma.js.map +0 -7
  501. package/dist/esm/contracts/deepbook/fill.d.ts +0 -153
  502. package/dist/esm/contracts/deepbook/fill.js +0 -221
  503. package/dist/esm/contracts/deepbook/fill.js.map +0 -7
  504. package/dist/esm/contracts/deepbook/governance.d.ts +0 -63
  505. package/dist/esm/contracts/deepbook/governance.js +0 -49
  506. package/dist/esm/contracts/deepbook/governance.js.map +0 -7
  507. package/dist/esm/contracts/deepbook/history.d.ts +0 -60
  508. package/dist/esm/contracts/deepbook/history.js +0 -48
  509. package/dist/esm/contracts/deepbook/history.js.map +0 -7
  510. package/dist/esm/contracts/deepbook/math.d.ts +0 -94
  511. package/dist/esm/contracts/deepbook/math.js +0 -112
  512. package/dist/esm/contracts/deepbook/math.js.map +0 -7
  513. package/dist/esm/contracts/deepbook/order.d.ts +0 -135
  514. package/dist/esm/contracts/deepbook/order.js +0 -188
  515. package/dist/esm/contracts/deepbook/order.js.map +0 -7
  516. package/dist/esm/contracts/deepbook/order_info.d.ts +0 -296
  517. package/dist/esm/contracts/deepbook/order_info.js +0 -356
  518. package/dist/esm/contracts/deepbook/order_info.js.map +0 -7
  519. package/dist/esm/contracts/deepbook/order_query.d.ts +0 -85
  520. package/dist/esm/contracts/deepbook/order_query.js +0 -66
  521. package/dist/esm/contracts/deepbook/order_query.js.map +0 -7
  522. package/dist/esm/contracts/deepbook/pool.d.ts +0 -1218
  523. package/dist/esm/contracts/deepbook/pool.js +0 -1206
  524. package/dist/esm/contracts/deepbook/pool.js.map +0 -7
  525. package/dist/esm/contracts/deepbook/registry.d.ts +0 -134
  526. package/dist/esm/contracts/deepbook/registry.js +0 -152
  527. package/dist/esm/contracts/deepbook/registry.js.map +0 -7
  528. package/dist/esm/contracts/deepbook/state.d.ts +0 -117
  529. package/dist/esm/contracts/deepbook/state.js +0 -74
  530. package/dist/esm/contracts/deepbook/state.js.map +0 -7
  531. package/dist/esm/contracts/deepbook/trade_params.d.ts +0 -7
  532. package/dist/esm/contracts/deepbook/trade_params.js +0 -15
  533. package/dist/esm/contracts/deepbook/trade_params.js.map +0 -7
  534. package/dist/esm/contracts/deepbook/vault.d.ts +0 -30
  535. package/dist/esm/contracts/deepbook/vault.js +0 -35
  536. package/dist/esm/contracts/deepbook/vault.js.map +0 -7
  537. package/dist/esm/contracts/utils/index.d.ts +0 -25
  538. package/dist/esm/contracts/utils/index.js +0 -128
  539. package/dist/esm/contracts/utils/index.js.map +0 -7
  540. package/dist/esm/index.d.ts +0 -23
  541. package/dist/esm/index.js +0 -81
  542. package/dist/esm/index.js.map +0 -7
  543. package/dist/esm/package.json +0 -4
  544. package/dist/esm/pyth/PriceServiceConnection.d.ts +0 -26
  545. package/dist/esm/pyth/PriceServiceConnection.js +0 -38
  546. package/dist/esm/pyth/PriceServiceConnection.js.map +0 -7
  547. package/dist/esm/pyth/pyth-helpers.d.ts +0 -7
  548. package/dist/esm/pyth/pyth-helpers.js +0 -16
  549. package/dist/esm/pyth/pyth-helpers.js.map +0 -7
  550. package/dist/esm/pyth/pyth.d.ts +0 -65
  551. package/dist/esm/pyth/pyth.js +0 -249
  552. package/dist/esm/pyth/pyth.js.map +0 -7
  553. package/dist/esm/transactions/balanceManager.d.ts +0 -168
  554. package/dist/esm/transactions/balanceManager.js +0 -364
  555. package/dist/esm/transactions/balanceManager.js.map +0 -7
  556. package/dist/esm/transactions/deepbook.d.ts +0 -477
  557. package/dist/esm/transactions/deepbook.js +0 -1321
  558. package/dist/esm/transactions/deepbook.js.map +0 -7
  559. package/dist/esm/transactions/deepbookAdmin.d.ts +0 -105
  560. package/dist/esm/transactions/deepbookAdmin.js +0 -314
  561. package/dist/esm/transactions/deepbookAdmin.js.map +0 -7
  562. package/dist/esm/transactions/flashLoans.d.ts +0 -56
  563. package/dist/esm/transactions/flashLoans.js +0 -104
  564. package/dist/esm/transactions/flashLoans.js.map +0 -7
  565. package/dist/esm/transactions/governance.d.ts +0 -42
  566. package/dist/esm/transactions/governance.js +0 -115
  567. package/dist/esm/transactions/governance.js.map +0 -7
  568. package/dist/esm/transactions/marginAdmin.d.ts +0 -133
  569. package/dist/esm/transactions/marginAdmin.js +0 -373
  570. package/dist/esm/transactions/marginAdmin.js.map +0 -7
  571. package/dist/esm/transactions/marginLiquidations.d.ts +0 -61
  572. package/dist/esm/transactions/marginLiquidations.js +0 -153
  573. package/dist/esm/transactions/marginLiquidations.js.map +0 -7
  574. package/dist/esm/transactions/marginMaintainer.d.ts +0 -80
  575. package/dist/esm/transactions/marginMaintainer.js +0 -231
  576. package/dist/esm/transactions/marginMaintainer.js.map +0 -7
  577. package/dist/esm/transactions/marginManager.d.ts +0 -236
  578. package/dist/esm/transactions/marginManager.js +0 -668
  579. package/dist/esm/transactions/marginManager.js.map +0 -7
  580. package/dist/esm/transactions/marginPool.d.ts +0 -134
  581. package/dist/esm/transactions/marginPool.js +0 -310
  582. package/dist/esm/transactions/marginPool.js.map +0 -7
  583. package/dist/esm/transactions/marginRegistry.d.ts +0 -94
  584. package/dist/esm/transactions/marginRegistry.js +0 -201
  585. package/dist/esm/transactions/marginRegistry.js.map +0 -7
  586. package/dist/esm/transactions/marginTPSL.d.ts +0 -93
  587. package/dist/esm/transactions/marginTPSL.js +0 -266
  588. package/dist/esm/transactions/marginTPSL.js.map +0 -7
  589. package/dist/esm/transactions/poolProxy.d.ts +0 -104
  590. package/dist/esm/transactions/poolProxy.js +0 -415
  591. package/dist/esm/transactions/poolProxy.js.map +0 -7
  592. package/dist/esm/types/bcs.d.ts +0 -5
  593. package/dist/esm/types/bcs.js +0 -13
  594. package/dist/esm/types/bcs.js.map +0 -7
  595. package/dist/esm/types/index.d.ts +0 -218
  596. package/dist/esm/types/index.js +0 -18
  597. package/dist/esm/types/index.js.map +0 -7
  598. package/dist/esm/utils/config.d.ts +0 -65
  599. package/dist/esm/utils/config.js +0 -135
  600. package/dist/esm/utils/config.js.map +0 -7
  601. package/dist/esm/utils/constants.d.ts +0 -76
  602. package/dist/esm/utils/constants.js +0 -362
  603. package/dist/esm/utils/constants.js.map +0 -7
  604. package/dist/esm/utils/errors.d.ts +0 -42
  605. package/dist/esm/utils/errors.js +0 -50
  606. package/dist/esm/utils/errors.js.map +0 -7
  607. package/dist/esm/utils/validation.d.ts +0 -50
  608. package/dist/esm/utils/validation.js +0 -47
  609. package/dist/esm/utils/validation.js.map +0 -7
  610. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  611. package/dist/tsconfig.tsbuildinfo +0 -1
  612. package/src/contracts/deepbook/deps/sui/object.ts +0 -14
@@ -3,6 +3,7 @@
3
3
  import type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
4
4
 
5
5
  import type { DeepBookConfig } from '../utils/config.js';
6
+ import { convertQuantity } from '../utils/conversion.js';
6
7
 
7
8
  /**
8
9
  * FlashLoanContract class for managing flash loans.
@@ -27,7 +28,7 @@ export class FlashLoanContract {
27
28
  const pool = this.#config.getPool(poolKey);
28
29
  const baseCoin = this.#config.getCoin(pool.baseCoin);
29
30
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
30
- const inputQuantity = Math.round(borrowAmount * baseCoin.scalar);
31
+ const inputQuantity = convertQuantity(borrowAmount, baseCoin.scalar);
31
32
  const [baseCoinResult, flashLoan] = tx.moveCall({
32
33
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,
33
34
  arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
@@ -58,7 +59,7 @@ export class FlashLoanContract {
58
59
  const borrowScalar = baseCoin.scalar;
59
60
 
60
61
  const [baseCoinReturn] = tx.splitCoins(baseCoinInput, [
61
- tx.pure.u64(Math.round(borrowAmount * borrowScalar)),
62
+ tx.pure.u64(convertQuantity(borrowAmount, borrowScalar)),
62
63
  ]);
63
64
  tx.moveCall({
64
65
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,
@@ -79,7 +80,7 @@ export class FlashLoanContract {
79
80
  const pool = this.#config.getPool(poolKey);
80
81
  const baseCoin = this.#config.getCoin(pool.baseCoin);
81
82
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
82
- const inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);
83
+ const inputQuantity = convertQuantity(borrowAmount, quoteCoin.scalar);
83
84
  const [quoteCoinResult, flashLoan] = tx.moveCall({
84
85
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,
85
86
  arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
@@ -110,7 +111,7 @@ export class FlashLoanContract {
110
111
  const borrowScalar = quoteCoin.scalar;
111
112
 
112
113
  const [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [
113
- tx.pure.u64(Math.round(borrowAmount * borrowScalar)),
114
+ tx.pure.u64(convertQuantity(borrowAmount, borrowScalar)),
114
115
  ]);
115
116
  tx.moveCall({
116
117
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,
@@ -5,6 +5,7 @@ import type { Transaction } from '@haneullabs/haneul/transactions';
5
5
  import type { ProposalParams } from '../types/index.js';
6
6
  import type { DeepBookConfig } from '../utils/config.js';
7
7
  import { DEEP_SCALAR, FLOAT_SCALAR } from '../utils/config.js';
8
+ import { convertQuantity, convertRate } from '../utils/conversion.js';
8
9
 
9
10
  /**
10
11
  * GovernanceContract class for managing governance operations in DeepBook.
@@ -33,7 +34,7 @@ export class GovernanceContract {
33
34
  const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
34
35
  const baseCoin = this.#config.getCoin(pool.baseCoin);
35
36
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
36
- const stakeInput = Math.round(stakeAmount * DEEP_SCALAR);
37
+ const stakeInput = convertQuantity(stakeAmount, DEEP_SCALAR);
37
38
 
38
39
  tx.moveCall({
39
40
  target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::stake`,
@@ -87,9 +88,9 @@ export class GovernanceContract {
87
88
  tx.object(pool.address),
88
89
  tx.object(balanceManager.address),
89
90
  tradeProof,
90
- tx.pure.u64(Math.round(takerFee * FLOAT_SCALAR)),
91
- tx.pure.u64(Math.round(makerFee * FLOAT_SCALAR)),
92
- tx.pure.u64(Math.round(stakeRequired * DEEP_SCALAR)),
91
+ tx.pure.u64(convertRate(takerFee, FLOAT_SCALAR)),
92
+ tx.pure.u64(convertRate(makerFee, FLOAT_SCALAR)),
93
+ tx.pure.u64(convertQuantity(stakeRequired, DEEP_SCALAR)),
93
94
  ],
94
95
  typeArguments: [baseCoin.type, quoteCoin.type],
95
96
  });
@@ -7,7 +7,8 @@ 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 { convertRate } from '../utils/conversion.js';
11
+ import { hexToBytes } from '@noble/hashes/utils.js';
11
12
 
12
13
  /**
13
14
  * MarginAdminContract class for managing admin actions.
@@ -239,12 +240,12 @@ export class MarginAdminContract {
239
240
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config`,
240
241
  arguments: [
241
242
  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),
243
+ tx.pure.u64(convertRate(minWithdrawRiskRatio, FLOAT_SCALAR)),
244
+ tx.pure.u64(convertRate(minBorrowRiskRatio, FLOAT_SCALAR)),
245
+ tx.pure.u64(convertRate(liquidationRiskRatio, FLOAT_SCALAR)),
246
+ tx.pure.u64(convertRate(targetLiquidationRiskRatio, FLOAT_SCALAR)),
247
+ tx.pure.u64(convertRate(userLiquidationReward, FLOAT_SCALAR)),
248
+ tx.pure.u64(convertRate(poolLiquidationReward, FLOAT_SCALAR)),
248
249
  ],
249
250
  typeArguments: [baseCoin.type, quoteCoin.type],
250
251
  });
@@ -262,7 +263,10 @@ export class MarginAdminContract {
262
263
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
263
264
  tx.moveCall({
264
265
  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)],
266
+ arguments: [
267
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
268
+ tx.pure.u64(convertRate(leverage, FLOAT_SCALAR)),
269
+ ],
266
270
  typeArguments: [baseCoin.type, quoteCoin.type],
267
271
  });
268
272
  };
@@ -4,6 +4,7 @@ import type { Transaction } from '@haneullabs/haneul/transactions';
4
4
  import { coinWithBalance } from '@haneullabs/haneul/transactions';
5
5
 
6
6
  import type { DeepBookConfig } from '../utils/config.js';
7
+ import { convertQuantity } from '../utils/conversion.js';
7
8
 
8
9
  /**
9
10
  * MarginLiquidationsContract class for managing LiquidationVault operations.
@@ -44,7 +45,7 @@ export class MarginLiquidationsContract {
44
45
  const coin = this.#config.getCoin(coinKey);
45
46
  const depositCoin = coinWithBalance({
46
47
  type: coin.type,
47
- balance: amount * coin.scalar,
48
+ balance: convertQuantity(amount, coin.scalar),
48
49
  });
49
50
  tx.moveCall({
50
51
  target: `${this.#config.LIQUIDATION_PACKAGE_ID}::liquidation_vault::deposit`,
@@ -70,7 +71,7 @@ export class MarginLiquidationsContract {
70
71
  arguments: [
71
72
  tx.object(vaultId),
72
73
  tx.object(liquidationAdminCap),
73
- tx.pure.u64(amount * coin.scalar),
74
+ tx.pure.u64(convertQuantity(amount, coin.scalar)),
74
75
  ],
75
76
  typeArguments: [coin.type],
76
77
  });
@@ -95,7 +96,7 @@ export class MarginLiquidationsContract {
95
96
 
96
97
  const repayAmountArg =
97
98
  repayAmount !== undefined
98
- ? tx.pure.option('u64', BigInt(Math.floor(repayAmount * baseCoin.scalar)))
99
+ ? tx.pure.option('u64', convertQuantity(repayAmount, baseCoin.scalar))
99
100
  : tx.pure.option('u64', null);
100
101
 
101
102
  tx.moveCall({
@@ -135,7 +136,7 @@ export class MarginLiquidationsContract {
135
136
 
136
137
  const repayAmountArg =
137
138
  repayAmount !== undefined
138
- ? tx.pure.option('u64', BigInt(Math.floor(repayAmount * quoteCoin.scalar)))
139
+ ? tx.pure.option('u64', convertQuantity(repayAmount, quoteCoin.scalar))
139
140
  : tx.pure.option('u64', null);
140
141
 
141
142
  tx.moveCall({
@@ -10,6 +10,7 @@ import type {
10
10
  import type { DeepBookConfig } from '../utils/config.js';
11
11
  import type { MarginPoolConfigParams, InterestConfigParams } from '../types/index.js';
12
12
  import { FLOAT_SCALAR } from '../utils/config.js';
13
+ import { convertQuantity, convertRate } from '../utils/conversion.js';
13
14
 
14
15
  /**
15
16
  * DeepBookMaintainerContract class for managing maintainer actions.
@@ -102,10 +103,10 @@ export class MarginMaintainerContract {
102
103
  return tx.moveCall({
103
104
  target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config`,
104
105
  arguments: [
105
- tx.pure.u64(supplyCap * coin.scalar),
106
- tx.pure.u64(maxUtilizationRate * FLOAT_SCALAR),
107
- tx.pure.u64(referralSpread * FLOAT_SCALAR),
108
- tx.pure.u64(Math.round(minBorrow * coin.scalar)),
106
+ tx.pure.u64(convertQuantity(supplyCap, coin.scalar)),
107
+ tx.pure.u64(convertRate(maxUtilizationRate, FLOAT_SCALAR)),
108
+ tx.pure.u64(convertRate(referralSpread, FLOAT_SCALAR)),
109
+ tx.pure.u64(convertQuantity(minBorrow, coin.scalar)),
109
110
  ],
110
111
  });
111
112
  };
@@ -141,12 +142,12 @@ export class MarginMaintainerContract {
141
142
  return tx.moveCall({
142
143
  target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config_with_rate_limit`,
143
144
  arguments: [
144
- tx.pure.u64(supplyCap * coin.scalar),
145
- tx.pure.u64(maxUtilizationRate * FLOAT_SCALAR),
146
- tx.pure.u64(referralSpread * FLOAT_SCALAR),
147
- tx.pure.u64(Math.round(minBorrow * coin.scalar)),
148
- tx.pure.u64(Math.round(rateLimitCapacity * coin.scalar)),
149
- tx.pure.u64(Math.round(rateLimitRefillRatePerMs * coin.scalar)),
145
+ tx.pure.u64(convertQuantity(supplyCap, coin.scalar)),
146
+ tx.pure.u64(convertRate(maxUtilizationRate, FLOAT_SCALAR)),
147
+ tx.pure.u64(convertRate(referralSpread, FLOAT_SCALAR)),
148
+ tx.pure.u64(convertQuantity(minBorrow, coin.scalar)),
149
+ tx.pure.u64(convertQuantity(rateLimitCapacity, coin.scalar)),
150
+ tx.pure.u64(convertQuantity(rateLimitRefillRatePerMs, coin.scalar)),
150
151
  tx.pure.bool(rateLimitEnabled),
151
152
  ],
152
153
  });
@@ -162,10 +163,10 @@ export class MarginMaintainerContract {
162
163
  return tx.moveCall({
163
164
  target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_interest_config`,
164
165
  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),
166
+ tx.pure.u64(convertRate(baseRate, FLOAT_SCALAR)),
167
+ tx.pure.u64(convertRate(baseSlope, FLOAT_SCALAR)),
168
+ tx.pure.u64(convertRate(optimalUtilization, FLOAT_SCALAR)),
169
+ tx.pure.u64(convertRate(excessSlope, FLOAT_SCALAR)),
169
170
  ],
170
171
  });
171
172
  };
@@ -253,7 +254,7 @@ export class MarginMaintainerContract {
253
254
  * @description Update the margin pool config
254
255
  * @param {string} coinKey The key to identify the margin pool
255
256
  * @param {TransactionObjectArgument} marginPoolCap The margin pool cap
256
- * @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool
257
+ * @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool (with optional rate limit)
257
258
  * @returns A function that takes a Transaction object
258
259
  */
259
260
  updateMarginPoolConfig =
@@ -264,7 +265,18 @@ export class MarginMaintainerContract {
264
265
  ) =>
265
266
  (tx: Transaction) => {
266
267
  const marginPool = this.#config.getMarginPool(coinKey);
267
- const marginPoolConfigObject = this.newMarginPoolConfig(coinKey, marginPoolConfig)(tx);
268
+ const hasRateLimit =
269
+ marginPoolConfig.rateLimitCapacity !== undefined &&
270
+ marginPoolConfig.rateLimitRefillRatePerMs !== undefined &&
271
+ marginPoolConfig.rateLimitEnabled !== undefined;
272
+ const marginPoolConfigObject = hasRateLimit
273
+ ? this.newMarginPoolConfigWithRateLimit(coinKey, {
274
+ ...marginPoolConfig,
275
+ rateLimitCapacity: marginPoolConfig.rateLimitCapacity!,
276
+ rateLimitRefillRatePerMs: marginPoolConfig.rateLimitRefillRatePerMs!,
277
+ rateLimitEnabled: marginPoolConfig.rateLimitEnabled!,
278
+ })(tx)
279
+ : this.newMarginPoolConfig(coinKey, marginPoolConfig)(tx);
268
280
  tx.moveCall({
269
281
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::update_margin_pool_config`,
270
282
  arguments: [
@@ -4,6 +4,8 @@ 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';
8
+ import { convertQuantity } from '../utils/conversion.js';
7
9
 
8
10
  /**
9
11
  * MarginManagerContract class for managing MarginManager operations.
@@ -81,21 +83,62 @@ export class MarginManagerContract {
81
83
  });
82
84
  };
83
85
 
86
+ /**
87
+ * @description Deposit into a margin manager during initialization (before sharing).
88
+ * Use this when you need to deposit funds into a newly created manager in the same transaction.
89
+ * @param {DepositDuringInitParams} params The deposit parameters
90
+ * @returns A function that takes a Transaction object
91
+ */
92
+ depositDuringInitialization = (params: DepositDuringInitParams) => (tx: Transaction) => {
93
+ const { manager, poolKey, coinType } = params;
94
+ const pool = this.#config.getPool(poolKey);
95
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
96
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
97
+
98
+ // Get the deposit coin from config using the coinType key (e.g., 'HANEUL', 'DBUSDC', 'DEEP')
99
+ const depositCoin = this.#config.getCoin(coinType);
100
+
101
+ // If amount is provided, create a coin with balance; otherwise use the provided coin
102
+ const coin =
103
+ 'amount' in params && params.amount !== undefined
104
+ ? coinWithBalance({
105
+ type: depositCoin.type,
106
+ balance: convertQuantity(params.amount, depositCoin.scalar),
107
+ })
108
+ : params.coin;
109
+
110
+ tx.moveCall({
111
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
112
+ arguments: [
113
+ manager,
114
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
115
+ tx.object(baseCoin.priceInfoObjectId!),
116
+ tx.object(quoteCoin.priceInfoObjectId!),
117
+ coin,
118
+ tx.object.clock(),
119
+ ],
120
+ typeArguments: [baseCoin.type, quoteCoin.type, depositCoin.type],
121
+ });
122
+ };
123
+
84
124
  /**
85
125
  * @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
126
+ * @param {DepositParams} params The deposit parameters
88
127
  * @returns A function that takes a Transaction object
89
128
  */
90
- depositBase = (managerKey: string, amount: number) => (tx: Transaction) => {
129
+ depositBase = (params: DepositParams) => (tx: Transaction) => {
130
+ const { managerKey } = params;
91
131
  const manager = this.#config.getMarginManager(managerKey);
92
132
  const pool = this.#config.getPool(manager.poolKey);
93
133
  const baseCoin = this.#config.getCoin(pool.baseCoin);
94
134
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
95
- const coin = coinWithBalance({
96
- type: baseCoin.type,
97
- balance: amount * baseCoin.scalar,
98
- });
135
+ const coin =
136
+ 'amount' in params && params.amount !== undefined
137
+ ? coinWithBalance({
138
+ type: baseCoin.type,
139
+ balance: convertQuantity(params.amount, baseCoin.scalar),
140
+ })
141
+ : params.coin;
99
142
  tx.moveCall({
100
143
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
101
144
  arguments: [
@@ -112,19 +155,22 @@ export class MarginManagerContract {
112
155
 
113
156
  /**
114
157
  * @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
158
+ * @param {DepositParams} params The deposit parameters
117
159
  * @returns A function that takes a Transaction object
118
160
  */
119
- depositQuote = (managerKey: string, amount: number) => (tx: Transaction) => {
161
+ depositQuote = (params: DepositParams) => (tx: Transaction) => {
162
+ const { managerKey } = params;
120
163
  const manager = this.#config.getMarginManager(managerKey);
121
164
  const pool = this.#config.getPool(manager.poolKey);
122
165
  const baseCoin = this.#config.getCoin(pool.baseCoin);
123
166
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
124
- const coin = coinWithBalance({
125
- type: quoteCoin.type,
126
- balance: amount * quoteCoin.scalar,
127
- });
167
+ const coin =
168
+ 'amount' in params && params.amount !== undefined
169
+ ? coinWithBalance({
170
+ type: quoteCoin.type,
171
+ balance: convertQuantity(params.amount, quoteCoin.scalar),
172
+ })
173
+ : params.coin;
128
174
  tx.moveCall({
129
175
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
130
176
  arguments: [
@@ -141,20 +187,23 @@ export class MarginManagerContract {
141
187
 
142
188
  /**
143
189
  * @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
190
+ * @param {DepositParams} params The deposit parameters
146
191
  * @returns A function that takes a Transaction object
147
192
  */
148
- depositDeep = (managerKey: string, amount: number) => (tx: Transaction) => {
193
+ depositDeep = (params: DepositParams) => (tx: Transaction) => {
194
+ const { managerKey } = params;
149
195
  const manager = this.#config.getMarginManager(managerKey);
150
196
  const pool = this.#config.getPool(manager.poolKey);
151
197
  const baseCoin = this.#config.getCoin(pool.baseCoin);
152
198
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
153
199
  const deepCoin = this.#config.getCoin('DEEP');
154
- const coin = coinWithBalance({
155
- type: deepCoin.type,
156
- balance: amount * deepCoin.scalar,
157
- });
200
+ const coin =
201
+ 'amount' in params && params.amount !== undefined
202
+ ? coinWithBalance({
203
+ type: deepCoin.type,
204
+ balance: convertQuantity(params.amount, deepCoin.scalar),
205
+ })
206
+ : params.coin;
158
207
  tx.moveCall({
159
208
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
160
209
  arguments: [
@@ -192,7 +241,7 @@ export class MarginManagerContract {
192
241
  tx.object(baseCoin.priceInfoObjectId!),
193
242
  tx.object(quoteCoin.priceInfoObjectId!),
194
243
  tx.object(pool.address),
195
- tx.pure.u64(amount * baseCoin.scalar),
244
+ tx.pure.u64(convertQuantity(amount, baseCoin.scalar)),
196
245
  tx.object.clock(),
197
246
  ],
198
247
  typeArguments: [baseCoin.type, quoteCoin.type, baseCoin.type],
@@ -222,7 +271,7 @@ export class MarginManagerContract {
222
271
  tx.object(baseCoin.priceInfoObjectId!),
223
272
  tx.object(quoteCoin.priceInfoObjectId!),
224
273
  tx.object(pool.address),
225
- tx.pure.u64(amount * quoteCoin.scalar),
274
+ tx.pure.u64(convertQuantity(amount, quoteCoin.scalar)),
226
275
  tx.object.clock(),
227
276
  ],
228
277
  typeArguments: [baseCoin.type, quoteCoin.type, quoteCoin.type],
@@ -253,7 +302,7 @@ export class MarginManagerContract {
253
302
  tx.object(baseCoin.priceInfoObjectId!),
254
303
  tx.object(quoteCoin.priceInfoObjectId!),
255
304
  tx.object(pool.address),
256
- tx.pure.u64(amount * deepCoin.scalar),
305
+ tx.pure.u64(convertQuantity(amount, deepCoin.scalar)),
257
306
  tx.object.clock(),
258
307
  ],
259
308
  typeArguments: [baseCoin.type, quoteCoin.type, deepCoin.type],
@@ -281,7 +330,7 @@ export class MarginManagerContract {
281
330
  tx.object(baseCoin.priceInfoObjectId!),
282
331
  tx.object(quoteCoin.priceInfoObjectId!),
283
332
  tx.object(pool.address),
284
- tx.pure.u64(amount * baseCoin.scalar),
333
+ tx.pure.u64(convertQuantity(amount, baseCoin.scalar)),
285
334
  tx.object.clock(),
286
335
  ],
287
336
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -309,7 +358,7 @@ export class MarginManagerContract {
309
358
  tx.object(baseCoin.priceInfoObjectId!),
310
359
  tx.object(quoteCoin.priceInfoObjectId!),
311
360
  tx.object(pool.address),
312
- tx.pure.u64(amount * quoteCoin.scalar),
361
+ tx.pure.u64(convertQuantity(amount, quoteCoin.scalar)),
313
362
  tx.object.clock(),
314
363
  ],
315
364
  typeArguments: [baseCoin.type, quoteCoin.type],
@@ -336,7 +385,7 @@ export class MarginManagerContract {
336
385
  tx.object(baseMarginPool.address),
337
386
  tx.object.option({
338
387
  type: 'u64',
339
- value: amount ? tx.pure.u64(amount * baseCoin.scalar) : null,
388
+ value: amount ? tx.pure.u64(convertQuantity(amount, baseCoin.scalar)) : null,
340
389
  }),
341
390
  tx.object.clock(),
342
391
  ],
@@ -364,7 +413,7 @@ export class MarginManagerContract {
364
413
  tx.object(quoteMarginPool.address),
365
414
  tx.object.option({
366
415
  type: 'u64',
367
- value: amount ? tx.pure.u64(amount * quoteCoin.scalar) : null,
416
+ value: amount ? tx.pure.u64(convertQuantity(amount, quoteCoin.scalar)) : null,
368
417
  }),
369
418
  tx.object.clock(),
370
419
  ],
@@ -406,7 +455,7 @@ export class MarginManagerContract {
406
455
  repayCoin,
407
456
  tx.object.clock(),
408
457
  ],
409
- typeArguments: [baseCoin.type, quoteCoin.type],
458
+ typeArguments: [baseCoin.type, quoteCoin.type, debtIsBase ? baseCoin.type : quoteCoin.type],
410
459
  });
411
460
  };
412
461
 
@@ -4,6 +4,7 @@ import { coinWithBalance } from '@haneullabs/haneul/transactions';
4
4
  import type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
5
5
 
6
6
  import type { DeepBookConfig } from '../utils/config.js';
7
+ import { convertQuantity } from '../utils/conversion.js';
7
8
 
8
9
  /**
9
10
  * MarginPoolContract class for managing MarginPool operations.
@@ -48,7 +49,7 @@ export class MarginPoolContract {
48
49
  tx.setSenderIfNotSet(this.#config.address);
49
50
  const marginPool = this.#config.getMarginPool(coinKey);
50
51
  const coin = this.#config.getCoin(coinKey);
51
- const depositInput = Math.round(amountToDeposit * coin.scalar);
52
+ const depositInput = convertQuantity(amountToDeposit, coin.scalar);
52
53
  const supply = coinWithBalance({
53
54
  type: coin.type,
54
55
  balance: depositInput,
@@ -72,10 +73,10 @@ export class MarginPoolContract {
72
73
  };
73
74
 
74
75
  /**
75
- * @description Withdraw from a margin pool
76
+ * @description Withdraw from a margin pool. If amountToWithdraw is not provided, withdraws all.
76
77
  * @param {string} coinKey The key to identify the pool
77
78
  * @param {TransactionObjectArgument} supplierCap The supplier cap object
78
- * @param {number} amountToWithdraw The amount to withdraw
79
+ * @param {number} [amountToWithdraw] The amount to withdraw. If omitted, withdraws all.
79
80
  * @returns A function that takes a Transaction object
80
81
  */
81
82
  withdrawFromMarginPool =
@@ -83,16 +84,15 @@ export class MarginPoolContract {
83
84
  (tx: Transaction) => {
84
85
  const marginPool = this.#config.getMarginPool(coinKey);
85
86
  const coin = this.#config.getCoin(coinKey);
86
- const withdrawInput = amountToWithdraw
87
- ? tx.pure.u64(Math.round(amountToWithdraw * coin.scalar))
88
- : null;
87
+ const withdrawInput =
88
+ amountToWithdraw !== undefined ? convertQuantity(amountToWithdraw, coin.scalar) : null;
89
89
  return tx.moveCall({
90
90
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::withdraw`,
91
91
  arguments: [
92
92
  tx.object(marginPool.address),
93
93
  tx.object(this.#config.MARGIN_REGISTRY_ID),
94
94
  supplierCap,
95
- tx.object.option({ type: 'u64', value: withdrawInput }),
95
+ tx.pure.option('u64', withdrawInput),
96
96
  tx.object.clock(),
97
97
  ],
98
98
  typeArguments: [marginPool.type],
@@ -10,6 +10,7 @@ import type {
10
10
  } from '../types/index.js';
11
11
  import { OrderType, SelfMatchingOptions } from '../types/index.js';
12
12
  import { MAX_TIMESTAMP, FLOAT_SCALAR } from '../utils/config.js';
13
+ import { convertQuantity, convertPrice } from '../utils/conversion.js';
13
14
 
14
15
  /**
15
16
  * MarginTPSLContract class for managing Take Profit / Stop Loss operations.
@@ -34,12 +35,16 @@ export class MarginTPSLContract {
34
35
  * @returns A function that takes a Transaction object
35
36
  */
36
37
  newCondition =
37
- (poolKey: string, triggerBelowPrice: boolean, triggerPrice: number) => (tx: Transaction) => {
38
+ (poolKey: string, triggerBelowPrice: boolean, triggerPrice: number | bigint) =>
39
+ (tx: Transaction) => {
38
40
  const pool = this.#config.getPool(poolKey);
39
41
  const baseCoin = this.#config.getCoin(pool.baseCoin);
40
42
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
41
- const inputPrice = Math.round(
42
- (triggerPrice * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar,
43
+ const inputPrice = convertPrice(
44
+ triggerPrice,
45
+ FLOAT_SCALAR,
46
+ quoteCoin.scalar,
47
+ baseCoin.scalar,
43
48
  );
44
49
  return tx.moveCall({
45
50
  target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_condition`,
@@ -68,8 +73,8 @@ export class MarginTPSLContract {
68
73
  const pool = this.#config.getPool(poolKey);
69
74
  const baseCoin = this.#config.getCoin(pool.baseCoin);
70
75
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
71
- const inputPrice = Math.round((price * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar);
72
- const inputQuantity = Math.round(quantity * baseCoin.scalar);
76
+ const inputPrice = convertPrice(price, FLOAT_SCALAR, quoteCoin.scalar, baseCoin.scalar);
77
+ const inputQuantity = convertQuantity(quantity, baseCoin.scalar);
73
78
  return tx.moveCall({
74
79
  target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_pending_limit_order`,
75
80
  arguments: [
@@ -102,7 +107,7 @@ export class MarginTPSLContract {
102
107
  } = params;
103
108
  const pool = this.#config.getPool(poolKey);
104
109
  const baseCoin = this.#config.getCoin(pool.baseCoin);
105
- const inputQuantity = Math.round(quantity * baseCoin.scalar);
110
+ const inputQuantity = convertQuantity(quantity, baseCoin.scalar);
106
111
  return tx.moveCall({
107
112
  target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_pending_market_order`,
108
113
  arguments: [
@@ -195,20 +200,20 @@ export class MarginTPSLContract {
195
200
  /**
196
201
  * @description Execute conditional orders that have been triggered
197
202
  * This is a permissionless function that can be called by anyone
198
- * @param {string} marginManagerKey The key to identify the margin manager
203
+ * @param {string} managerAddress The address of the margin manager
204
+ * @param {string} poolKey The key to identify the pool (e.g., 'HANEUL_USDC')
199
205
  * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
200
206
  * @returns A function that takes a Transaction object
201
207
  */
202
208
  executeConditionalOrders =
203
- (marginManagerKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
204
- const manager = this.#config.getMarginManager(marginManagerKey);
205
- const pool = this.#config.getPool(manager.poolKey);
209
+ (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
210
+ const pool = this.#config.getPool(poolKey);
206
211
  const baseCoin = this.#config.getCoin(pool.baseCoin);
207
212
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
208
213
  return tx.moveCall({
209
214
  target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::execute_conditional_orders`,
210
215
  arguments: [
211
- tx.object(manager.address),
216
+ tx.object(managerAddress),
212
217
  tx.object(pool.address),
213
218
  tx.object(baseCoin.priceInfoObjectId!),
214
219
  tx.object(quoteCoin.priceInfoObjectId!),