@haneullabs/deepbook-v3 0.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. package/CHANGELOG.md +342 -81
  2. package/dist/client.d.mts +238 -0
  3. package/dist/client.d.mts.map +1 -0
  4. package/dist/client.mjs +397 -0
  5. package/dist/client.mjs.map +1 -0
  6. package/dist/contracts/deepbook/account.d.mts +37 -0
  7. package/dist/contracts/deepbook/account.d.mts.map +1 -0
  8. package/dist/contracts/deepbook/account.mjs +31 -0
  9. package/dist/contracts/deepbook/account.mjs.map +1 -0
  10. package/dist/contracts/deepbook/balances.d.mts +12 -0
  11. package/dist/contracts/deepbook/balances.d.mts.map +1 -0
  12. package/dist/contracts/deepbook/balances.mjs +24 -0
  13. package/dist/contracts/deepbook/balances.mjs.map +1 -0
  14. package/dist/contracts/deepbook/deep_price.d.mts +12 -0
  15. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -0
  16. package/dist/contracts/deepbook/deep_price.mjs +49 -0
  17. package/dist/contracts/deepbook/deep_price.mjs.map +1 -0
  18. package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts +21 -0
  19. package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts.map +1 -0
  20. package/dist/contracts/deepbook/deps/haneul/vec_set.mjs +26 -0
  21. package/dist/contracts/deepbook/deps/haneul/vec_set.mjs.map +1 -0
  22. package/dist/contracts/deepbook/order.d.mts +23 -0
  23. package/dist/contracts/deepbook/order.d.mts.map +1 -0
  24. package/dist/contracts/deepbook/order.mjs +63 -0
  25. package/dist/contracts/deepbook/order.mjs.map +1 -0
  26. package/dist/contracts/pyth/data_source.mjs +20 -0
  27. package/dist/contracts/pyth/data_source.mjs.map +1 -0
  28. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
  29. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
  30. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
  31. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
  32. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs +16 -0
  33. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs.map +1 -0
  34. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs +16 -0
  35. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs.map +1 -0
  36. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs +16 -0
  37. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs.map +1 -0
  38. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs +16 -0
  39. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs.map +1 -0
  40. package/dist/contracts/pyth/i64.mjs +19 -0
  41. package/dist/contracts/pyth/i64.mjs.map +1 -0
  42. package/dist/contracts/pyth/price.mjs +22 -0
  43. package/dist/contracts/pyth/price.mjs.map +1 -0
  44. package/dist/contracts/pyth/price_feed.mjs +21 -0
  45. package/dist/contracts/pyth/price_feed.mjs.map +1 -0
  46. package/dist/contracts/pyth/price_identifier.mjs +16 -0
  47. package/dist/contracts/pyth/price_identifier.mjs.map +1 -0
  48. package/dist/contracts/pyth/price_info.mjs +28 -0
  49. package/dist/contracts/pyth/price_info.mjs.map +1 -0
  50. package/dist/contracts/pyth/state.mjs +36 -0
  51. package/dist/contracts/pyth/state.mjs.map +1 -0
  52. package/dist/contracts/utils/index.d.mts +34 -0
  53. package/dist/contracts/utils/index.d.mts.map +1 -0
  54. package/dist/contracts/utils/index.mjs +35 -0
  55. package/dist/contracts/utils/index.mjs.map +1 -0
  56. package/dist/contracts/wormhole/bytes32.mjs +16 -0
  57. package/dist/contracts/wormhole/bytes32.mjs.map +1 -0
  58. package/dist/contracts/wormhole/consumed_vaas.mjs +16 -0
  59. package/dist/contracts/wormhole/consumed_vaas.mjs.map +1 -0
  60. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +16 -0
  61. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -0
  62. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
  63. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
  64. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
  65. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
  66. package/dist/contracts/wormhole/external_address.mjs +16 -0
  67. package/dist/contracts/wormhole/external_address.mjs.map +1 -0
  68. package/dist/contracts/wormhole/fee_collector.mjs +20 -0
  69. package/dist/contracts/wormhole/fee_collector.mjs.map +1 -0
  70. package/dist/contracts/wormhole/set.mjs +16 -0
  71. package/dist/contracts/wormhole/set.mjs.map +1 -0
  72. package/dist/contracts/wormhole/state.mjs +31 -0
  73. package/dist/contracts/wormhole/state.mjs.map +1 -0
  74. package/dist/index.d.mts +25 -0
  75. package/dist/index.mjs +26 -0
  76. package/dist/pyth/PriceServiceConnection.d.mts +26 -0
  77. package/dist/pyth/PriceServiceConnection.d.mts.map +1 -0
  78. package/dist/pyth/PriceServiceConnection.mjs +35 -0
  79. package/dist/pyth/PriceServiceConnection.mjs.map +1 -0
  80. package/dist/pyth/pyth-helpers.mjs +18 -0
  81. package/dist/pyth/pyth-helpers.mjs.map +1 -0
  82. package/dist/pyth/pyth.d.mts +69 -0
  83. package/dist/pyth/pyth.d.mts.map +1 -0
  84. package/dist/pyth/pyth.mjs +220 -0
  85. package/dist/pyth/pyth.mjs.map +1 -0
  86. package/dist/queries/accountQueries.mjs +104 -0
  87. package/dist/queries/accountQueries.mjs.map +1 -0
  88. package/dist/queries/balanceManagerQueries.mjs +113 -0
  89. package/dist/queries/balanceManagerQueries.mjs.map +1 -0
  90. package/dist/queries/context.mjs +15 -0
  91. package/dist/queries/context.mjs.map +1 -0
  92. package/dist/queries/marginManagerQueries.mjs +365 -0
  93. package/dist/queries/marginManagerQueries.mjs.map +1 -0
  94. package/dist/queries/marginPoolQueries.mjs +184 -0
  95. package/dist/queries/marginPoolQueries.mjs.map +1 -0
  96. package/dist/queries/orderQueries.mjs +165 -0
  97. package/dist/queries/orderQueries.mjs.map +1 -0
  98. package/dist/queries/poolQueries.mjs +234 -0
  99. package/dist/queries/poolQueries.mjs.map +1 -0
  100. package/dist/queries/priceFeedQueries.mjs +83 -0
  101. package/dist/queries/priceFeedQueries.mjs.map +1 -0
  102. package/dist/queries/quantityQueries.mjs +216 -0
  103. package/dist/queries/quantityQueries.mjs.map +1 -0
  104. package/dist/queries/referralQueries.mjs +96 -0
  105. package/dist/queries/referralQueries.mjs.map +1 -0
  106. package/dist/queries/registryQueries.mjs +162 -0
  107. package/dist/queries/registryQueries.mjs.map +1 -0
  108. package/dist/queries/tpslQueries.mjs +62 -0
  109. package/dist/queries/tpslQueries.mjs.map +1 -0
  110. package/dist/transactions/balanceManager.d.mts +174 -0
  111. package/dist/transactions/balanceManager.d.mts.map +1 -0
  112. package/dist/transactions/balanceManager.mjs +234 -0
  113. package/dist/transactions/balanceManager.mjs.map +1 -0
  114. package/dist/transactions/deepbook.d.mts +490 -0
  115. package/dist/transactions/deepbook.d.mts.map +1 -0
  116. package/dist/transactions/deepbook.mjs +979 -0
  117. package/dist/transactions/deepbook.mjs.map +1 -0
  118. package/dist/transactions/deepbookAdmin.d.mts +111 -0
  119. package/dist/transactions/deepbookAdmin.d.mts.map +1 -0
  120. package/dist/transactions/deepbookAdmin.mjs +222 -0
  121. package/dist/transactions/deepbookAdmin.mjs.map +1 -0
  122. package/dist/transactions/flashLoans.d.mts +61 -0
  123. package/dist/transactions/flashLoans.d.mts.map +1 -0
  124. package/dist/transactions/flashLoans.mjs +77 -0
  125. package/dist/transactions/flashLoans.mjs.map +1 -0
  126. package/dist/transactions/governance.d.mts +47 -0
  127. package/dist/transactions/governance.d.mts.map +1 -0
  128. package/dist/transactions/governance.mjs +91 -0
  129. package/dist/transactions/governance.mjs.map +1 -0
  130. package/dist/transactions/marginAdmin.d.mts +138 -0
  131. package/dist/transactions/marginAdmin.d.mts.map +1 -0
  132. package/dist/transactions/marginAdmin.mjs +250 -0
  133. package/dist/transactions/marginAdmin.mjs.map +1 -0
  134. package/dist/transactions/marginLiquidations.d.mts +67 -0
  135. package/dist/transactions/marginLiquidations.d.mts.map +1 -0
  136. package/dist/transactions/marginLiquidations.mjs +110 -0
  137. package/dist/transactions/marginLiquidations.mjs.map +1 -0
  138. package/dist/transactions/marginMaintainer.d.mts +86 -0
  139. package/dist/transactions/marginMaintainer.d.mts.map +1 -0
  140. package/dist/transactions/marginMaintainer.mjs +161 -0
  141. package/dist/transactions/marginMaintainer.mjs.map +1 -0
  142. package/dist/transactions/marginManager.d.mts +247 -0
  143. package/dist/transactions/marginManager.d.mts.map +1 -0
  144. package/dist/transactions/marginManager.mjs +548 -0
  145. package/dist/transactions/marginManager.mjs.map +1 -0
  146. package/dist/transactions/marginPool.d.mts +140 -0
  147. package/dist/transactions/marginPool.d.mts.map +1 -0
  148. package/dist/transactions/marginPool.mjs +207 -0
  149. package/dist/transactions/marginPool.mjs.map +1 -0
  150. package/dist/transactions/marginRegistry.d.mts +100 -0
  151. package/dist/transactions/marginRegistry.d.mts.map +1 -0
  152. package/dist/transactions/marginRegistry.mjs +128 -0
  153. package/dist/transactions/marginRegistry.mjs.map +1 -0
  154. package/dist/transactions/marginTPSL.d.mts +100 -0
  155. package/dist/transactions/marginTPSL.d.mts.map +1 -0
  156. package/dist/transactions/marginTPSL.mjs +173 -0
  157. package/dist/transactions/marginTPSL.mjs.map +1 -0
  158. package/dist/transactions/poolProxy.d.mts +123 -0
  159. package/dist/transactions/poolProxy.d.mts.map +1 -0
  160. package/dist/transactions/poolProxy.mjs +336 -0
  161. package/dist/transactions/poolProxy.mjs.map +1 -0
  162. package/dist/types/bcs.d.mts +5 -0
  163. package/dist/types/bcs.mjs +7 -0
  164. package/dist/types/index.d.mts +374 -0
  165. package/dist/types/index.d.mts.map +1 -0
  166. package/dist/types/index.mjs +18 -0
  167. package/dist/types/index.mjs.map +1 -0
  168. package/dist/utils/config.d.mts +90 -0
  169. package/dist/utils/config.d.mts.map +1 -0
  170. package/dist/utils/config.mjs +104 -0
  171. package/dist/utils/config.mjs.map +1 -0
  172. package/dist/utils/constants.d.mts +93 -0
  173. package/dist/utils/constants.d.mts.map +1 -0
  174. package/dist/utils/constants.mjs +408 -0
  175. package/dist/utils/constants.mjs.map +1 -0
  176. package/dist/utils/conversion.mjs +26 -0
  177. package/dist/utils/conversion.mjs.map +1 -0
  178. package/dist/utils/errors.d.mts +46 -0
  179. package/dist/utils/errors.d.mts.map +1 -0
  180. package/dist/utils/errors.mjs +59 -0
  181. package/dist/utils/errors.mjs.map +1 -0
  182. package/dist/{cjs/utils/validation.d.ts → utils/validation.d.mts} +11 -7
  183. package/dist/utils/validation.d.mts.map +1 -0
  184. package/dist/utils/validation.mjs +76 -0
  185. package/dist/utils/validation.mjs.map +1 -0
  186. package/package.json +30 -26
  187. package/src/client.ts +467 -2255
  188. package/src/contracts/deepbook/account.ts +15 -15
  189. package/src/contracts/deepbook/balance_manager.ts +343 -57
  190. package/src/contracts/deepbook/balances.ts +3 -2
  191. package/src/contracts/deepbook/big_vector.ts +6 -7
  192. package/src/contracts/deepbook/book.ts +3 -2
  193. package/src/contracts/deepbook/constants.ts +95 -3
  194. package/src/contracts/deepbook/deep_price.ts +7 -7
  195. package/src/contracts/deepbook/deps/{sui → haneul}/bag.ts +8 -8
  196. package/src/contracts/deepbook/deps/{sui → haneul}/balance.ts +4 -3
  197. package/src/contracts/deepbook/deps/{sui → haneul}/table.ts +6 -6
  198. package/src/contracts/deepbook/deps/{sui → haneul}/vec_map.ts +4 -4
  199. package/src/contracts/deepbook/deps/{sui → haneul}/vec_set.ts +4 -4
  200. package/src/contracts/deepbook/deps/{sui → haneul}/versioned.ts +4 -4
  201. package/src/contracts/deepbook/deps/std/type_name.ts +3 -2
  202. package/src/contracts/deepbook/ewma.ts +14 -3
  203. package/src/contracts/deepbook/fill.ts +21 -21
  204. package/src/contracts/deepbook/governance.ts +4 -3
  205. package/src/contracts/deepbook/history.ts +4 -3
  206. package/src/contracts/deepbook/math.ts +15 -15
  207. package/src/contracts/deepbook/order.ts +16 -16
  208. package/src/contracts/deepbook/order_info.ts +39 -27
  209. package/src/contracts/deepbook/order_query.ts +12 -12
  210. package/src/contracts/deepbook/pool.ts +883 -526
  211. package/src/contracts/deepbook/registry.ts +149 -38
  212. package/src/contracts/deepbook/state.ts +14 -3
  213. package/src/contracts/deepbook/trade_params.ts +3 -2
  214. package/src/contracts/deepbook/vault.ts +5 -4
  215. package/src/contracts/pyth/batch_price_attestation.ts +92 -0
  216. package/src/contracts/pyth/contract_upgrade.ts +54 -0
  217. package/src/contracts/pyth/data_source.ts +64 -0
  218. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  219. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  220. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.ts +12 -0
  221. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.ts +13 -0
  222. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.ts +13 -0
  223. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.ts +12 -0
  224. package/src/contracts/pyth/deserialize.ts +117 -0
  225. package/src/contracts/pyth/event.ts +20 -0
  226. package/src/contracts/pyth/governance.ts +113 -0
  227. package/src/contracts/pyth/governance_action.ts +130 -0
  228. package/src/contracts/pyth/governance_instruction.ts +98 -0
  229. package/src/contracts/pyth/hot_potato_vector.ts +70 -0
  230. package/src/contracts/pyth/i64.ts +94 -0
  231. package/src/contracts/pyth/merkle_tree.ts +41 -0
  232. package/src/contracts/pyth/migrate.ts +29 -0
  233. package/src/contracts/pyth/price.ts +102 -0
  234. package/src/contracts/pyth/price_feed.ts +101 -0
  235. package/src/contracts/pyth/price_identifier.ts +46 -0
  236. package/src/contracts/pyth/price_info.ts +220 -0
  237. package/src/contracts/pyth/price_status.ts +74 -0
  238. package/src/contracts/pyth/pyth.ts +236 -0
  239. package/src/contracts/pyth/set.ts +93 -0
  240. package/src/contracts/pyth/set_data_sources.ts +14 -0
  241. package/src/contracts/pyth/set_fee_recipient.ts +13 -0
  242. package/src/contracts/pyth/set_governance_data_source.ts +16 -0
  243. package/src/contracts/pyth/set_stale_price_threshold.ts +13 -0
  244. package/src/contracts/pyth/set_update_fee.ts +14 -0
  245. package/src/contracts/pyth/setup.ts +12 -0
  246. package/src/contracts/pyth/state.ts +227 -0
  247. package/src/contracts/pyth/version_control.ts +25 -0
  248. package/src/contracts/utils/index.ts +100 -50
  249. package/src/contracts/wormhole/bytes32.ts +12 -0
  250. package/src/contracts/wormhole/consumed_vaas.ts +13 -0
  251. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts +12 -0
  252. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  253. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  254. package/src/contracts/wormhole/external_address.ts +13 -0
  255. package/src/contracts/wormhole/fee_collector.ts +15 -0
  256. package/src/contracts/wormhole/set.ts +12 -0
  257. package/src/contracts/wormhole/state.ts +25 -0
  258. package/src/index.ts +44 -3
  259. package/src/pyth/pyth.ts +51 -50
  260. package/src/queries/accountQueries.ts +117 -0
  261. package/src/queries/balanceManagerQueries.ts +156 -0
  262. package/src/queries/context.ts +44 -0
  263. package/src/queries/index.ts +16 -0
  264. package/src/queries/marginManagerQueries.ts +575 -0
  265. package/src/queries/marginPoolQueries.ts +226 -0
  266. package/src/queries/orderQueries.ts +202 -0
  267. package/src/queries/poolQueries.ts +266 -0
  268. package/src/queries/priceFeedQueries.ts +141 -0
  269. package/src/queries/quantityQueries.ts +266 -0
  270. package/src/queries/referralQueries.ts +112 -0
  271. package/src/queries/registryQueries.ts +185 -0
  272. package/src/queries/tpslQueries.ts +88 -0
  273. package/src/transactions/balanceManager.ts +5 -4
  274. package/src/transactions/deepbook.ts +117 -84
  275. package/src/transactions/deepbookAdmin.ts +10 -9
  276. package/src/transactions/flashLoans.ts +5 -4
  277. package/src/transactions/governance.ts +5 -4
  278. package/src/transactions/marginAdmin.ts +12 -8
  279. package/src/transactions/marginLiquidations.ts +5 -4
  280. package/src/transactions/marginMaintainer.ts +28 -16
  281. package/src/transactions/marginManager.ts +78 -29
  282. package/src/transactions/marginPool.ts +7 -7
  283. package/src/transactions/marginTPSL.ts +16 -11
  284. package/src/transactions/poolProxy.ts +62 -11
  285. package/src/types/bcs.ts +1 -1
  286. package/src/types/index.ts +217 -53
  287. package/src/utils/config.ts +38 -17
  288. package/src/utils/constants.ts +73 -18
  289. package/src/utils/conversion.ts +33 -0
  290. package/src/utils/validation.ts +1 -1
  291. package/dist/cjs/client.d.ts +0 -861
  292. package/dist/cjs/client.js +0 -1982
  293. package/dist/cjs/client.js.map +0 -7
  294. package/dist/cjs/contracts/deepbook/account.d.ts +0 -105
  295. package/dist/cjs/contracts/deepbook/account.js +0 -163
  296. package/dist/cjs/contracts/deepbook/account.js.map +0 -7
  297. package/dist/cjs/contracts/deepbook/balance_manager.d.ts +0 -268
  298. package/dist/cjs/contracts/deepbook/balance_manager.js +0 -361
  299. package/dist/cjs/contracts/deepbook/balance_manager.js.map +0 -7
  300. package/dist/cjs/contracts/deepbook/balances.d.ts +0 -10
  301. package/dist/cjs/contracts/deepbook/balances.js +0 -35
  302. package/dist/cjs/contracts/deepbook/balances.js.map +0 -7
  303. package/dist/cjs/contracts/deepbook/big_vector.d.ts +0 -62
  304. package/dist/cjs/contracts/deepbook/big_vector.js +0 -80
  305. package/dist/cjs/contracts/deepbook/big_vector.js.map +0 -7
  306. package/dist/cjs/contracts/deepbook/book.d.ts +0 -34
  307. package/dist/cjs/contracts/deepbook/book.js +0 -50
  308. package/dist/cjs/contracts/deepbook/book.js.map +0 -7
  309. package/dist/cjs/contracts/deepbook/constants.d.ts +0 -176
  310. package/dist/cjs/contracts/deepbook/constants.js +0 -338
  311. package/dist/cjs/contracts/deepbook/constants.js.map +0 -7
  312. package/dist/cjs/contracts/deepbook/deep_price.d.ts +0 -60
  313. package/dist/cjs/contracts/deepbook/deep_price.js +0 -87
  314. package/dist/cjs/contracts/deepbook/deep_price.js.map +0 -7
  315. package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +0 -14
  316. package/dist/cjs/contracts/deepbook/deps/std/type_name.js +0 -42
  317. package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +0 -7
  318. package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +0 -33
  319. package/dist/cjs/contracts/deepbook/deps/sui/bag.js +0 -47
  320. package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +0 -7
  321. package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +0 -9
  322. package/dist/cjs/contracts/deepbook/deps/sui/balance.js +0 -33
  323. package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +0 -7
  324. package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +0 -5
  325. package/dist/cjs/contracts/deepbook/deps/sui/object.js +0 -33
  326. package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +0 -7
  327. package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +0 -28
  328. package/dist/cjs/contracts/deepbook/deps/sui/table.js +0 -47
  329. package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +0 -7
  330. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
  331. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +0 -45
  332. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
  333. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
  334. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +0 -35
  335. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
  336. package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
  337. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +0 -45
  338. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +0 -7
  339. package/dist/cjs/contracts/deepbook/ewma.d.ts +0 -17
  340. package/dist/cjs/contracts/deepbook/ewma.js +0 -39
  341. package/dist/cjs/contracts/deepbook/ewma.js.map +0 -7
  342. package/dist/cjs/contracts/deepbook/fill.d.ts +0 -153
  343. package/dist/cjs/contracts/deepbook/fill.js +0 -251
  344. package/dist/cjs/contracts/deepbook/fill.js.map +0 -7
  345. package/dist/cjs/contracts/deepbook/governance.d.ts +0 -63
  346. package/dist/cjs/contracts/deepbook/governance.js +0 -79
  347. package/dist/cjs/contracts/deepbook/governance.js.map +0 -7
  348. package/dist/cjs/contracts/deepbook/history.d.ts +0 -60
  349. package/dist/cjs/contracts/deepbook/history.js +0 -78
  350. package/dist/cjs/contracts/deepbook/history.js.map +0 -7
  351. package/dist/cjs/contracts/deepbook/math.d.ts +0 -94
  352. package/dist/cjs/contracts/deepbook/math.js +0 -132
  353. package/dist/cjs/contracts/deepbook/math.js.map +0 -7
  354. package/dist/cjs/contracts/deepbook/order.d.ts +0 -135
  355. package/dist/cjs/contracts/deepbook/order.js +0 -218
  356. package/dist/cjs/contracts/deepbook/order.js.map +0 -7
  357. package/dist/cjs/contracts/deepbook/order_info.d.ts +0 -296
  358. package/dist/cjs/contracts/deepbook/order_info.js +0 -386
  359. package/dist/cjs/contracts/deepbook/order_info.js.map +0 -7
  360. package/dist/cjs/contracts/deepbook/order_query.d.ts +0 -85
  361. package/dist/cjs/contracts/deepbook/order_query.js +0 -96
  362. package/dist/cjs/contracts/deepbook/order_query.js.map +0 -7
  363. package/dist/cjs/contracts/deepbook/pool.d.ts +0 -1218
  364. package/dist/cjs/contracts/deepbook/pool.js +0 -1236
  365. package/dist/cjs/contracts/deepbook/pool.js.map +0 -7
  366. package/dist/cjs/contracts/deepbook/registry.d.ts +0 -134
  367. package/dist/cjs/contracts/deepbook/registry.js +0 -182
  368. package/dist/cjs/contracts/deepbook/registry.js.map +0 -7
  369. package/dist/cjs/contracts/deepbook/state.d.ts +0 -117
  370. package/dist/cjs/contracts/deepbook/state.js +0 -104
  371. package/dist/cjs/contracts/deepbook/state.js.map +0 -7
  372. package/dist/cjs/contracts/deepbook/trade_params.d.ts +0 -7
  373. package/dist/cjs/contracts/deepbook/trade_params.js +0 -35
  374. package/dist/cjs/contracts/deepbook/trade_params.js.map +0 -7
  375. package/dist/cjs/contracts/deepbook/vault.d.ts +0 -30
  376. package/dist/cjs/contracts/deepbook/vault.js +0 -65
  377. package/dist/cjs/contracts/deepbook/vault.js.map +0 -7
  378. package/dist/cjs/contracts/utils/index.d.ts +0 -25
  379. package/dist/cjs/contracts/utils/index.js +0 -148
  380. package/dist/cjs/contracts/utils/index.js.map +0 -7
  381. package/dist/cjs/index.d.ts +0 -23
  382. package/dist/cjs/index.js +0 -81
  383. package/dist/cjs/index.js.map +0 -7
  384. package/dist/cjs/package.json +0 -4
  385. package/dist/cjs/pyth/PriceServiceConnection.d.ts +0 -26
  386. package/dist/cjs/pyth/PriceServiceConnection.js +0 -68
  387. package/dist/cjs/pyth/PriceServiceConnection.js.map +0 -7
  388. package/dist/cjs/pyth/pyth-helpers.d.ts +0 -7
  389. package/dist/cjs/pyth/pyth-helpers.js +0 -36
  390. package/dist/cjs/pyth/pyth-helpers.js.map +0 -7
  391. package/dist/cjs/pyth/pyth.d.ts +0 -65
  392. package/dist/cjs/pyth/pyth.js +0 -269
  393. package/dist/cjs/pyth/pyth.js.map +0 -7
  394. package/dist/cjs/transactions/balanceManager.d.ts +0 -168
  395. package/dist/cjs/transactions/balanceManager.js +0 -384
  396. package/dist/cjs/transactions/balanceManager.js.map +0 -7
  397. package/dist/cjs/transactions/deepbook.d.ts +0 -477
  398. package/dist/cjs/transactions/deepbook.js +0 -1335
  399. package/dist/cjs/transactions/deepbook.js.map +0 -7
  400. package/dist/cjs/transactions/deepbookAdmin.d.ts +0 -105
  401. package/dist/cjs/transactions/deepbookAdmin.js +0 -334
  402. package/dist/cjs/transactions/deepbookAdmin.js.map +0 -7
  403. package/dist/cjs/transactions/flashLoans.d.ts +0 -56
  404. package/dist/cjs/transactions/flashLoans.js +0 -124
  405. package/dist/cjs/transactions/flashLoans.js.map +0 -7
  406. package/dist/cjs/transactions/governance.d.ts +0 -42
  407. package/dist/cjs/transactions/governance.js +0 -135
  408. package/dist/cjs/transactions/governance.js.map +0 -7
  409. package/dist/cjs/transactions/marginAdmin.d.ts +0 -133
  410. package/dist/cjs/transactions/marginAdmin.js +0 -393
  411. package/dist/cjs/transactions/marginAdmin.js.map +0 -7
  412. package/dist/cjs/transactions/marginLiquidations.d.ts +0 -61
  413. package/dist/cjs/transactions/marginLiquidations.js +0 -173
  414. package/dist/cjs/transactions/marginLiquidations.js.map +0 -7
  415. package/dist/cjs/transactions/marginMaintainer.d.ts +0 -80
  416. package/dist/cjs/transactions/marginMaintainer.js +0 -251
  417. package/dist/cjs/transactions/marginMaintainer.js.map +0 -7
  418. package/dist/cjs/transactions/marginManager.d.ts +0 -236
  419. package/dist/cjs/transactions/marginManager.js +0 -688
  420. package/dist/cjs/transactions/marginManager.js.map +0 -7
  421. package/dist/cjs/transactions/marginPool.d.ts +0 -134
  422. package/dist/cjs/transactions/marginPool.js +0 -330
  423. package/dist/cjs/transactions/marginPool.js.map +0 -7
  424. package/dist/cjs/transactions/marginRegistry.d.ts +0 -94
  425. package/dist/cjs/transactions/marginRegistry.js +0 -221
  426. package/dist/cjs/transactions/marginRegistry.js.map +0 -7
  427. package/dist/cjs/transactions/marginTPSL.d.ts +0 -93
  428. package/dist/cjs/transactions/marginTPSL.js +0 -286
  429. package/dist/cjs/transactions/marginTPSL.js.map +0 -7
  430. package/dist/cjs/transactions/poolProxy.d.ts +0 -104
  431. package/dist/cjs/transactions/poolProxy.js +0 -435
  432. package/dist/cjs/transactions/poolProxy.js.map +0 -7
  433. package/dist/cjs/types/bcs.d.ts +0 -5
  434. package/dist/cjs/types/bcs.js +0 -33
  435. package/dist/cjs/types/bcs.js.map +0 -7
  436. package/dist/cjs/types/index.d.ts +0 -218
  437. package/dist/cjs/types/index.js +0 -38
  438. package/dist/cjs/types/index.js.map +0 -7
  439. package/dist/cjs/utils/config.d.ts +0 -65
  440. package/dist/cjs/utils/config.js +0 -144
  441. package/dist/cjs/utils/config.js.map +0 -7
  442. package/dist/cjs/utils/constants.d.ts +0 -76
  443. package/dist/cjs/utils/constants.js +0 -382
  444. package/dist/cjs/utils/constants.js.map +0 -7
  445. package/dist/cjs/utils/errors.d.ts +0 -42
  446. package/dist/cjs/utils/errors.js +0 -70
  447. package/dist/cjs/utils/errors.js.map +0 -7
  448. package/dist/cjs/utils/validation.js +0 -67
  449. package/dist/cjs/utils/validation.js.map +0 -7
  450. package/dist/esm/client.d.ts +0 -861
  451. package/dist/esm/client.js +0 -1967
  452. package/dist/esm/client.js.map +0 -7
  453. package/dist/esm/contracts/deepbook/account.d.ts +0 -105
  454. package/dist/esm/contracts/deepbook/account.js +0 -133
  455. package/dist/esm/contracts/deepbook/account.js.map +0 -7
  456. package/dist/esm/contracts/deepbook/balance_manager.d.ts +0 -268
  457. package/dist/esm/contracts/deepbook/balance_manager.js +0 -331
  458. package/dist/esm/contracts/deepbook/balance_manager.js.map +0 -7
  459. package/dist/esm/contracts/deepbook/balances.d.ts +0 -10
  460. package/dist/esm/contracts/deepbook/balances.js +0 -15
  461. package/dist/esm/contracts/deepbook/balances.js.map +0 -7
  462. package/dist/esm/contracts/deepbook/big_vector.d.ts +0 -62
  463. package/dist/esm/contracts/deepbook/big_vector.js +0 -50
  464. package/dist/esm/contracts/deepbook/big_vector.js.map +0 -7
  465. package/dist/esm/contracts/deepbook/book.d.ts +0 -34
  466. package/dist/esm/contracts/deepbook/book.js +0 -20
  467. package/dist/esm/contracts/deepbook/book.js.map +0 -7
  468. package/dist/esm/contracts/deepbook/constants.d.ts +0 -176
  469. package/dist/esm/contracts/deepbook/constants.js +0 -318
  470. package/dist/esm/contracts/deepbook/constants.js.map +0 -7
  471. package/dist/esm/contracts/deepbook/deep_price.d.ts +0 -60
  472. package/dist/esm/contracts/deepbook/deep_price.js +0 -67
  473. package/dist/esm/contracts/deepbook/deep_price.js.map +0 -7
  474. package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +0 -14
  475. package/dist/esm/contracts/deepbook/deps/std/type_name.js +0 -22
  476. package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +0 -7
  477. package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +0 -33
  478. package/dist/esm/contracts/deepbook/deps/sui/bag.js +0 -17
  479. package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +0 -7
  480. package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +0 -9
  481. package/dist/esm/contracts/deepbook/deps/sui/balance.js +0 -13
  482. package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +0 -7
  483. package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +0 -5
  484. package/dist/esm/contracts/deepbook/deps/sui/object.js +0 -13
  485. package/dist/esm/contracts/deepbook/deps/sui/object.js.map +0 -7
  486. package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +0 -28
  487. package/dist/esm/contracts/deepbook/deps/sui/table.js +0 -17
  488. package/dist/esm/contracts/deepbook/deps/sui/table.js.map +0 -7
  489. package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
  490. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +0 -25
  491. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
  492. package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
  493. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +0 -15
  494. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
  495. package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
  496. package/dist/esm/contracts/deepbook/deps/sui/versioned.js +0 -15
  497. package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +0 -7
  498. package/dist/esm/contracts/deepbook/ewma.d.ts +0 -17
  499. package/dist/esm/contracts/deepbook/ewma.js +0 -19
  500. package/dist/esm/contracts/deepbook/ewma.js.map +0 -7
  501. package/dist/esm/contracts/deepbook/fill.d.ts +0 -153
  502. package/dist/esm/contracts/deepbook/fill.js +0 -221
  503. package/dist/esm/contracts/deepbook/fill.js.map +0 -7
  504. package/dist/esm/contracts/deepbook/governance.d.ts +0 -63
  505. package/dist/esm/contracts/deepbook/governance.js +0 -49
  506. package/dist/esm/contracts/deepbook/governance.js.map +0 -7
  507. package/dist/esm/contracts/deepbook/history.d.ts +0 -60
  508. package/dist/esm/contracts/deepbook/history.js +0 -48
  509. package/dist/esm/contracts/deepbook/history.js.map +0 -7
  510. package/dist/esm/contracts/deepbook/math.d.ts +0 -94
  511. package/dist/esm/contracts/deepbook/math.js +0 -112
  512. package/dist/esm/contracts/deepbook/math.js.map +0 -7
  513. package/dist/esm/contracts/deepbook/order.d.ts +0 -135
  514. package/dist/esm/contracts/deepbook/order.js +0 -188
  515. package/dist/esm/contracts/deepbook/order.js.map +0 -7
  516. package/dist/esm/contracts/deepbook/order_info.d.ts +0 -296
  517. package/dist/esm/contracts/deepbook/order_info.js +0 -356
  518. package/dist/esm/contracts/deepbook/order_info.js.map +0 -7
  519. package/dist/esm/contracts/deepbook/order_query.d.ts +0 -85
  520. package/dist/esm/contracts/deepbook/order_query.js +0 -66
  521. package/dist/esm/contracts/deepbook/order_query.js.map +0 -7
  522. package/dist/esm/contracts/deepbook/pool.d.ts +0 -1218
  523. package/dist/esm/contracts/deepbook/pool.js +0 -1206
  524. package/dist/esm/contracts/deepbook/pool.js.map +0 -7
  525. package/dist/esm/contracts/deepbook/registry.d.ts +0 -134
  526. package/dist/esm/contracts/deepbook/registry.js +0 -152
  527. package/dist/esm/contracts/deepbook/registry.js.map +0 -7
  528. package/dist/esm/contracts/deepbook/state.d.ts +0 -117
  529. package/dist/esm/contracts/deepbook/state.js +0 -74
  530. package/dist/esm/contracts/deepbook/state.js.map +0 -7
  531. package/dist/esm/contracts/deepbook/trade_params.d.ts +0 -7
  532. package/dist/esm/contracts/deepbook/trade_params.js +0 -15
  533. package/dist/esm/contracts/deepbook/trade_params.js.map +0 -7
  534. package/dist/esm/contracts/deepbook/vault.d.ts +0 -30
  535. package/dist/esm/contracts/deepbook/vault.js +0 -35
  536. package/dist/esm/contracts/deepbook/vault.js.map +0 -7
  537. package/dist/esm/contracts/utils/index.d.ts +0 -25
  538. package/dist/esm/contracts/utils/index.js +0 -128
  539. package/dist/esm/contracts/utils/index.js.map +0 -7
  540. package/dist/esm/index.d.ts +0 -23
  541. package/dist/esm/index.js +0 -81
  542. package/dist/esm/index.js.map +0 -7
  543. package/dist/esm/package.json +0 -4
  544. package/dist/esm/pyth/PriceServiceConnection.d.ts +0 -26
  545. package/dist/esm/pyth/PriceServiceConnection.js +0 -38
  546. package/dist/esm/pyth/PriceServiceConnection.js.map +0 -7
  547. package/dist/esm/pyth/pyth-helpers.d.ts +0 -7
  548. package/dist/esm/pyth/pyth-helpers.js +0 -16
  549. package/dist/esm/pyth/pyth-helpers.js.map +0 -7
  550. package/dist/esm/pyth/pyth.d.ts +0 -65
  551. package/dist/esm/pyth/pyth.js +0 -249
  552. package/dist/esm/pyth/pyth.js.map +0 -7
  553. package/dist/esm/transactions/balanceManager.d.ts +0 -168
  554. package/dist/esm/transactions/balanceManager.js +0 -364
  555. package/dist/esm/transactions/balanceManager.js.map +0 -7
  556. package/dist/esm/transactions/deepbook.d.ts +0 -477
  557. package/dist/esm/transactions/deepbook.js +0 -1321
  558. package/dist/esm/transactions/deepbook.js.map +0 -7
  559. package/dist/esm/transactions/deepbookAdmin.d.ts +0 -105
  560. package/dist/esm/transactions/deepbookAdmin.js +0 -314
  561. package/dist/esm/transactions/deepbookAdmin.js.map +0 -7
  562. package/dist/esm/transactions/flashLoans.d.ts +0 -56
  563. package/dist/esm/transactions/flashLoans.js +0 -104
  564. package/dist/esm/transactions/flashLoans.js.map +0 -7
  565. package/dist/esm/transactions/governance.d.ts +0 -42
  566. package/dist/esm/transactions/governance.js +0 -115
  567. package/dist/esm/transactions/governance.js.map +0 -7
  568. package/dist/esm/transactions/marginAdmin.d.ts +0 -133
  569. package/dist/esm/transactions/marginAdmin.js +0 -373
  570. package/dist/esm/transactions/marginAdmin.js.map +0 -7
  571. package/dist/esm/transactions/marginLiquidations.d.ts +0 -61
  572. package/dist/esm/transactions/marginLiquidations.js +0 -153
  573. package/dist/esm/transactions/marginLiquidations.js.map +0 -7
  574. package/dist/esm/transactions/marginMaintainer.d.ts +0 -80
  575. package/dist/esm/transactions/marginMaintainer.js +0 -231
  576. package/dist/esm/transactions/marginMaintainer.js.map +0 -7
  577. package/dist/esm/transactions/marginManager.d.ts +0 -236
  578. package/dist/esm/transactions/marginManager.js +0 -668
  579. package/dist/esm/transactions/marginManager.js.map +0 -7
  580. package/dist/esm/transactions/marginPool.d.ts +0 -134
  581. package/dist/esm/transactions/marginPool.js +0 -310
  582. package/dist/esm/transactions/marginPool.js.map +0 -7
  583. package/dist/esm/transactions/marginRegistry.d.ts +0 -94
  584. package/dist/esm/transactions/marginRegistry.js +0 -201
  585. package/dist/esm/transactions/marginRegistry.js.map +0 -7
  586. package/dist/esm/transactions/marginTPSL.d.ts +0 -93
  587. package/dist/esm/transactions/marginTPSL.js +0 -266
  588. package/dist/esm/transactions/marginTPSL.js.map +0 -7
  589. package/dist/esm/transactions/poolProxy.d.ts +0 -104
  590. package/dist/esm/transactions/poolProxy.js +0 -415
  591. package/dist/esm/transactions/poolProxy.js.map +0 -7
  592. package/dist/esm/types/bcs.d.ts +0 -5
  593. package/dist/esm/types/bcs.js +0 -13
  594. package/dist/esm/types/bcs.js.map +0 -7
  595. package/dist/esm/types/index.d.ts +0 -218
  596. package/dist/esm/types/index.js +0 -18
  597. package/dist/esm/types/index.js.map +0 -7
  598. package/dist/esm/utils/config.d.ts +0 -65
  599. package/dist/esm/utils/config.js +0 -135
  600. package/dist/esm/utils/config.js.map +0 -7
  601. package/dist/esm/utils/constants.d.ts +0 -76
  602. package/dist/esm/utils/constants.js +0 -362
  603. package/dist/esm/utils/constants.js.map +0 -7
  604. package/dist/esm/utils/errors.d.ts +0 -42
  605. package/dist/esm/utils/errors.js +0 -50
  606. package/dist/esm/utils/errors.js.map +0 -7
  607. package/dist/esm/utils/validation.d.ts +0 -50
  608. package/dist/esm/utils/validation.js +0 -47
  609. package/dist/esm/utils/validation.js.map +0 -7
  610. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  611. package/dist/tsconfig.tsbuildinfo +0 -1
  612. package/src/contracts/deepbook/deps/sui/object.ts +0 -14
@@ -0,0 +1,83 @@
1
+ import { PRICE_INFO_OBJECT_MAX_AGE_MS } from "../utils/config.mjs";
2
+ import { PriceInfoObject } from "../contracts/pyth/price_info.mjs";
3
+ import { HaneulPriceServiceConnection, HaneulPythClient } from "../pyth/pyth.mjs";
4
+
5
+ //#region src/queries/priceFeedQueries.ts
6
+ var PriceFeedQueries = class {
7
+ #ctx;
8
+ constructor(ctx) {
9
+ this.#ctx = ctx;
10
+ }
11
+ async getPriceInfoObject(tx, coinKey) {
12
+ this.#ctx.config.requirePyth();
13
+ const currentTime = Date.now();
14
+ const priceInfoObjectAge = await this.getPriceInfoObjectAge(coinKey);
15
+ if (priceInfoObjectAge && currentTime - priceInfoObjectAge * 1e3 < PRICE_INFO_OBJECT_MAX_AGE_MS) return await this.#ctx.config.getCoin(coinKey).priceInfoObjectId;
16
+ const connection = new HaneulPriceServiceConnection(this.#ctx.config.network === "testnet" ? "https://hermes-beta.pyth.network" : "https://hermes.pyth.network");
17
+ const priceIDs = [this.#ctx.config.getCoin(coinKey).feed];
18
+ const priceUpdateData = await connection.getPriceFeedsUpdateData(priceIDs);
19
+ const wormholeStateId = this.#ctx.config.pyth.wormholeStateId;
20
+ const pythStateId = this.#ctx.config.pyth.pythStateId;
21
+ return (await new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId).updatePriceFeeds(tx, priceUpdateData, priceIDs))[0];
22
+ }
23
+ async getPriceInfoObjects(tx, coinKeys) {
24
+ this.#ctx.config.requirePyth();
25
+ if (coinKeys.length === 0) return {};
26
+ const currentTime = Date.now();
27
+ const coinToObjectId = {};
28
+ const objectIds = [];
29
+ for (const coinKey of coinKeys) {
30
+ const priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId;
31
+ coinToObjectId[coinKey] = priceInfoObjectId;
32
+ objectIds.push(priceInfoObjectId);
33
+ }
34
+ const res = await this.#ctx.client.core.getObjects({
35
+ objectIds,
36
+ include: { content: true }
37
+ });
38
+ const staleCoinKeys = [];
39
+ const result = {};
40
+ for (let i = 0; i < coinKeys.length; i++) {
41
+ const coinKey = coinKeys[i];
42
+ const obj = res.objects[i];
43
+ if (obj instanceof Error || !obj?.content) {
44
+ staleCoinKeys.push(coinKey);
45
+ continue;
46
+ }
47
+ const priceInfoObject = PriceInfoObject.parse(obj.content);
48
+ if (currentTime - Number(priceInfoObject.price_info.arrival_time) * 1e3 >= PRICE_INFO_OBJECT_MAX_AGE_MS) staleCoinKeys.push(coinKey);
49
+ else result[coinKey] = coinToObjectId[coinKey];
50
+ }
51
+ if (staleCoinKeys.length === 0) return result;
52
+ const staleFeedIds = [];
53
+ const feedIdToCoinKey = {};
54
+ for (const coinKey of staleCoinKeys) {
55
+ const feedId = this.#ctx.config.getCoin(coinKey).feed;
56
+ staleFeedIds.push(feedId);
57
+ feedIdToCoinKey[feedId] = coinKey;
58
+ }
59
+ const priceUpdateData = await new HaneulPriceServiceConnection(this.#ctx.config.network === "testnet" ? "https://hermes-beta.pyth.network" : "https://hermes.pyth.network").getPriceFeedsUpdateData(staleFeedIds);
60
+ const wormholeStateId = this.#ctx.config.pyth.wormholeStateId;
61
+ const pythStateId = this.#ctx.config.pyth.pythStateId;
62
+ const updatedObjectIds = await new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId).updatePriceFeeds(tx, priceUpdateData, staleFeedIds);
63
+ for (let i = 0; i < staleFeedIds.length; i++) {
64
+ const coinKey = feedIdToCoinKey[staleFeedIds[i]];
65
+ result[coinKey] = updatedObjectIds[i];
66
+ }
67
+ return result;
68
+ }
69
+ async getPriceInfoObjectAge(coinKey) {
70
+ const priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId;
71
+ const res = await this.#ctx.client.core.getObject({
72
+ objectId: priceInfoObjectId,
73
+ include: { content: true }
74
+ });
75
+ if (!res.object?.content) throw new Error(`Price info object not found for ${coinKey}`);
76
+ const priceInfoObject = PriceInfoObject.parse(res.object.content);
77
+ return Number(priceInfoObject.price_info.arrival_time);
78
+ }
79
+ };
80
+
81
+ //#endregion
82
+ export { PriceFeedQueries };
83
+ //# sourceMappingURL=priceFeedQueries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priceFeedQueries.mjs","names":["#ctx"],"sources":["../../src/queries/priceFeedQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction } from '@haneullabs/haneul/transactions';\n\nimport { PriceInfoObject } from '../contracts/pyth/price_info.js';\nimport { HaneulPriceServiceConnection, HaneulPythClient } from '../pyth/pyth.js';\nimport { PRICE_INFO_OBJECT_MAX_AGE_MS } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class PriceFeedQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync getPriceInfoObject(tx: Transaction, coinKey: string): Promise<string> {\n\t\tthis.#ctx.config.requirePyth();\n\t\tconst currentTime = Date.now();\n\t\tconst priceInfoObjectAge = await this.getPriceInfoObjectAge(coinKey);\n\t\tif (\n\t\t\tpriceInfoObjectAge &&\n\t\t\tcurrentTime - priceInfoObjectAge * 1000 < PRICE_INFO_OBJECT_MAX_AGE_MS\n\t\t) {\n\t\t\treturn await this.#ctx.config.getCoin(coinKey).priceInfoObjectId!;\n\t\t}\n\n\t\tconst endpoint =\n\t\t\tthis.#ctx.config.network === 'testnet'\n\t\t\t\t? 'https://hermes-beta.pyth.network'\n\t\t\t\t: 'https://hermes.pyth.network';\n\t\tconst connection = new HaneulPriceServiceConnection(endpoint);\n\n\t\tconst priceIDs = [this.#ctx.config.getCoin(coinKey).feed!];\n\n\t\tconst priceUpdateData = await connection.getPriceFeedsUpdateData(priceIDs);\n\n\t\tconst wormholeStateId = this.#ctx.config.pyth.wormholeStateId;\n\t\tconst pythStateId = this.#ctx.config.pyth.pythStateId;\n\n\t\tconst client = new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId);\n\n\t\treturn (await client.updatePriceFeeds(tx, priceUpdateData, priceIDs))[0];\n\t}\n\n\tasync getPriceInfoObjects(tx: Transaction, coinKeys: string[]): Promise<Record<string, string>> {\n\t\tthis.#ctx.config.requirePyth();\n\t\tif (coinKeys.length === 0) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst currentTime = Date.now();\n\n\t\tconst coinToObjectId: Record<string, string> = {};\n\t\tconst objectIds: string[] = [];\n\t\tfor (const coinKey of coinKeys) {\n\t\t\tconst priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId!;\n\t\t\tcoinToObjectId[coinKey] = priceInfoObjectId;\n\t\t\tobjectIds.push(priceInfoObjectId);\n\t\t}\n\n\t\tconst res = await this.#ctx.client.core.getObjects({\n\t\t\tobjectIds,\n\t\t\tinclude: { content: true },\n\t\t});\n\n\t\tconst staleCoinKeys: string[] = [];\n\t\tconst result: Record<string, string> = {};\n\n\t\tfor (let i = 0; i < coinKeys.length; i++) {\n\t\t\tconst coinKey = coinKeys[i];\n\t\t\tconst obj = res.objects[i];\n\n\t\t\tif (obj instanceof Error || !obj?.content) {\n\t\t\t\tstaleCoinKeys.push(coinKey);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst priceInfoObject = PriceInfoObject.parse(obj.content);\n\t\t\tconst arrivalTime = Number(priceInfoObject.price_info.arrival_time);\n\t\t\tconst age = currentTime - arrivalTime * 1000;\n\n\t\t\tif (age >= PRICE_INFO_OBJECT_MAX_AGE_MS) {\n\t\t\t\tstaleCoinKeys.push(coinKey);\n\t\t\t} else {\n\t\t\t\tresult[coinKey] = coinToObjectId[coinKey];\n\t\t\t}\n\t\t}\n\n\t\tif (staleCoinKeys.length === 0) {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst staleFeedIds: string[] = [];\n\t\tconst feedIdToCoinKey: Record<string, string> = {};\n\t\tfor (const coinKey of staleCoinKeys) {\n\t\t\tconst feedId = this.#ctx.config.getCoin(coinKey).feed!;\n\t\t\tstaleFeedIds.push(feedId);\n\t\t\tfeedIdToCoinKey[feedId] = coinKey;\n\t\t}\n\n\t\tconst endpoint =\n\t\t\tthis.#ctx.config.network === 'testnet'\n\t\t\t\t? 'https://hermes-beta.pyth.network'\n\t\t\t\t: 'https://hermes.pyth.network';\n\t\tconst connection = new HaneulPriceServiceConnection(endpoint);\n\n\t\tconst priceUpdateData = await connection.getPriceFeedsUpdateData(staleFeedIds);\n\n\t\tconst wormholeStateId = this.#ctx.config.pyth.wormholeStateId;\n\t\tconst pythStateId = this.#ctx.config.pyth.pythStateId;\n\t\tconst pythClient = new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId);\n\n\t\tconst updatedObjectIds = await pythClient.updatePriceFeeds(tx, priceUpdateData, staleFeedIds);\n\n\t\tfor (let i = 0; i < staleFeedIds.length; i++) {\n\t\t\tconst coinKey = feedIdToCoinKey[staleFeedIds[i]];\n\t\t\tresult[coinKey] = updatedObjectIds[i];\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync getPriceInfoObjectAge(coinKey: string): Promise<number> {\n\t\tconst priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId!;\n\t\tconst res = await this.#ctx.client.core.getObject({\n\t\t\tobjectId: priceInfoObjectId,\n\t\t\tinclude: {\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t});\n\n\t\tif (!res.object?.content) {\n\t\t\tthrow new Error(`Price info object not found for ${coinKey}`);\n\t\t}\n\n\t\tconst priceInfoObject = PriceInfoObject.parse(res.object.content);\n\t\treturn Number(priceInfoObject.price_info.arrival_time);\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ import { DEEP_SCALAR } from "../utils/config.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+ import { Transaction } from "@haneullabs/haneul/transactions";
4
+
5
+ //#region src/queries/quantityQueries.ts
6
+ var QuantityQueries = class {
7
+ #ctx;
8
+ constructor(ctx) {
9
+ this.#ctx = ctx;
10
+ }
11
+ async getQuoteQuantityOut(poolKey, baseQuantity) {
12
+ const tx = new Transaction();
13
+ const pool = this.#ctx.config.getPool(poolKey);
14
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
15
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
16
+ tx.add(this.#ctx.deepBook.getQuoteQuantityOut(poolKey, baseQuantity));
17
+ const res = await this.#ctx.client.core.simulateTransaction({
18
+ transaction: tx,
19
+ include: {
20
+ commandResults: true,
21
+ effects: true
22
+ }
23
+ });
24
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
25
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
26
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
27
+ return {
28
+ baseQuantity: Number(baseQuantity),
29
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
30
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
31
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
32
+ };
33
+ }
34
+ async getBaseQuantityOut(poolKey, quoteQuantity) {
35
+ const tx = new Transaction();
36
+ const pool = this.#ctx.config.getPool(poolKey);
37
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
38
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
39
+ tx.add(this.#ctx.deepBook.getBaseQuantityOut(poolKey, quoteQuantity));
40
+ const res = await this.#ctx.client.core.simulateTransaction({
41
+ transaction: tx,
42
+ include: {
43
+ commandResults: true,
44
+ effects: true
45
+ }
46
+ });
47
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
48
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
49
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
50
+ return {
51
+ quoteQuantity: Number(quoteQuantity),
52
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
53
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
54
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
55
+ };
56
+ }
57
+ async getQuantityOut(poolKey, baseQuantity, quoteQuantity) {
58
+ const tx = new Transaction();
59
+ const pool = this.#ctx.config.getPool(poolKey);
60
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
61
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
62
+ tx.add(this.#ctx.deepBook.getQuantityOut(poolKey, baseQuantity, quoteQuantity));
63
+ const res = await this.#ctx.client.core.simulateTransaction({
64
+ transaction: tx,
65
+ include: {
66
+ commandResults: true,
67
+ effects: true
68
+ }
69
+ });
70
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
71
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
72
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
73
+ return {
74
+ baseQuantity: Number(baseQuantity),
75
+ quoteQuantity: Number(quoteQuantity),
76
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
77
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
78
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
79
+ };
80
+ }
81
+ async getQuoteQuantityOutInputFee(poolKey, baseQuantity) {
82
+ const tx = new Transaction();
83
+ const pool = this.#ctx.config.getPool(poolKey);
84
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
85
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
86
+ tx.add(this.#ctx.deepBook.getQuoteQuantityOutInputFee(poolKey, baseQuantity));
87
+ const res = await this.#ctx.client.core.simulateTransaction({
88
+ transaction: tx,
89
+ include: {
90
+ commandResults: true,
91
+ effects: true
92
+ }
93
+ });
94
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
95
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
96
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
97
+ return {
98
+ baseQuantity: Number(baseQuantity),
99
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
100
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
101
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
102
+ };
103
+ }
104
+ async getBaseQuantityOutInputFee(poolKey, quoteQuantity) {
105
+ const tx = new Transaction();
106
+ const pool = this.#ctx.config.getPool(poolKey);
107
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
108
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
109
+ tx.add(this.#ctx.deepBook.getBaseQuantityOutInputFee(poolKey, quoteQuantity));
110
+ const res = await this.#ctx.client.core.simulateTransaction({
111
+ transaction: tx,
112
+ include: {
113
+ commandResults: true,
114
+ effects: true
115
+ }
116
+ });
117
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
118
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
119
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
120
+ return {
121
+ quoteQuantity: Number(quoteQuantity),
122
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
123
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
124
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
125
+ };
126
+ }
127
+ async getQuantityOutInputFee(poolKey, baseQuantity, quoteQuantity) {
128
+ const tx = new Transaction();
129
+ const pool = this.#ctx.config.getPool(poolKey);
130
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
131
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
132
+ tx.add(this.#ctx.deepBook.getQuantityOutInputFee(poolKey, baseQuantity, quoteQuantity));
133
+ const res = await this.#ctx.client.core.simulateTransaction({
134
+ transaction: tx,
135
+ include: {
136
+ commandResults: true,
137
+ effects: true
138
+ }
139
+ });
140
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
141
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
142
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
143
+ return {
144
+ baseQuantity: Number(baseQuantity),
145
+ quoteQuantity: Number(quoteQuantity),
146
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
147
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
148
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
149
+ };
150
+ }
151
+ async getBaseQuantityIn(poolKey, targetQuoteQuantity, payWithDeep) {
152
+ const tx = new Transaction();
153
+ const pool = this.#ctx.config.getPool(poolKey);
154
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
155
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
156
+ tx.add(this.#ctx.deepBook.getBaseQuantityIn(poolKey, targetQuoteQuantity, payWithDeep));
157
+ const res = await this.#ctx.client.core.simulateTransaction({
158
+ transaction: tx,
159
+ include: {
160
+ commandResults: true,
161
+ effects: true
162
+ }
163
+ });
164
+ const baseIn = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
165
+ const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
166
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
167
+ return {
168
+ baseIn: Number((baseIn / baseScalar).toFixed(9)),
169
+ quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
170
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
171
+ };
172
+ }
173
+ async getQuoteQuantityIn(poolKey, targetBaseQuantity, payWithDeep) {
174
+ const tx = new Transaction();
175
+ const pool = this.#ctx.config.getPool(poolKey);
176
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
177
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
178
+ tx.add(this.#ctx.deepBook.getQuoteQuantityIn(poolKey, targetBaseQuantity, payWithDeep));
179
+ const res = await this.#ctx.client.core.simulateTransaction({
180
+ transaction: tx,
181
+ include: {
182
+ commandResults: true,
183
+ effects: true
184
+ }
185
+ });
186
+ const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
187
+ const quoteIn = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
188
+ const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
189
+ return {
190
+ baseOut: Number((baseOut / baseScalar).toFixed(9)),
191
+ quoteIn: Number((quoteIn / quoteScalar).toFixed(9)),
192
+ deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
193
+ };
194
+ }
195
+ async getOrderDeepRequired(poolKey, baseQuantity, price) {
196
+ const tx = new Transaction();
197
+ tx.add(this.#ctx.deepBook.getOrderDeepRequired(poolKey, baseQuantity, price));
198
+ const res = await this.#ctx.client.core.simulateTransaction({
199
+ transaction: tx,
200
+ include: {
201
+ commandResults: true,
202
+ effects: true
203
+ }
204
+ });
205
+ const deepRequiredTaker = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
206
+ const deepRequiredMaker = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
207
+ return {
208
+ deepRequiredTaker: Number((deepRequiredTaker / DEEP_SCALAR).toFixed(9)),
209
+ deepRequiredMaker: Number((deepRequiredMaker / DEEP_SCALAR).toFixed(9))
210
+ };
211
+ }
212
+ };
213
+
214
+ //#endregion
215
+ export { QuantityQueries };
216
+ //# sourceMappingURL=quantityQueries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantityQueries.mjs","names":["#ctx"],"sources":["../../src/queries/quantityQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { Transaction } from '@haneullabs/haneul/transactions';\n\nimport type {\n\tBaseQuantityIn,\n\tBaseQuantityOut,\n\tOrderDeepRequiredResult,\n\tQuantityOut,\n\tQuoteQuantityIn,\n\tQuoteQuantityOut,\n} from '../types/index.js';\nimport { DEEP_SCALAR } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class QuantityQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync getQuoteQuantityOut(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t): Promise<QuoteQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuoteQuantityOut(poolKey, baseQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getBaseQuantityOut(\n\t\tpoolKey: string,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<BaseQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getBaseQuantityOut(poolKey, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuantityOut(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<QuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuantityOut(poolKey, baseQuantity, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuoteQuantityOutInputFee(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t): Promise<QuoteQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuoteQuantityOutInputFee(poolKey, baseQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getBaseQuantityOutInputFee(\n\t\tpoolKey: string,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<BaseQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getBaseQuantityOutInputFee(poolKey, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuantityOutInputFee(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<QuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuantityOutInputFee(poolKey, baseQuantity, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getBaseQuantityIn(\n\t\tpoolKey: string,\n\t\ttargetQuoteQuantity: number | bigint,\n\t\tpayWithDeep: boolean,\n\t): Promise<BaseQuantityIn> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getBaseQuantityIn(poolKey, targetQuoteQuantity, payWithDeep));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseIn = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseIn: Number((baseIn / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuoteQuantityIn(\n\t\tpoolKey: string,\n\t\ttargetBaseQuantity: number | bigint,\n\t\tpayWithDeep: boolean,\n\t): Promise<QuoteQuantityIn> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuoteQuantityIn(poolKey, targetBaseQuantity, payWithDeep));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteIn = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteIn: Number((quoteIn / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getOrderDeepRequired(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t\tprice: number | bigint,\n\t): Promise<OrderDeepRequiredResult> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.deepBook.getOrderDeepRequired(poolKey, baseQuantity, price));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst deepRequiredTaker = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst deepRequiredMaker = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\n\t\treturn {\n\t\t\tdeepRequiredTaker: Number((deepRequiredTaker / DEEP_SCALAR).toFixed(9)),\n\t\t\tdeepRequiredMaker: Number((deepRequiredMaker / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { DEEP_SCALAR, FLOAT_SCALAR } from "../utils/config.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+ import { Transaction } from "@haneullabs/haneul/transactions";
4
+ import { normalizeHaneulAddress } from "@haneullabs/haneul/utils";
5
+
6
+ //#region src/queries/referralQueries.ts
7
+ var ReferralQueries = class {
8
+ #ctx;
9
+ constructor(ctx) {
10
+ this.#ctx = ctx;
11
+ }
12
+ async balanceManagerReferralOwner(referral) {
13
+ const tx = new Transaction();
14
+ tx.add(this.#ctx.balanceManager.balanceManagerReferralOwner(referral));
15
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
16
+ transaction: tx,
17
+ include: {
18
+ commandResults: true,
19
+ effects: true
20
+ }
21
+ })).commandResults[0].returnValues[0].bcs;
22
+ return bcs.Address.parse(bytes);
23
+ }
24
+ async getPoolReferralBalances(poolKey, referral) {
25
+ const tx = new Transaction();
26
+ const pool = this.#ctx.config.getPool(poolKey);
27
+ const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
28
+ const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
29
+ tx.add(this.#ctx.deepBook.getPoolReferralBalances(poolKey, referral));
30
+ const res = await this.#ctx.client.core.simulateTransaction({
31
+ transaction: tx,
32
+ include: {
33
+ commandResults: true,
34
+ effects: true
35
+ }
36
+ });
37
+ const baseBytes = res.commandResults[0].returnValues[0].bcs;
38
+ const quoteBytes = res.commandResults[0].returnValues[1].bcs;
39
+ const deepBytes = res.commandResults[0].returnValues[2].bcs;
40
+ const baseBalance = Number(bcs.U64.parse(baseBytes));
41
+ const quoteBalance = Number(bcs.U64.parse(quoteBytes));
42
+ const deepBalance = Number(bcs.U64.parse(deepBytes));
43
+ return {
44
+ base: baseBalance / baseScalar,
45
+ quote: quoteBalance / quoteScalar,
46
+ deep: deepBalance / DEEP_SCALAR
47
+ };
48
+ }
49
+ async balanceManagerReferralPoolId(referral) {
50
+ const tx = new Transaction();
51
+ tx.add(this.#ctx.balanceManager.balanceManagerReferralPoolId(referral));
52
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
53
+ transaction: tx,
54
+ include: {
55
+ commandResults: true,
56
+ effects: true
57
+ }
58
+ })).commandResults[0].returnValues[0].bcs;
59
+ return normalizeHaneulAddress(bcs.Address.parse(bytes));
60
+ }
61
+ async poolReferralMultiplier(poolKey, referral) {
62
+ const tx = new Transaction();
63
+ tx.add(this.#ctx.deepBook.poolReferralMultiplier(poolKey, referral));
64
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
65
+ transaction: tx,
66
+ include: {
67
+ commandResults: true,
68
+ effects: true
69
+ }
70
+ })).commandResults[0].returnValues[0].bcs;
71
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
72
+ }
73
+ async getBalanceManagerReferralId(managerKey, poolKey) {
74
+ const tx = new Transaction();
75
+ tx.add(this.#ctx.balanceManager.getBalanceManagerReferralId(managerKey, poolKey));
76
+ const res = await this.#ctx.client.core.simulateTransaction({
77
+ transaction: tx,
78
+ include: {
79
+ commandResults: true,
80
+ effects: true
81
+ }
82
+ });
83
+ try {
84
+ const bytes = res.commandResults[0].returnValues[0].bcs;
85
+ const optionId = bcs.option(bcs.Address).parse(bytes);
86
+ if (optionId === null) return null;
87
+ return normalizeHaneulAddress(optionId);
88
+ } catch {
89
+ return null;
90
+ }
91
+ }
92
+ };
93
+
94
+ //#endregion
95
+ export { ReferralQueries };
96
+ //# sourceMappingURL=referralQueries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referralQueries.mjs","names":["#ctx"],"sources":["../../src/queries/referralQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { Transaction } from '@haneullabs/haneul/transactions';\nimport { normalizeHaneulAddress } from '@haneullabs/haneul/utils';\n\nimport type { ReferralBalances } from '../types/index.js';\nimport { DEEP_SCALAR, FLOAT_SCALAR } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class ReferralQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync balanceManagerReferralOwner(referral: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.balanceManager.balanceManagerReferralOwner(referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\treturn bcs.Address.parse(bytes);\n\t}\n\n\tasync getPoolReferralBalances(poolKey: string, referral: string): Promise<ReferralBalances> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getPoolReferralBalances(poolKey, referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseBytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst quoteBytes = res.commandResults![0].returnValues[1].bcs;\n\t\tconst deepBytes = res.commandResults![0].returnValues[2].bcs;\n\n\t\tconst baseBalance = Number(bcs.U64.parse(baseBytes));\n\t\tconst quoteBalance = Number(bcs.U64.parse(quoteBytes));\n\t\tconst deepBalance = Number(bcs.U64.parse(deepBytes));\n\n\t\treturn {\n\t\t\tbase: baseBalance / baseScalar,\n\t\t\tquote: quoteBalance / quoteScalar,\n\t\t\tdeep: deepBalance / DEEP_SCALAR,\n\t\t};\n\t}\n\n\tasync balanceManagerReferralPoolId(referral: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.#ctx.balanceManager.balanceManagerReferralPoolId(referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst poolId = bcs.Address.parse(bytes);\n\n\t\treturn normalizeHaneulAddress(poolId);\n\t}\n\n\tasync poolReferralMultiplier(poolKey: string, referral: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.#ctx.deepBook.poolReferralMultiplier(poolKey, referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst multiplier = Number(bcs.U64.parse(bytes));\n\n\t\treturn multiplier / FLOAT_SCALAR;\n\t}\n\n\tasync getBalanceManagerReferralId(managerKey: string, poolKey: string): Promise<string | null> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.balanceManager.getBalanceManagerReferralId(managerKey, poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\ttry {\n\t\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\t\tconst optionId = bcs.option(bcs.Address).parse(bytes);\n\t\t\tif (optionId === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn normalizeHaneulAddress(optionId);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAA6B;CAC5B;CAEA,YAAY,KAAmB;AAC9B,QAAKA,MAAO;;CAGb,MAAM,4BAA4B,UAAmC;EACpE,MAAM,KAAK,IAAI,aAAa;AAC5B,KAAG,IAAI,MAAKA,IAAK,eAAe,4BAA4B,SAAS,CAAC;EAOtE,MAAM,SALM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC,EAEgB,eAAgB,GAAG,aAAa,GAAG;AACrD,SAAO,IAAI,QAAQ,MAAM,MAAM;;CAGhC,MAAM,wBAAwB,SAAiB,UAA6C;EAC3F,MAAM,KAAK,IAAI,aAAa;EAC5B,MAAM,OAAO,MAAKA,IAAK,OAAO,QAAQ,QAAQ;EAC9C,MAAM,aAAa,MAAKA,IAAK,OAAO,QAAQ,KAAK,SAAS,CAAC;EAC3D,MAAM,cAAc,MAAKA,IAAK,OAAO,QAAQ,KAAK,UAAU,CAAC;AAE7D,KAAG,IAAI,MAAKA,IAAK,SAAS,wBAAwB,SAAS,SAAS,CAAC;EAErE,MAAM,MAAM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC;EAEF,MAAM,YAAY,IAAI,eAAgB,GAAG,aAAa,GAAG;EACzD,MAAM,aAAa,IAAI,eAAgB,GAAG,aAAa,GAAG;EAC1D,MAAM,YAAY,IAAI,eAAgB,GAAG,aAAa,GAAG;EAEzD,MAAM,cAAc,OAAO,IAAI,IAAI,MAAM,UAAU,CAAC;EACpD,MAAM,eAAe,OAAO,IAAI,IAAI,MAAM,WAAW,CAAC;EACtD,MAAM,cAAc,OAAO,IAAI,IAAI,MAAM,UAAU,CAAC;AAEpD,SAAO;GACN,MAAM,cAAc;GACpB,OAAO,eAAe;GACtB,MAAM,cAAc;GACpB;;CAGF,MAAM,6BAA6B,UAAmC;EACrE,MAAM,KAAK,IAAI,aAAa;AAE5B,KAAG,IAAI,MAAKA,IAAK,eAAe,6BAA6B,SAAS,CAAC;EAOvE,MAAM,SALM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC,EAEgB,eAAgB,GAAG,aAAa,GAAG;AAGrD,SAAO,uBAFQ,IAAI,QAAQ,MAAM,MAAM,CAEF;;CAGtC,MAAM,uBAAuB,SAAiB,UAAmC;EAChF,MAAM,KAAK,IAAI,aAAa;AAE5B,KAAG,IAAI,MAAKA,IAAK,SAAS,uBAAuB,SAAS,SAAS,CAAC;EAOpE,MAAM,SALM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC,EAEgB,eAAgB,GAAG,aAAa,GAAG;AAGrD,SAFmB,OAAO,IAAI,IAAI,MAAM,MAAM,CAAC,GAE3B;;CAGrB,MAAM,4BAA4B,YAAoB,SAAyC;EAC9F,MAAM,KAAK,IAAI,aAAa;AAC5B,KAAG,IAAI,MAAKA,IAAK,eAAe,4BAA4B,YAAY,QAAQ,CAAC;EAEjF,MAAM,MAAM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC;AAEF,MAAI;GACH,MAAM,QAAQ,IAAI,eAAgB,GAAG,aAAa,GAAG;GACrD,MAAM,WAAW,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,MAAM;AACrD,OAAI,aAAa,KAChB,QAAO;AAER,UAAO,uBAAuB,SAAS;UAChC;AACP,UAAO"}
@@ -0,0 +1,162 @@
1
+ import { VecSet } from "../contracts/deepbook/deps/haneul/vec_set.mjs";
2
+ import "../types/bcs.mjs";
3
+ import { FLOAT_SCALAR } from "../utils/config.mjs";
4
+ import { bcs } from "@haneullabs/haneul/bcs";
5
+ import { Transaction } from "@haneullabs/haneul/transactions";
6
+ import { normalizeHaneulAddress } from "@haneullabs/haneul/utils";
7
+
8
+ //#region src/queries/registryQueries.ts
9
+ var RegistryQueries = class {
10
+ #ctx;
11
+ constructor(ctx) {
12
+ this.#ctx = ctx;
13
+ }
14
+ async isPoolEnabledForMargin(poolKey) {
15
+ const tx = new Transaction();
16
+ tx.add(this.#ctx.marginRegistry.poolEnabled(poolKey));
17
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
18
+ transaction: tx,
19
+ include: {
20
+ commandResults: true,
21
+ effects: true
22
+ }
23
+ })).commandResults[0].returnValues[0].bcs;
24
+ return bcs.Bool.parse(bytes);
25
+ }
26
+ async getMarginManagerIdsForOwner(owner) {
27
+ const tx = new Transaction();
28
+ tx.add(this.#ctx.marginRegistry.getMarginManagerIds(owner));
29
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
30
+ transaction: tx,
31
+ include: {
32
+ commandResults: true,
33
+ effects: true
34
+ }
35
+ })).commandResults[0].returnValues[0].bcs;
36
+ return VecSet(bcs.Address).parse(bytes).contents.map((id) => normalizeHaneulAddress(id));
37
+ }
38
+ async getBaseMarginPoolId(poolKey) {
39
+ const tx = new Transaction();
40
+ tx.add(this.#ctx.marginRegistry.baseMarginPoolId(poolKey));
41
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
42
+ transaction: tx,
43
+ include: {
44
+ commandResults: true,
45
+ effects: true
46
+ }
47
+ })).commandResults[0].returnValues[0].bcs;
48
+ return "0x" + bcs.Address.parse(bytes);
49
+ }
50
+ async getQuoteMarginPoolId(poolKey) {
51
+ const tx = new Transaction();
52
+ tx.add(this.#ctx.marginRegistry.quoteMarginPoolId(poolKey));
53
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
54
+ transaction: tx,
55
+ include: {
56
+ commandResults: true,
57
+ effects: true
58
+ }
59
+ })).commandResults[0].returnValues[0].bcs;
60
+ return "0x" + bcs.Address.parse(bytes);
61
+ }
62
+ async getMinWithdrawRiskRatio(poolKey) {
63
+ const tx = new Transaction();
64
+ tx.add(this.#ctx.marginRegistry.minWithdrawRiskRatio(poolKey));
65
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
66
+ transaction: tx,
67
+ include: {
68
+ commandResults: true,
69
+ effects: true
70
+ }
71
+ })).commandResults[0].returnValues[0].bcs;
72
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
73
+ }
74
+ async getMinBorrowRiskRatio(poolKey) {
75
+ const tx = new Transaction();
76
+ tx.add(this.#ctx.marginRegistry.minBorrowRiskRatio(poolKey));
77
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
78
+ transaction: tx,
79
+ include: {
80
+ commandResults: true,
81
+ effects: true
82
+ }
83
+ })).commandResults[0].returnValues[0].bcs;
84
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
85
+ }
86
+ async getLiquidationRiskRatio(poolKey) {
87
+ const tx = new Transaction();
88
+ tx.add(this.#ctx.marginRegistry.liquidationRiskRatio(poolKey));
89
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
90
+ transaction: tx,
91
+ include: {
92
+ commandResults: true,
93
+ effects: true
94
+ }
95
+ })).commandResults[0].returnValues[0].bcs;
96
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
97
+ }
98
+ async getTargetLiquidationRiskRatio(poolKey) {
99
+ const tx = new Transaction();
100
+ tx.add(this.#ctx.marginRegistry.targetLiquidationRiskRatio(poolKey));
101
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
102
+ transaction: tx,
103
+ include: {
104
+ commandResults: true,
105
+ effects: true
106
+ }
107
+ })).commandResults[0].returnValues[0].bcs;
108
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
109
+ }
110
+ async getUserLiquidationReward(poolKey) {
111
+ const tx = new Transaction();
112
+ tx.add(this.#ctx.marginRegistry.userLiquidationReward(poolKey));
113
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
114
+ transaction: tx,
115
+ include: {
116
+ commandResults: true,
117
+ effects: true
118
+ }
119
+ })).commandResults[0].returnValues[0].bcs;
120
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
121
+ }
122
+ async getPoolLiquidationReward(poolKey) {
123
+ const tx = new Transaction();
124
+ tx.add(this.#ctx.marginRegistry.poolLiquidationReward(poolKey));
125
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
126
+ transaction: tx,
127
+ include: {
128
+ commandResults: true,
129
+ effects: true
130
+ }
131
+ })).commandResults[0].returnValues[0].bcs;
132
+ return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
133
+ }
134
+ async getAllowedMaintainers() {
135
+ const tx = new Transaction();
136
+ tx.add(this.#ctx.marginRegistry.allowedMaintainers());
137
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
138
+ transaction: tx,
139
+ include: {
140
+ commandResults: true,
141
+ effects: true
142
+ }
143
+ })).commandResults[0].returnValues[0].bcs;
144
+ return VecSet(bcs.Address).parse(bytes).contents.map((id) => normalizeHaneulAddress(id));
145
+ }
146
+ async getAllowedPauseCaps() {
147
+ const tx = new Transaction();
148
+ tx.add(this.#ctx.marginRegistry.allowedPauseCaps());
149
+ const bytes = (await this.#ctx.client.core.simulateTransaction({
150
+ transaction: tx,
151
+ include: {
152
+ commandResults: true,
153
+ effects: true
154
+ }
155
+ })).commandResults[0].returnValues[0].bcs;
156
+ return VecSet(bcs.Address).parse(bytes).contents.map((id) => normalizeHaneulAddress(id));
157
+ }
158
+ };
159
+
160
+ //#endregion
161
+ export { RegistryQueries };
162
+ //# sourceMappingURL=registryQueries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registryQueries.mjs","names":["#ctx"],"sources":["../../src/queries/registryQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { Transaction } from '@haneullabs/haneul/transactions';\nimport { normalizeHaneulAddress } from '@haneullabs/haneul/utils';\n\nimport { VecSet } from '../types/bcs.js';\nimport { FLOAT_SCALAR } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class RegistryQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync isPoolEnabledForMargin(poolKey: string): Promise<boolean> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.poolEnabled(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\treturn bcs.Bool.parse(bytes);\n\t}\n\n\tasync getMarginManagerIdsForOwner(owner: string): Promise<string[]> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.getMarginManagerIds(owner));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst vecSet = VecSet(bcs.Address).parse(bytes);\n\t\treturn vecSet.contents.map((id) => normalizeHaneulAddress(id));\n\t}\n\n\tasync getBaseMarginPoolId(poolKey: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.baseMarginPoolId(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst id = bcs.Address.parse(bytes);\n\t\treturn '0x' + id;\n\t}\n\n\tasync getQuoteMarginPoolId(poolKey: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.quoteMarginPoolId(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst id = bcs.Address.parse(bytes);\n\t\treturn '0x' + id;\n\t}\n\n\tasync getMinWithdrawRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.minWithdrawRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getMinBorrowRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.minBorrowRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getLiquidationRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.liquidationRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getTargetLiquidationRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.targetLiquidationRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getUserLiquidationReward(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.userLiquidationReward(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst reward = Number(bcs.U64.parse(bytes));\n\t\treturn reward / FLOAT_SCALAR;\n\t}\n\n\tasync getPoolLiquidationReward(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.poolLiquidationReward(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst reward = Number(bcs.U64.parse(bytes));\n\t\treturn reward / FLOAT_SCALAR;\n\t}\n\n\tasync getAllowedMaintainers(): Promise<string[]> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.allowedMaintainers());\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst vecSet = VecSet(bcs.Address).parse(bytes);\n\t\treturn vecSet.contents.map((id) => normalizeHaneulAddress(id));\n\t}\n\n\tasync getAllowedPauseCaps(): Promise<string[]> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.allowedPauseCaps());\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst vecSet = VecSet(bcs.Address).parse(bytes);\n\t\treturn vecSet.contents.map((id) => normalizeHaneulAddress(id));\n\t}\n}\n"],"mappings":"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"}