@waterx/sdk 3.0.1 → 3.0.3

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 (398) 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 +45 -0
  351. package/dist/cjs/src/prediction/client.js +112 -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 +223 -0
  361. package/dist/cjs/src/prediction/gift.js +465 -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/package.json +119 -31
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ /**
3
+ * Umbrella WaterX SDK client — the main entry point.
4
+ *
5
+ * Exposes three namespaces over the two product-line sub-clients:
6
+ *
7
+ * const client = await WaterXClient.create({ network: "TESTNET" });
8
+ * client.account.createAccount(tx, { alias }); // -> shared waterx_account + funding
9
+ * client.perp.placeOrderRequest(tx, params); // -> perp builder
10
+ * client.predict.placeOrder(tx, params); // -> prediction builder
11
+ *
12
+ * `client.perp` **is** the `PerpClient` instance with the perp builder/view
13
+ * methods grafted on, and `client.predict` **is** the `PredictClient` instance
14
+ * likewise — so signing & execution live on the same object
15
+ * (`client.perp.signAndExecuteTransaction(...)`) right next to the builders.
16
+ * There are no separate `.perpClient` / `.predictClient` accessors.
17
+ *
18
+ * `client.account` is a thin namespace (no own client) bound to the perp
19
+ * sub-client: the perp config carries the shared `waterx_account` registry plus
20
+ * the bridge / native_custody / withdrawal_queue / credit_registry that the
21
+ * credit & custody builders read. `waterx_account` is one shared on-chain object,
22
+ * so an account created here serves both lines — except when the two lines target
23
+ * different networks (`opts.perp.network !== opts.predict.network`), where
24
+ * `client.account` follows the perp line; split-network callers should reach the
25
+ * predict line's generic account builders via the `prediction` namespace directly.
26
+ *
27
+ * Each namespace method forwards to the existing free-function builder with the
28
+ * line's client pre-bound as the first argument; builders are build-only (they
29
+ * return / mutate a `Transaction`), so frontend wallet flows and multi-step Pyth
30
+ * injection keep working.
31
+ */
32
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
33
+ if (k2 === undefined) k2 = k;
34
+ var desc = Object.getOwnPropertyDescriptor(m, k);
35
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
36
+ desc = { enumerable: true, get: function() { return m[k]; } };
37
+ }
38
+ Object.defineProperty(o, k2, desc);
39
+ }) : (function(o, m, k, k2) {
40
+ if (k2 === undefined) k2 = k;
41
+ o[k2] = m[k];
42
+ }));
43
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
44
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
45
+ }) : function(o, v) {
46
+ o["default"] = v;
47
+ });
48
+ var __importStar = (this && this.__importStar) || (function () {
49
+ var ownKeys = function(o) {
50
+ ownKeys = Object.getOwnPropertyNames || function (o) {
51
+ var ar = [];
52
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
53
+ return ar;
54
+ };
55
+ return ownKeys(o);
56
+ };
57
+ return function (mod) {
58
+ if (mod && mod.__esModule) return mod;
59
+ var result = {};
60
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
61
+ __setModuleDefault(result, mod);
62
+ return result;
63
+ };
64
+ })();
65
+ Object.defineProperty(exports, "__esModule", { value: true });
66
+ exports.WaterXClient = void 0;
67
+ // Unified account namespace: generic waterx_account framework + funding (credit + custody).
68
+ const accountOps = __importStar(require("./account/index.js"));
69
+ const perpReferral = __importStar(require("./account/referral.js"));
70
+ const client_ts_1 = require("./perp/client.js");
71
+ // Perp builder/view modules (every export takes the client as its first arg).
72
+ const perpFetch = __importStar(require("./perp/fetch.js"));
73
+ const perpTx = __importStar(require("./perp/tx-builders.js"));
74
+ // Perp-only user builders — account/credit/custody are excluded here; they live
75
+ // under `client.account`. trading / order / wlp / staking / referral only.
76
+ const perpOrder = __importStar(require("./perp/user/order.js"));
77
+ const perpStaking = __importStar(require("./perp/user/staking.js"));
78
+ const perpTrading = __importStar(require("./perp/user/trading.js"));
79
+ const perpWlp = __importStar(require("./perp/user/wlp.js"));
80
+ // Prediction-specific account ops (need the prediction package; NOT generic account).
81
+ const account_ts_1 = require("./prediction/account.js");
82
+ const predAdmin = __importStar(require("./prediction/admin.js"));
83
+ const client_ts_2 = require("./prediction/client.js");
84
+ const predFetch = __importStar(require("./prediction/fetch.js"));
85
+ const predGift = __importStar(require("./prediction/gift.js"));
86
+ const predOps = __importStar(require("./prediction/prediction.js"));
87
+ const tx_builders_ts_1 = require("./prediction/tx-builders.js");
88
+ /**
89
+ * Exports from the spread builder/view modules that are NOT client-first — their
90
+ * first argument is not the line client, so they must not become bound facade
91
+ * methods (binding would pass the client where a value is expected). This is the
92
+ * single source of truth shared by the runtime (skip) and the type (`Omit`).
93
+ * Keep in sync by auditing `export function` first-params across the spread modules.
94
+ */
95
+ const NON_CLIENT_FIRST = [
96
+ "extractReturnBytes",
97
+ // gift.ts — pure crypto / URL helpers (first arg is not PredictClient)
98
+ "base64UrlNoPadEncode",
99
+ "base64UrlNoPadDecode",
100
+ "generateGiftSeed",
101
+ "encodeGiftUrl",
102
+ "parseGiftUrl",
103
+ "deriveGiftKeypair",
104
+ "buildGiftClaimMessage",
105
+ "signGiftClaim",
106
+ ];
107
+ const NON_CLIENT_FIRST_SET = new Set(NON_CLIENT_FIRST);
108
+ function bindClient(client, ns) {
109
+ const out = {};
110
+ for (const key of Object.keys(ns)) {
111
+ if (NON_CLIENT_FIRST_SET.has(key))
112
+ continue; // not client-first → not a facade method
113
+ const value = ns[key];
114
+ out[key] =
115
+ typeof value === "function"
116
+ ? (...args) => value(client, ...args)
117
+ : value;
118
+ }
119
+ return out;
120
+ }
121
+ // Prediction-specific account ops kept on `client.predict` (generic account ops
122
+ // moved to `client.account`).
123
+ const predAccountSpecific = {
124
+ setDelegatePredictionPermission: account_ts_1.setDelegatePredictionPermission,
125
+ whitelistPredictionProtocol: account_ts_1.whitelistPredictionProtocol,
126
+ allowPredictionProtocolAsset: account_ts_1.allowPredictionProtocolAsset,
127
+ disallowPredictionProtocolAsset: account_ts_1.disallowPredictionProtocolAsset,
128
+ };
129
+ // Frozen, reused for both the runtime binding and the public module types.
130
+ const perpOps = {
131
+ ...perpTrading,
132
+ ...perpOrder,
133
+ ...perpWlp,
134
+ ...perpStaking,
135
+ ...perpReferral,
136
+ ...perpTx,
137
+ ...perpFetch,
138
+ };
139
+ const predictOps = { ...predAccountSpecific, ...predAdmin, ...predOps, ...predFetch, ...predGift };
140
+ class WaterXClient {
141
+ /** Shared account namespace (`client.account.createAccount(tx, params)`) — perp-backed. */
142
+ account;
143
+ /**
144
+ * Perp sub-client **with** the perp builders/views grafted on
145
+ * (`client.perp.placeOrderRequest(...)`, `client.perp.signAndExecuteTransaction(...)`).
146
+ */
147
+ perp;
148
+ /**
149
+ * Prediction sub-client **with** the prediction builders/views grafted on
150
+ * (`client.predict.placeOrder(...)`, `client.predict.signAndExecuteTransaction(...)`).
151
+ */
152
+ predict;
153
+ /**
154
+ * Async prediction builder: optional consolidate + `placeOrder`.
155
+ * Uses the perp client for the sweep and the predict client for the bet leg.
156
+ */
157
+ buildPredictPlaceOrderTx(params) {
158
+ return (0, tx_builders_ts_1.buildPlaceOrderTx)(this.perp, this.predict, params);
159
+ }
160
+ /**
161
+ * Async prediction builder: optional consolidate + `batchClaim`.
162
+ */
163
+ buildPredictBatchClaimTx(params) {
164
+ return (0, tx_builders_ts_1.buildBatchClaimTx)(this.perp, this.predict, params);
165
+ }
166
+ constructor(perpClient, predictClient) {
167
+ // Graft the bound builders onto the sub-client instances. No builder name
168
+ // collides with the client's own (transport/config) methods — enforced by the
169
+ // "graft guard" unit test (disjoint from the prototype chain), not just a
170
+ // comment. The instances stay `instanceof PerpClient` / `PredictClient`, so
171
+ // signing/config methods work.
172
+ this.perp = Object.assign(perpClient, bindClient(perpClient, perpOps));
173
+ this.predict = Object.assign(predictClient, bindClient(predictClient, predictOps));
174
+ this.account = bindClient(perpClient, accountOps);
175
+ }
176
+ /**
177
+ * Combine two pre-built line clients (advanced — full control over each).
178
+ * Note: this grafts the bound builder methods onto the provided client
179
+ * instances in place.
180
+ */
181
+ static fromClients(perpClient, predictClient) {
182
+ return new WaterXClient(perpClient, predictClient);
183
+ }
184
+ /**
185
+ * Async factory — loads each line's deployment config (from the canonical
186
+ * `waterx-config` JSON) and returns a ready client. Each line can target a
187
+ * different network via `opts.perp.network` / `opts.predict.network`.
188
+ */
189
+ static async create(opts = {}) {
190
+ const baseNetwork = opts.network ?? "TESTNET";
191
+ const { network: perpNetwork, ...perpRest } = opts.perp ?? {};
192
+ const { network: predictNetwork, ...predictRest } = opts.predict ?? {};
193
+ const resolvedPerpNetwork = perpNetwork ?? baseNetwork;
194
+ const resolvedPredictNetwork = predictNetwork ?? baseNetwork;
195
+ if (resolvedPerpNetwork !== resolvedPredictNetwork) {
196
+ // `client.account` always follows the perp line (see the class header).
197
+ // On a split-network setup a caller reaching for `client.account.*` would
198
+ // silently build against the perp deployment — warn so it isn't a surprise.
199
+ console.warn(`[WaterXClient] split-network: perp=${resolvedPerpNetwork} predict=${resolvedPredictNetwork}. ` +
200
+ `client.account follows the perp line (${resolvedPerpNetwork}); reach the predict line's ` +
201
+ `generic account builders via the prediction namespace directly.`);
202
+ }
203
+ const perpClient = await client_ts_1.PerpClient.create(resolvedPerpNetwork, {
204
+ grpcUrl: opts.grpcUrl,
205
+ configUrl: opts.configUrl,
206
+ cache: opts.cache,
207
+ ...perpRest,
208
+ });
209
+ const predictClient = await client_ts_2.PredictClient.create(resolvedPredictNetwork, {
210
+ grpcUrl: opts.grpcUrl,
211
+ configUrl: opts.configUrl,
212
+ cache: opts.cache,
213
+ ...predictRest,
214
+ });
215
+ return new WaterXClient(perpClient, predictClient);
216
+ }
217
+ }
218
+ exports.WaterXClient = WaterXClient;
@@ -0,0 +1,11 @@
1
+ import type { WaterXConfig } from "../perp/config.ts";
2
+ /** Returns all registered market tickers (e.g. "BTCUSD") from waterx-config. */
3
+ export declare function getMarketTickers(config: WaterXConfig): string[];
4
+ /**
5
+ * Returns WLP pool-token tickers that also have a registered pyth_rule feed —
6
+ * the canonical testnet config keys `pool_tokens` by coin symbol (e.g. `"USD"`)
7
+ * while `pyth_rule.feeds` is keyed by oracle ticker (e.g. `"USDCUSD"`), so a
8
+ * naive `Object.keys(pool_tokens)` blows up at `refreshOraclePrices` for any
9
+ * key without a feed. Filter so the auto-refresh path stays tolerant.
10
+ */
11
+ export declare function getCollateralAssets(config: WaterXConfig): string[];
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarketTickers = getMarketTickers;
4
+ exports.getCollateralAssets = getCollateralAssets;
5
+ /** Returns all registered market tickers (e.g. "BTCUSD") from waterx-config. */
6
+ function getMarketTickers(config) {
7
+ return Object.keys(config.packages.waterx_perp.markets);
8
+ }
9
+ /**
10
+ * Returns WLP pool-token tickers that also have a registered pyth_rule feed —
11
+ * the canonical testnet config keys `pool_tokens` by coin symbol (e.g. `"USD"`)
12
+ * while `pyth_rule.feeds` is keyed by oracle ticker (e.g. `"USDCUSD"`), so a
13
+ * naive `Object.keys(pool_tokens)` blows up at `refreshOraclePrices` for any
14
+ * key without a feed. Filter so the auto-refresh path stays tolerant.
15
+ */
16
+ function getCollateralAssets(config) {
17
+ const feeds = config.packages.pyth_rule?.feeds ?? {};
18
+ return Object.keys(config.packages.wlp.pool_tokens).filter((t) => feeds[t] !== undefined);
19
+ }
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Convert a human-readable USD price to the raw 1e9-scaled `u128` value
3
+ * that on-chain `Float`-typed parameters expect.
4
+ */
5
+ export declare function rawPrice(usd: number | string): bigint;
6
+ /** Notional value in USD: sizeInAsset × price. */
7
+ export declare function calcNotional(sizeInAsset: number, price: number): number;
8
+ /** Trading fee in USD: notional × feeRate. */
9
+ export declare function calcFee(sizeUsd: number, feeRate: number): number;
10
+ /** Unrealized perp Pnl in USD (before fees). */
11
+ export declare function calcUnrealizedPnl(isLong: boolean, entryPrice: number, spotPrice: number, sizeInAsset: number): number;
12
+ /** Position leverage = notional / collateralUsd. Returns Infinity when collateral is zero. */
13
+ export declare function calcLeverage(sizeUsd: number, collateralUsd: number): number;
14
+ /**
15
+ * Estimated liquidation price.
16
+ *
17
+ * Matches `calculate_est_liq_price` in `waterx_perp_view/sources/view.move`:
18
+ * maintenance = maintenanceMarginRate × (size × spotPrice) ← uses current notional
19
+ * ratio = (collateralUsd − totalFeesUsd − maintenance) / (size × avgPrice)
20
+ * long: liq = avgPrice × (1 − ratio)
21
+ * short: liq = avgPrice × (1 + ratio)
22
+ *
23
+ * Returns 0 when the position is already liquidatable or has no size.
24
+ *
25
+ * @param totalFeesUsd Sum of all accrued fees in USD: borrow + trading + net funding.
26
+ */
27
+ export declare function calcEstLiqPrice(params: {
28
+ isLong: boolean;
29
+ avgPrice: number;
30
+ sizeInAsset: number;
31
+ collateralUsd: number;
32
+ maintenanceMarginRate: number;
33
+ spotPrice: number;
34
+ totalFeesUsd: number;
35
+ }): number;
36
+ /**
37
+ * Effective (fee-adjusted) collateral in USD.
38
+ *
39
+ * Mirrors `calculate_effective_collateral_amount` in `trading.move`: the contract
40
+ * subtracts accrued borrow + trading fees and, **only when the position owes funding**
41
+ * (`fundingSign === true`, i.e. `unrealized_funding_sign`), the funding fee too. Funding
42
+ * *income* (position receives funding, `fundingSign === false`) is NOT added here —
43
+ * matching the contract's saturating-subtract path. Result clamps at 0.
44
+ *
45
+ * This is the collateral the contract actually uses for the max-leverage and
46
+ * min-collateral checks on `withdraw_collateral` — NOT the gross `collateral_amount`.
47
+ * Displaying leverage / max-reducible off gross collateral is the common UI bug
48
+ * (a position shows e.g. 23.3x on gross while the contract sees ~24.9x on effective).
49
+ *
50
+ * All inputs are human-readable USD. Convert raw collateral-token fee fields via
51
+ * `feeUsd = (rawFee / 10 ** collateralDecimal) * collateralPriceUsd`.
52
+ *
53
+ * @param grossCollateralUsd Position collateral in USD (`collateral_amount` → USD).
54
+ * @param borrowFeeUsd `unrealized_borrow_fee` in USD.
55
+ * @param fundingSign `unrealized_funding_sign` — true when the position owes funding.
56
+ * @param fundingFeeUsd `unrealized_funding_fee` magnitude in USD.
57
+ * @param tradingFeeUsd `unrealized_trading_fee` in USD.
58
+ * @param projectedTradingFeeUsd Closing fee to reserve (0 for a bare collateral withdrawal).
59
+ */
60
+ export declare function calcEffectiveCollateralUsd(params: {
61
+ grossCollateralUsd: number;
62
+ borrowFeeUsd: number;
63
+ fundingSign: boolean;
64
+ fundingFeeUsd: number;
65
+ tradingFeeUsd: number;
66
+ projectedTradingFeeUsd?: number;
67
+ }): number;
68
+ /**
69
+ * Maximum collateral (in USD) a position can safely withdraw ("最大可减少").
70
+ *
71
+ * Reproduces the three post-withdrawal checks in `execute_withdraw_collateral`
72
+ * (`trading.move`), all evaluated on **effective** (fee-adjusted) collateral, and
73
+ * returns the smallest allowed withdrawal:
74
+ *
75
+ * (A) max leverage — `notional / (effLeverage − w) ≤ maxLeverage`
76
+ * (B) min collateral — `(effLeverage − w) ≥ minCollValueUsd`
77
+ * (C) not liquidatable — `(liqRemaining − w) > maintenanceMargin × notional`
78
+ *
79
+ * where
80
+ * notional = sizeInAsset × spotPrice
81
+ * effLeverage = effective collateral with projectedTradingFee = 0
82
+ * (the contract's leverage/min-coll checks ignore the closing fee and PnL)
83
+ * liqRemaining = grossCollateralUsd + signedPnl − borrow − trading − closingFee ∓ funding
84
+ * (the contract's `is_liquidatable` boundary; funding income is added back)
85
+ *
86
+ * The result is a USD figure (matching the "$X" the UI shows), already aligned so that
87
+ * converting it to raw collateral units with floor is abort-safe:
88
+ * `rawAmount = floor((maxReducibleUsd / collateralPriceUsd) * 10 ** collateralDecimal)`.
89
+ * The liquidation leg backs off one raw collateral unit because `is_liquidatable` aborts
90
+ * on `remaining <= maintenance` (inclusive) — the safe withdrawal must leave remaining
91
+ * *strictly* above maintenance. The leverage (`> max`) and min-collateral (`>=`) checks
92
+ * are equality-safe on their own and floor-rounding only adds margin, so they need no offset.
93
+ *
94
+ * Funding handling is signed (income added, expense subtracted) — a close approximation
95
+ * of the contract's deficit-aware sequencing, exact whenever the position is solvent
96
+ * (the only case where a withdrawal can succeed). Clamps at 0.
97
+ *
98
+ * @param maxLeverage Max leverage as a ratio (e.g. 25 for `max_leverage_bps` 250000).
99
+ * @param maintenanceMarginRate `maintenance_margin` as a fraction (e.g. 0.01 for 1%).
100
+ * @param minCollValueUsd `min_coll_value` in USD (raw scaled value ÷ 1e9).
101
+ * @param closingFeeUsd Full closing fee in USD (`close_fee` → USD).
102
+ * @param collateralPriceUsd Oracle price of the collateral token (USD per token).
103
+ * @param collateralDecimal Collateral token decimals — sets the smallest withdraw step.
104
+ */
105
+ export declare function calcMaxReducibleCollateralUsd(params: {
106
+ grossCollateralUsd: number;
107
+ sizeInAsset: number;
108
+ spotPrice: number;
109
+ isLong: boolean;
110
+ entryPrice: number;
111
+ maxLeverage: number;
112
+ maintenanceMarginRate: number;
113
+ minCollValueUsd: number;
114
+ borrowFeeUsd: number;
115
+ tradingFeeUsd: number;
116
+ closingFeeUsd: number;
117
+ fundingSign: boolean;
118
+ fundingFeeUsd: number;
119
+ collateralPriceUsd: number;
120
+ collateralDecimal: number;
121
+ }): number;
122
+ /**
123
+ * Impact fee rate for an order (as a fraction, not bps).
124
+ *
125
+ * Matches `calculate_impact_fee` in `trading.move`. Returns 0 when the order
126
+ * reduces LP risk (new LP exposure ≤ original). Caller adds this to the base
127
+ * trading fee rate to get the total fee rate.
128
+ *
129
+ * @param longOi Current long open interest in base tokens.
130
+ * @param shortOi Current short open interest in base tokens.
131
+ * @param orderIsLong Direction of the order.
132
+ * @param orderSize Size of the order in base tokens.
133
+ * @param executionPrice Execution price (USD per base token).
134
+ * @param maxImpactFee Max impact fee rate (e.g. 0.0003).
135
+ * @param allocatedLpExposureBps Bps of pool TVL allocated as LP exposure cap.
136
+ * @param poolTvlUsd Total pool TVL in USD.
137
+ * @param curvature Impact fee curve curvature exponent (default 1).
138
+ * @param scale Impact fee curve scale (default 1).
139
+ */
140
+ export declare function calcImpactFeeRate(params: {
141
+ longOi: number;
142
+ shortOi: number;
143
+ orderIsLong: boolean;
144
+ orderSize: number;
145
+ executionPrice: number;
146
+ maxImpactFee: number;
147
+ allocatedLpExposureBps: number;
148
+ poolTvlUsd: number;
149
+ curvature?: number;
150
+ scale?: number;
151
+ }): number;
152
+ /** Total trading fee rate = base fee + impact fee. */
153
+ export declare function calcTotalTradingFeeRate(baseFeeRate: number, impactFeeRate: number): number;
154
+ /**
155
+ * Per-interval funding rate for a market.
156
+ *
157
+ * Matches `calculate_funding_rate` in `market_config.move`.
158
+ * OI values must be in USD (multiply raw OI by base price before calling).
159
+ *
160
+ * @returns `{ sign, rate }` where sign=true means longs pay shorts.
161
+ */
162
+ export declare function calcFundingRate(longOiUsd: number, shortOiUsd: number, basicRate: number, tvlUsd: number): {
163
+ sign: boolean;
164
+ rate: number;
165
+ };
166
+ /**
167
+ * Funding fee in USD for a position over a period.
168
+ *
169
+ * Simplified from `calculate_funding_fee` in `position.move` for off-chain estimation.
170
+ * For exact on-chain accounting use the Double-precision index from `position.move`.
171
+ *
172
+ * @param sizeInAsset Position size in base tokens.
173
+ * @param deltaIndexUsdPerAsset Change in cumulative funding index (USD per base token).
174
+ * @param positionIsLong Position direction.
175
+ * @param fundingSignIsLong True if the current funding interval charges longs.
176
+ */
177
+ export declare function calcFundingFeeUsd(sizeInAsset: number, deltaIndexUsdPerAsset: number, positionIsLong: boolean, fundingSignIsLong: boolean): number;
178
+ /**
179
+ * Decode raw Double-precision cumulative funding index delta into USD per base token.
180
+ *
181
+ * Raw index values from on-chain use Double scale (1e18). This converts them to
182
+ * human-readable form (USD per base token) so they can be passed to `calcFundingFeeUsd`.
183
+ */
184
+ export declare function decodeFundingIndexDelta(rawDelta: bigint): number;
185
+ /**
186
+ * Per-interval borrow rate using the 3-slope utilization curve.
187
+ *
188
+ * Matches `calculate_borrow_rate` in `lp_pool.move`.
189
+ * Rates are Float values (e.g. 0.000001 per interval).
190
+ */
191
+ export declare function calcBorrowRate(utilizationBps: number, rate0: number, rate1: number, rate2: number, threshold0Bps: number, threshold1Bps: number): number;
192
+ /**
193
+ * Time-weighted borrow rate accrual for a given elapsed period.
194
+ *
195
+ * Matches `calculate_borrow_rate_accrual` in `lp_pool.move`.
196
+ * `elapsedMs / intervalMs` gives the number of completed intervals.
197
+ */
198
+ export declare function calcBorrowRateAccrual(borrowRate: number, elapsedMs: number, intervalMs: number): number;
199
+ /**
200
+ * Unrealized borrow fee delta for a position (in raw collateral token units).
201
+ *
202
+ * Matches `calculate_borrow_fee` in `position.move`.
203
+ * Returns 0 when cumulative rate has not advanced past the entry index.
204
+ *
205
+ * @param borrowReserveAmount Position's borrow reserve in raw collateral units.
206
+ * @param cumulativeBorrowRate Current cumulative borrow rate (Float).
207
+ * @param entryBorrowIndex Cumulative borrow rate at position entry (Float).
208
+ */
209
+ export declare function calcPositionBorrowFee(borrowReserveAmount: number, cumulativeBorrowRate: number, entryBorrowIndex: number): number;
210
+ /** Token utilization in bps: reservedAmount / liquidityAmount × BPS_SCALE. */
211
+ export declare function calcTokenUtilizationBps(reservedAmount: number, liquidityAmount: number): number;
212
+ /**
213
+ * Annualize a per-interval funding rate.
214
+ *
215
+ * @param rate Per-interval funding rate (e.g. from `calcFundingRate`).
216
+ * @param intervalMs Funding interval in milliseconds (e.g. 3_600_000 for 1H).
217
+ */
218
+ export declare function annualizeFundingRate(rate: number, intervalMs: number): number;
219
+ /**
220
+ * Annualized APY from a NAV ratio over a given number of days.
221
+ *
222
+ * Compounds `ratio` (WLP price now / WLP price past) to a 365-day return.
223
+ * Returns 0 when the result is not finite (e.g. ratio ≤ 0 or days = 0).
224
+ *
225
+ * @param ratio Current NAV divided by past NAV (e.g. 1.05 for 5% growth).
226
+ * @param days Number of days elapsed between the two NAV samples.
227
+ */
228
+ export declare function annualizedApyFromRatio(ratio: number, days: number): number;
229
+ /**
230
+ * Convert a continuously-compounded incentive APR to APY.
231
+ *
232
+ * Rewards stream via `flow_rate` (continuous compounding), so APY = e^APR − 1.
233
+ * Returns 0 when the result is not finite.
234
+ *
235
+ * @param apr Time-weighted incentive APR as a decimal fraction (e.g. 0.12 for 12%).
236
+ */
237
+ export declare function calcWlpIncentiveApy(apr: number): number;
238
+ /**
239
+ * WLP share price in USD.
240
+ *
241
+ * @param tvlUsd Total pool TVL in USD (AUM equity).
242
+ * @param totalSupply Total WLP supply (in raw LP token units).
243
+ * @param lpDecimals WLP token decimals (6).
244
+ */
245
+ export declare function calcWlpPrice(tvlUsd: number, totalSupply: number, lpDecimals: number): number;
246
+ /**
247
+ * WLP tokens minted for a deposit (post-fee net deposit).
248
+ *
249
+ * Matches the LP-amount formula in `mint_wlp_with_pricing_tvl` in `lp_pool.move`.
250
+ * Pass `netDepositUsd` (after the dynamic mint fee is deducted).
251
+ * Bootstrap path (totalSupply === 0): lpAmount = netDepositUsd × 10^lpDecimals.
252
+ *
253
+ * @param netDepositUsd Deposit value in USD after dynamic mint fee.
254
+ * @param tvlUsd Pool TVL in USD at pricing time.
255
+ * @param totalSupply Current total WLP supply in raw units.
256
+ * @param lpDecimals WLP token decimals (6).
257
+ */
258
+ export declare function calcWlpMintOut(netDepositUsd: number, tvlUsd: number, totalSupply: number, lpDecimals: number): number;
259
+ /**
260
+ * Raw token amount redeemable for a given LP amount (before burn fee).
261
+ *
262
+ * Matches the settlement formula in `settle_redeem_with_pricing_tvl` in `lp_pool.move`.
263
+ * Apply `calcDynamicFeeBps` separately to get the net output.
264
+ *
265
+ * @param lpAmount LP tokens being redeemed (raw units).
266
+ * @param tvlUsd Pool TVL in USD at pricing time.
267
+ * @param totalSupply Current total WLP supply in raw units.
268
+ * @param tokenPriceUsd Oracle price of the output token.
269
+ * @param tokenDecimals Output token decimals.
270
+ */
271
+ export declare function calcWlpRedeemOut(lpAmount: number, tvlUsd: number, totalSupply: number, tokenPriceUsd: number, tokenDecimals: number): number;
272
+ /**
273
+ * Dynamic mint/burn fee in bps based on weight deviation.
274
+ *
275
+ * Matches `calculate_dynamic_fee` in `lp_pool.move`. Returns `baseFeeBps` when
276
+ * the operation moves the token closer to (or does not worsen) its target weight.
277
+ * Adds an additional fee proportional to the average deviation when it moves
278
+ * further away.
279
+ *
280
+ * @param tokenValueUsd Current USD value of this token in the pool.
281
+ * @param tvlUsd Total pool TVL in USD.
282
+ * @param operationValueUsd USD value of the deposit or withdrawal.
283
+ * @param targetWeightBps Target allocation weight for this token (bps).
284
+ * @param baseFeeBps Base mint/burn fee (bps).
285
+ * @param isDeposit True for mint, false for redeem.
286
+ */
287
+ export declare function calcDynamicFeeBps(tokenValueUsd: number, tvlUsd: number, operationValueUsd: number, targetWeightBps: number, baseFeeBps: number, isDeposit: boolean): number;