@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flashLoans.d.mts","names":[],"sources":["../../src/transactions/flashLoans.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAMqB,cANR,iBAAA,CAMQ;EAU8C,CAAA,OAAA;EAyBjD;;;EAGA,WAAA,CAAA,MAAA,EAtCG,cAsCH;EAwBkD;;;;;;mEApDD;;;;;;;;;;;;;;;0EAyBjD,sCACJ,mCAEP,gBAAW;;;;;;;oEAwBkD;;;;;;;;;;;;;;;4EAyBjD,sCACL,mCAEP,gBAAW"}
@@ -0,0 +1,75 @@
1
+ //#region src/transactions/flashLoans.ts
2
+ /**
3
+ * FlashLoanContract class for managing flash loans.
4
+ */
5
+ var FlashLoanContract = class {
6
+ #config;
7
+ /**
8
+ * @param {DeepBookConfig} config Configuration object for DeepBook
9
+ */
10
+ constructor(config) {
11
+ this.borrowBaseAsset = (poolKey, borrowAmount) => (tx) => {
12
+ const pool = this.#config.getPool(poolKey);
13
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
14
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
15
+ const inputQuantity = Math.round(borrowAmount * baseCoin.scalar);
16
+ const [baseCoinResult, flashLoan] = tx.moveCall({
17
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,
18
+ arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
19
+ typeArguments: [baseCoin.type, quoteCoin.type]
20
+ });
21
+ return [baseCoinResult, flashLoan];
22
+ };
23
+ this.returnBaseAsset = (poolKey, borrowAmount, baseCoinInput, flashLoan) => (tx) => {
24
+ const pool = this.#config.getPool(poolKey);
25
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
26
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
27
+ const borrowScalar = baseCoin.scalar;
28
+ const [baseCoinReturn] = tx.splitCoins(baseCoinInput, [tx.pure.u64(Math.round(borrowAmount * borrowScalar))]);
29
+ tx.moveCall({
30
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,
31
+ arguments: [
32
+ tx.object(pool.address),
33
+ baseCoinReturn,
34
+ flashLoan
35
+ ],
36
+ typeArguments: [baseCoin.type, quoteCoin.type]
37
+ });
38
+ return baseCoinInput;
39
+ };
40
+ this.borrowQuoteAsset = (poolKey, borrowAmount) => (tx) => {
41
+ const pool = this.#config.getPool(poolKey);
42
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
43
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
44
+ const inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);
45
+ const [quoteCoinResult, flashLoan] = tx.moveCall({
46
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,
47
+ arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
48
+ typeArguments: [baseCoin.type, quoteCoin.type]
49
+ });
50
+ return [quoteCoinResult, flashLoan];
51
+ };
52
+ this.returnQuoteAsset = (poolKey, borrowAmount, quoteCoinInput, flashLoan) => (tx) => {
53
+ const pool = this.#config.getPool(poolKey);
54
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
55
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
56
+ const borrowScalar = quoteCoin.scalar;
57
+ const [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [tx.pure.u64(Math.round(borrowAmount * borrowScalar))]);
58
+ tx.moveCall({
59
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,
60
+ arguments: [
61
+ tx.object(pool.address),
62
+ quoteCoinReturn,
63
+ flashLoan
64
+ ],
65
+ typeArguments: [baseCoin.type, quoteCoin.type]
66
+ });
67
+ return quoteCoinInput;
68
+ };
69
+ this.#config = config;
70
+ }
71
+ };
72
+
73
+ //#endregion
74
+ export { FlashLoanContract };
75
+ //# sourceMappingURL=flashLoans.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flashLoans.mjs","names":["#config"],"sources":["../../src/transactions/flashLoans.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\n\n/**\n * FlashLoanContract class for managing flash loans.\n */\nexport class FlashLoanContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration object for DeepBook\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Borrow base asset from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount to borrow\n\t * @returns A function that takes a Transaction object\n\t */\n\tborrowBaseAsset = (poolKey: string, borrowAmount: number) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst inputQuantity = Math.round(borrowAmount * baseCoin.scalar);\n\t\tconst [baseCoinResult, flashLoan] = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,\n\t\t\targuments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t\treturn [baseCoinResult, flashLoan] as const;\n\t};\n\n\t/**\n\t * @description Return base asset to the pool after a flash loan.\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount of the base asset to return\n\t * @param {TransactionObjectArgument} baseCoinInput Coin object representing the base asset to be returned\n\t * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled\n\t * @returns A function that takes a Transaction object\n\t */\n\treturnBaseAsset =\n\t\t(\n\t\t\tpoolKey: string,\n\t\t\tborrowAmount: number,\n\t\t\tbaseCoinInput: TransactionObjectArgument,\n\t\t\tflashLoan: TransactionObjectArgument,\n\t\t) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst borrowScalar = baseCoin.scalar;\n\n\t\t\tconst [baseCoinReturn] = tx.splitCoins(baseCoinInput, [\n\t\t\t\ttx.pure.u64(Math.round(borrowAmount * borrowScalar)),\n\t\t\t]);\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,\n\t\t\t\targuments: [tx.object(pool.address), baseCoinReturn, flashLoan],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\n\t\t\treturn baseCoinInput;\n\t\t};\n\n\t/**\n\t * @description Borrow quote asset from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount to borrow\n\t * @returns A function that takes a Transaction object\n\t */\n\tborrowQuoteAsset = (poolKey: string, borrowAmount: number) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);\n\t\tconst [quoteCoinResult, flashLoan] = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,\n\t\t\targuments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t\treturn [quoteCoinResult, flashLoan] as const;\n\t};\n\n\t/**\n\t * @description Return quote asset to the pool after a flash loan.\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount of the quote asset to return\n\t * @param {TransactionObjectArgument} quoteCoinInput Coin object representing the quote asset to be returned\n\t * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled\n\t * @returns A function that takes a Transaction object\n\t */\n\treturnQuoteAsset =\n\t\t(\n\t\t\tpoolKey: string,\n\t\t\tborrowAmount: number,\n\t\t\tquoteCoinInput: TransactionObjectArgument,\n\t\t\tflashLoan: TransactionObjectArgument,\n\t\t) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst borrowScalar = quoteCoin.scalar;\n\n\t\t\tconst [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [\n\t\t\t\ttx.pure.u64(Math.round(borrowAmount * borrowScalar)),\n\t\t\t]);\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,\n\t\t\t\targuments: [tx.object(pool.address), quoteCoinReturn, flashLoan],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\n\t\t\treturn quoteCoinInput;\n\t\t};\n}\n"],"mappings":";;;;AASA,IAAa,oBAAb,MAA+B;CAC9B;;;;CAKA,YAAY,QAAwB;0BAUjB,SAAiB,kBAA0B,OAAoB;GACjF,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,gBAAgB,KAAK,MAAM,eAAe,SAAS,OAAO;GAChE,MAAM,CAAC,gBAAgB,aAAa,GAAG,SAAS;IAC/C,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW,CAAC,GAAG,OAAO,KAAK,QAAQ,EAAE,GAAG,KAAK,IAAI,cAAc,CAAC;IAChE,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AACF,UAAO,CAAC,gBAAgB,UAAU;;0BAajC,SACA,cACA,eACA,eAEA,OAAoB;GACpB,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,eAAe,SAAS;GAE9B,MAAM,CAAC,kBAAkB,GAAG,WAAW,eAAe,CACrD,GAAG,KAAK,IAAI,KAAK,MAAM,eAAe,aAAa,CAAC,CACpD,CAAC;AACF,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KAAC,GAAG,OAAO,KAAK,QAAQ;KAAE;KAAgB;KAAU;IAC/D,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AAEF,UAAO;;2BASW,SAAiB,kBAA0B,OAAoB;GAClF,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,gBAAgB,KAAK,MAAM,eAAe,UAAU,OAAO;GACjE,MAAM,CAAC,iBAAiB,aAAa,GAAG,SAAS;IAChD,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW,CAAC,GAAG,OAAO,KAAK,QAAQ,EAAE,GAAG,KAAK,IAAI,cAAc,CAAC;IAChE,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AACF,UAAO,CAAC,iBAAiB,UAAU;;2BAalC,SACA,cACA,gBACA,eAEA,OAAoB;GACpB,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,eAAe,UAAU;GAE/B,MAAM,CAAC,mBAAmB,GAAG,WAAW,gBAAgB,CACvD,GAAG,KAAK,IAAI,KAAK,MAAM,eAAe,aAAa,CAAC,CACpD,CAAC;AACF,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KAAC,GAAG,OAAO,KAAK,QAAQ;KAAE;KAAiB;KAAU;IAChE,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AAEF,UAAO;;AAxGR,QAAKA,SAAU"}
@@ -0,0 +1,48 @@
1
+ import { ProposalParams } from "../types/index.mjs";
2
+ import { DeepBookConfig } from "../utils/config.mjs";
3
+ import { Transaction } from "@haneullabs/haneul/transactions";
4
+
5
+ //#region src/transactions/governance.d.ts
6
+
7
+ /**
8
+ * GovernanceContract class for managing governance operations in DeepBook.
9
+ */
10
+ declare class GovernanceContract {
11
+ #private;
12
+ /**
13
+ * @param {DeepBookConfig} config Configuration for GovernanceContract
14
+ */
15
+ constructor(config: DeepBookConfig);
16
+ /**
17
+ * @description Stake a specified amount in the pool
18
+ * @param {string} poolKey The key to identify the pool
19
+ * @param {string} balanceManagerKey The key to identify the BalanceManager
20
+ * @param {number} stakeAmount The amount to stake
21
+ * @returns A function that takes a Transaction object
22
+ */
23
+ stake: (poolKey: string, balanceManagerKey: string, stakeAmount: number) => (tx: Transaction) => void;
24
+ /**
25
+ * @description Unstake from the pool
26
+ * @param {string} poolKey The key to identify the pool
27
+ * @param {string} balanceManagerKey The key to identify the BalanceManager
28
+ * @returns A function that takes a Transaction object
29
+ */
30
+ unstake: (poolKey: string, balanceManagerKey: string) => (tx: Transaction) => void;
31
+ /**
32
+ * @description Submit a governance proposal
33
+ * @param {ProposalParams} params Parameters for the proposal
34
+ * @returns A function that takes a Transaction object
35
+ */
36
+ submitProposal: (params: ProposalParams) => (tx: Transaction) => void;
37
+ /**
38
+ * @description Vote on a proposal
39
+ * @param {string} poolKey The key to identify the pool
40
+ * @param {string} balanceManagerKey The key to identify the BalanceManager
41
+ * @param {string} proposal_id The ID of the proposal to vote on
42
+ * @returns A function that takes a Transaction object
43
+ */
44
+ vote: (poolKey: string, balanceManagerKey: string, proposal_id: string) => (tx: Transaction) => void;
45
+ }
46
+ //#endregion
47
+ export { GovernanceContract };
48
+ //# sourceMappingURL=governance.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.mts","names":[],"sources":["../../src/transactions/governance.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAWA;AAMqB,cANR,kBAAA,CAMQ;EAYuD,CAAA,OAAA;EA0BZ;;;EAiDkB,WAAA,CAAA,MAAA,EAvF7D,cAuF6D;EAAW;;;;;;;mFA3EjB;;;;;;;gEA0BZ;;;;;;2BAmBrC,wBAAwB;;;;;;;;kFA8B+B"}
@@ -0,0 +1,90 @@
1
+ import { DEEP_SCALAR, FLOAT_SCALAR } from "../utils/config.mjs";
2
+
3
+ //#region src/transactions/governance.ts
4
+ /**
5
+ * GovernanceContract class for managing governance operations in DeepBook.
6
+ */
7
+ var GovernanceContract = class {
8
+ #config;
9
+ /**
10
+ * @param {DeepBookConfig} config Configuration for GovernanceContract
11
+ */
12
+ constructor(config) {
13
+ this.stake = (poolKey, balanceManagerKey, stakeAmount) => (tx) => {
14
+ const pool = this.#config.getPool(poolKey);
15
+ const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
16
+ const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
17
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
18
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
19
+ const stakeInput = Math.round(stakeAmount * DEEP_SCALAR);
20
+ tx.moveCall({
21
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::stake`,
22
+ arguments: [
23
+ tx.object(pool.address),
24
+ tx.object(balanceManager.address),
25
+ tradeProof,
26
+ tx.pure.u64(stakeInput)
27
+ ],
28
+ typeArguments: [baseCoin.type, quoteCoin.type]
29
+ });
30
+ };
31
+ this.unstake = (poolKey, balanceManagerKey) => (tx) => {
32
+ const pool = this.#config.getPool(poolKey);
33
+ const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
34
+ const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
35
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
36
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
37
+ tx.moveCall({
38
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::unstake`,
39
+ arguments: [
40
+ tx.object(pool.address),
41
+ tx.object(balanceManager.address),
42
+ tradeProof
43
+ ],
44
+ typeArguments: [baseCoin.type, quoteCoin.type]
45
+ });
46
+ };
47
+ this.submitProposal = (params) => (tx) => {
48
+ const { poolKey, balanceManagerKey, takerFee, makerFee, stakeRequired } = params;
49
+ const pool = this.#config.getPool(poolKey);
50
+ const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
51
+ const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
52
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
53
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
54
+ tx.moveCall({
55
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::submit_proposal`,
56
+ arguments: [
57
+ tx.object(pool.address),
58
+ tx.object(balanceManager.address),
59
+ tradeProof,
60
+ tx.pure.u64(Math.round(takerFee * FLOAT_SCALAR)),
61
+ tx.pure.u64(Math.round(makerFee * FLOAT_SCALAR)),
62
+ tx.pure.u64(Math.round(stakeRequired * DEEP_SCALAR))
63
+ ],
64
+ typeArguments: [baseCoin.type, quoteCoin.type]
65
+ });
66
+ };
67
+ this.vote = (poolKey, balanceManagerKey, proposal_id) => (tx) => {
68
+ const pool = this.#config.getPool(poolKey);
69
+ const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
70
+ const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
71
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
72
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
73
+ tx.moveCall({
74
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::vote`,
75
+ arguments: [
76
+ tx.object(pool.address),
77
+ tx.object(balanceManager.address),
78
+ tradeProof,
79
+ tx.pure.id(proposal_id)
80
+ ],
81
+ typeArguments: [baseCoin.type, quoteCoin.type]
82
+ });
83
+ };
84
+ this.#config = config;
85
+ }
86
+ };
87
+
88
+ //#endregion
89
+ export { GovernanceContract };
90
+ //# sourceMappingURL=governance.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.mjs","names":["#config"],"sources":["../../src/transactions/governance.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction } from '@haneullabs/haneul/transactions';\n\nimport type { ProposalParams } from '../types/index.js';\nimport type { DeepBookConfig } from '../utils/config.js';\nimport { DEEP_SCALAR, FLOAT_SCALAR } from '../utils/config.js';\n\n/**\n * GovernanceContract class for managing governance operations in DeepBook.\n */\nexport class GovernanceContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for GovernanceContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Stake a specified amount in the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {string} balanceManagerKey The key to identify the BalanceManager\n\t * @param {number} stakeAmount The amount to stake\n\t * @returns A function that takes a Transaction object\n\t */\n\tstake =\n\t\t(poolKey: string, balanceManagerKey: string, stakeAmount: number) => (tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst stakeInput = Math.round(stakeAmount * DEEP_SCALAR);\n\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::stake`,\n\t\t\t\targuments: [\n\t\t\t\t\ttx.object(pool.address),\n\t\t\t\t\ttx.object(balanceManager.address),\n\t\t\t\t\ttradeProof,\n\t\t\t\t\ttx.pure.u64(stakeInput),\n\t\t\t\t],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Unstake from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {string} balanceManagerKey The key to identify the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tunstake = (poolKey: string, balanceManagerKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::unstake`,\n\t\t\targuments: [tx.object(pool.address), tx.object(balanceManager.address), tradeProof],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Submit a governance proposal\n\t * @param {ProposalParams} params Parameters for the proposal\n\t * @returns A function that takes a Transaction object\n\t */\n\tsubmitProposal = (params: ProposalParams) => (tx: Transaction) => {\n\t\tconst { poolKey, balanceManagerKey, takerFee, makerFee, stakeRequired } = params;\n\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::submit_proposal`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(balanceManager.address),\n\t\t\t\ttradeProof,\n\t\t\t\ttx.pure.u64(Math.round(takerFee * FLOAT_SCALAR)),\n\t\t\t\ttx.pure.u64(Math.round(makerFee * FLOAT_SCALAR)),\n\t\t\t\ttx.pure.u64(Math.round(stakeRequired * DEEP_SCALAR)),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Vote on a proposal\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {string} balanceManagerKey The key to identify the BalanceManager\n\t * @param {string} proposal_id The ID of the proposal to vote on\n\t * @returns A function that takes a Transaction object\n\t */\n\tvote = (poolKey: string, balanceManagerKey: string, proposal_id: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::vote`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(balanceManager.address),\n\t\t\t\ttradeProof,\n\t\t\t\ttx.pure.id(proposal_id),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n}\n"],"mappings":";;;;;;AAWA,IAAa,qBAAb,MAAgC;CAC/B;;;;CAKA,YAAY,QAAwB;gBAYlC,SAAiB,mBAA2B,iBAAyB,OAAoB;GACzF,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,aAAa,KAAK,MAAM,cAAc,YAAY;AAExD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KACV,GAAG,OAAO,KAAK,QAAQ;KACvB,GAAG,OAAO,eAAe,QAAQ;KACjC;KACA,GAAG,KAAK,IAAI,WAAW;KACvB;IACD,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;kBASO,SAAiB,uBAA+B,OAAoB;GAC9E,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AAEtD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KAAC,GAAG,OAAO,KAAK,QAAQ;KAAE,GAAG,OAAO,eAAe,QAAQ;KAAE;KAAW;IACnF,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;yBAQe,YAA4B,OAAoB;GACjE,MAAM,EAAE,SAAS,mBAAmB,UAAU,UAAU,kBAAkB;GAE1E,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AAEtD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KACV,GAAG,OAAO,KAAK,QAAQ;KACvB,GAAG,OAAO,eAAe,QAAQ;KACjC;KACA,GAAG,KAAK,IAAI,KAAK,MAAM,WAAW,aAAa,CAAC;KAChD,GAAG,KAAK,IAAI,KAAK,MAAM,WAAW,aAAa,CAAC;KAChD,GAAG,KAAK,IAAI,KAAK,MAAM,gBAAgB,YAAY,CAAC;KACpD;IACD,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;eAUK,SAAiB,mBAA2B,iBAAyB,OAAoB;GAChG,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AAEtD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KACV,GAAG,OAAO,KAAK,QAAQ;KACvB,GAAG,OAAO,eAAe,QAAQ;KACjC;KACA,GAAG,KAAK,GAAG,YAAY;KACvB;IACD,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;AAtGF,QAAKA,SAAU"}
@@ -0,0 +1,139 @@
1
+ import { PoolConfigParams } from "../types/index.mjs";
2
+ import { DeepBookConfig } from "../utils/config.mjs";
3
+ import * as _haneullabs_haneul_transactions19 from "@haneullabs/haneul/transactions";
4
+ import { Transaction, TransactionArgument } from "@haneullabs/haneul/transactions";
5
+
6
+ //#region src/transactions/marginAdmin.d.ts
7
+
8
+ /**
9
+ * MarginAdminContract class for managing admin actions.
10
+ */
11
+ declare class MarginAdminContract {
12
+ #private;
13
+ /**
14
+ * @param {DeepBookConfig} config Configuration for MarginAdminContract
15
+ */
16
+ constructor(config: DeepBookConfig);
17
+ /**
18
+ * @description Mint a maintainer cap
19
+ * @returns A function that takes a Transaction object
20
+ */
21
+ mintMaintainerCap: () => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
22
+ /**
23
+ * @description Revoke a maintainer cap
24
+ * @returns A function that takes a Transaction object
25
+ */
26
+ revokeMaintainerCap: (maintainerCapId: string) => (tx: Transaction) => void;
27
+ /**
28
+ * @description Register a deepbook pool
29
+ * @param {string} poolKey The key of the pool to be registered
30
+ * @param {TransactionArgument} poolConfig The configuration of the pool
31
+ * @returns A function that takes a Transaction object
32
+ */
33
+ registerDeepbookPool: (poolKey: string, poolConfig: TransactionArgument) => (tx: Transaction) => void;
34
+ /**
35
+ * @description Enable a deepbook pool for margin trading
36
+ * @param {string} poolKey The key of the pool to be enabled
37
+ * @returns A function that takes a Transaction object
38
+ */
39
+ enableDeepbookPool: (poolKey: string) => (tx: Transaction) => void;
40
+ /**
41
+ * @description Disable a deepbook pool from margin trading
42
+ * @param {string} poolKey The key of the pool to be disabled
43
+ * @returns A function that takes a Transaction object
44
+ */
45
+ disableDeepbookPool: (poolKey: string) => (tx: Transaction) => void;
46
+ /**
47
+ * @description Update the risk parameters for a margin
48
+ * @param {string} poolKey The key of the pool to be updated
49
+ * @param {TransactionArgument} poolConfig The configuration of the pool
50
+ * @returns A function that takes a Transaction object
51
+ */
52
+ updateRiskParams: (poolKey: string, poolConfig: TransactionArgument) => (tx: Transaction) => void;
53
+ /**
54
+ * @description Add the PythConfig to the margin registry
55
+ * @param {Transaction} tx The transaction object
56
+ * @param {TransactionArgument} config The config to be added
57
+ * @returns A function that takes a Transaction object
58
+ */
59
+ addConfig: (config: TransactionArgument) => (tx: Transaction) => void;
60
+ /**
61
+ * @description Remove the PythConfig from the margin registry
62
+ * @param {Transaction} tx The transaction object
63
+ * @returns A function that takes a Transaction object
64
+ */
65
+ removeConfig: () => (tx: Transaction) => void;
66
+ /**
67
+ * @description Enable a specific version
68
+ * @param {number} version The version to be enabled
69
+ * @returns A function that takes a Transaction object
70
+ */
71
+ enableVersion: (version: number) => (tx: Transaction) => void;
72
+ /**
73
+ * @description Disable a specific version
74
+ * @param {number} version The version to be disabled
75
+ * @returns A function that takes a Transaction object
76
+ */
77
+ disableVersion: (version: number) => (tx: Transaction) => void;
78
+ /**
79
+ * @description Create a new pool config
80
+ * @param {string} poolKey The key to identify the pool
81
+ * @param {PoolConfigParams} poolConfigParams The parameters for the pool config
82
+ * @returns A function that takes a Transaction object
83
+ */
84
+ newPoolConfig: (poolKey: string, poolConfigParams: PoolConfigParams) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
85
+ /**
86
+ * @description Create a new pool config with leverage
87
+ * @param {string} poolKey The key to identify the pool
88
+ * @param {number} leverage The leverage for the pool
89
+ * @returns A function that takes a Transaction object
90
+ */
91
+ newPoolConfigWithLeverage: (poolKey: string, leverage: number) => (tx: Transaction) => void;
92
+ /**
93
+ * @description Create a new coin type data
94
+ * @param {string} coinKey The key to identify the coin
95
+ * @param {number} maxConfBps The maximum confidence interval in basis points
96
+ * @param {number} maxEwmaDifferenceBps The maximum EWMA difference in basis points
97
+ * @returns A function that takes a Transaction object
98
+ */
99
+ newCoinTypeData: (coinKey: string, maxConfBps: number, maxEwmaDifferenceBps: number) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
100
+ /**
101
+ * @description Create a new Pyth config
102
+ * @param {Array<{coinKey: string, maxConfBps: number, maxEwmaDifferenceBps: number}>} coinSetups The coins with their oracle config to be added to the Pyth config
103
+ * @param {number} maxAgeSeconds The max age in seconds for the Pyth config
104
+ * @returns A function that takes a Transaction object
105
+ */
106
+ newPythConfig: (coinSetups: Array<{
107
+ coinKey: string;
108
+ maxConfBps: number;
109
+ maxEwmaDifferenceBps: number;
110
+ }>, maxAgeSeconds: number) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
111
+ /**
112
+ * @description Mint a pause cap
113
+ * @returns A function that takes a Transaction object
114
+ */
115
+ mintPauseCap: () => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
116
+ /**
117
+ * @description Revoke a pause cap
118
+ * @param {string} pauseCapId The ID of the pause cap to revoke
119
+ * @returns A function that takes a Transaction object
120
+ */
121
+ revokePauseCap: (pauseCapId: string) => (tx: Transaction) => void;
122
+ /**
123
+ * @description Disable a version using pause cap
124
+ * @param {number} version The version to disable
125
+ * @param {string} pauseCapId The ID of the pause cap
126
+ * @returns A function that takes a Transaction object
127
+ */
128
+ disableVersionPauseCap: (version: number, pauseCapId: string) => (tx: Transaction) => void;
129
+ /**
130
+ * @description Withdraw the default referral fees (admin only)
131
+ * The default referral at 0x0 doesn't have a SupplyReferral object
132
+ * @param {string} coinKey The key to identify the margin pool
133
+ * @returns A function that takes a Transaction object and returns a Coin<Asset>
134
+ */
135
+ adminWithdrawDefaultReferralFees: (coinKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
136
+ }
137
+ //#endregion
138
+ export { MarginAdminContract };
139
+ //# sourceMappingURL=marginAdmin.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marginAdmin.d.mts","names":[],"sources":["../../src/transactions/marginAdmin.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAcA;AAMqB,cANR,mBAAA,CAMQ;EAoBW,CAAA,OAAA;EAAW;;;EAkCkB,WAAA,CAAA,MAAA,EAtDxC,cAsDwC;EAsBb;;;;EAkE1B,iBAAA,EAAA,GAAA,GAAA,CAAA,EAAA,EA1HU,WA0HV,EAAA,GA1HqB,iCAAA,CAAA,iBA0HrB;EAA6B;;;;EA+DE,mBAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EA1KI,WA0KJ,EAAA,GAAA,IAAA;EAA0B;;;;;;EAsFxE,oBAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EA7OyB,mBA6OzB,EAAA,GAAA,CAAA,EAAA,EA7OsD,WA6OtD,EAAA,GAAA,IAAA;EAAW;;;;;EA0E4C,kBAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EAjSd,WAiSc,EAAA,GAAA,IAAA;EAAW;;;;;iDA5QxB;;;;;;;kDAsBC,6BAA6B;;;;;;;sBAuBzD,6BAA6B;;;;;;2BAiBxB;;;;;;2CAagB;;;;;;4CAgBC;;;;;;;qDAiBS,0BAA0B,gBAAW,iCAAA,CAAA;;;;;;;yEAiCjB;;;;;;;;+FAsBK,gBAAW,iCAAA,CAAA;;;;;;;8BA4B1E;;;;qCAGR,gBAAW,iCAAA,CAAA;;;;;2BAuBS,gBAAW,iCAAA,CAAA;;;;;;+CAgBS;;;;;;;wEAkByB;;;;;;;8DAiBV,gBAAW,iCAAA,CAAA"}
@@ -0,0 +1,249 @@
1
+ import { FLOAT_SCALAR } from "../utils/config.mjs";
2
+ import { hexToBytes } from "@noble/hashes/utils.js";
3
+
4
+ //#region src/transactions/marginAdmin.ts
5
+ /**
6
+ * MarginAdminContract class for managing admin actions.
7
+ */
8
+ var MarginAdminContract = class {
9
+ #config;
10
+ /**
11
+ * @param {DeepBookConfig} config Configuration for MarginAdminContract
12
+ */
13
+ constructor(config) {
14
+ this.mintMaintainerCap = () => (tx) => {
15
+ return tx.moveCall({
16
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::mint_maintainer_cap`,
17
+ arguments: [
18
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
19
+ tx.object(this.#marginAdminCap()),
20
+ tx.object.clock()
21
+ ]
22
+ });
23
+ };
24
+ this.revokeMaintainerCap = (maintainerCapId) => (tx) => {
25
+ tx.moveCall({
26
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::revoke_maintainer_cap`,
27
+ arguments: [
28
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
29
+ tx.object(this.#marginAdminCap()),
30
+ tx.object(maintainerCapId),
31
+ tx.object.clock()
32
+ ]
33
+ });
34
+ };
35
+ this.registerDeepbookPool = (poolKey, poolConfig) => (tx) => {
36
+ const pool = this.#config.getPool(poolKey);
37
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
38
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
39
+ tx.moveCall({
40
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::register_deepbook_pool`,
41
+ arguments: [
42
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
43
+ tx.object(this.#marginAdminCap()),
44
+ tx.object(pool.address),
45
+ poolConfig,
46
+ tx.object.clock()
47
+ ],
48
+ typeArguments: [baseCoin.type, quoteCoin.type]
49
+ });
50
+ };
51
+ this.enableDeepbookPool = (poolKey) => (tx) => {
52
+ const pool = this.#config.getPool(poolKey);
53
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
54
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
55
+ tx.moveCall({
56
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::enable_deepbook_pool`,
57
+ arguments: [
58
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
59
+ tx.object(this.#marginAdminCap()),
60
+ tx.object(pool.address),
61
+ tx.object.clock()
62
+ ],
63
+ typeArguments: [baseCoin.type, quoteCoin.type]
64
+ });
65
+ };
66
+ this.disableDeepbookPool = (poolKey) => (tx) => {
67
+ const pool = this.#config.getPool(poolKey);
68
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
69
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
70
+ tx.moveCall({
71
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::disable_deepbook_pool`,
72
+ arguments: [
73
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
74
+ tx.object(this.#marginAdminCap()),
75
+ tx.object(pool.address),
76
+ tx.object.clock()
77
+ ],
78
+ typeArguments: [baseCoin.type, quoteCoin.type]
79
+ });
80
+ };
81
+ this.updateRiskParams = (poolKey, poolConfig) => (tx) => {
82
+ const pool = this.#config.getPool(poolKey);
83
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
84
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
85
+ tx.moveCall({
86
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::update_risk_params`,
87
+ arguments: [
88
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
89
+ tx.object(this.#marginAdminCap()),
90
+ tx.object(pool.address),
91
+ poolConfig,
92
+ tx.object.clock()
93
+ ],
94
+ typeArguments: [baseCoin.type, quoteCoin.type]
95
+ });
96
+ };
97
+ this.addConfig = (config$1) => (tx) => {
98
+ tx.moveCall({
99
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::add_config`,
100
+ arguments: [
101
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
102
+ tx.object(this.#marginAdminCap()),
103
+ config$1
104
+ ],
105
+ typeArguments: [`${this.#config.MARGIN_PACKAGE_ID}::oracle::PythConfig`]
106
+ });
107
+ };
108
+ this.removeConfig = () => (tx) => {
109
+ tx.moveCall({
110
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::remove_config`,
111
+ arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.object(this.#marginAdminCap())],
112
+ typeArguments: [`${this.#config.MARGIN_PACKAGE_ID}::oracle::PythConfig`]
113
+ });
114
+ };
115
+ this.enableVersion = (version) => (tx) => {
116
+ tx.moveCall({
117
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::enable_version`,
118
+ arguments: [
119
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
120
+ tx.pure.u64(version),
121
+ tx.object(this.#marginAdminCap())
122
+ ]
123
+ });
124
+ };
125
+ this.disableVersion = (version) => (tx) => {
126
+ tx.moveCall({
127
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::disable_version`,
128
+ arguments: [
129
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
130
+ tx.pure.u64(version),
131
+ tx.object(this.#marginAdminCap())
132
+ ]
133
+ });
134
+ };
135
+ this.newPoolConfig = (poolKey, poolConfigParams) => (tx) => {
136
+ const pool = this.#config.getPool(poolKey);
137
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
138
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
139
+ const { minWithdrawRiskRatio, minBorrowRiskRatio, liquidationRiskRatio, targetLiquidationRiskRatio, userLiquidationReward, poolLiquidationReward } = poolConfigParams;
140
+ return tx.moveCall({
141
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config`,
142
+ arguments: [
143
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
144
+ tx.pure.u64(Math.round(minWithdrawRiskRatio * FLOAT_SCALAR)),
145
+ tx.pure.u64(Math.round(minBorrowRiskRatio * FLOAT_SCALAR)),
146
+ tx.pure.u64(Math.round(liquidationRiskRatio * FLOAT_SCALAR)),
147
+ tx.pure.u64(Math.round(targetLiquidationRiskRatio * FLOAT_SCALAR)),
148
+ tx.pure.u64(Math.round(userLiquidationReward * FLOAT_SCALAR)),
149
+ tx.pure.u64(Math.round(poolLiquidationReward * FLOAT_SCALAR))
150
+ ],
151
+ typeArguments: [baseCoin.type, quoteCoin.type]
152
+ });
153
+ };
154
+ this.newPoolConfigWithLeverage = (poolKey, leverage) => (tx) => {
155
+ const pool = this.#config.getPool(poolKey);
156
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
157
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
158
+ tx.moveCall({
159
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config_with_leverage`,
160
+ arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.u64(Math.round(leverage * FLOAT_SCALAR))],
161
+ typeArguments: [baseCoin.type, quoteCoin.type]
162
+ });
163
+ };
164
+ this.newCoinTypeData = (coinKey, maxConfBps, maxEwmaDifferenceBps) => (tx) => {
165
+ const coin = this.#config.getCoin(coinKey);
166
+ if (!coin.feed) throw new Error("Coin feed not found");
167
+ const priceFeedInput = new Uint8Array(hexToBytes(coin["feed"].startsWith("0x") ? coin.feed.slice(2) : coin["feed"]));
168
+ return tx.moveCall({
169
+ target: `${this.#config.MARGIN_PACKAGE_ID}::oracle::new_coin_type_data_from_currency`,
170
+ arguments: [
171
+ tx.object(coin.currencyId),
172
+ tx.pure.vector("u8", priceFeedInput),
173
+ tx.pure.u64(maxConfBps),
174
+ tx.pure.u64(maxEwmaDifferenceBps)
175
+ ],
176
+ typeArguments: [coin.type]
177
+ });
178
+ };
179
+ this.newPythConfig = (coinSetups, maxAgeSeconds) => (tx) => {
180
+ const coinTypeDataList = [];
181
+ for (const setup of coinSetups) coinTypeDataList.push(this.newCoinTypeData(setup.coinKey, setup.maxConfBps, setup.maxEwmaDifferenceBps)(tx));
182
+ return tx.moveCall({
183
+ target: `${this.#config.MARGIN_PACKAGE_ID}::oracle::new_pyth_config`,
184
+ arguments: [tx.makeMoveVec({
185
+ elements: coinTypeDataList,
186
+ type: `${this.#config.MARGIN_PACKAGE_ID}::oracle::CoinTypeData`
187
+ }), tx.pure.u64(maxAgeSeconds)]
188
+ });
189
+ };
190
+ this.mintPauseCap = () => (tx) => {
191
+ return tx.moveCall({
192
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::mint_pause_cap`,
193
+ arguments: [
194
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
195
+ tx.object(this.#marginAdminCap()),
196
+ tx.object.clock()
197
+ ]
198
+ });
199
+ };
200
+ this.revokePauseCap = (pauseCapId) => (tx) => {
201
+ tx.moveCall({
202
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::revoke_pause_cap`,
203
+ arguments: [
204
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
205
+ tx.object(this.#marginAdminCap()),
206
+ tx.object.clock(),
207
+ tx.pure.id(pauseCapId)
208
+ ]
209
+ });
210
+ };
211
+ this.disableVersionPauseCap = (version, pauseCapId) => (tx) => {
212
+ tx.moveCall({
213
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::disable_version_pause_cap`,
214
+ arguments: [
215
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
216
+ tx.pure.u64(version),
217
+ tx.object(pauseCapId)
218
+ ]
219
+ });
220
+ };
221
+ this.adminWithdrawDefaultReferralFees = (coinKey) => (tx) => {
222
+ const coin = this.#config.getCoin(coinKey);
223
+ const marginPool = this.#config.getMarginPool(coinKey);
224
+ return tx.moveCall({
225
+ target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::admin_withdraw_default_referral_fees`,
226
+ arguments: [
227
+ tx.object(marginPool.address),
228
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
229
+ tx.object(this.#marginAdminCap())
230
+ ],
231
+ typeArguments: [coin.type]
232
+ });
233
+ };
234
+ this.#config = config;
235
+ }
236
+ /**
237
+ * @returns The admin capability required for admin operations
238
+ * @throws Error if the admin capability is not set
239
+ */
240
+ #marginAdminCap() {
241
+ const marginAdminCap = this.#config.marginAdminCap;
242
+ if (!marginAdminCap) throw new Error("MARGIN_ADMIN_CAP environment variable not set");
243
+ return marginAdminCap;
244
+ }
245
+ };
246
+
247
+ //#endregion
248
+ export { MarginAdminContract };
249
+ //# sourceMappingURL=marginAdmin.mjs.map