@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,220 @@
1
+ import { PriceServiceConnection } from "./PriceServiceConnection.mjs";
2
+ import { extractVaaBytesFromAccumulatorMessage } from "./pyth-helpers.mjs";
3
+ import { State } from "../contracts/pyth/state.mjs";
4
+ import { State as State$1 } from "../contracts/wormhole/state.mjs";
5
+ import { bcs } from "@haneullabs/haneul/bcs";
6
+ import { fromBase64, fromHex, parseStructTag } from "@haneullabs/haneul/utils";
7
+ import { coinWithBalance } from "@haneullabs/haneul/transactions";
8
+
9
+ //#region src/pyth/pyth.ts
10
+ const MAX_ARGUMENT_SIZE = 16 * 1024;
11
+ var HaneulPriceServiceConnection = class extends PriceServiceConnection {
12
+ /**
13
+ * Fetch price feed update data.
14
+ *
15
+ * @param priceIds Array of hex-encoded price IDs.
16
+ * @returns Array of buffers containing the price update data.
17
+ */
18
+ async getPriceFeedsUpdateData(priceIds) {
19
+ return (await this.getLatestVaas(priceIds)).map((vaa) => fromBase64(vaa));
20
+ }
21
+ };
22
+ var HaneulPythClient = class {
23
+ #pythPackageId;
24
+ #wormholePackageId;
25
+ #priceFeedObjectIdCache = /* @__PURE__ */ new Map();
26
+ #priceTableInfo;
27
+ #baseUpdateFee;
28
+ constructor(provider, pythStateId, wormholeStateId) {
29
+ this.provider = provider;
30
+ this.pythStateId = pythStateId;
31
+ this.wormholeStateId = wormholeStateId;
32
+ }
33
+ /**
34
+ * Verifies the VAAs using the Wormhole contract.
35
+ *
36
+ * @param vaas Array of VAA buffers to verify.
37
+ * @param tx Transaction block to add commands to.
38
+ * @returns Array of verified VAAs.
39
+ */
40
+ async verifyVaas(vaas, tx) {
41
+ const wormholePackageId = await this.getWormholePackageId();
42
+ const verifiedVaas = [];
43
+ for (const vaa of vaas) {
44
+ const [verifiedVaa] = tx.moveCall({
45
+ target: `${wormholePackageId}::vaa::parse_and_verify`,
46
+ arguments: [
47
+ tx.object(this.wormholeStateId),
48
+ tx.pure.vector("u8", vaa),
49
+ tx.object.clock()
50
+ ]
51
+ });
52
+ verifiedVaas.push(verifiedVaa);
53
+ }
54
+ return verifiedVaas;
55
+ }
56
+ /**
57
+ * Adds the necessary commands for updating the Pyth price feeds to the transaction block.
58
+ *
59
+ * @param tx Transaction block to add commands to.
60
+ * @param updates Array of price feed updates received from the price service.
61
+ * @param feedIds Array of feed IDs to update (in hex format).
62
+ */
63
+ async updatePriceFeeds(tx, updates, feedIds) {
64
+ const packageId = await this.getPythPackageId();
65
+ let priceUpdatesHotPotato;
66
+ if (updates.length > 1) throw new Error("SDK does not support sending multiple accumulator messages in a single transaction");
67
+ const vaa = extractVaaBytesFromAccumulatorMessage(updates[0]);
68
+ const verifiedVaas = await this.verifyVaas([vaa], tx);
69
+ [priceUpdatesHotPotato] = tx.moveCall({
70
+ target: `${packageId}::pyth::create_authenticated_price_infos_using_accumulator`,
71
+ arguments: [
72
+ tx.object(this.pythStateId),
73
+ tx.pure(bcs.vector(bcs.U8).serialize(Array.from(updates[0]), { maxSize: MAX_ARGUMENT_SIZE }).toBytes()),
74
+ verifiedVaas[0],
75
+ tx.object.clock()
76
+ ]
77
+ });
78
+ const priceInfoObjects = [];
79
+ const baseUpdateFee = await this.getBaseUpdateFee();
80
+ for (const feedId of feedIds) {
81
+ const priceInfoObjectId = await this.getPriceFeedObjectId(feedId);
82
+ if (!priceInfoObjectId) throw new Error(`Price feed ${feedId} not found, please create it first`);
83
+ priceInfoObjects.push(priceInfoObjectId);
84
+ [priceUpdatesHotPotato] = tx.moveCall({
85
+ target: `${packageId}::pyth::update_single_price_feed`,
86
+ arguments: [
87
+ tx.object(this.pythStateId),
88
+ priceUpdatesHotPotato,
89
+ tx.object(priceInfoObjectId),
90
+ coinWithBalance({ balance: baseUpdateFee }),
91
+ tx.object.clock()
92
+ ]
93
+ });
94
+ }
95
+ tx.moveCall({
96
+ target: `${packageId}::hot_potato_vector::destroy`,
97
+ arguments: [priceUpdatesHotPotato],
98
+ typeArguments: [`${packageId}::price_info::PriceInfo`]
99
+ });
100
+ return priceInfoObjects;
101
+ }
102
+ /**
103
+ * Get the price feed object ID for a given feed ID, caching the promise.
104
+ * @param feedId
105
+ */
106
+ getPriceFeedObjectId(feedId) {
107
+ if (!this.#priceFeedObjectIdCache.has(feedId)) this.#priceFeedObjectIdCache.set(feedId, this.#fetchPriceFeedObjectId(feedId).catch((err) => {
108
+ this.#priceFeedObjectIdCache.delete(feedId);
109
+ throw err;
110
+ }));
111
+ return this.#priceFeedObjectIdCache.get(feedId);
112
+ }
113
+ /**
114
+ * Fetches the price feed object ID for a given feed ID (no caching).
115
+ * Throws an error if the object is not found.
116
+ */
117
+ async #fetchPriceFeedObjectId(feedId) {
118
+ const { id: tableId, fieldType } = await this.getPriceTableInfo();
119
+ const nameBytes = bcs.byteVector().serialize(Array.from(fromHex(feedId))).toBytes();
120
+ const result = await this.provider.core.getDynamicField({
121
+ parentId: tableId,
122
+ name: {
123
+ type: `${fieldType}::price_identifier::PriceIdentifier`,
124
+ bcs: nameBytes
125
+ }
126
+ });
127
+ if (!result.dynamicField) throw new Error(`Price feed object ID for feed ID ${feedId} not found.`);
128
+ return bcs.Address.parse(result.dynamicField.value.bcs);
129
+ }
130
+ /**
131
+ * Fetches the price table object ID for the current state ID, caching the promise.
132
+ * @returns Price table object ID and field type
133
+ */
134
+ getPriceTableInfo() {
135
+ if (!this.#priceTableInfo) this.#priceTableInfo = this.#fetchPriceTableInfo().catch((err) => {
136
+ this.#priceTableInfo = void 0;
137
+ throw err;
138
+ });
139
+ return this.#priceTableInfo;
140
+ }
141
+ /**
142
+ * Fetches the price table object ID and field type (no caching).
143
+ * @returns Price table object ID and field type
144
+ */
145
+ async #fetchPriceTableInfo() {
146
+ const result = await this.provider.core.getDynamicObjectField({
147
+ parentId: this.pythStateId,
148
+ name: {
149
+ type: "vector<u8>",
150
+ bcs: bcs.string().serialize("price_info").toBytes()
151
+ }
152
+ });
153
+ if (!result.object) throw new Error("Price Table not found, contract may not be initialized");
154
+ const priceIdentifier = parseStructTag(result.object.type).typeParams[0];
155
+ if (typeof priceIdentifier === "object" && priceIdentifier !== null && priceIdentifier.name === "PriceIdentifier" && "address" in priceIdentifier) return {
156
+ id: result.object.objectId,
157
+ fieldType: priceIdentifier.address
158
+ };
159
+ else throw new Error("fieldType not found");
160
+ }
161
+ /**
162
+ * Fetches the package ID for the Wormhole contract, with caching.
163
+ */
164
+ getWormholePackageId() {
165
+ if (!this.#wormholePackageId) this.#wormholePackageId = this.#fetchWormholePackageId();
166
+ return this.#wormholePackageId;
167
+ }
168
+ /**
169
+ * Fetches the package ID for the Wormhole contract (no caching).
170
+ */
171
+ async #fetchWormholePackageId() {
172
+ const result = await this.provider.core.getObject({
173
+ objectId: this.wormholeStateId,
174
+ include: { content: true }
175
+ });
176
+ if (!result.object?.content) throw new Error("Unable to fetch Wormhole state object");
177
+ return State$1.parse(result.object.content).upgrade_cap.package;
178
+ }
179
+ /**
180
+ * Fetches the package ID for the Pyth contract, with caching.
181
+ */
182
+ getPythPackageId() {
183
+ if (!this.#pythPackageId) this.#pythPackageId = this.#fetchPythPackageId();
184
+ return this.#pythPackageId;
185
+ }
186
+ /**
187
+ * Fetches the package ID for the Pyth contract (no caching).
188
+ */
189
+ async #fetchPythPackageId() {
190
+ const result = await this.provider.core.getObject({
191
+ objectId: this.pythStateId,
192
+ include: { content: true }
193
+ });
194
+ if (!result.object?.content) throw new Error(`Cannot fetch Pyth package ID for object ${this.pythStateId}`);
195
+ return State.parse(result.object.content).upgrade_cap.package;
196
+ }
197
+ /**
198
+ * Gets the base update fee from the Pyth state object.
199
+ */
200
+ async #fetchBaseUpdateFee() {
201
+ const result = await this.provider.core.getObject({
202
+ objectId: this.pythStateId,
203
+ include: { content: true }
204
+ });
205
+ if (!result.object?.content) throw new Error("Unable to fetch Pyth state object");
206
+ const state = State.parse(result.object.content);
207
+ return Number(state.base_update_fee);
208
+ }
209
+ /**
210
+ * Returns the cached base update fee, fetching it if necessary.
211
+ */
212
+ getBaseUpdateFee() {
213
+ if (!this.#baseUpdateFee) this.#baseUpdateFee = this.#fetchBaseUpdateFee();
214
+ return this.#baseUpdateFee;
215
+ }
216
+ };
217
+
218
+ //#endregion
219
+ export { HaneulPriceServiceConnection, HaneulPythClient };
220
+ //# sourceMappingURL=pyth.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pyth.mjs","names":["#priceFeedObjectIdCache","#fetchPriceFeedObjectId","#priceTableInfo","#fetchPriceTableInfo","#wormholePackageId","#fetchWormholePackageId","WormholeState","#pythPackageId","#fetchPythPackageId","PythState","#fetchBaseUpdateFee","#baseUpdateFee"],"sources":["../../src/pyth/pyth.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport type { ClientWithCoreApi } from '@haneullabs/haneul/client';\nimport type { Transaction } from '@haneullabs/haneul/transactions';\nimport { coinWithBalance } from '@haneullabs/haneul/transactions';\nimport { fromBase64, fromHex, parseStructTag } from '@haneullabs/haneul/utils';\n\nimport type { HexString } from './PriceServiceConnection.js';\nimport { PriceServiceConnection } from './PriceServiceConnection.js';\nimport { extractVaaBytesFromAccumulatorMessage } from './pyth-helpers.js';\nimport { State as PythState } from '../contracts/pyth/state.js';\nimport { State as WormholeState } from '../contracts/wormhole/state.js';\n\nconst MAX_ARGUMENT_SIZE = 16 * 1024;\nexport type ObjectId = string;\nexport class HaneulPriceServiceConnection extends PriceServiceConnection {\n\t/**\n\t * Fetch price feed update data.\n\t *\n\t * @param priceIds Array of hex-encoded price IDs.\n\t * @returns Array of buffers containing the price update data.\n\t */\n\tasync getPriceFeedsUpdateData(priceIds: HexString[]): Promise<Uint8Array[]> {\n\t\tconst latestVaas = await this.getLatestVaas(priceIds);\n\t\treturn latestVaas.map((vaa) => fromBase64(vaa));\n\t}\n}\nexport class HaneulPythClient {\n\t#pythPackageId?: Promise<ObjectId>;\n\t#wormholePackageId?: Promise<ObjectId>;\n\t#priceFeedObjectIdCache: Map<HexString, Promise<ObjectId>> = new Map();\n\t#priceTableInfo?: Promise<{ id: ObjectId; fieldType: ObjectId }>;\n\t#baseUpdateFee?: Promise<number>;\n\tprovider: ClientWithCoreApi;\n\tpythStateId: ObjectId;\n\twormholeStateId: ObjectId;\n\n\tconstructor(provider: ClientWithCoreApi, pythStateId: ObjectId, wormholeStateId: ObjectId) {\n\t\tthis.provider = provider;\n\t\tthis.pythStateId = pythStateId;\n\t\tthis.wormholeStateId = wormholeStateId;\n\t}\n\t/**\n\t * Verifies the VAAs using the Wormhole contract.\n\t *\n\t * @param vaas Array of VAA buffers to verify.\n\t * @param tx Transaction block to add commands to.\n\t * @returns Array of verified VAAs.\n\t */\n\tasync verifyVaas(vaas: Uint8Array[], tx: Transaction) {\n\t\tconst wormholePackageId = await this.getWormholePackageId();\n\t\tconst verifiedVaas = [];\n\t\tfor (const vaa of vaas) {\n\t\t\tconst [verifiedVaa] = tx.moveCall({\n\t\t\t\ttarget: `${wormholePackageId}::vaa::parse_and_verify`,\n\t\t\t\targuments: [tx.object(this.wormholeStateId), tx.pure.vector('u8', vaa), tx.object.clock()],\n\t\t\t});\n\t\t\tverifiedVaas.push(verifiedVaa);\n\t\t}\n\t\treturn verifiedVaas;\n\t}\n\t/**\n\t * Adds the necessary commands for updating the Pyth price feeds to the transaction block.\n\t *\n\t * @param tx Transaction block to add commands to.\n\t * @param updates Array of price feed updates received from the price service.\n\t * @param feedIds Array of feed IDs to update (in hex format).\n\t */\n\tasync updatePriceFeeds(\n\t\ttx: Transaction,\n\t\tupdates: Uint8Array[],\n\t\tfeedIds: HexString[],\n\t): Promise<ObjectId[]> {\n\t\tconst packageId = await this.getPythPackageId();\n\t\tlet priceUpdatesHotPotato;\n\t\tif (updates.length > 1) {\n\t\t\tthrow new Error(\n\t\t\t\t'SDK does not support sending multiple accumulator messages in a single transaction',\n\t\t\t);\n\t\t}\n\t\tconst vaa = extractVaaBytesFromAccumulatorMessage(updates[0]);\n\t\tconst verifiedVaas = await this.verifyVaas([vaa], tx);\n\t\t[priceUpdatesHotPotato] = tx.moveCall({\n\t\t\ttarget: `${packageId}::pyth::create_authenticated_price_infos_using_accumulator`,\n\t\t\targuments: [\n\t\t\t\ttx.object(this.pythStateId),\n\t\t\t\ttx.pure(\n\t\t\t\t\tbcs\n\t\t\t\t\t\t.vector(bcs.U8)\n\t\t\t\t\t\t.serialize(Array.from(updates[0]), {\n\t\t\t\t\t\t\tmaxSize: MAX_ARGUMENT_SIZE,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.toBytes(),\n\t\t\t\t),\n\t\t\t\tverifiedVaas[0],\n\t\t\t\ttx.object.clock(),\n\t\t\t],\n\t\t});\n\t\tconst priceInfoObjects: ObjectId[] = [];\n\t\tconst baseUpdateFee = await this.getBaseUpdateFee();\n\t\tfor (const feedId of feedIds) {\n\t\t\tconst priceInfoObjectId = await this.getPriceFeedObjectId(feedId);\n\t\t\tif (!priceInfoObjectId) {\n\t\t\t\tthrow new Error(`Price feed ${feedId} not found, please create it first`);\n\t\t\t}\n\t\t\tpriceInfoObjects.push(priceInfoObjectId);\n\t\t\t[priceUpdatesHotPotato] = tx.moveCall({\n\t\t\t\ttarget: `${packageId}::pyth::update_single_price_feed`,\n\t\t\t\targuments: [\n\t\t\t\t\ttx.object(this.pythStateId),\n\t\t\t\t\tpriceUpdatesHotPotato,\n\t\t\t\t\ttx.object(priceInfoObjectId),\n\t\t\t\t\tcoinWithBalance({ balance: baseUpdateFee }),\n\t\t\t\t\ttx.object.clock(),\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t\ttx.moveCall({\n\t\t\ttarget: `${packageId}::hot_potato_vector::destroy`,\n\t\t\targuments: [priceUpdatesHotPotato],\n\t\t\ttypeArguments: [`${packageId}::price_info::PriceInfo`],\n\t\t});\n\t\treturn priceInfoObjects;\n\t}\n\t/**\n\t * Get the price feed object ID for a given feed ID, caching the promise.\n\t * @param feedId\n\t */\n\tgetPriceFeedObjectId(feedId: HexString): Promise<ObjectId | undefined> {\n\t\tif (!this.#priceFeedObjectIdCache.has(feedId)) {\n\t\t\tthis.#priceFeedObjectIdCache.set(\n\t\t\t\tfeedId,\n\t\t\t\tthis.#fetchPriceFeedObjectId(feedId).catch((err) => {\n\t\t\t\t\t// Remove failed promises from the cache to allow retries\n\t\t\t\t\tthis.#priceFeedObjectIdCache.delete(feedId);\n\t\t\t\t\tthrow err;\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn this.#priceFeedObjectIdCache.get(feedId)!;\n\t}\n\n\t/**\n\t * Fetches the price feed object ID for a given feed ID (no caching).\n\t * Throws an error if the object is not found.\n\t */\n\tasync #fetchPriceFeedObjectId(feedId: HexString): Promise<ObjectId> {\n\t\tconst { id: tableId, fieldType } = await this.getPriceTableInfo();\n\n\t\t// Serialize the PriceIdentifier name using BCS (vector of bytes)\n\t\tconst nameBytes = bcs\n\t\t\t.byteVector()\n\t\t\t.serialize(Array.from(fromHex(feedId)))\n\t\t\t.toBytes();\n\n\t\tconst result = await this.provider.core.getDynamicField({\n\t\t\tparentId: tableId,\n\t\t\tname: {\n\t\t\t\ttype: `${fieldType}::price_identifier::PriceIdentifier`,\n\t\t\t\tbcs: nameBytes,\n\t\t\t},\n\t\t});\n\n\t\tif (!result.dynamicField) {\n\t\t\tthrow new Error(`Price feed object ID for feed ID ${feedId} not found.`);\n\t\t}\n\n\t\t// The value in the table is just the object ID (address)\n\t\tconst objectId = bcs.Address.parse(result.dynamicField.value.bcs);\n\t\treturn objectId;\n\t}\n\n\t/**\n\t * Fetches the price table object ID for the current state ID, caching the promise.\n\t * @returns Price table object ID and field type\n\t */\n\tgetPriceTableInfo(): Promise<{ id: ObjectId; fieldType: ObjectId }> {\n\t\tif (!this.#priceTableInfo) {\n\t\t\tconst promise = this.#fetchPriceTableInfo().catch((err) => {\n\t\t\t\t// Clear the cached promise on error\n\t\t\t\tthis.#priceTableInfo = undefined;\n\t\t\t\tthrow err;\n\t\t\t});\n\n\t\t\tthis.#priceTableInfo = promise;\n\t\t}\n\n\t\treturn this.#priceTableInfo;\n\t}\n\n\t/**\n\t * Fetches the price table object ID and field type (no caching).\n\t * @returns Price table object ID and field type\n\t */\n\tasync #fetchPriceTableInfo(): Promise<{ id: ObjectId; fieldType: ObjectId }> {\n\t\tconst result = await this.provider.core.getDynamicObjectField({\n\t\t\tparentId: this.pythStateId,\n\t\t\tname: {\n\t\t\t\ttype: 'vector<u8>',\n\t\t\t\tbcs: bcs.string().serialize('price_info').toBytes(),\n\t\t\t},\n\t\t});\n\n\t\tif (!result.object) {\n\t\t\tthrow new Error('Price Table not found, contract may not be initialized');\n\t\t}\n\n\t\tconst tableType = parseStructTag(result.object.type);\n\t\tconst priceIdentifier = tableType.typeParams[0];\n\t\tif (\n\t\t\ttypeof priceIdentifier === 'object' &&\n\t\t\tpriceIdentifier !== null &&\n\t\t\tpriceIdentifier.name === 'PriceIdentifier' &&\n\t\t\t'address' in priceIdentifier\n\t\t) {\n\t\t\treturn { id: result.object.objectId, fieldType: priceIdentifier.address };\n\t\t} else {\n\t\t\tthrow new Error('fieldType not found');\n\t\t}\n\t}\n\t/**\n\t * Fetches the package ID for the Wormhole contract, with caching.\n\t */\n\tgetWormholePackageId(): Promise<ObjectId> {\n\t\tif (!this.#wormholePackageId) {\n\t\t\tthis.#wormholePackageId = this.#fetchWormholePackageId();\n\t\t}\n\t\treturn this.#wormholePackageId;\n\t}\n\n\t/**\n\t * Fetches the package ID for the Wormhole contract (no caching).\n\t */\n\tasync #fetchWormholePackageId(): Promise<ObjectId> {\n\t\tconst result = await this.provider.core.getObject({\n\t\t\tobjectId: this.wormholeStateId,\n\t\t\tinclude: { content: true },\n\t\t});\n\n\t\tif (!result.object?.content) {\n\t\t\tthrow new Error('Unable to fetch Wormhole state object');\n\t\t}\n\n\t\tconst state = WormholeState.parse(result.object.content);\n\t\treturn state.upgrade_cap.package;\n\t}\n\n\t/**\n\t * Fetches the package ID for the Pyth contract, with caching.\n\t */\n\tgetPythPackageId(): Promise<ObjectId> {\n\t\tif (!this.#pythPackageId) {\n\t\t\tthis.#pythPackageId = this.#fetchPythPackageId();\n\t\t}\n\t\treturn this.#pythPackageId;\n\t}\n\n\t/**\n\t * Fetches the package ID for the Pyth contract (no caching).\n\t */\n\tasync #fetchPythPackageId(): Promise<ObjectId> {\n\t\tconst result = await this.provider.core.getObject({\n\t\t\tobjectId: this.pythStateId,\n\t\t\tinclude: { content: true },\n\t\t});\n\n\t\tif (!result.object?.content) {\n\t\t\tthrow new Error(`Cannot fetch Pyth package ID for object ${this.pythStateId}`);\n\t\t}\n\n\t\t// Parse the BCS content to get the upgrade_cap.package field\n\t\tconst state = PythState.parse(result.object.content);\n\t\treturn state.upgrade_cap.package;\n\t}\n\n\t/**\n\t * Gets the base update fee from the Pyth state object.\n\t */\n\tasync #fetchBaseUpdateFee(): Promise<number> {\n\t\tconst result = await this.provider.core.getObject({\n\t\t\tobjectId: this.pythStateId,\n\t\t\tinclude: { content: true },\n\t\t});\n\n\t\tif (!result.object?.content) {\n\t\t\tthrow new Error('Unable to fetch Pyth state object');\n\t\t}\n\n\t\t// Parse the BCS content to get the base_update_fee field\n\t\tconst state = PythState.parse(result.object.content);\n\t\treturn Number(state.base_update_fee);\n\t}\n\n\t/**\n\t * Returns the cached base update fee, fetching it if necessary.\n\t */\n\tgetBaseUpdateFee(): Promise<number> {\n\t\tif (!this.#baseUpdateFee) {\n\t\t\tthis.#baseUpdateFee = this.#fetchBaseUpdateFee();\n\t\t}\n\t\treturn this.#baseUpdateFee;\n\t}\n}\n"],"mappings":";;;;;;;;;AAeA,MAAM,oBAAoB,KAAK;AAE/B,IAAa,+BAAb,cAAkD,uBAAuB;;;;;;;CAOxE,MAAM,wBAAwB,UAA8C;AAE3E,UADmB,MAAM,KAAK,cAAc,SAAS,EACnC,KAAK,QAAQ,WAAW,IAAI,CAAC;;;AAGjD,IAAa,mBAAb,MAA8B;CAC7B;CACA;CACA,0CAA6D,IAAI,KAAK;CACtE;CACA;CAKA,YAAY,UAA6B,aAAuB,iBAA2B;AAC1F,OAAK,WAAW;AAChB,OAAK,cAAc;AACnB,OAAK,kBAAkB;;;;;;;;;CASxB,MAAM,WAAW,MAAoB,IAAiB;EACrD,MAAM,oBAAoB,MAAM,KAAK,sBAAsB;EAC3D,MAAM,eAAe,EAAE;AACvB,OAAK,MAAM,OAAO,MAAM;GACvB,MAAM,CAAC,eAAe,GAAG,SAAS;IACjC,QAAQ,GAAG,kBAAkB;IAC7B,WAAW;KAAC,GAAG,OAAO,KAAK,gBAAgB;KAAE,GAAG,KAAK,OAAO,MAAM,IAAI;KAAE,GAAG,OAAO,OAAO;KAAC;IAC1F,CAAC;AACF,gBAAa,KAAK,YAAY;;AAE/B,SAAO;;;;;;;;;CASR,MAAM,iBACL,IACA,SACA,SACsB;EACtB,MAAM,YAAY,MAAM,KAAK,kBAAkB;EAC/C,IAAI;AACJ,MAAI,QAAQ,SAAS,EACpB,OAAM,IAAI,MACT,qFACA;EAEF,MAAM,MAAM,sCAAsC,QAAQ,GAAG;EAC7D,MAAM,eAAe,MAAM,KAAK,WAAW,CAAC,IAAI,EAAE,GAAG;AACrD,GAAC,yBAAyB,GAAG,SAAS;GACrC,QAAQ,GAAG,UAAU;GACrB,WAAW;IACV,GAAG,OAAO,KAAK,YAAY;IAC3B,GAAG,KACF,IACE,OAAO,IAAI,GAAG,CACd,UAAU,MAAM,KAAK,QAAQ,GAAG,EAAE,EAClC,SAAS,mBACT,CAAC,CACD,SAAS,CACX;IACD,aAAa;IACb,GAAG,OAAO,OAAO;IACjB;GACD,CAAC;EACF,MAAM,mBAA+B,EAAE;EACvC,MAAM,gBAAgB,MAAM,KAAK,kBAAkB;AACnD,OAAK,MAAM,UAAU,SAAS;GAC7B,MAAM,oBAAoB,MAAM,KAAK,qBAAqB,OAAO;AACjE,OAAI,CAAC,kBACJ,OAAM,IAAI,MAAM,cAAc,OAAO,oCAAoC;AAE1E,oBAAiB,KAAK,kBAAkB;AACxC,IAAC,yBAAyB,GAAG,SAAS;IACrC,QAAQ,GAAG,UAAU;IACrB,WAAW;KACV,GAAG,OAAO,KAAK,YAAY;KAC3B;KACA,GAAG,OAAO,kBAAkB;KAC5B,gBAAgB,EAAE,SAAS,eAAe,CAAC;KAC3C,GAAG,OAAO,OAAO;KACjB;IACD,CAAC;;AAEH,KAAG,SAAS;GACX,QAAQ,GAAG,UAAU;GACrB,WAAW,CAAC,sBAAsB;GAClC,eAAe,CAAC,GAAG,UAAU,yBAAyB;GACtD,CAAC;AACF,SAAO;;;;;;CAMR,qBAAqB,QAAkD;AACtE,MAAI,CAAC,MAAKA,uBAAwB,IAAI,OAAO,CAC5C,OAAKA,uBAAwB,IAC5B,QACA,MAAKC,uBAAwB,OAAO,CAAC,OAAO,QAAQ;AAEnD,SAAKD,uBAAwB,OAAO,OAAO;AAC3C,SAAM;IACL,CACF;AAGF,SAAO,MAAKA,uBAAwB,IAAI,OAAO;;;;;;CAOhD,OAAMC,uBAAwB,QAAsC;EACnE,MAAM,EAAE,IAAI,SAAS,cAAc,MAAM,KAAK,mBAAmB;EAGjE,MAAM,YAAY,IAChB,YAAY,CACZ,UAAU,MAAM,KAAK,QAAQ,OAAO,CAAC,CAAC,CACtC,SAAS;EAEX,MAAM,SAAS,MAAM,KAAK,SAAS,KAAK,gBAAgB;GACvD,UAAU;GACV,MAAM;IACL,MAAM,GAAG,UAAU;IACnB,KAAK;IACL;GACD,CAAC;AAEF,MAAI,CAAC,OAAO,aACX,OAAM,IAAI,MAAM,oCAAoC,OAAO,aAAa;AAKzE,SADiB,IAAI,QAAQ,MAAM,OAAO,aAAa,MAAM,IAAI;;;;;;CAQlE,oBAAoE;AACnE,MAAI,CAAC,MAAKC,eAOT,OAAKA,iBANW,MAAKC,qBAAsB,CAAC,OAAO,QAAQ;AAE1D,SAAKD,iBAAkB;AACvB,SAAM;IACL;AAKH,SAAO,MAAKA;;;;;;CAOb,OAAMC,sBAAuE;EAC5E,MAAM,SAAS,MAAM,KAAK,SAAS,KAAK,sBAAsB;GAC7D,UAAU,KAAK;GACf,MAAM;IACL,MAAM;IACN,KAAK,IAAI,QAAQ,CAAC,UAAU,aAAa,CAAC,SAAS;IACnD;GACD,CAAC;AAEF,MAAI,CAAC,OAAO,OACX,OAAM,IAAI,MAAM,yDAAyD;EAI1E,MAAM,kBADY,eAAe,OAAO,OAAO,KAAK,CAClB,WAAW;AAC7C,MACC,OAAO,oBAAoB,YAC3B,oBAAoB,QACpB,gBAAgB,SAAS,qBACzB,aAAa,gBAEb,QAAO;GAAE,IAAI,OAAO,OAAO;GAAU,WAAW,gBAAgB;GAAS;MAEzE,OAAM,IAAI,MAAM,sBAAsB;;;;;CAMxC,uBAA0C;AACzC,MAAI,CAAC,MAAKC,kBACT,OAAKA,oBAAqB,MAAKC,wBAAyB;AAEzD,SAAO,MAAKD;;;;;CAMb,OAAMC,yBAA6C;EAClD,MAAM,SAAS,MAAM,KAAK,SAAS,KAAK,UAAU;GACjD,UAAU,KAAK;GACf,SAAS,EAAE,SAAS,MAAM;GAC1B,CAAC;AAEF,MAAI,CAAC,OAAO,QAAQ,QACnB,OAAM,IAAI,MAAM,wCAAwC;AAIzD,SADcC,QAAc,MAAM,OAAO,OAAO,QAAQ,CAC3C,YAAY;;;;;CAM1B,mBAAsC;AACrC,MAAI,CAAC,MAAKC,cACT,OAAKA,gBAAiB,MAAKC,oBAAqB;AAEjD,SAAO,MAAKD;;;;;CAMb,OAAMC,qBAAyC;EAC9C,MAAM,SAAS,MAAM,KAAK,SAAS,KAAK,UAAU;GACjD,UAAU,KAAK;GACf,SAAS,EAAE,SAAS,MAAM;GAC1B,CAAC;AAEF,MAAI,CAAC,OAAO,QAAQ,QACnB,OAAM,IAAI,MAAM,2CAA2C,KAAK,cAAc;AAK/E,SADcC,MAAU,MAAM,OAAO,OAAO,QAAQ,CACvC,YAAY;;;;;CAM1B,OAAMC,qBAAuC;EAC5C,MAAM,SAAS,MAAM,KAAK,SAAS,KAAK,UAAU;GACjD,UAAU,KAAK;GACf,SAAS,EAAE,SAAS,MAAM;GAC1B,CAAC;AAEF,MAAI,CAAC,OAAO,QAAQ,QACnB,OAAM,IAAI,MAAM,oCAAoC;EAIrD,MAAM,QAAQD,MAAU,MAAM,OAAO,OAAO,QAAQ;AACpD,SAAO,OAAO,MAAM,gBAAgB;;;;;CAMrC,mBAAoC;AACnC,MAAI,CAAC,MAAKE,cACT,OAAKA,gBAAiB,MAAKD,oBAAqB;AAEjD,SAAO,MAAKC"}
@@ -0,0 +1,174 @@
1
+ import { DeepBookConfig } from "../utils/config.mjs";
2
+ import * as _haneullabs_haneul_transactions52 from "@haneullabs/haneul/transactions";
3
+ import { Transaction, TransactionArgument } from "@haneullabs/haneul/transactions";
4
+
5
+ //#region src/transactions/balanceManager.d.ts
6
+ /**
7
+ * BalanceManagerContract class for managing BalanceManager operations.
8
+ */
9
+ declare class BalanceManagerContract {
10
+ #private;
11
+ /**
12
+ * @param {DeepBookConfig} config Configuration for BalanceManagerContract
13
+ */
14
+ constructor(config: DeepBookConfig);
15
+ /**
16
+ * @description Create and share a new BalanceManager
17
+ * @returns A function that takes a Transaction object
18
+ */
19
+ createAndShareBalanceManager: () => (tx: Transaction) => void;
20
+ /**
21
+ * @description Create a new BalanceManager, manually set the owner. Returns the manager.
22
+ * @returns A function that takes a Transaction object
23
+ */
24
+ createBalanceManagerWithOwner: (ownerAddress: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
25
+ /**
26
+ * @description Share the BalanceManager
27
+ * @param {TransactionArgument} manager The BalanceManager to share
28
+ * @returns A function that takes a Transaction object
29
+ */
30
+ shareBalanceManager: (manager: TransactionArgument) => (tx: Transaction) => void;
31
+ /**
32
+ * @description Deposit funds into the BalanceManager
33
+ * @param {string} managerKey The key of the BalanceManager
34
+ * @param {string} coinKey The key of the coin to deposit
35
+ * @param {number} amountToDeposit The amount to deposit
36
+ * @returns A function that takes a Transaction object
37
+ */
38
+ depositIntoManager: (managerKey: string, coinKey: string, amountToDeposit: number) => (tx: Transaction) => void;
39
+ /**
40
+ * @description Withdraw funds from the BalanceManager
41
+ * @param {string} managerKey The key of the BalanceManager
42
+ * @param {string} coinKey The key of the coin to withdraw
43
+ * @param {number} amountToWithdraw The amount to withdraw
44
+ * @param {string} recipient The recipient of the withdrawn funds
45
+ * @returns A function that takes a Transaction object
46
+ */
47
+ withdrawFromManager: (managerKey: string, coinKey: string, amountToWithdraw: number, recipient: string) => (tx: Transaction) => void;
48
+ /**
49
+ * @description Withdraw all funds from the BalanceManager
50
+ * @param {string} managerKey The key of the BalanceManager
51
+ * @param {string} coinKey The key of the coin to withdraw
52
+ * @param {string} recipient The recipient of the withdrawn funds
53
+ * @returns A function that takes a Transaction object
54
+ */
55
+ withdrawAllFromManager: (managerKey: string, coinKey: string, recipient: string) => (tx: Transaction) => void;
56
+ /**
57
+ * @description Check the balance of the BalanceManager
58
+ * @param {string} managerKey The key of the BalanceManager
59
+ * @param {string} coinKey The key of the coin to check the balance of
60
+ * @returns A function that takes a Transaction object
61
+ */
62
+ checkManagerBalance: (managerKey: string, coinKey: string) => (tx: Transaction) => void;
63
+ /**
64
+ * @description Generate a trade proof for the BalanceManager. Calls the appropriate function based on whether tradeCap is set.
65
+ * @param {string} managerKey The key of the BalanceManager
66
+ * @returns A function that takes a Transaction object
67
+ */
68
+ generateProof: (managerKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
69
+ /**
70
+ * @description Generate a trade proof as the owner
71
+ * @param {string} managerId The ID of the BalanceManager
72
+ * @returns A function that takes a Transaction object
73
+ */
74
+ generateProofAsOwner: (managerId: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
75
+ /**
76
+ * @description Generate a trade proof as a trader
77
+ * @param {string} managerId The ID of the BalanceManager
78
+ * @param {string} tradeCapId The ID of the tradeCap
79
+ * @returns A function that takes a Transaction object
80
+ */
81
+ generateProofAsTrader: (managerId: string, tradeCapId: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
82
+ /**
83
+ * @description Mint a TradeCap
84
+ * @param {string} managerKey The name of the BalanceManager
85
+ * @returns A function that takes a Transaction object
86
+ */
87
+ mintTradeCap: (managerKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
88
+ /**
89
+ * @description Mint a DepositCap
90
+ * @param {string} managerKey The name of the BalanceManager
91
+ * @returns A function that takes a Transaction object
92
+ */
93
+ mintDepositCap: (managerKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
94
+ /**
95
+ * @description Mint a WithdrawalCap
96
+ * @param {string} managerKey The name of the BalanceManager
97
+ * @returns A function that takes a Transaction object
98
+ */
99
+ mintWithdrawalCap: (managerKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
100
+ /**
101
+ * @description Deposit using the DepositCap
102
+ * @param {string} managerKey The name of the BalanceManager
103
+ * @param {string} coinKey The name of the coin to deposit
104
+ * @param {number} amountToDeposit The amount to deposit
105
+ * @returns A function that takes a Transaction object
106
+ */
107
+ depositWithCap: (managerKey: string, coinKey: string, amountToDeposit: number) => (tx: Transaction) => void;
108
+ /**
109
+ * @description Withdraw using the WithdrawCap
110
+ * @param {string} managerKey The name of the BalanceManager
111
+ * @param {string} coinKey The name of the coin to withdraw
112
+ * @param {number} amountToWithdraw The amount to withdraw
113
+ * @returns A function that takes a Transaction object
114
+ */
115
+ withdrawWithCap: (managerKey: string, coinKey: string, amountToWithdraw: number) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
116
+ /**
117
+ * @description Set the referral for the BalanceManager for a specific pool
118
+ * @param {string} managerKey The name of the BalanceManager
119
+ * @param {string} referral The referral (DeepBookPoolReferral) to set the BalanceManager to
120
+ * @param {TransactionArgument} tradeCap The tradeCap for permission checking
121
+ * @returns A function that takes a Transaction object
122
+ */
123
+ setBalanceManagerReferral: (managerKey: string, referral: string, tradeCap: TransactionArgument) => (tx: Transaction) => void;
124
+ /**
125
+ * @description Unset the referral for the BalanceManager for a specific pool
126
+ * @param {string} managerKey The name of the BalanceManager
127
+ * @param {string} poolKey The key of the pool to unset the referral for
128
+ * @param {TransactionArgument} tradeCap The tradeCap for permission checking
129
+ * @returns A function that takes a Transaction object
130
+ */
131
+ unsetBalanceManagerReferral: (managerKey: string, poolKey: string, tradeCap: TransactionArgument) => (tx: Transaction) => void;
132
+ registerBalanceManager: (managerKey: string) => (tx: Transaction) => void;
133
+ /**
134
+ * @description Get the owner of the BalanceManager
135
+ * @param {string} managerKey The key of the BalanceManager
136
+ * @returns A function that takes a Transaction object
137
+ */
138
+ owner: (managerKey: string) => (tx: Transaction) => void;
139
+ /**
140
+ * @description Get the ID of the BalanceManager
141
+ * @param {string} managerKey The key of the BalanceManager
142
+ * @returns A function that takes a Transaction object
143
+ */
144
+ id: (managerKey: string) => (tx: Transaction) => void;
145
+ /**
146
+ * @description Get the owner of the referral (DeepBookPoolReferral)
147
+ * @param {string} referralId The ID of the referral to get the owner of
148
+ * @returns A function that takes a Transaction object
149
+ */
150
+ balanceManagerReferralOwner: (referralId: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
151
+ /**
152
+ * @description Get the pool ID associated with a referral (DeepBookPoolReferral)
153
+ * @param {string} referralId The ID of the referral to get the pool ID of
154
+ * @returns A function that takes a Transaction object
155
+ */
156
+ balanceManagerReferralPoolId: (referralId: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
157
+ /**
158
+ * @description Get the referral ID from the balance manager for a specific pool
159
+ * @param {string} managerKey The name of the BalanceManager
160
+ * @param {string} poolKey Key of the pool to get the referral for
161
+ * @returns A function that takes a Transaction object
162
+ */
163
+ getBalanceManagerReferralId: (managerKey: string, poolKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions52.TransactionResult;
164
+ /**
165
+ * @description Revoke a TradeCap. This also revokes the associated DepositCap and WithdrawCap.
166
+ * @param {string} managerKey The name of the BalanceManager
167
+ * @param {string} tradeCapId The ID of the TradeCap to revoke
168
+ * @returns A function that takes a Transaction object
169
+ */
170
+ revokeTradeCap: (managerKey: string, tradeCapId: string) => (tx: Transaction) => void;
171
+ }
172
+ //#endregion
173
+ export { BalanceManagerContract };
174
+ //# sourceMappingURL=balanceManager.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balanceManager.d.mts","names":[],"sources":["../../src/transactions/balanceManager.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAUa,cAAA,sBAAA,CAAsB;EAMd,CAAA,OAAA;EAQsB;;;EA4BV,WAAA,CAAA,MAAA,EApCZ,cAoCY;EAA6B;;;;EAkFO,4BAAA,EAAA,GAAA,GAAA,CAAA,EAAA,EA9G1B,WA8G0B,EAAA,GAAA,IAAA;EAevB;;;;EA2B2B,6BAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EAxIT,WAwIS,EAAA,GAxIE,iCAAA,CAAA,iBAwIF;EAAW;;;;;EAwClC,mBAAA,EAAA,CAAA,OAAA,EApKjB,mBAoKiB,EAAA,GAAA,CAAA,EAAA,EApKY,WAoKZ,EAAA,GAAA,IAAA;EAAW;;;;;;;EAuFkB,kBAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EA3ON,WA2OM,EAAA,GAAA,IAAA;EASxB;;;;;;;;EAgEiC,mBAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EAzRjF,WAyRiF,EAAA,GAAA,IAAA;EAerB;;;;;;;2FAnRA;;;;;;;qEAkBE;;;;;;8CAevB,gBAAW,iCAAA,CAAA;;;;;;oDAcL,gBAAW,iCAAA,CAAA;;;;;;;yEAaU,gBAAW,iCAAA,CAAA;;;;;;6CAYvC,gBAAW,iCAAA,CAAA;;;;;;+CAcT,gBAAW,iCAAA,CAAA;;;;;;kDAcR,gBAAW,iCAAA,CAAA;;;;;;;;yFAiBY;;;;;;;;2FA6BC,gBAAW,iCAAA,CAAA;;;;;;;;8EAyBlC,6BAA6B;;;;;;;;+EAgB9B,6BAA6B;uDASxB;;;;;;sCAajB;;;;;;mCAaH;;;;;;4DAayB,gBAAW,iCAAA,CAAA;;;;;;6DAYV,gBAAW,iCAAA,CAAA;;;;;;;6EAaK,gBAAW,iCAAA,CAAA;;;;;;;mEAerB"}
@@ -0,0 +1,233 @@
1
+ import { coinWithBalance } from "@haneullabs/haneul/transactions";
2
+
3
+ //#region src/transactions/balanceManager.ts
4
+ /**
5
+ * BalanceManagerContract class for managing BalanceManager operations.
6
+ */
7
+ var BalanceManagerContract = class {
8
+ #config;
9
+ /**
10
+ * @param {DeepBookConfig} config Configuration for BalanceManagerContract
11
+ */
12
+ constructor(config) {
13
+ this.createAndShareBalanceManager = () => (tx) => {
14
+ const manager = tx.moveCall({ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::new` });
15
+ tx.moveCall({
16
+ target: "0x2::transfer::public_share_object",
17
+ arguments: [manager],
18
+ typeArguments: [`${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::BalanceManager`]
19
+ });
20
+ };
21
+ this.createBalanceManagerWithOwner = (ownerAddress) => (tx) => {
22
+ return tx.moveCall({
23
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::new_with_custom_owner`,
24
+ arguments: [tx.pure.address(ownerAddress)]
25
+ });
26
+ };
27
+ this.shareBalanceManager = (manager) => (tx) => {
28
+ tx.moveCall({
29
+ target: "0x2::transfer::public_share_object",
30
+ arguments: [manager],
31
+ typeArguments: [`${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::BalanceManager`]
32
+ });
33
+ };
34
+ this.depositIntoManager = (managerKey, coinKey, amountToDeposit) => (tx) => {
35
+ tx.setSenderIfNotSet(this.#config.address);
36
+ const managerId = this.#config.getBalanceManager(managerKey).address;
37
+ const coin = this.#config.getCoin(coinKey);
38
+ const depositInput = Math.round(amountToDeposit * coin.scalar);
39
+ const deposit = coinWithBalance({
40
+ type: coin.type,
41
+ balance: depositInput
42
+ });
43
+ tx.moveCall({
44
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::deposit`,
45
+ arguments: [tx.object(managerId), deposit],
46
+ typeArguments: [coin.type]
47
+ });
48
+ };
49
+ this.withdrawFromManager = (managerKey, coinKey, amountToWithdraw, recipient) => (tx) => {
50
+ const managerId = this.#config.getBalanceManager(managerKey).address;
51
+ const coin = this.#config.getCoin(coinKey);
52
+ const withdrawInput = Math.round(amountToWithdraw * coin.scalar);
53
+ const coinObject = tx.moveCall({
54
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::withdraw`,
55
+ arguments: [tx.object(managerId), tx.pure.u64(withdrawInput)],
56
+ typeArguments: [coin.type]
57
+ });
58
+ tx.transferObjects([coinObject], recipient);
59
+ };
60
+ this.withdrawAllFromManager = (managerKey, coinKey, recipient) => (tx) => {
61
+ const managerId = this.#config.getBalanceManager(managerKey).address;
62
+ const coin = this.#config.getCoin(coinKey);
63
+ const withdrawalCoin = tx.moveCall({
64
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::withdraw_all`,
65
+ arguments: [tx.object(managerId)],
66
+ typeArguments: [coin.type]
67
+ });
68
+ tx.transferObjects([withdrawalCoin], recipient);
69
+ };
70
+ this.checkManagerBalance = (managerKey, coinKey) => (tx) => {
71
+ const managerId = this.#config.getBalanceManager(managerKey).address;
72
+ const coin = this.#config.getCoin(coinKey);
73
+ tx.moveCall({
74
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::balance`,
75
+ arguments: [tx.object(managerId)],
76
+ typeArguments: [coin.type]
77
+ });
78
+ };
79
+ this.generateProof = (managerKey) => (tx) => {
80
+ const balanceManager = this.#config.getBalanceManager(managerKey);
81
+ return tx.add(balanceManager.tradeCap ? this.generateProofAsTrader(balanceManager.address, balanceManager.tradeCap) : this.generateProofAsOwner(balanceManager.address));
82
+ };
83
+ this.generateProofAsOwner = (managerId) => (tx) => {
84
+ return tx.moveCall({
85
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::generate_proof_as_owner`,
86
+ arguments: [tx.object(managerId)]
87
+ });
88
+ };
89
+ this.generateProofAsTrader = (managerId, tradeCapId) => (tx) => {
90
+ return tx.moveCall({
91
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::generate_proof_as_trader`,
92
+ arguments: [tx.object(managerId), tx.object(tradeCapId)]
93
+ });
94
+ };
95
+ this.mintTradeCap = (managerKey) => (tx) => {
96
+ const managerId = this.#config.getBalanceManager(managerKey).address;
97
+ return tx.moveCall({
98
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::mint_trade_cap`,
99
+ arguments: [tx.object(managerId)]
100
+ });
101
+ };
102
+ this.mintDepositCap = (managerKey) => (tx) => {
103
+ const managerId = this.#config.getBalanceManager(managerKey).address;
104
+ return tx.moveCall({
105
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::mint_deposit_cap`,
106
+ arguments: [tx.object(managerId)]
107
+ });
108
+ };
109
+ this.mintWithdrawalCap = (managerKey) => (tx) => {
110
+ const managerId = this.#config.getBalanceManager(managerKey).address;
111
+ return tx.moveCall({
112
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::mint_withdraw_cap`,
113
+ arguments: [tx.object(managerId)]
114
+ });
115
+ };
116
+ this.depositWithCap = (managerKey, coinKey, amountToDeposit) => (tx) => {
117
+ tx.setSenderIfNotSet(this.#config.address);
118
+ const manager = this.#config.getBalanceManager(managerKey);
119
+ const managerId = manager.address;
120
+ if (!manager.depositCap) throw new Error(`DepositCap not set for ${managerKey}`);
121
+ const depositCapId = manager.depositCap;
122
+ const coin = this.#config.getCoin(coinKey);
123
+ const depositInput = Math.round(amountToDeposit * coin.scalar);
124
+ const deposit = coinWithBalance({
125
+ type: coin.type,
126
+ balance: depositInput
127
+ });
128
+ tx.moveCall({
129
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::deposit_with_cap`,
130
+ arguments: [
131
+ tx.object(managerId),
132
+ tx.object(depositCapId),
133
+ deposit
134
+ ],
135
+ typeArguments: [coin.type]
136
+ });
137
+ };
138
+ this.withdrawWithCap = (managerKey, coinKey, amountToWithdraw) => (tx) => {
139
+ tx.setSenderIfNotSet(this.#config.address);
140
+ const manager = this.#config.getBalanceManager(managerKey);
141
+ const managerId = manager.address;
142
+ if (!manager.withdrawCap) throw new Error(`WithdrawCap not set for ${managerKey}`);
143
+ const withdrawCapId = manager.withdrawCap;
144
+ const coin = this.#config.getCoin(coinKey);
145
+ const withdrawAmount = Math.round(amountToWithdraw * coin.scalar);
146
+ return tx.moveCall({
147
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::withdraw_with_cap`,
148
+ arguments: [
149
+ tx.object(managerId),
150
+ tx.object(withdrawCapId),
151
+ tx.pure.u64(withdrawAmount)
152
+ ],
153
+ typeArguments: [coin.type]
154
+ });
155
+ };
156
+ this.setBalanceManagerReferral = (managerKey, referral, tradeCap) => (tx) => {
157
+ const managerId = this.#config.getBalanceManager(managerKey).address;
158
+ tx.moveCall({
159
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::set_balance_manager_referral`,
160
+ arguments: [
161
+ tx.object(managerId),
162
+ tx.object(referral),
163
+ tradeCap
164
+ ]
165
+ });
166
+ };
167
+ this.unsetBalanceManagerReferral = (managerKey, poolKey, tradeCap) => (tx) => {
168
+ const managerId = this.#config.getBalanceManager(managerKey).address;
169
+ const poolId = this.#config.getPool(poolKey).address;
170
+ tx.moveCall({
171
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::unset_balance_manager_referral`,
172
+ arguments: [
173
+ tx.object(managerId),
174
+ tx.pure.id(poolId),
175
+ tradeCap
176
+ ]
177
+ });
178
+ };
179
+ this.registerBalanceManager = (managerKey) => (tx) => {
180
+ const managerId = this.#config.getBalanceManager(managerKey).address;
181
+ tx.moveCall({
182
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::register_balance_manager`,
183
+ arguments: [tx.object(managerId), tx.object(this.#config.REGISTRY_ID)]
184
+ });
185
+ };
186
+ this.owner = (managerKey) => (tx) => {
187
+ const managerId = this.#config.getBalanceManager(managerKey).address;
188
+ tx.moveCall({
189
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::owner`,
190
+ arguments: [tx.object(managerId)]
191
+ });
192
+ };
193
+ this.id = (managerKey) => (tx) => {
194
+ const managerId = this.#config.getBalanceManager(managerKey).address;
195
+ tx.moveCall({
196
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::id`,
197
+ arguments: [tx.object(managerId)]
198
+ });
199
+ };
200
+ this.balanceManagerReferralOwner = (referralId) => (tx) => {
201
+ return tx.moveCall({
202
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::balance_manager_referral_owner`,
203
+ arguments: [tx.object(referralId)]
204
+ });
205
+ };
206
+ this.balanceManagerReferralPoolId = (referralId) => (tx) => {
207
+ return tx.moveCall({
208
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::balance_manager_referral_pool_id`,
209
+ arguments: [tx.object(referralId)]
210
+ });
211
+ };
212
+ this.getBalanceManagerReferralId = (managerKey, poolKey) => (tx) => {
213
+ const managerId = this.#config.getBalanceManager(managerKey).address;
214
+ const poolId = this.#config.getPool(poolKey).address;
215
+ return tx.moveCall({
216
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::get_balance_manager_referral_id`,
217
+ arguments: [tx.object(managerId), tx.pure.id(poolId)]
218
+ });
219
+ };
220
+ this.revokeTradeCap = (managerKey, tradeCapId) => (tx) => {
221
+ const managerId = this.#config.getBalanceManager(managerKey).address;
222
+ tx.moveCall({
223
+ target: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::revoke_trade_cap`,
224
+ arguments: [tx.object(managerId), tx.pure.id(tradeCapId)]
225
+ });
226
+ };
227
+ this.#config = config;
228
+ }
229
+ };
230
+
231
+ //#endregion
232
+ export { BalanceManagerContract };
233
+ //# sourceMappingURL=balanceManager.mjs.map