@waterx/sdk 3.0.1 → 3.1.0

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 (402) hide show
  1. package/dist/cjs/package.json +3 -0
  2. package/dist/cjs/src/account/account-request.d.ts +9 -0
  3. package/dist/cjs/src/account/account-request.js +20 -0
  4. package/dist/cjs/src/account/account.d.ts +158 -0
  5. package/dist/cjs/src/account/account.js +238 -0
  6. package/dist/cjs/src/account/client.d.ts +42 -0
  7. package/dist/cjs/src/account/client.js +18 -0
  8. package/dist/cjs/src/account/config.d.ts +151 -0
  9. package/dist/cjs/src/account/config.js +9 -0
  10. package/dist/cjs/src/account/constants.d.ts +5 -0
  11. package/dist/cjs/src/account/constants.js +8 -0
  12. package/dist/cjs/src/account/fetch/referral.d.ts +15 -0
  13. package/dist/cjs/src/account/fetch/referral.js +56 -0
  14. package/dist/cjs/src/account/fetch/simulate.d.ts +34 -0
  15. package/dist/cjs/src/account/fetch/simulate.js +49 -0
  16. package/dist/cjs/src/account/funding/balance.d.ts +32 -0
  17. package/dist/cjs/src/account/funding/balance.js +100 -0
  18. package/dist/cjs/src/account/funding/consolidate.d.ts +46 -0
  19. package/dist/cjs/src/account/funding/consolidate.js +143 -0
  20. package/dist/cjs/src/account/funding/credit.d.ts +129 -0
  21. package/dist/cjs/src/account/funding/credit.js +252 -0
  22. package/dist/cjs/src/account/funding/custody.d.ts +57 -0
  23. package/dist/cjs/src/account/funding/custody.js +139 -0
  24. package/dist/cjs/src/account/funding/wormhole.d.ts +86 -0
  25. package/dist/cjs/src/account/funding/wormhole.js +166 -0
  26. package/dist/cjs/src/account/index.d.ts +29 -0
  27. package/dist/cjs/src/account/index.js +45 -0
  28. package/dist/cjs/src/account/referral.d.ts +21 -0
  29. package/dist/cjs/src/account/referral.js +78 -0
  30. package/dist/cjs/src/account/waterx-account.d.ts +31 -0
  31. package/dist/cjs/src/account/waterx-account.js +29 -0
  32. package/dist/cjs/src/base-client.d.ts +74 -0
  33. package/dist/cjs/src/base-client.js +101 -0
  34. package/dist/cjs/src/constants.d.ts +32 -0
  35. package/dist/cjs/src/constants.js +41 -0
  36. package/dist/cjs/src/generated/bucket_v2_framework/account.d.ts +107 -0
  37. package/dist/cjs/src/generated/bucket_v2_framework/account.js +141 -0
  38. package/dist/cjs/src/generated/bucket_v2_framework/deps/std/type_name.d.ts +17 -0
  39. package/dist/cjs/src/generated/bucket_v2_framework/deps/std/type_name.js +22 -0
  40. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/balance.d.ts +12 -0
  41. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/balance.js +17 -0
  42. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
  43. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_map.js +31 -0
  44. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
  45. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_set.js +22 -0
  46. package/dist/cjs/src/generated/bucket_v2_framework/double.d.ts +384 -0
  47. package/dist/cjs/src/generated/bucket_v2_framework/double.js +504 -0
  48. package/dist/cjs/src/generated/bucket_v2_framework/float.d.ts +364 -0
  49. package/dist/cjs/src/generated/bucket_v2_framework/float.js +476 -0
  50. package/dist/cjs/src/generated/bucket_v2_framework/liability.d.ts +171 -0
  51. package/dist/cjs/src/generated/bucket_v2_framework/liability.js +192 -0
  52. package/dist/cjs/src/generated/bucket_v2_framework/linked_table.d.ts +384 -0
  53. package/dist/cjs/src/generated/bucket_v2_framework/linked_table.js +405 -0
  54. package/dist/cjs/src/generated/bucket_v2_framework/sheet.d.ts +424 -0
  55. package/dist/cjs/src/generated/bucket_v2_framework/sheet.js +395 -0
  56. package/dist/cjs/src/generated/native_custody/custody_vault.d.ts +586 -0
  57. package/dist/cjs/src/generated/native_custody/custody_vault.js +555 -0
  58. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/float.d.ts +8 -0
  59. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/float.js +13 -0
  60. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/liability.d.ts +11 -0
  61. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/liability.js +16 -0
  62. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/sheet.d.ts +49 -0
  63. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/sheet.js +52 -0
  64. package/dist/cjs/src/generated/native_custody/deps/std/type_name.d.ts +17 -0
  65. package/dist/cjs/src/generated/native_custody/deps/std/type_name.js +22 -0
  66. package/dist/cjs/src/generated/native_custody/deps/sui/balance.d.ts +12 -0
  67. package/dist/cjs/src/generated/native_custody/deps/sui/balance.js +17 -0
  68. package/dist/cjs/src/generated/native_custody/deps/sui/vec_map.d.ts +36 -0
  69. package/dist/cjs/src/generated/native_custody/deps/sui/vec_map.js +31 -0
  70. package/dist/cjs/src/generated/native_custody/deps/sui/vec_set.d.ts +16 -0
  71. package/dist/cjs/src/generated/native_custody/deps/sui/vec_set.js +22 -0
  72. package/dist/cjs/src/generated/native_custody/events.d.ts +36 -0
  73. package/dist/cjs/src/generated/native_custody/events.js +71 -0
  74. package/dist/cjs/src/generated/pyth_sponsor_rule/deps/sui/balance.d.ts +12 -0
  75. package/dist/cjs/src/generated/pyth_sponsor_rule/deps/sui/balance.js +17 -0
  76. package/dist/cjs/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.d.ts +68 -0
  77. package/dist/cjs/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.js +113 -0
  78. package/dist/cjs/src/generated/utils/index.d.ts +30 -0
  79. package/dist/cjs/src/generated/utils/index.js +168 -0
  80. package/dist/cjs/src/generated/waterx_account/account.d.ts +1906 -0
  81. package/dist/cjs/src/generated/waterx_account/account.js +1929 -0
  82. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/liability.d.ts +11 -0
  83. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/liability.js +16 -0
  84. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/sheet.d.ts +49 -0
  85. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/sheet.js +52 -0
  86. package/dist/cjs/src/generated/waterx_account/deps/std/type_name.d.ts +17 -0
  87. package/dist/cjs/src/generated/waterx_account/deps/std/type_name.js +22 -0
  88. package/dist/cjs/src/generated/waterx_account/deps/sui/balance.d.ts +12 -0
  89. package/dist/cjs/src/generated/waterx_account/deps/sui/balance.js +17 -0
  90. package/dist/cjs/src/generated/waterx_account/deps/sui/object_table.d.ts +17 -0
  91. package/dist/cjs/src/generated/waterx_account/deps/sui/object_table.js +22 -0
  92. package/dist/cjs/src/generated/waterx_account/deps/sui/table.d.ts +29 -0
  93. package/dist/cjs/src/generated/waterx_account/deps/sui/table.js +34 -0
  94. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
  95. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_map.js +31 -0
  96. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
  97. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_set.js +22 -0
  98. package/dist/cjs/src/generated/waterx_account/direct_rule.d.ts +77 -0
  99. package/dist/cjs/src/generated/waterx_account/direct_rule.js +83 -0
  100. package/dist/cjs/src/generated/waterx_account/events.d.ts +190 -0
  101. package/dist/cjs/src/generated/waterx_account/events.js +173 -0
  102. package/dist/cjs/src/generated/waterx_account/version.d.ts +10 -0
  103. package/dist/cjs/src/generated/waterx_account/version.js +11 -0
  104. package/dist/cjs/src/generated/waterx_constant_rule/constant_rule.d.ts +68 -0
  105. package/dist/cjs/src/generated/waterx_constant_rule/constant_rule.js +97 -0
  106. package/dist/cjs/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  107. package/dist/cjs/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.js +13 -0
  108. package/dist/cjs/src/generated/waterx_constant_rule/deps/sui/vec_map.d.ts +36 -0
  109. package/dist/cjs/src/generated/waterx_constant_rule/deps/sui/vec_map.js +31 -0
  110. package/dist/cjs/src/generated/waterx_credit/credit_registry.d.ts +708 -0
  111. package/dist/cjs/src/generated/waterx_credit/credit_registry.js +728 -0
  112. package/dist/cjs/src/generated/waterx_credit/deps/std/type_name.d.ts +17 -0
  113. package/dist/cjs/src/generated/waterx_credit/deps/std/type_name.js +22 -0
  114. package/dist/cjs/src/generated/waterx_credit/deps/sui/table.d.ts +29 -0
  115. package/dist/cjs/src/generated/waterx_credit/deps/sui/table.js +34 -0
  116. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_map.d.ts +36 -0
  117. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_map.js +31 -0
  118. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_set.d.ts +16 -0
  119. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_set.js +22 -0
  120. package/dist/cjs/src/generated/waterx_credit/limited_supply.d.ts +107 -0
  121. package/dist/cjs/src/generated/waterx_credit/limited_supply.js +143 -0
  122. package/dist/cjs/src/generated/waterx_oracle/aggregator.d.ts +211 -0
  123. package/dist/cjs/src/generated/waterx_oracle/aggregator.js +258 -0
  124. package/dist/cjs/src/generated/waterx_oracle/collector.d.ts +119 -0
  125. package/dist/cjs/src/generated/waterx_oracle/collector.js +147 -0
  126. package/dist/cjs/src/generated/waterx_oracle/deps/bucket_v2_framework/float.d.ts +8 -0
  127. package/dist/cjs/src/generated/waterx_oracle/deps/bucket_v2_framework/float.js +13 -0
  128. package/dist/cjs/src/generated/waterx_oracle/deps/std/type_name.d.ts +17 -0
  129. package/dist/cjs/src/generated/waterx_oracle/deps/std/type_name.js +22 -0
  130. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_map.d.ts +36 -0
  131. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_map.js +31 -0
  132. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_set.d.ts +16 -0
  133. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_set.js +22 -0
  134. package/dist/cjs/src/generated/waterx_oracle/oracle.d.ts +304 -0
  135. package/dist/cjs/src/generated/waterx_oracle/oracle.js +381 -0
  136. package/dist/cjs/src/generated/waterx_oracle/version.d.ts +10 -0
  137. package/dist/cjs/src/generated/waterx_oracle/version.js +11 -0
  138. package/dist/cjs/src/generated/waterx_perp/account_data.d.ts +269 -0
  139. package/dist/cjs/src/generated/waterx_perp/account_data.js +340 -0
  140. package/dist/cjs/src/generated/waterx_perp/admin.d.ts +19 -0
  141. package/dist/cjs/src/generated/waterx_perp/admin.js +26 -0
  142. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/double.d.ts +8 -0
  143. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/double.js +13 -0
  144. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/float.d.ts +8 -0
  145. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/float.js +13 -0
  146. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/liability.d.ts +11 -0
  147. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/liability.js +16 -0
  148. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  149. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.js +21 -0
  150. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.d.ts +49 -0
  151. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.js +52 -0
  152. package/dist/cjs/src/generated/waterx_perp/deps/std/type_name.d.ts +17 -0
  153. package/dist/cjs/src/generated/waterx_perp/deps/std/type_name.js +22 -0
  154. package/dist/cjs/src/generated/waterx_perp/deps/sui/balance.d.ts +15 -0
  155. package/dist/cjs/src/generated/waterx_perp/deps/sui/balance.js +20 -0
  156. package/dist/cjs/src/generated/waterx_perp/deps/sui/coin.d.ts +14 -0
  157. package/dist/cjs/src/generated/waterx_perp/deps/sui/coin.js +51 -0
  158. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_map.d.ts +36 -0
  159. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_map.js +31 -0
  160. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_set.d.ts +16 -0
  161. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_set.js +22 -0
  162. package/dist/cjs/src/generated/waterx_perp/events.d.ts +1283 -0
  163. package/dist/cjs/src/generated/waterx_perp/events.js +990 -0
  164. package/dist/cjs/src/generated/waterx_perp/global_config.d.ts +775 -0
  165. package/dist/cjs/src/generated/waterx_perp/global_config.js +918 -0
  166. package/dist/cjs/src/generated/waterx_perp/keyed_big_vector.d.ts +553 -0
  167. package/dist/cjs/src/generated/waterx_perp/keyed_big_vector.js +626 -0
  168. package/dist/cjs/src/generated/waterx_perp/lp_pool.d.ts +1648 -0
  169. package/dist/cjs/src/generated/waterx_perp/lp_pool.js +1630 -0
  170. package/dist/cjs/src/generated/waterx_perp/market_config.d.ts +733 -0
  171. package/dist/cjs/src/generated/waterx_perp/market_config.js +871 -0
  172. package/dist/cjs/src/generated/waterx_perp/math.d.ts +63 -0
  173. package/dist/cjs/src/generated/waterx_perp/math.js +70 -0
  174. package/dist/cjs/src/generated/waterx_perp/memo.d.ts +251 -0
  175. package/dist/cjs/src/generated/waterx_perp/memo.js +360 -0
  176. package/dist/cjs/src/generated/waterx_perp/order_book.d.ts +290 -0
  177. package/dist/cjs/src/generated/waterx_perp/order_book.js +388 -0
  178. package/dist/cjs/src/generated/waterx_perp/position.d.ts +1005 -0
  179. package/dist/cjs/src/generated/waterx_perp/position.js +1200 -0
  180. package/dist/cjs/src/generated/waterx_perp/request.d.ts +544 -0
  181. package/dist/cjs/src/generated/waterx_perp/request.js +609 -0
  182. package/dist/cjs/src/generated/waterx_perp/response.d.ts +247 -0
  183. package/dist/cjs/src/generated/waterx_perp/response.js +331 -0
  184. package/dist/cjs/src/generated/waterx_perp/trading.d.ts +2945 -0
  185. package/dist/cjs/src/generated/waterx_perp/trading.js +2616 -0
  186. package/dist/cjs/src/generated/waterx_perp/version.d.ts +10 -0
  187. package/dist/cjs/src/generated/waterx_perp/version.js +11 -0
  188. package/dist/cjs/src/generated/waterx_perp/witness.d.ts +18 -0
  189. package/dist/cjs/src/generated/waterx_perp/witness.js +25 -0
  190. package/dist/cjs/src/generated/waterx_perp_view/deps/std/type_name.d.ts +17 -0
  191. package/dist/cjs/src/generated/waterx_perp_view/deps/std/type_name.js +22 -0
  192. package/dist/cjs/src/generated/waterx_perp_view/view.d.ts +447 -0
  193. package/dist/cjs/src/generated/waterx_perp_view/view.js +459 -0
  194. package/dist/cjs/src/generated/waterx_prediction/account_data.d.ts +344 -0
  195. package/dist/cjs/src/generated/waterx_prediction/account_data.js +470 -0
  196. package/dist/cjs/src/generated/waterx_prediction/admin.d.ts +7 -0
  197. package/dist/cjs/src/generated/waterx_prediction/admin.js +12 -0
  198. package/dist/cjs/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  199. package/dist/cjs/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.js +21 -0
  200. package/dist/cjs/src/generated/waterx_prediction/deps/sui/balance.d.ts +12 -0
  201. package/dist/cjs/src/generated/waterx_prediction/deps/sui/balance.js +17 -0
  202. package/dist/cjs/src/generated/waterx_prediction/deps/sui/table.d.ts +29 -0
  203. package/dist/cjs/src/generated/waterx_prediction/deps/sui/table.js +34 -0
  204. package/dist/cjs/src/generated/waterx_prediction/deps/sui/vec_set.d.ts +16 -0
  205. package/dist/cjs/src/generated/waterx_prediction/deps/sui/vec_set.js +22 -0
  206. package/dist/cjs/src/generated/waterx_prediction/events.d.ts +288 -0
  207. package/dist/cjs/src/generated/waterx_prediction/events.js +254 -0
  208. package/dist/cjs/src/generated/waterx_prediction/global_config.d.ts +121 -0
  209. package/dist/cjs/src/generated/waterx_prediction/global_config.js +186 -0
  210. package/dist/cjs/src/generated/waterx_prediction/order.d.ts +233 -0
  211. package/dist/cjs/src/generated/waterx_prediction/order.js +339 -0
  212. package/dist/cjs/src/generated/waterx_prediction/outcome.d.ts +58 -0
  213. package/dist/cjs/src/generated/waterx_prediction/outcome.js +82 -0
  214. package/dist/cjs/src/generated/waterx_prediction/position.d.ts +175 -0
  215. package/dist/cjs/src/generated/waterx_prediction/position.js +232 -0
  216. package/dist/cjs/src/generated/waterx_prediction/version.d.ts +10 -0
  217. package/dist/cjs/src/generated/waterx_prediction/version.js +11 -0
  218. package/dist/cjs/src/generated/waterx_prediction/view.d.ts +418 -0
  219. package/dist/cjs/src/generated/waterx_prediction/view.js +492 -0
  220. package/dist/cjs/src/generated/waterx_prediction/waterx_prediction.d.ts +1858 -0
  221. package/dist/cjs/src/generated/waterx_prediction/waterx_prediction.js +1972 -0
  222. package/dist/cjs/src/generated/waterx_pyth_rule/deps/sui/vec_map.d.ts +36 -0
  223. package/dist/cjs/src/generated/waterx_pyth_rule/deps/sui/vec_map.js +31 -0
  224. package/dist/cjs/src/generated/waterx_pyth_rule/pyth_rule.d.ts +192 -0
  225. package/dist/cjs/src/generated/waterx_pyth_rule/pyth_rule.js +214 -0
  226. package/dist/cjs/src/generated/waterx_referral/deps/sui/table.d.ts +29 -0
  227. package/dist/cjs/src/generated/waterx_referral/deps/sui/table.js +34 -0
  228. package/dist/cjs/src/generated/waterx_referral/deps/sui/vec_set.d.ts +16 -0
  229. package/dist/cjs/src/generated/waterx_referral/deps/sui/vec_set.js +22 -0
  230. package/dist/cjs/src/generated/waterx_referral/referral_table.d.ts +171 -0
  231. package/dist/cjs/src/generated/waterx_referral/referral_table.js +239 -0
  232. package/dist/cjs/src/generated/waterx_staking/deps/bucket_v2_framework/double.d.ts +8 -0
  233. package/dist/cjs/src/generated/waterx_staking/deps/bucket_v2_framework/double.js +13 -0
  234. package/dist/cjs/src/generated/waterx_staking/deps/sui/balance.d.ts +12 -0
  235. package/dist/cjs/src/generated/waterx_staking/deps/sui/balance.js +17 -0
  236. package/dist/cjs/src/generated/waterx_staking/deps/sui/table.d.ts +29 -0
  237. package/dist/cjs/src/generated/waterx_staking/deps/sui/table.js +34 -0
  238. package/dist/cjs/src/generated/waterx_staking/deps/sui/vec_set.d.ts +16 -0
  239. package/dist/cjs/src/generated/waterx_staking/deps/sui/vec_set.js +22 -0
  240. package/dist/cjs/src/generated/waterx_staking/waterx_staking.d.ts +746 -0
  241. package/dist/cjs/src/generated/waterx_staking/waterx_staking.js +797 -0
  242. package/dist/cjs/src/generated/waterx_staking/witness.d.ts +16 -0
  243. package/dist/cjs/src/generated/waterx_staking/witness.js +21 -0
  244. package/dist/cjs/src/generated/waterx_supra_rule/deps/sui/vec_map.d.ts +36 -0
  245. package/dist/cjs/src/generated/waterx_supra_rule/deps/sui/vec_map.js +31 -0
  246. package/dist/cjs/src/generated/waterx_supra_rule/supra_rule.d.ts +158 -0
  247. package/dist/cjs/src/generated/waterx_supra_rule/supra_rule.js +189 -0
  248. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.d.ts +8 -0
  249. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.js +13 -0
  250. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  251. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.js +21 -0
  252. package/dist/cjs/src/generated/withdrawal_queue/deps/std/type_name.d.ts +17 -0
  253. package/dist/cjs/src/generated/withdrawal_queue/deps/std/type_name.js +22 -0
  254. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/balance.d.ts +12 -0
  255. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/balance.js +17 -0
  256. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_map.d.ts +36 -0
  257. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_map.js +31 -0
  258. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_set.d.ts +16 -0
  259. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_set.js +22 -0
  260. package/dist/cjs/src/generated/withdrawal_queue/withdrawal_queue.d.ts +923 -0
  261. package/dist/cjs/src/generated/withdrawal_queue/withdrawal_queue.js +965 -0
  262. package/dist/cjs/src/generated/wlp/wlp.d.ts +28 -0
  263. package/dist/cjs/src/generated/wlp/wlp.js +37 -0
  264. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/table.d.ts +29 -0
  265. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/table.js +34 -0
  266. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_map.d.ts +36 -0
  267. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_map.js +31 -0
  268. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_set.d.ts +16 -0
  269. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_set.js +22 -0
  270. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.d.ts +12 -0
  271. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.js +45 -0
  272. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.d.ts +14 -0
  273. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.js +19 -0
  274. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/set.d.ts +16 -0
  275. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/set.js +51 -0
  276. package/dist/cjs/src/generated/wormhole_bridge/events.d.ts +32 -0
  277. package/dist/cjs/src/generated/wormhole_bridge/events.js +31 -0
  278. package/dist/cjs/src/generated/wormhole_bridge/wormhole_bridge.d.ts +638 -0
  279. package/dist/cjs/src/generated/wormhole_bridge/wormhole_bridge.js +692 -0
  280. package/dist/cjs/src/oracle/aggregate.d.ts +74 -0
  281. package/dist/cjs/src/oracle/aggregate.js +118 -0
  282. package/dist/cjs/src/oracle/config.d.ts +99 -0
  283. package/dist/cjs/src/oracle/config.js +26 -0
  284. package/dist/cjs/src/oracle/host.d.ts +32 -0
  285. package/dist/cjs/src/oracle/host.js +11 -0
  286. package/dist/cjs/src/oracle/index.d.ts +16 -0
  287. package/dist/cjs/src/oracle/index.js +31 -0
  288. package/dist/cjs/src/oracle/pyth.d.ts +52 -0
  289. package/dist/cjs/src/oracle/pyth.js +227 -0
  290. package/dist/cjs/src/oracle/rules/constant-rule.d.ts +9 -0
  291. package/dist/cjs/src/oracle/rules/constant-rule.js +17 -0
  292. package/dist/cjs/src/oracle/rules/pyth-rule.d.ts +11 -0
  293. package/dist/cjs/src/oracle/rules/pyth-rule.js +23 -0
  294. package/dist/cjs/src/oracle/rules/sponsor.d.ts +28 -0
  295. package/dist/cjs/src/oracle/rules/sponsor.js +52 -0
  296. package/dist/cjs/src/oracle/rules/supra-rule.d.ts +11 -0
  297. package/dist/cjs/src/oracle/rules/supra-rule.js +25 -0
  298. package/dist/cjs/src/perp/client.d.ts +78 -0
  299. package/dist/cjs/src/perp/client.js +112 -0
  300. package/dist/cjs/src/perp/config-view.d.ts +102 -0
  301. package/dist/cjs/src/perp/config-view.js +178 -0
  302. package/dist/cjs/src/perp/config.d.ts +126 -0
  303. package/dist/cjs/src/perp/config.js +119 -0
  304. package/dist/cjs/src/perp/constants.d.ts +49 -0
  305. package/dist/cjs/src/perp/constants.js +79 -0
  306. package/dist/cjs/src/perp/fetch/account.d.ts +43 -0
  307. package/dist/cjs/src/perp/fetch/account.js +69 -0
  308. package/dist/cjs/src/perp/fetch/bridge.d.ts +90 -0
  309. package/dist/cjs/src/perp/fetch/bridge.js +131 -0
  310. package/dist/cjs/src/perp/fetch/custody.d.ts +32 -0
  311. package/dist/cjs/src/perp/fetch/custody.js +66 -0
  312. package/dist/cjs/src/perp/fetch/market.d.ts +30 -0
  313. package/dist/cjs/src/perp/fetch/market.js +75 -0
  314. package/dist/cjs/src/perp/fetch/positions.d.ts +70 -0
  315. package/dist/cjs/src/perp/fetch/positions.js +195 -0
  316. package/dist/cjs/src/perp/fetch/simulate.d.ts +12 -0
  317. package/dist/cjs/src/perp/fetch/simulate.js +21 -0
  318. package/dist/cjs/src/perp/fetch.d.ts +23 -0
  319. package/dist/cjs/src/perp/fetch.js +39 -0
  320. package/dist/cjs/src/perp/index.d.ts +29 -0
  321. package/dist/cjs/src/perp/index.js +183 -0
  322. package/dist/cjs/src/perp/tx-builders/common.d.ts +83 -0
  323. package/dist/cjs/src/perp/tx-builders/common.js +76 -0
  324. package/dist/cjs/src/perp/tx-builders/credit.d.ts +65 -0
  325. package/dist/cjs/src/perp/tx-builders/credit.js +67 -0
  326. package/dist/cjs/src/perp/tx-builders/rewards.d.ts +30 -0
  327. package/dist/cjs/src/perp/tx-builders/rewards.js +37 -0
  328. package/dist/cjs/src/perp/tx-builders/trading.d.ts +51 -0
  329. package/dist/cjs/src/perp/tx-builders/trading.js +71 -0
  330. package/dist/cjs/src/perp/tx-builders/wlp.d.ts +90 -0
  331. package/dist/cjs/src/perp/tx-builders/wlp.js +126 -0
  332. package/dist/cjs/src/perp/tx-builders.d.ts +23 -0
  333. package/dist/cjs/src/perp/tx-builders.js +45 -0
  334. package/dist/cjs/src/perp/user/index.d.ts +8 -0
  335. package/dist/cjs/src/perp/user/index.js +24 -0
  336. package/dist/cjs/src/perp/user/order.d.ts +89 -0
  337. package/dist/cjs/src/perp/user/order.js +175 -0
  338. package/dist/cjs/src/perp/user/staking.d.ts +54 -0
  339. package/dist/cjs/src/perp/user/staking.js +147 -0
  340. package/dist/cjs/src/perp/user/trading.d.ts +119 -0
  341. package/dist/cjs/src/perp/user/trading.js +310 -0
  342. package/dist/cjs/src/perp/user/wlp.d.ts +58 -0
  343. package/dist/cjs/src/perp/user/wlp.js +139 -0
  344. package/dist/cjs/src/prediction/account.d.ts +96 -0
  345. package/dist/cjs/src/prediction/account.js +212 -0
  346. package/dist/cjs/src/prediction/admin.d.ts +47 -0
  347. package/dist/cjs/src/prediction/admin.js +116 -0
  348. package/dist/cjs/src/prediction/bcs.d.ts +28 -0
  349. package/dist/cjs/src/prediction/bcs.js +189 -0
  350. package/dist/cjs/src/prediction/client.d.ts +56 -0
  351. package/dist/cjs/src/prediction/client.js +128 -0
  352. package/dist/cjs/src/prediction/config.d.ts +74 -0
  353. package/dist/cjs/src/prediction/config.js +86 -0
  354. package/dist/cjs/src/prediction/constants.d.ts +44 -0
  355. package/dist/cjs/src/prediction/constants.js +49 -0
  356. package/dist/cjs/src/prediction/fetch.d.ts +82 -0
  357. package/dist/cjs/src/prediction/fetch.js +294 -0
  358. package/dist/cjs/src/prediction/gift-link.d.ts +6 -0
  359. package/dist/cjs/src/prediction/gift-link.js +16 -0
  360. package/dist/cjs/src/prediction/gift.d.ts +242 -0
  361. package/dist/cjs/src/prediction/gift.js +490 -0
  362. package/dist/cjs/src/prediction/index.d.ts +29 -0
  363. package/dist/cjs/src/prediction/index.js +154 -0
  364. package/dist/cjs/src/prediction/prediction.d.ts +149 -0
  365. package/dist/cjs/src/prediction/prediction.js +410 -0
  366. package/dist/cjs/src/prediction/tx-builders.d.ts +44 -0
  367. package/dist/cjs/src/prediction/tx-builders.js +56 -0
  368. package/dist/cjs/src/prediction/types.d.ts +95 -0
  369. package/dist/cjs/src/prediction/types.js +2 -0
  370. package/dist/cjs/src/prediction/user/account.d.ts +2 -0
  371. package/dist/cjs/src/prediction/user/account.js +17 -0
  372. package/dist/cjs/src/prediction/user/admin.d.ts +6 -0
  373. package/dist/cjs/src/prediction/user/admin.js +19 -0
  374. package/dist/cjs/src/prediction/user/gift.d.ts +2 -0
  375. package/dist/cjs/src/prediction/user/gift.js +24 -0
  376. package/dist/cjs/src/prediction/user/index.d.ts +5 -0
  377. package/dist/cjs/src/prediction/user/index.js +60 -0
  378. package/dist/cjs/src/prediction/user/keeper.d.ts +2 -0
  379. package/dist/cjs/src/prediction/user/keeper.js +13 -0
  380. package/dist/cjs/src/prediction/user/order.d.ts +2 -0
  381. package/dist/cjs/src/prediction/user/order.js +6 -0
  382. package/dist/cjs/src/prediction/user/position.d.ts +2 -0
  383. package/dist/cjs/src/prediction/user/position.js +11 -0
  384. package/dist/cjs/src/prediction/utils/bcs.d.ts +6 -0
  385. package/dist/cjs/src/prediction/utils/bcs.js +29 -0
  386. package/dist/cjs/src/prediction/utils/index.d.ts +8 -0
  387. package/dist/cjs/src/prediction/utils/index.js +31 -0
  388. package/dist/cjs/src/prediction/utils.d.ts +30 -0
  389. package/dist/cjs/src/prediction/utils.js +200 -0
  390. package/dist/cjs/src/sdk.d.ts +22 -0
  391. package/dist/cjs/src/sdk.js +62 -0
  392. package/dist/cjs/src/unified-client.d.ts +402 -0
  393. package/dist/cjs/src/unified-client.js +218 -0
  394. package/dist/cjs/src/utils/config.d.ts +11 -0
  395. package/dist/cjs/src/utils/config.js +19 -0
  396. package/dist/cjs/src/utils/math.d.ts +287 -0
  397. package/dist/cjs/src/utils/math.js +469 -0
  398. package/dist/src/prediction/client.d.ts +11 -0
  399. package/dist/src/prediction/client.js +16 -0
  400. package/dist/src/prediction/gift.d.ts +19 -0
  401. package/dist/src/prediction/gift.js +26 -1
  402. package/package.json +119 -31
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * Cross-chain credit / bridge builders (low-level — one moveCall per fn).
4
+ *
5
+ * Flows (see waterx_credit/sui/*):
6
+ * - Mint (EVM → Sui): `redeemVaa` → `DepositRequest<CREDIT>` hot potato,
7
+ * consumed in the same PTB by `consumeCreditDeposit` (the wxa deposit
8
+ * policy CREDIT is registered under — selected via config).
9
+ * - Withdraw (Sui → EVM / native): `routeWormhole` / `routeNative` encode
10
+ * `extra_data`, fed to `account::request_withdraw` →
11
+ * `enqueueWithdrawal` parks a FIFO `Queue<CREDIT>` entry.
12
+ * - Keeper drains the queue via `executeWithdrawalWormhole` /
13
+ * `executeWithdrawalNative` (caller must be on the executor allowlist).
14
+ * - PSM: `custodyMint` against the native `CustodyVault` (direct burn was
15
+ * removed — audit L03/M14; redeem via the withdraw queue path above).
16
+ *
17
+ * Every builder that emits a hot potato returns its argument so the caller
18
+ * (or the high-level `tx-builders.ts` wrappers) can pair + consume it in the
19
+ * same PTB.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.redeemVaa = redeemVaa;
23
+ exports.consumeCreditDeposit = consumeCreditDeposit;
24
+ exports.routeWormhole = routeWormhole;
25
+ exports.routeNative = routeNative;
26
+ exports.requestCreditWithdraw = requestCreditWithdraw;
27
+ exports.enqueueWithdrawal = enqueueWithdrawal;
28
+ exports.executeWithdrawalWormhole = executeWithdrawalWormhole;
29
+ exports.executeWithdrawalNative = executeWithdrawalNative;
30
+ exports.custodyMint = custodyMint;
31
+ const bcs_1 = require("@mysten/bcs");
32
+ const utils_1 = require("@mysten/sui/utils");
33
+ const custody_vault_ts_1 = require("../../generated/native_custody/custody_vault.js");
34
+ const account_ts_1 = require("../../generated/waterx_account/account.js");
35
+ const direct_rule_ts_1 = require("../../generated/waterx_account/direct_rule.js");
36
+ const withdrawal_queue_ts_1 = require("../../generated/withdrawal_queue/withdrawal_queue.js");
37
+ const wormhole_bridge_ts_1 = require("../../generated/wormhole_bridge/wormhole_bridge.js");
38
+ const account_request_ts_1 = require("../account-request.js");
39
+ // ============================================================================
40
+ // Byte helpers
41
+ // ============================================================================
42
+ /** Accept a Uint8Array, number[], or 0x/bare hex string → `number[]`. */
43
+ function toBytes(input) {
44
+ if (typeof input === "string") {
45
+ const hex = input.startsWith("0x") ? input.slice(2) : input;
46
+ // `fromHex` silently mis-parses odd-length strings, so guard up front.
47
+ if (hex.length % 2 !== 0)
48
+ throw new Error(`odd-length hex: ${input}`);
49
+ return Array.from((0, bcs_1.fromHex)(hex));
50
+ }
51
+ return Array.from(input);
52
+ }
53
+ function toEvmAddressBytes(input, field) {
54
+ const bytes = toBytes(input);
55
+ if (bytes.length !== 20) {
56
+ throw new Error(`${field} must be a 20-byte EVM address (got ${bytes.length})`);
57
+ }
58
+ return bytes;
59
+ }
60
+ function creditTypeOf(client, override) {
61
+ return (0, utils_1.normalizeStructTag)(override ?? client.creditType());
62
+ }
63
+ // Required-ID accessors: the credit/bridge package entries carry their
64
+ // shared object ids only after the relevant deploy phase has run, so each
65
+ // is optional in the schema. These throw an actionable error rather than
66
+ // letting `tx.object(undefined)` fail opaquely.
67
+ function bridgeId(c) {
68
+ const id = c.getBridge().bridge;
69
+ if (!id)
70
+ throw new Error("wormhole_bridge.bridge missing from config (Bridge not initialized)");
71
+ return id;
72
+ }
73
+ function creditRegistryId(c) {
74
+ const id = c.getCredit().credit_registry;
75
+ if (!id)
76
+ throw new Error("waterx_credit.credit_registry missing from config");
77
+ return id;
78
+ }
79
+ function queuePkg(c) {
80
+ const q = c.config.packages.withdrawal_queue;
81
+ if (!q)
82
+ throw new Error("withdrawal_queue not configured for this deployment");
83
+ return q.published_at;
84
+ }
85
+ function queueId(c) {
86
+ const q = c.config.packages.withdrawal_queue;
87
+ if (!q?.queue)
88
+ throw new Error("withdrawal_queue.queue missing from config");
89
+ return q.queue;
90
+ }
91
+ function custodyPkg(c) {
92
+ const n = c.config.packages.native_custody;
93
+ if (!n)
94
+ throw new Error("native_custody not configured for this deployment");
95
+ return n.published_at;
96
+ }
97
+ function custodyVaultId(c) {
98
+ const n = c.config.packages.native_custody;
99
+ if (!n?.vault)
100
+ throw new Error("native_custody.vault missing from config");
101
+ return n.vault;
102
+ }
103
+ /**
104
+ * Build `wormhole_bridge::redeem_vaa<CREDIT>`. Returns the
105
+ * `DepositRequest<CREDIT>` hot-potato argument — **must** be consumed in the
106
+ * same PTB (see {@link consumeCreditDeposit} / `redeemVaaTx`).
107
+ */
108
+ function redeemVaa(client, tx, params) {
109
+ const [req] = (0, wormhole_bridge_ts_1.redeemVaa)({
110
+ package: client.getBridge().published_at,
111
+ arguments: {
112
+ bridge: tx.object(bridgeId(client)),
113
+ registry: tx.object(creditRegistryId(client)),
114
+ accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
115
+ wormholeState: tx.object(client.wormholeStateId()),
116
+ vaaBytes: toBytes(params.vaaBytes),
117
+ },
118
+ typeArguments: [creditTypeOf(client, params.creditType)],
119
+ })(tx);
120
+ return req;
121
+ }
122
+ /**
123
+ * Consume a `DepositRequest<CREDIT>` via `direct_rule::consume_deposit_direct`
124
+ * — the wxa deposit policy CREDIT is registered under (deploy.ts phase 2:
125
+ * `register_deposit_policy<CREDIT, DirectRule>`). Must run in the same PTB
126
+ * as the `redeem_vaa` / custody `mint` that produced the request.
127
+ */
128
+ function consumeCreditDeposit(client, tx, params) {
129
+ (0, direct_rule_ts_1.consumeDepositDirect)({
130
+ package: client.config.packages.waterx_account.published_at,
131
+ arguments: {
132
+ registry: tx.object(client.config.packages.waterx_account.account_registry),
133
+ req: params.depositRequest,
134
+ },
135
+ typeArguments: [creditTypeOf(client, params.creditType)],
136
+ })(tx);
137
+ }
138
+ /** Build `withdrawal_queue::route_wormhole`. Returns the `extra_data` argument. */
139
+ function routeWormhole(client, tx, params) {
140
+ if (!Number.isInteger(params.evmDestinationChain) ||
141
+ params.evmDestinationChain < 0 ||
142
+ params.evmDestinationChain > 0xffff) {
143
+ throw new Error(`evmDestinationChain must be a u16 (0..65535), got ${params.evmDestinationChain}`);
144
+ }
145
+ const out = (0, withdrawal_queue_ts_1.routeWormhole)({
146
+ package: queuePkg(client),
147
+ arguments: {
148
+ evmDestinationChain: params.evmDestinationChain,
149
+ evmRecipient: toEvmAddressBytes(params.evmRecipient, "evmRecipient"),
150
+ evmToken: toEvmAddressBytes(params.evmToken, "evmToken"),
151
+ },
152
+ })(tx);
153
+ return out;
154
+ }
155
+ /** Build `withdrawal_queue::route_native<T>`. Returns the `extra_data` argument. */
156
+ function routeNative(client, tx, params) {
157
+ const out = (0, withdrawal_queue_ts_1.routeNative)({
158
+ package: queuePkg(client),
159
+ arguments: { minOutput: BigInt(params.minOutput ?? 0n) },
160
+ typeArguments: [(0, utils_1.normalizeStructTag)(params.assetType)],
161
+ })(tx);
162
+ return out;
163
+ }
164
+ /**
165
+ * Build `account::request_withdraw<CREDIT>` with a route-encoded `extra_data`.
166
+ * Returns the `WithdrawRequest<CREDIT>` hot-potato argument (feed to
167
+ * {@link enqueueWithdrawal} in the same PTB).
168
+ */
169
+ function requestCreditWithdraw(client, tx, params) {
170
+ const senderRequest = (0, account_request_ts_1.makeSenderRequest)(client, tx, params.bucketAccount);
171
+ const [req] = (0, account_ts_1.requestWithdraw)({
172
+ package: client.config.packages.waterx_account.published_at,
173
+ arguments: {
174
+ registry: tx.object(client.config.packages.waterx_account.account_registry),
175
+ senderRequest: senderRequest,
176
+ accountId: params.accountId,
177
+ amount: params.amount,
178
+ recipient: params.recipient,
179
+ extraData: params.route,
180
+ },
181
+ typeArguments: [creditTypeOf(client, params.creditType)],
182
+ })(tx);
183
+ return req;
184
+ }
185
+ /**
186
+ * Build `withdrawal_queue::enqueue<CREDIT>`. Returns the assigned `u64` key
187
+ * argument (also surfaced on-chain via the `Enqueued` event).
188
+ */
189
+ function enqueueWithdrawal(client, tx, params) {
190
+ const out = (0, withdrawal_queue_ts_1.enqueue)({
191
+ package: queuePkg(client),
192
+ arguments: {
193
+ queue: tx.object(queueId(client)),
194
+ registry: tx.object(client.config.packages.waterx_account.account_registry),
195
+ req: params.withdrawRequest,
196
+ },
197
+ typeArguments: [creditTypeOf(client, params.creditType)],
198
+ })(tx);
199
+ return out;
200
+ }
201
+ /** Build `withdrawal_queue::execute_wormhole<CREDIT>` (keeper / executor-gated). */
202
+ function executeWithdrawalWormhole(client, tx, params) {
203
+ const request = (0, account_request_ts_1.makeSenderRequest)(client, tx, params.bucketAccount);
204
+ (0, withdrawal_queue_ts_1.executeWormhole)({
205
+ package: queuePkg(client),
206
+ arguments: {
207
+ queue: tx.object(queueId(client)),
208
+ key: params.key,
209
+ request: request,
210
+ bridge: tx.object(bridgeId(client)),
211
+ creditRegistry: tx.object(creditRegistryId(client)),
212
+ wormholeState: tx.object(client.wormholeStateId()),
213
+ wormholeFee: params.wormholeFee,
214
+ },
215
+ typeArguments: [creditTypeOf(client, params.creditType)],
216
+ })(tx);
217
+ }
218
+ /** Build `withdrawal_queue::execute_native<T, CREDIT>` (keeper / executor-gated). */
219
+ function executeWithdrawalNative(client, tx, params) {
220
+ const request = (0, account_request_ts_1.makeSenderRequest)(client, tx, params.bucketAccount);
221
+ (0, withdrawal_queue_ts_1.executeNative)({
222
+ package: queuePkg(client),
223
+ arguments: {
224
+ queue: tx.object(queueId(client)),
225
+ key: params.key,
226
+ request: request,
227
+ vault: tx.object(custodyVaultId(client)),
228
+ creditRegistry: tx.object(creditRegistryId(client)),
229
+ },
230
+ typeArguments: [(0, utils_1.normalizeStructTag)(params.assetType), creditTypeOf(client, params.creditType)],
231
+ })(tx);
232
+ }
233
+ /**
234
+ * Build `native_custody::custody_vault::mint<T, CREDIT>`. Returns the
235
+ * `DepositRequest<CREDIT>` hot-potato argument (consume in-PTB via
236
+ * {@link consumeCreditDeposit}).
237
+ */
238
+ function custodyMint(client, tx, params) {
239
+ const [req] = (0, custody_vault_ts_1.mint)({
240
+ package: custodyPkg(client),
241
+ arguments: {
242
+ vault: tx.object(custodyVaultId(client)),
243
+ registry: tx.object(creditRegistryId(client)),
244
+ accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
245
+ accountId: params.accountId,
246
+ assetCoin: params.assetCoin,
247
+ extraData: toBytes(params.extraData ?? new Uint8Array()),
248
+ },
249
+ typeArguments: [(0, utils_1.normalizeStructTag)(params.assetType), creditTypeOf(client, params.creditType)],
250
+ })(tx);
251
+ return req;
252
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Builders for `native_custody::custody_vault` — the Sui-native PSM that
3
+ * mints the protocol CREDIT CoinType 1:1 against backing stable assets `T`
4
+ * (CCTP USDC, USDT, …).
5
+ *
6
+ * `mintCredit` / `mintCreditFromRequest` return a `DepositRequest<CREDIT>`
7
+ * hot potato — it must be consumed in the same PTB by the deposit policy
8
+ * registered for CREDIT (the canonical policy is `direct_rule::DirectRule`).
9
+ * `mintCreditToAccount` chains that consume for you.
10
+ *
11
+ * There is no direct burn builder: the contract removed witness-free
12
+ * `custody_vault::burn` (audit L03/M14). CREDIT redemption routes through
13
+ * requestCreditWithdraw -> enqueueWithdrawal -> keeper executeWithdrawalNative.
14
+ *
15
+ * Requires `waterx_credit` + `native_custody` in the loaded config — both
16
+ * are optional in `WaterXConfig` since not every deployment ships the
17
+ * credit pipeline.
18
+ */
19
+ import type { Transaction, TransactionArgument } from "@mysten/sui/transactions";
20
+ import type { AccountClientLike } from "../client.ts";
21
+ export interface MintCreditParams {
22
+ /** wxa account ID the minted CREDIT is deposited into (also the partner-fee key). */
23
+ accountId: string;
24
+ /** `Coin<T>` of the backing asset to convert. */
25
+ assetCoin: TransactionArgument;
26
+ /** Fully-qualified backing-asset Move type `T` (must be registered on the vault). */
27
+ assetType: string;
28
+ /** CREDIT CoinType. Defaults to `client.creditType()`. */
29
+ creditType?: string;
30
+ /** Opaque bytes forwarded onto the returned `DepositRequest<CREDIT>`. */
31
+ extraData?: Uint8Array;
32
+ }
33
+ /**
34
+ * Build `custody_vault::mint<T, CREDIT>`. Returns the `DepositRequest<CREDIT>`
35
+ * argument — consume it in the same PTB (see `mintCreditToAccount`).
36
+ */
37
+ export declare function mintCredit(client: AccountClientLike, tx: Transaction, params: MintCreditParams): TransactionArgument;
38
+ export interface MintCreditFromRequestParams {
39
+ /** `DepositRequest<T>` from `account::request_deposit<T>` (T must have `NativeCustody` as its deposit policy). */
40
+ depositRequest: TransactionArgument;
41
+ /** Fully-qualified backing-asset Move type `T`. */
42
+ assetType: string;
43
+ /** CREDIT CoinType. Defaults to `client.creditType()`. */
44
+ creditType?: string;
45
+ }
46
+ /**
47
+ * Build `custody_vault::mint_from_request<T, CREDIT>`. The returned
48
+ * `DepositRequest<CREDIT>` inherits the input request's `accountId` /
49
+ * `extraData`. Consume it in the same PTB.
50
+ */
51
+ export declare function mintCreditFromRequest(client: AccountClientLike, tx: Transaction, params: MintCreditFromRequestParams): TransactionArgument;
52
+ /**
53
+ * `mintCredit` followed by `direct_rule::consume_deposit_direct<CREDIT>`, so
54
+ * the freshly minted CREDIT settles straight into `accountId`'s wxa balance.
55
+ * Assumes CREDIT's deposit policy is `DirectRule` (the canonical setup).
56
+ */
57
+ export declare function mintCreditToAccount(client: AccountClientLike, tx: Transaction, params: MintCreditParams): void;
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /**
3
+ * Builders for `native_custody::custody_vault` — the Sui-native PSM that
4
+ * mints the protocol CREDIT CoinType 1:1 against backing stable assets `T`
5
+ * (CCTP USDC, USDT, …).
6
+ *
7
+ * `mintCredit` / `mintCreditFromRequest` return a `DepositRequest<CREDIT>`
8
+ * hot potato — it must be consumed in the same PTB by the deposit policy
9
+ * registered for CREDIT (the canonical policy is `direct_rule::DirectRule`).
10
+ * `mintCreditToAccount` chains that consume for you.
11
+ *
12
+ * There is no direct burn builder: the contract removed witness-free
13
+ * `custody_vault::burn` (audit L03/M14). CREDIT redemption routes through
14
+ * requestCreditWithdraw -> enqueueWithdrawal -> keeper executeWithdrawalNative.
15
+ *
16
+ * Requires `waterx_credit` + `native_custody` in the loaded config — both
17
+ * are optional in `WaterXConfig` since not every deployment ships the
18
+ * credit pipeline.
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.mintCredit = mintCredit;
55
+ exports.mintCreditFromRequest = mintCreditFromRequest;
56
+ exports.mintCreditToAccount = mintCreditToAccount;
57
+ const utils_1 = require("@mysten/sui/utils");
58
+ const custody = __importStar(require("../../generated/native_custody/custody_vault.js"));
59
+ const direct_rule_ts_1 = require("../../generated/waterx_account/direct_rule.js");
60
+ function requireCredit(client) {
61
+ const credit = client.config.packages.waterx_credit;
62
+ if (!credit?.credit_registry) {
63
+ throw new Error("waterx_credit is not configured — set packages.waterx_credit.credit_registry");
64
+ }
65
+ return { credit_registry: credit.credit_registry };
66
+ }
67
+ function requireCustody(client) {
68
+ const nc = client.config.packages.native_custody;
69
+ if (!nc?.vault) {
70
+ throw new Error("native_custody is not configured — set packages.native_custody.vault");
71
+ }
72
+ return { published_at: nc.published_at, vault: nc.vault };
73
+ }
74
+ /**
75
+ * Build `custody_vault::mint<T, CREDIT>`. Returns the `DepositRequest<CREDIT>`
76
+ * argument — consume it in the same PTB (see `mintCreditToAccount`).
77
+ */
78
+ function mintCredit(client, tx, params) {
79
+ const credit = requireCredit(client);
80
+ const nc = requireCustody(client);
81
+ const [req] = custody.mint({
82
+ package: nc.published_at,
83
+ arguments: {
84
+ vault: tx.object(nc.vault),
85
+ registry: tx.object(credit.credit_registry),
86
+ accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
87
+ accountId: params.accountId,
88
+ assetCoin: params.assetCoin,
89
+ extraData: Array.from(params.extraData ?? new Uint8Array()),
90
+ },
91
+ typeArguments: [
92
+ (0, utils_1.normalizeStructTag)(params.assetType),
93
+ (0, utils_1.normalizeStructTag)(params.creditType ?? client.creditType()),
94
+ ],
95
+ })(tx);
96
+ return req;
97
+ }
98
+ /**
99
+ * Build `custody_vault::mint_from_request<T, CREDIT>`. The returned
100
+ * `DepositRequest<CREDIT>` inherits the input request's `accountId` /
101
+ * `extraData`. Consume it in the same PTB.
102
+ */
103
+ function mintCreditFromRequest(client, tx, params) {
104
+ const credit = requireCredit(client);
105
+ const nc = requireCustody(client);
106
+ const [req] = custody.mintFromRequest({
107
+ package: nc.published_at,
108
+ arguments: {
109
+ vault: tx.object(nc.vault),
110
+ registry: tx.object(credit.credit_registry),
111
+ accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
112
+ depositRequest: params.depositRequest,
113
+ },
114
+ typeArguments: [
115
+ (0, utils_1.normalizeStructTag)(params.assetType),
116
+ (0, utils_1.normalizeStructTag)(params.creditType ?? client.creditType()),
117
+ ],
118
+ })(tx);
119
+ return req;
120
+ }
121
+ // ============================================================================
122
+ // mint + consume — credit lands directly in the wxa account
123
+ // ============================================================================
124
+ /**
125
+ * `mintCredit` followed by `direct_rule::consume_deposit_direct<CREDIT>`, so
126
+ * the freshly minted CREDIT settles straight into `accountId`'s wxa balance.
127
+ * Assumes CREDIT's deposit policy is `DirectRule` (the canonical setup).
128
+ */
129
+ function mintCreditToAccount(client, tx, params) {
130
+ const req = mintCredit(client, tx, params);
131
+ (0, direct_rule_ts_1.consumeDepositDirect)({
132
+ package: client.config.packages.waterx_account.published_at,
133
+ arguments: {
134
+ registry: tx.object(client.config.packages.waterx_account.account_registry),
135
+ req: req,
136
+ },
137
+ typeArguments: [(0, utils_1.normalizeStructTag)(params.creditType ?? client.creditType())],
138
+ })(tx);
139
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Wormhole / Wormholescan integration for the cross-chain credit bridge.
3
+ *
4
+ * Single source of truth for VAA discovery + (de)serialization — mirrors
5
+ * `oracle/pyth.ts`'s role for Pyth's Hermes endpoint. Two directions:
6
+ *
7
+ * - Mint (EVM → Sui): fetch the signed VAA for an EVM `Deposit` by
8
+ * (emitter chain, emitter address, sequence); the raw bytes feed
9
+ * `wormhole_bridge::redeem_vaa`.
10
+ * - Withdraw (Sui → EVM): list recent VAAs emitted by the bridge's
11
+ * `EmitterCap` to submit on the EVM side.
12
+ *
13
+ * Endpoints / chain ids come from `client.wormhole` (network defaults in
14
+ * `WORMHOLE_DEFAULTS`, overridable via `WaterXConfig.wormhole`).
15
+ */
16
+ import type { AccountClientLike } from "../client.ts";
17
+ /**
18
+ * Normalize an emitter id to Wormholescan's `emitter` path segment:
19
+ * 64-char lowercase hex, no `0x`. Accepts a 0x EVM address (left-padded to
20
+ * 32 bytes) or a 32-byte Sui object id (the bridge `EmitterCap` id).
21
+ */
22
+ export declare function toWormholescanEmitter(idOrAddress: string): string;
23
+ /** EVM-side naming alias of {@link toWormholescanEmitter}. */
24
+ export declare const padEvmEmitter: typeof toWormholescanEmitter;
25
+ export interface VaaResponse {
26
+ /** Base64-encoded signed VAA. */
27
+ vaa: string;
28
+ sequence: number;
29
+ emitterAddr: string;
30
+ guardianSetIndex: number;
31
+ }
32
+ export interface VaaListItem {
33
+ /** Wormholescan returns u64 as a string — keep it that way to avoid `number` precision loss. */
34
+ sequence: string;
35
+ /** Base64 VAA; absent until guardians have signed. */
36
+ vaa?: string;
37
+ emitterAddr?: string;
38
+ }
39
+ export interface WormholescanOptions {
40
+ /** Override `fetch` (tests / non-global-fetch environments). */
41
+ fetchImpl?: typeof fetch;
42
+ /** Request timeout in ms. Default 10_000. */
43
+ timeoutMs?: number;
44
+ }
45
+ /**
46
+ * Fetch a single signed VAA. Returns `null` while guardians haven't signed
47
+ * it yet (HTTP 404 or no `vaa` field) so callers can retry on the next tick.
48
+ */
49
+ export declare function fetchVaa(apiBase: string, chainId: number, emitter: string, sequence: number | string | bigint, opts?: WormholescanOptions): Promise<VaaResponse | null>;
50
+ /**
51
+ * List recent VAAs emitted by `emitter` on `chainId`, newest first. Used by
52
+ * the burn relayer to discover Sui→EVM `WithdrawalInitiated` messages
53
+ * (Wormholescan only returns guardian-signed VAAs, so the await is implicit).
54
+ */
55
+ export declare function listVaasByEmitter(apiBase: string, chainId: number, emitter: string, opts?: WormholescanOptions & {
56
+ page?: number;
57
+ pageSize?: number;
58
+ }): Promise<VaaListItem[]>;
59
+ /** Poll {@link fetchVaa} until the VAA is signed or `timeoutMs` elapses. */
60
+ export declare function waitForVaa(apiBase: string, chainId: number, emitter: string, sequence: number | string | bigint, opts?: WormholescanOptions & {
61
+ intervalMs?: number;
62
+ timeoutMs?: number;
63
+ onTick?: (attempt: number) => void;
64
+ signal?: AbortSignal;
65
+ }): Promise<VaaResponse>;
66
+ /** Base64 VAA → raw bytes (the form Sui `redeem_vaa(vector<u8>)` expects). */
67
+ export declare function vaaBase64ToBytes(b64: string): Uint8Array;
68
+ /** Raw bytes → base64 (round-trips a VAA pulled off-chain). */
69
+ export declare function vaaBytesToBase64(bytes: Uint8Array): string;
70
+ /** Base64 VAA → `0x`-prefixed hex (the form EVM `submitWithdrawalVAA(bytes)` expects). */
71
+ export declare function vaaBase64ToHex(b64: string): `0x${string}`;
72
+ /**
73
+ * Fetch the signed VAA for an inbound EVM `Deposit` using the client's
74
+ * configured Wormholescan endpoint. `emitter` is the EVM-side bridge
75
+ * address (0x form accepted — left-padded automatically); `chainId` is the
76
+ * source EVM chain's Wormhole chain id.
77
+ */
78
+ export declare function fetchDepositVaa(client: AccountClientLike, evmWormholeChainId: number, evmEmitter: string, sequence: number | string | bigint, opts?: WormholescanOptions): Promise<VaaResponse | null>;
79
+ /**
80
+ * List recent Sui→EVM VAAs from the configured bridge `EmitterCap` (burn
81
+ * relayer). Requires `packages.wormhole_bridge.emitter_cap` in config.
82
+ */
83
+ export declare function listBridgeWithdrawalVaas(client: AccountClientLike, opts?: WormholescanOptions & {
84
+ page?: number;
85
+ pageSize?: number;
86
+ }): Promise<VaaListItem[]>;