@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,2616 @@
1
+ "use strict";
2
+ /**************************************************************
3
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
4
+ **************************************************************/
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.MarketRegistry = exports.Market = void 0;
40
+ exports.actionOpenPosition = actionOpenPosition;
41
+ exports.actionClosePosition = actionClosePosition;
42
+ exports.actionPlaceOrder = actionPlaceOrder;
43
+ exports.actionCancelOrder = actionCancelOrder;
44
+ exports.actionDepositCollateral = actionDepositCollateral;
45
+ exports.actionWithdrawCollateral = actionWithdrawCollateral;
46
+ exports.actionLiquidate = actionLiquidate;
47
+ exports.actionIncreasePosition = actionIncreasePosition;
48
+ exports.actionDecreasePosition = actionDecreasePosition;
49
+ exports.actionUpdateOrder = actionUpdateOrder;
50
+ exports.actionCancelPreOrder = actionCancelPreOrder;
51
+ exports.actionAddPreOrder = actionAddPreOrder;
52
+ exports.createMarket = createMarket;
53
+ exports.updateMarketConfig = updateMarketConfig;
54
+ exports.updateMarketFundingConfig = updateMarketFundingConfig;
55
+ exports.pauseMarket = pauseMarket;
56
+ exports.unpauseMarket = unpauseMarket;
57
+ exports.addRequestRule = addRequestRule;
58
+ exports.removeRequestRule = removeRequestRule;
59
+ exports.registerMarketAum = registerMarketAum;
60
+ exports.refreshMarketAum = refreshMarketAum;
61
+ exports.assertProtocolPerm = assertProtocolPerm;
62
+ exports.closePositionRequest = closePositionRequest;
63
+ exports.increasePositionRequest = increasePositionRequest;
64
+ exports.decreasePositionRequest = decreasePositionRequest;
65
+ exports.placeOrderRequest = placeOrderRequest;
66
+ exports.validatePreOrders = validatePreOrders;
67
+ exports.validatePreOrderEntries = validatePreOrderEntries;
68
+ exports.assertPreOrderCount = assertPreOrderCount;
69
+ exports.cancelOrderRequest = cancelOrderRequest;
70
+ exports.updateOrderRequest = updateOrderRequest;
71
+ exports.cancelPreOrderRequest = cancelPreOrderRequest;
72
+ exports.addPreOrderRequest = addPreOrderRequest;
73
+ exports.depositCollateralRequest = depositCollateralRequest;
74
+ exports.withdrawCollateralRequest = withdrawCollateralRequest;
75
+ exports.liquidate = liquidate;
76
+ exports.batchLiquidate = batchLiquidate;
77
+ exports.execute = execute;
78
+ exports.executeOpenPosition = executeOpenPosition;
79
+ exports.executeIncreasePosition = executeIncreasePosition;
80
+ exports.executeClosePosition = executeClosePosition;
81
+ exports.executeDecreasePosition = executeDecreasePosition;
82
+ exports.executePlaceOrder = executePlaceOrder;
83
+ exports.executeCancelOrder = executeCancelOrder;
84
+ exports.executeUpdateOrder = executeUpdateOrder;
85
+ exports.executeCancelPreOrder = executeCancelPreOrder;
86
+ exports.executeAddPreOrder = executeAddPreOrder;
87
+ exports.executeDepositCollateral = executeDepositCollateral;
88
+ exports.executeWithdrawCollateral = executeWithdrawCollateral;
89
+ exports.executeLiquidate = executeLiquidate;
90
+ exports.matchOrders = matchOrders;
91
+ exports.updateFundingRate = updateFundingRate;
92
+ exports.settleFundingRate = settleFundingRate;
93
+ exports.openPositionByKeeper = openPositionByKeeper;
94
+ exports.closePositionByKeeper = closePositionByKeeper;
95
+ exports.resolveSize = resolveSize;
96
+ exports.resolveOrderSize = resolveOrderSize;
97
+ exports.checkOpenSlippage = checkOpenSlippage;
98
+ exports.assertOpenSlippage = assertOpenSlippage;
99
+ exports.assertCloseSlippage = assertCloseSlippage;
100
+ exports.calculateTotalTradingFee = calculateTotalTradingFee;
101
+ exports.emitLpEquity = emitLpEquity;
102
+ exports.distributeTradingFee = distributeTradingFee;
103
+ exports.calculateEffectiveCollateralAmount = calculateEffectiveCollateralAmount;
104
+ exports.calculateLossAdjustedEffectiveCollateralAmount = calculateLossAdjustedEffectiveCollateralAmount;
105
+ exports.settleLossToBalance = settleLossToBalance;
106
+ exports.settleLossToPosition = settleLossToPosition;
107
+ exports.settleFeesToBalance = settleFeesToBalance;
108
+ exports.settleFeesToPosition = settleFeesToPosition;
109
+ exports.settleFundingToBalance = settleFundingToBalance;
110
+ exports.settleFundingToPosition = settleFundingToPosition;
111
+ exports.calculateImpactFee = calculateImpactFee;
112
+ exports.impactFeeCostUsd = impactFeeCostUsd;
113
+ exports.calculatePositionLeverageBps = calculatePositionLeverageBps;
114
+ exports.hasMinPositionCollateralValue = hasMinPositionCollateralValue;
115
+ exports.assertMinPositionCollateralValue = assertMinPositionCollateralValue;
116
+ exports.proportionalAmount = proportionalAmount;
117
+ exports.debitCollateralAmount = debitCollateralAmount;
118
+ exports.creditCollateralAmount = creditCollateralAmount;
119
+ exports.calculateRemainingCollateralAfterPartialReduce = calculateRemainingCollateralAfterPartialReduce;
120
+ exports.canPositionGrow = canPositionGrow;
121
+ exports.validatePositionGrowth = validatePositionGrowth;
122
+ exports.weightedAveragePrice = weightedAveragePrice;
123
+ exports.normalizeTriggerPrice = normalizeTriggerPrice;
124
+ exports.hasPendingPreOrders = hasPendingPreOrders;
125
+ exports.pendingPreOrdersCount = pendingPreOrdersCount;
126
+ exports.reservePreOrders = reservePreOrders;
127
+ exports.dropPendingPreOrdersIfExists = dropPendingPreOrdersIfExists;
128
+ exports.activatePendingPreOrders = activatePendingPreOrders;
129
+ exports.assertPositionOwner = assertPositionOwner;
130
+ exports.assertPositionCollateralType = assertPositionCollateralType;
131
+ exports.borrowOwnedPosition = borrowOwnedPosition;
132
+ exports.borrowOwnedPositionMut = borrowOwnedPositionMut;
133
+ exports.takeOwnedPosition = takeOwnedPosition;
134
+ exports.findOrderTypeTag = findOrderTypeTag;
135
+ exports.findCancelOrderLocation = findCancelOrderLocation;
136
+ exports.findOrderLocationById = findOrderLocationById;
137
+ exports.findOrderPriceKeyInBook = findOrderPriceKeyInBook;
138
+ exports.levelContainsOrder = levelContainsOrder;
139
+ exports.hasOrderInBook = hasOrderInBook;
140
+ exports.takeLinkedOrderAtKey = takeLinkedOrderAtKey;
141
+ exports.cancelLinkedOrdersToBalance = cancelLinkedOrdersToBalance;
142
+ exports.borrowMutOrderBook = borrowMutOrderBook;
143
+ exports.takeOrderDirect = takeOrderDirect;
144
+ exports.returnToUser = returnToUser;
145
+ exports.marketId = marketId;
146
+ exports.borrowPosition = borrowPosition;
147
+ exports.hasPosition = hasPosition;
148
+ exports.borrowOrder = borrowOrder;
149
+ exports.borrowPositions = borrowPositions;
150
+ exports.borrowOrderBook = borrowOrderBook;
151
+ exports.borrowConfig = borrowConfig;
152
+ exports.marketSymbol = marketSymbol;
153
+ exports.createMarketRegistry = createMarketRegistry;
154
+ exports.registryAssertVersion = registryAssertVersion;
155
+ exports.registryAllowVersion = registryAllowVersion;
156
+ exports.registryDisallowVersion = registryDisallowVersion;
157
+ exports.addMarket = addMarket;
158
+ exports.removeMarket = removeMarket;
159
+ exports.hasMarket = hasMarket;
160
+ exports.listedTickers = listedTickers;
161
+ exports.borrowMarket = borrowMarket;
162
+ exports.borrowMarketMut = borrowMarketMut;
163
+ /**
164
+ * Core trading engine for WaterX Perp DEX.
165
+ *
166
+ * User-side path uses a hot-potato `TradingRequest<C_TOKEN>` (no abilities),
167
+ * consumed in the same PTB by `trading::execute`. `execute` does the work inline
168
+ * and returns droppable `TradingResponse` receipts — user payouts route through
169
+ * `wxa_account::put`, not back out as a `Coin<C_TOKEN>`.
170
+ *
171
+ * PTB flow:
172
+ *
173
+ * 1. let request = trading::place_order_request(...);
174
+ * 2. // External rules add witnesses: my_rule::check(&mut request, ...);
175
+ * 3. let responses = trading::execute(global_config, wxa_registry,
176
+ * market_registry, ticker, pool, request, oracle, clock, ctx);
177
+ */
178
+ const index_ts_1 = require("../utils/index.js");
179
+ const bcs_1 = require("@mysten/sui/bcs");
180
+ const market_config = __importStar(require("./market_config.js"));
181
+ const keyed_big_vector = __importStar(require("./keyed_big_vector.js"));
182
+ const order_book = __importStar(require("./order_book.js"));
183
+ const vec_set = __importStar(require("./deps/sui/vec_set.js"));
184
+ const $moduleName = '@waterx/perp::trading';
185
+ exports.Market = new index_ts_1.MoveStruct({ name: `${$moduleName}::Market<phantom LP_TOKEN>`, fields: {
186
+ id: bcs_1.bcs.Address,
187
+ /** Per-market configuration and state. */
188
+ config: market_config.MarketConfig,
189
+ /** Positions indexed by position_id. */
190
+ positions: keyed_big_vector.KeyedBigVector,
191
+ /** Limit buy orders: price_key → vector<Order> */
192
+ limit_buys: order_book.OrderBook,
193
+ /** Limit sell orders: price_key → vector<Order> */
194
+ limit_sells: order_book.OrderBook,
195
+ /** Stop buy orders: price_key → vector<Order> */
196
+ stop_buys: order_book.OrderBook,
197
+ /** Stop sell orders: price_key → vector<Order> */
198
+ stop_sells: order_book.OrderBook,
199
+ /**
200
+ * Reserved TP / SL pre-orders, keyed by the **pre-order's own `order_id`** (not
201
+ * the main order's id). Each entry is a single fully-formed reduce-only `Order`
202
+ * with `linked_position_id = None`; on main fill `activate_pending_pre_orders`
203
+ * stamps in the new position id and moves the order onto the live book.
204
+ */
205
+ pending_pre_orders: keyed_big_vector.KeyedBigVector,
206
+ /**
207
+ * Secondary index: `main_order_id → vector<pre_order_id>` listing the pre-orders
208
+ * reserved against each unfilled main. Used by activation / cancellation to
209
+ * enumerate the pre-orders that belong to a given main.
210
+ */
211
+ pending_pre_order_index: keyed_big_vector.KeyedBigVector
212
+ } });
213
+ exports.MarketRegistry = new index_ts_1.MoveStruct({ name: `${$moduleName}::MarketRegistry<phantom LP_TOKEN>`, fields: {
214
+ id: bcs_1.bcs.Address,
215
+ /** Allowed protocol versions (admin-managed). */
216
+ allowed_versions: vec_set.VecSet(bcs_1.bcs.u16()),
217
+ /** Tickers of registered markets, mirrored from the DOF for cheap iteration. */
218
+ listed_tickers: bcs_1.bcs.vector(bcs_1.bcs.string())
219
+ } });
220
+ function actionOpenPosition(options = {}) {
221
+ const packageAddress = options.package ?? '@waterx/perp';
222
+ return (tx) => tx.moveCall({
223
+ package: packageAddress,
224
+ module: 'trading',
225
+ function: 'action_open_position',
226
+ });
227
+ }
228
+ function actionClosePosition(options = {}) {
229
+ const packageAddress = options.package ?? '@waterx/perp';
230
+ return (tx) => tx.moveCall({
231
+ package: packageAddress,
232
+ module: 'trading',
233
+ function: 'action_close_position',
234
+ });
235
+ }
236
+ function actionPlaceOrder(options = {}) {
237
+ const packageAddress = options.package ?? '@waterx/perp';
238
+ return (tx) => tx.moveCall({
239
+ package: packageAddress,
240
+ module: 'trading',
241
+ function: 'action_place_order',
242
+ });
243
+ }
244
+ function actionCancelOrder(options = {}) {
245
+ const packageAddress = options.package ?? '@waterx/perp';
246
+ return (tx) => tx.moveCall({
247
+ package: packageAddress,
248
+ module: 'trading',
249
+ function: 'action_cancel_order',
250
+ });
251
+ }
252
+ function actionDepositCollateral(options = {}) {
253
+ const packageAddress = options.package ?? '@waterx/perp';
254
+ return (tx) => tx.moveCall({
255
+ package: packageAddress,
256
+ module: 'trading',
257
+ function: 'action_deposit_collateral',
258
+ });
259
+ }
260
+ function actionWithdrawCollateral(options = {}) {
261
+ const packageAddress = options.package ?? '@waterx/perp';
262
+ return (tx) => tx.moveCall({
263
+ package: packageAddress,
264
+ module: 'trading',
265
+ function: 'action_withdraw_collateral',
266
+ });
267
+ }
268
+ function actionLiquidate(options = {}) {
269
+ const packageAddress = options.package ?? '@waterx/perp';
270
+ return (tx) => tx.moveCall({
271
+ package: packageAddress,
272
+ module: 'trading',
273
+ function: 'action_liquidate',
274
+ });
275
+ }
276
+ function actionIncreasePosition(options = {}) {
277
+ const packageAddress = options.package ?? '@waterx/perp';
278
+ return (tx) => tx.moveCall({
279
+ package: packageAddress,
280
+ module: 'trading',
281
+ function: 'action_increase_position',
282
+ });
283
+ }
284
+ function actionDecreasePosition(options = {}) {
285
+ const packageAddress = options.package ?? '@waterx/perp';
286
+ return (tx) => tx.moveCall({
287
+ package: packageAddress,
288
+ module: 'trading',
289
+ function: 'action_decrease_position',
290
+ });
291
+ }
292
+ function actionUpdateOrder(options = {}) {
293
+ const packageAddress = options.package ?? '@waterx/perp';
294
+ return (tx) => tx.moveCall({
295
+ package: packageAddress,
296
+ module: 'trading',
297
+ function: 'action_update_order',
298
+ });
299
+ }
300
+ function actionCancelPreOrder(options = {}) {
301
+ const packageAddress = options.package ?? '@waterx/perp';
302
+ return (tx) => tx.moveCall({
303
+ package: packageAddress,
304
+ module: 'trading',
305
+ function: 'action_cancel_pre_order',
306
+ });
307
+ }
308
+ function actionAddPreOrder(options = {}) {
309
+ const packageAddress = options.package ?? '@waterx/perp';
310
+ return (tx) => tx.moveCall({
311
+ package: packageAddress,
312
+ module: 'trading',
313
+ function: 'action_add_pre_order',
314
+ });
315
+ }
316
+ /**
317
+ * Creates a trading market with full configuration. `trading_fee`,
318
+ * `maintenance_margin`, and `basic_funding_rate` are scaled Float values (1e9
319
+ * scale). For example, a 5 bps fee = `500_000`.
320
+ */
321
+ function createMarket(options) {
322
+ const packageAddress = options.package ?? '@waterx/perp';
323
+ const argumentsTypes = [
324
+ null,
325
+ '0x1::string::String',
326
+ 'u64',
327
+ 'u64',
328
+ 'u128',
329
+ 'u128',
330
+ 'u128',
331
+ 'u128',
332
+ 'u64',
333
+ 'u128',
334
+ 'u64',
335
+ '0x2::clock::Clock'
336
+ ];
337
+ const parameterNames = ["Cap", "symbol", "maxLeverageBps", "minCollValue", "tradingFee", "maintenanceMargin", "maxLongOi", "maxShortOi", "cooldownMs", "basicFundingRate", "fundingIntervalMs"];
338
+ return (tx) => tx.moveCall({
339
+ package: packageAddress,
340
+ module: 'trading',
341
+ function: 'create_market',
342
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
343
+ typeArguments: options.typeArguments
344
+ });
345
+ }
346
+ /**
347
+ * Admin: forwards to `market_config::update_market_config` through the shared
348
+ * `Market`. Needed because `MarketConfig` is embedded inside `Market` and can't be
349
+ * borrowed mutably from a PTB directly. Funding parameters must be updated with
350
+ * `update_market_funding_config` so accrued funding is settled under the old
351
+ * parameters before the new parameters take effect.
352
+ */
353
+ function updateMarketConfig(options) {
354
+ const packageAddress = options.package ?? '@waterx/perp';
355
+ const argumentsTypes = [
356
+ null,
357
+ null,
358
+ '0x1::string::String',
359
+ '0x1::option::Option<u64>',
360
+ '0x1::option::Option<u64>',
361
+ '0x1::option::Option<u128>',
362
+ '0x1::option::Option<u128>',
363
+ '0x1::option::Option<u64>',
364
+ '0x1::option::Option<u64>',
365
+ '0x1::option::Option<u64>',
366
+ '0x1::option::Option<u128>',
367
+ '0x1::option::Option<u128>',
368
+ '0x1::option::Option<u128>',
369
+ '0x1::option::Option<u64>',
370
+ '0x1::option::Option<u128>',
371
+ '0x1::option::Option<u64>',
372
+ '0x1::option::Option<u128>',
373
+ '0x1::option::Option<u64>'
374
+ ];
375
+ const parameterNames = ["marketRegistry", "cap", "ticker", "maxLeverageBps", "minCollValue", "tradingFee", "maxImpactFee", "allocatedLpExposureBps", "impactFeeCurvature", "impactFeeScale", "maintenanceMargin", "maxLongOi", "maxShortOi", "cooldownMs", "orderPriceTick", "maxPreOrders", "basicFundingRate", "fundingIntervalMs"];
376
+ return (tx) => tx.moveCall({
377
+ package: packageAddress,
378
+ module: 'trading',
379
+ function: 'update_market_config',
380
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
381
+ typeArguments: options.typeArguments
382
+ });
383
+ }
384
+ /**
385
+ * Admin: settles accrued funding under the old funding parameters, then updates
386
+ * funding parameters for future intervals.
387
+ */
388
+ function updateMarketFundingConfig(options) {
389
+ const packageAddress = options.package ?? '@waterx/perp';
390
+ const argumentsTypes = [
391
+ null,
392
+ null,
393
+ null,
394
+ '0x1::string::String',
395
+ null,
396
+ null,
397
+ '0x1::option::Option<u128>',
398
+ '0x1::option::Option<u64>',
399
+ '0x2::clock::Clock'
400
+ ];
401
+ const parameterNames = ["globalConfig", "cap", "marketRegistry", "ticker", "pool", "oracle", "basicFundingRate", "fundingIntervalMs"];
402
+ return (tx) => tx.moveCall({
403
+ package: packageAddress,
404
+ module: 'trading',
405
+ function: 'update_market_funding_config',
406
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
407
+ typeArguments: options.typeArguments
408
+ });
409
+ }
410
+ /** Admin: suspend the market (halts trading). */
411
+ function pauseMarket(options) {
412
+ const packageAddress = options.package ?? '@waterx/perp';
413
+ const argumentsTypes = [
414
+ null,
415
+ null,
416
+ '0x1::string::String'
417
+ ];
418
+ const parameterNames = ["marketRegistry", "cap", "ticker"];
419
+ return (tx) => tx.moveCall({
420
+ package: packageAddress,
421
+ module: 'trading',
422
+ function: 'pause_market',
423
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
424
+ typeArguments: options.typeArguments
425
+ });
426
+ }
427
+ /** Admin: resume the market. */
428
+ function unpauseMarket(options) {
429
+ const packageAddress = options.package ?? '@waterx/perp';
430
+ const argumentsTypes = [
431
+ null,
432
+ null,
433
+ '0x1::string::String'
434
+ ];
435
+ const parameterNames = ["marketRegistry", "cap", "ticker"];
436
+ return (tx) => tx.moveCall({
437
+ package: packageAddress,
438
+ module: 'trading',
439
+ function: 'unpause_market',
440
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
441
+ typeArguments: options.typeArguments
442
+ });
443
+ }
444
+ /** Admin: add witness type `W` to the request checklist. */
445
+ function addRequestRule(options) {
446
+ const packageAddress = options.package ?? '@waterx/perp';
447
+ const argumentsTypes = [
448
+ null,
449
+ null,
450
+ '0x1::string::String'
451
+ ];
452
+ const parameterNames = ["marketRegistry", "cap", "ticker"];
453
+ return (tx) => tx.moveCall({
454
+ package: packageAddress,
455
+ module: 'trading',
456
+ function: 'add_request_rule',
457
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
458
+ typeArguments: options.typeArguments
459
+ });
460
+ }
461
+ /** Admin: remove witness type `W` from the request checklist. */
462
+ function removeRequestRule(options) {
463
+ const packageAddress = options.package ?? '@waterx/perp';
464
+ const argumentsTypes = [
465
+ null,
466
+ null,
467
+ '0x1::string::String'
468
+ ];
469
+ const parameterNames = ["marketRegistry", "cap", "ticker"];
470
+ return (tx) => tx.moveCall({
471
+ package: packageAddress,
472
+ module: 'trading',
473
+ function: 'remove_request_rule',
474
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
475
+ typeArguments: options.typeArguments
476
+ });
477
+ }
478
+ /** Registers a market in the pool-level WLP AUM object. */
479
+ function registerMarketAum(options) {
480
+ const packageAddress = options.package ?? '@waterx/perp';
481
+ const argumentsTypes = [
482
+ null,
483
+ null,
484
+ null,
485
+ '0x1::string::String',
486
+ null,
487
+ '0x2::clock::Clock'
488
+ ];
489
+ const parameterNames = ["marketRegistry", "aum", "cap", "ticker", "oracle"];
490
+ return (tx) => tx.moveCall({
491
+ package: packageAddress,
492
+ module: 'trading',
493
+ function: 'register_market_aum',
494
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
495
+ typeArguments: options.typeArguments
496
+ });
497
+ }
498
+ /** Refreshes one registered market's contribution to pool-level WLP AUM. */
499
+ function refreshMarketAum(options) {
500
+ const packageAddress = options.package ?? '@waterx/perp';
501
+ const argumentsTypes = [
502
+ null,
503
+ null,
504
+ '0x1::string::String',
505
+ null,
506
+ '0x2::clock::Clock'
507
+ ];
508
+ const parameterNames = ["marketRegistry", "aum", "ticker", "oracle"];
509
+ return (tx) => tx.moveCall({
510
+ package: packageAddress,
511
+ module: 'trading',
512
+ function: 'refresh_market_aum',
513
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
514
+ typeArguments: options.typeArguments
515
+ });
516
+ }
517
+ /**
518
+ * Permission check on the wxa account for the trading entrypoints. Reads
519
+ * `effective_protocol_permissions<TradingRequest<C_TOKEN>>` so per-collateral
520
+ * granularity is preserved (`PERM_OPEN_POSITION` etc. are bits on that bitmap).
521
+ * Must be called _before_ any `wxa_account::take` so a failed auth doesn't leave
522
+ * the user drained.
523
+ */
524
+ function assertProtocolPerm(options) {
525
+ const packageAddress = options.package ?? '@waterx/perp';
526
+ const argumentsTypes = [
527
+ null,
528
+ '0x2::object::ID',
529
+ 'address',
530
+ 'u32',
531
+ '0x2::clock::Clock'
532
+ ];
533
+ const parameterNames = ["wxaRegistry", "accountId", "sender", "permission"];
534
+ return (tx) => tx.moveCall({
535
+ package: packageAddress,
536
+ module: 'trading',
537
+ function: 'assert_protocol_perm',
538
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
539
+ typeArguments: options.typeArguments
540
+ });
541
+ }
542
+ /** Creates a request to close a position. */
543
+ function closePositionRequest(options) {
544
+ const packageAddress = options.package ?? '@waterx/perp';
545
+ const argumentsTypes = [
546
+ null,
547
+ null,
548
+ null,
549
+ '0x1::string::String',
550
+ null,
551
+ '0x2::object::ID',
552
+ 'u64',
553
+ 'u64',
554
+ '0x2::clock::Clock'
555
+ ];
556
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "positionId", "acceptablePrice"];
557
+ return (tx) => tx.moveCall({
558
+ package: packageAddress,
559
+ module: 'trading',
560
+ function: 'close_position_request',
561
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
562
+ typeArguments: options.typeArguments
563
+ });
564
+ }
565
+ /** Creates a request to increase an existing position at market. */
566
+ function increasePositionRequest(options) {
567
+ const packageAddress = options.package ?? '@waterx/perp';
568
+ const argumentsTypes = [
569
+ null,
570
+ null,
571
+ null,
572
+ '0x1::string::String',
573
+ null,
574
+ '0x2::object::ID',
575
+ '0x1::option::Option<u64>',
576
+ 'u64',
577
+ 'u64',
578
+ 'u128',
579
+ 'u64',
580
+ '0x2::clock::Clock'
581
+ ];
582
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "orderId", "positionId", "collateralAmount", "size", "acceptablePrice"];
583
+ return (tx) => tx.moveCall({
584
+ package: packageAddress,
585
+ module: 'trading',
586
+ function: 'increase_position_request',
587
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
588
+ typeArguments: options.typeArguments
589
+ });
590
+ }
591
+ /** Creates a request to partially reduce an existing position at market. */
592
+ function decreasePositionRequest(options) {
593
+ const packageAddress = options.package ?? '@waterx/perp';
594
+ const argumentsTypes = [
595
+ null,
596
+ null,
597
+ null,
598
+ '0x1::string::String',
599
+ null,
600
+ '0x2::object::ID',
601
+ 'u64',
602
+ 'u128',
603
+ 'u64',
604
+ '0x2::clock::Clock'
605
+ ];
606
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "positionId", "size", "acceptablePrice"];
607
+ return (tx) => tx.moveCall({
608
+ package: packageAddress,
609
+ module: 'trading',
610
+ function: 'decrease_position_request',
611
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
612
+ typeArguments: options.typeArguments
613
+ });
614
+ }
615
+ /**
616
+ * Creates a request to place a limit, stop, or market order, optionally with TP/SL
617
+ * pre-orders reserved against the freshly opened position.
618
+ *
619
+ * `main: PlaceOrderArgument` describes the order that hits the book immediately.
620
+ * `pre_order: vector<PlaceOrderArgument>` (length 0..=2) describes reduce-only
621
+ * orders that will be promoted to real linked orders on the new position when the
622
+ * main fills via `match_orders`.
623
+ *
624
+ * `main.trigger_price = None` is the market form: the order is parked at tick 0 in
625
+ * the limit book and a keeper fills it via `match_orders` at the live oracle.
626
+ * `acceptable_price` is carried on the order and consulted at match time — if the
627
+ * oracle moves past it the order is cancelled and collateral refunded. Limit/stop
628
+ * orders ignore `acceptable_price`.
629
+ *
630
+ * Validation runs _before_ the wxa take so a malformed request never drains the
631
+ * user's balance.
632
+ */
633
+ function placeOrderRequest(options) {
634
+ const packageAddress = options.package ?? '@waterx/perp';
635
+ const argumentsTypes = [
636
+ null,
637
+ null,
638
+ null,
639
+ '0x1::string::String',
640
+ null,
641
+ '0x2::object::ID',
642
+ null,
643
+ 'vector<null>',
644
+ '0x2::clock::Clock'
645
+ ];
646
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "main", "preOrder"];
647
+ return (tx) => tx.moveCall({
648
+ package: packageAddress,
649
+ module: 'trading',
650
+ function: 'place_order_request',
651
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
652
+ typeArguments: options.typeArguments
653
+ });
654
+ }
655
+ /**
656
+ * Validates `(main, pre_order)` at place-order request creation. Combines the
657
+ * main-eligibility check (must be a fresh opening order), the count check against
658
+ * the market-level cap, and per-entry structural rules.
659
+ */
660
+ function validatePreOrders(options) {
661
+ const packageAddress = options.package ?? '@waterx/perp';
662
+ const argumentsTypes = [
663
+ null,
664
+ 'vector<null>',
665
+ 'u64'
666
+ ];
667
+ const parameterNames = ["main", "preOrder", "maxPreOrders"];
668
+ return (tx) => tx.moveCall({
669
+ package: packageAddress,
670
+ module: 'trading',
671
+ function: 'validate_pre_orders',
672
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
673
+ });
674
+ }
675
+ /**
676
+ * Per-entry structural validation only: reduce-only, real trigger, no collateral,
677
+ * no pre-picked link target, opposite side of main, non-zero size. The total-count
678
+ * check is the caller's responsibility (`assert_pre_order_count`) so this can be
679
+ * reused from per-leg add / cancel paths.
680
+ */
681
+ function validatePreOrderEntries(options) {
682
+ const packageAddress = options.package ?? '@waterx/perp';
683
+ const argumentsTypes = [
684
+ 'bool',
685
+ 'vector<null>'
686
+ ];
687
+ const parameterNames = ["mainIsLong", "preOrder"];
688
+ return (tx) => tx.moveCall({
689
+ package: packageAddress,
690
+ module: 'trading',
691
+ function: 'validate_pre_order_entries',
692
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
693
+ });
694
+ }
695
+ /**
696
+ * Caps the **total** pre-orders reserved against a single main at the
697
+ * market-config `max_pre_orders`. Aborts with `ETooManyPreOrders`.
698
+ */
699
+ function assertPreOrderCount(options) {
700
+ const packageAddress = options.package ?? '@waterx/perp';
701
+ const argumentsTypes = [
702
+ 'u64',
703
+ 'u64'
704
+ ];
705
+ const parameterNames = ["newTotal", "maxPreOrders"];
706
+ return (tx) => tx.moveCall({
707
+ package: packageAddress,
708
+ module: 'trading',
709
+ function: 'assert_pre_order_count',
710
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
711
+ });
712
+ }
713
+ /**
714
+ * Creates a request to cancel an order. `order_type_tag = 255` scans all 4 books
715
+ * for the matching `order_id`. `trigger_price` is the scaled `Float` value; `0`
716
+ * scans all trigger price buckets in the selected book(s).
717
+ */
718
+ function cancelOrderRequest(options) {
719
+ const packageAddress = options.package ?? '@waterx/perp';
720
+ const argumentsTypes = [
721
+ null,
722
+ null,
723
+ null,
724
+ '0x1::string::String',
725
+ null,
726
+ '0x2::object::ID',
727
+ 'u64',
728
+ 'u128',
729
+ 'u8',
730
+ '0x2::clock::Clock'
731
+ ];
732
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "orderId", "triggerPrice", "orderTypeTag"];
733
+ return (tx) => tx.moveCall({
734
+ package: packageAddress,
735
+ module: 'trading',
736
+ function: 'cancel_order_request',
737
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
738
+ typeArguments: options.typeArguments
739
+ });
740
+ }
741
+ /**
742
+ * Creates a request to update a live order's size and trigger price. The order
743
+ * keeps its direction, reduce-only flag, linked position, collateral, and
744
+ * limit/stop book. `order_type_tag = 255` and `current_trigger_price = 0` scan for
745
+ * the current order location.
746
+ */
747
+ function updateOrderRequest(options) {
748
+ const packageAddress = options.package ?? '@waterx/perp';
749
+ const argumentsTypes = [
750
+ null,
751
+ null,
752
+ null,
753
+ '0x1::string::String',
754
+ null,
755
+ '0x2::object::ID',
756
+ 'u64',
757
+ 'u128',
758
+ 'u8',
759
+ 'u128',
760
+ 'u128',
761
+ '0x2::clock::Clock'
762
+ ];
763
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "orderId", "currentTriggerPrice", "orderTypeTag", "newSize", "newTriggerPrice"];
764
+ return (tx) => tx.moveCall({
765
+ package: packageAddress,
766
+ module: 'trading',
767
+ function: 'update_order_request',
768
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
769
+ typeArguments: options.typeArguments
770
+ });
771
+ }
772
+ /**
773
+ * Cancels a single TP / SL pre-order reserved against an unfilled main.
774
+ * `pre_order_id` is the pre-order's own `order_id`, returned in the `OrderCreated`
775
+ * event when it activates (also enumerable from `pending_pre_order_index` keyed by
776
+ * `main_order_id`). The pair must be consistent — i.e. `pre_order_id` must appear
777
+ * in the index entry for `main_order_id`, otherwise the call aborts with
778
+ * `EOrderNotFound`. Pre-orders never hold collateral, so this only adjusts
779
+ * bookkeeping; no payout. Emits `PreOrderCancelled` with `pre_order_count = 1`.
780
+ */
781
+ function cancelPreOrderRequest(options) {
782
+ const packageAddress = options.package ?? '@waterx/perp';
783
+ const argumentsTypes = [
784
+ null,
785
+ null,
786
+ null,
787
+ '0x1::string::String',
788
+ null,
789
+ '0x2::object::ID',
790
+ 'u64',
791
+ 'u64',
792
+ '0x2::clock::Clock'
793
+ ];
794
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "mainOrderId", "preOrderId"];
795
+ return (tx) => tx.moveCall({
796
+ package: packageAddress,
797
+ module: 'trading',
798
+ function: 'cancel_pre_order_request',
799
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
800
+ typeArguments: options.typeArguments
801
+ });
802
+ }
803
+ /**
804
+ * Adds one TP / SL pre-order to an unfilled main. The main must still be on the
805
+ * book, owned by `account_id`, of collateral type `C_TOKEN`, and a fresh opening
806
+ * order. The per-entry rules (`validate_pre_order_entries`) and the market-level
807
+ * total cap (`market.config.max_pre_orders()`) are enforced — existing reserved
808
+ *
809
+ * - 1 must stay within cap.
810
+ */
811
+ function addPreOrderRequest(options) {
812
+ const packageAddress = options.package ?? '@waterx/perp';
813
+ const argumentsTypes = [
814
+ null,
815
+ null,
816
+ null,
817
+ '0x1::string::String',
818
+ null,
819
+ '0x2::object::ID',
820
+ 'u64',
821
+ null,
822
+ '0x2::clock::Clock'
823
+ ];
824
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "mainOrderId", "preOrder"];
825
+ return (tx) => tx.moveCall({
826
+ package: packageAddress,
827
+ module: 'trading',
828
+ function: 'add_pre_order_request',
829
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
830
+ typeArguments: options.typeArguments
831
+ });
832
+ }
833
+ /** Creates a request to deposit collateral on a position. */
834
+ function depositCollateralRequest(options) {
835
+ const packageAddress = options.package ?? '@waterx/perp';
836
+ const argumentsTypes = [
837
+ null,
838
+ null,
839
+ null,
840
+ '0x1::string::String',
841
+ null,
842
+ '0x2::object::ID',
843
+ 'u64',
844
+ 'u64',
845
+ '0x2::clock::Clock'
846
+ ];
847
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "positionId", "collateralAmount"];
848
+ return (tx) => tx.moveCall({
849
+ package: packageAddress,
850
+ module: 'trading',
851
+ function: 'deposit_collateral_request',
852
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
853
+ typeArguments: options.typeArguments
854
+ });
855
+ }
856
+ /** Creates a request to withdraw collateral from a position. */
857
+ function withdrawCollateralRequest(options) {
858
+ const packageAddress = options.package ?? '@waterx/perp';
859
+ const argumentsTypes = [
860
+ null,
861
+ null,
862
+ null,
863
+ '0x1::string::String',
864
+ null,
865
+ '0x2::object::ID',
866
+ 'u64',
867
+ 'u64',
868
+ '0x2::clock::Clock'
869
+ ];
870
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "senderRequest", "accountId", "positionId", "amount"];
871
+ return (tx) => tx.moveCall({
872
+ package: packageAddress,
873
+ module: 'trading',
874
+ function: 'withdraw_collateral_request',
875
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
876
+ typeArguments: options.typeArguments
877
+ });
878
+ }
879
+ /**
880
+ * Creates a request to liquidate a position (keeper only). Reads
881
+ * account_object_address from the position directly. Keeper-only: liquidate an
882
+ * undercollateralized position. Single-call — no `TradingRequest` hot potato to
883
+ * manage. Returns a droppable receipt vector for PTB composition.
884
+ */
885
+ function liquidate(options) {
886
+ const packageAddress = options.package ?? '@waterx/perp';
887
+ const argumentsTypes = [
888
+ null,
889
+ null,
890
+ null,
891
+ '0x1::string::String',
892
+ null,
893
+ null,
894
+ 'u64',
895
+ null,
896
+ '0x2::clock::Clock'
897
+ ];
898
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "pool", "senderRequest", "positionId", "oracle"];
899
+ return (tx) => tx.moveCall({
900
+ package: packageAddress,
901
+ module: 'trading',
902
+ function: 'liquidate',
903
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
904
+ typeArguments: options.typeArguments
905
+ });
906
+ }
907
+ /**
908
+ * Keeper-only: scans a page of positions and liquidates every liquidatable one.
909
+ * Iterates positions by internal index `[page_index * page_size, ...)`. No-op if
910
+ * the page is out of range or no positions qualify. Returns droppable receipts for
911
+ * every liquidated position.
912
+ */
913
+ function batchLiquidate(options) {
914
+ const packageAddress = options.package ?? '@waterx/perp';
915
+ const argumentsTypes = [
916
+ null,
917
+ null,
918
+ null,
919
+ '0x1::string::String',
920
+ null,
921
+ null,
922
+ null,
923
+ 'u64',
924
+ 'u64',
925
+ '0x2::clock::Clock'
926
+ ];
927
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "pool", "senderRequest", "oracle", "pageSize", "pageIndex"];
928
+ return (tx) => tx.moveCall({
929
+ package: packageAddress,
930
+ module: 'trading',
931
+ function: 'batch_liquidate',
932
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
933
+ typeArguments: options.typeArguments
934
+ });
935
+ }
936
+ /**
937
+ * Executes a trading request. All `*_request` creators return raw
938
+ * `TradingRequest<C>`; pass it straight to `execute` after attaching any witness
939
+ * rules (e.g. `pyth_rule::feed(&mut req, ...)`). Used by both user happy paths and
940
+ * keeper paths.
941
+ */
942
+ function execute(options) {
943
+ const packageAddress = options.package ?? '@waterx/perp';
944
+ const argumentsTypes = [
945
+ null,
946
+ null,
947
+ null,
948
+ '0x1::string::String',
949
+ null,
950
+ null,
951
+ null,
952
+ '0x2::clock::Clock'
953
+ ];
954
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "pool", "req", "oracle"];
955
+ return (tx) => tx.moveCall({
956
+ package: packageAddress,
957
+ module: 'trading',
958
+ function: 'execute',
959
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
960
+ typeArguments: options.typeArguments
961
+ });
962
+ }
963
+ function executeOpenPosition(options) {
964
+ const packageAddress = options.package ?? '@waterx/perp';
965
+ const argumentsTypes = [
966
+ null,
967
+ null,
968
+ null,
969
+ null,
970
+ null,
971
+ '0x2::object::ID',
972
+ '0x2::object::ID',
973
+ 'u64',
974
+ 'address',
975
+ 'address',
976
+ null,
977
+ 'bool',
978
+ null,
979
+ 'u64',
980
+ '0x2::clock::Clock'
981
+ ];
982
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "pool", "oracle", "marketId", "accountId", "orderId", "accountObjectAddress", "sender", "collateral", "isLong", "size", "acceptablePrice"];
983
+ return (tx) => tx.moveCall({
984
+ package: packageAddress,
985
+ module: 'trading',
986
+ function: 'execute_open_position',
987
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
988
+ typeArguments: options.typeArguments
989
+ });
990
+ }
991
+ function executeIncreasePosition(options) {
992
+ const packageAddress = options.package ?? '@waterx/perp';
993
+ const argumentsTypes = [
994
+ null,
995
+ null,
996
+ null,
997
+ null,
998
+ '0x2::object::ID',
999
+ 'address',
1000
+ 'u64',
1001
+ 'u64',
1002
+ null,
1003
+ null,
1004
+ 'u64',
1005
+ '0x2::clock::Clock'
1006
+ ];
1007
+ const parameterNames = ["globalConfig", "market", "pool", "oracle", "marketId", "accountObjectAddress", "orderId", "positionId", "collateral", "size", "acceptablePrice"];
1008
+ return (tx) => tx.moveCall({
1009
+ package: packageAddress,
1010
+ module: 'trading',
1011
+ function: 'execute_increase_position',
1012
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1013
+ typeArguments: options.typeArguments
1014
+ });
1015
+ }
1016
+ function executeClosePosition(options) {
1017
+ const packageAddress = options.package ?? '@waterx/perp';
1018
+ const argumentsTypes = [
1019
+ null,
1020
+ null,
1021
+ null,
1022
+ null,
1023
+ null,
1024
+ '0x2::object::ID',
1025
+ '0x2::object::ID',
1026
+ 'address',
1027
+ 'u64',
1028
+ 'u64',
1029
+ 'u64',
1030
+ '0x2::clock::Clock'
1031
+ ];
1032
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "pool", "oracle", "marketId", "accountId", "accountObjId", "orderId", "positionId", "acceptablePrice"];
1033
+ return (tx) => tx.moveCall({
1034
+ package: packageAddress,
1035
+ module: 'trading',
1036
+ function: 'execute_close_position',
1037
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1038
+ typeArguments: options.typeArguments
1039
+ });
1040
+ }
1041
+ function executeDecreasePosition(options) {
1042
+ const packageAddress = options.package ?? '@waterx/perp';
1043
+ const argumentsTypes = [
1044
+ null,
1045
+ null,
1046
+ null,
1047
+ null,
1048
+ null,
1049
+ '0x2::object::ID',
1050
+ '0x2::object::ID',
1051
+ 'address',
1052
+ 'u64',
1053
+ 'u64',
1054
+ null,
1055
+ 'u64',
1056
+ '0x2::clock::Clock'
1057
+ ];
1058
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "pool", "oracle", "marketId", "accountId", "accountObjId", "orderId", "positionId", "requestedSize", "acceptablePrice"];
1059
+ return (tx) => tx.moveCall({
1060
+ package: packageAddress,
1061
+ module: 'trading',
1062
+ function: 'execute_decrease_position',
1063
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1064
+ typeArguments: options.typeArguments
1065
+ });
1066
+ }
1067
+ function executePlaceOrder(options) {
1068
+ const packageAddress = options.package ?? '@waterx/perp';
1069
+ const argumentsTypes = [
1070
+ null,
1071
+ null,
1072
+ null,
1073
+ null,
1074
+ null,
1075
+ '0x2::object::ID',
1076
+ '0x2::object::ID',
1077
+ 'address',
1078
+ null,
1079
+ 'bool',
1080
+ 'bool',
1081
+ 'bool',
1082
+ null,
1083
+ null,
1084
+ 'u64',
1085
+ '0x1::option::Option<u64>',
1086
+ 'vector<null>',
1087
+ '0x2::clock::Clock'
1088
+ ];
1089
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "pool", "oracle", "marketId", "accountId", "accountObjectAddress", "collateral", "isLong", "isStopOrder", "reduceOnly", "size", "triggerPrice", "acceptablePrice", "linkedPositionId", "preOrders"];
1090
+ return (tx) => tx.moveCall({
1091
+ package: packageAddress,
1092
+ module: 'trading',
1093
+ function: 'execute_place_order',
1094
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1095
+ typeArguments: options.typeArguments
1096
+ });
1097
+ }
1098
+ function executeCancelOrder(options) {
1099
+ const packageAddress = options.package ?? '@waterx/perp';
1100
+ const argumentsTypes = [
1101
+ null,
1102
+ null,
1103
+ null,
1104
+ '0x2::object::ID',
1105
+ '0x2::object::ID',
1106
+ 'address',
1107
+ 'u64',
1108
+ 'u128',
1109
+ 'u8'
1110
+ ];
1111
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "marketId", "accountId", "accountObjId", "orderId", "triggerPriceKey", "orderTypeTag"];
1112
+ return (tx) => tx.moveCall({
1113
+ package: packageAddress,
1114
+ module: 'trading',
1115
+ function: 'execute_cancel_order',
1116
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1117
+ typeArguments: options.typeArguments
1118
+ });
1119
+ }
1120
+ function executeUpdateOrder(options) {
1121
+ const packageAddress = options.package ?? '@waterx/perp';
1122
+ const argumentsTypes = [
1123
+ null,
1124
+ null,
1125
+ null,
1126
+ null,
1127
+ '0x2::object::ID',
1128
+ 'address',
1129
+ 'u64',
1130
+ 'u128',
1131
+ 'u8',
1132
+ null,
1133
+ null,
1134
+ '0x2::clock::Clock'
1135
+ ];
1136
+ const parameterNames = ["globalConfig", "market", "pool", "oracle", "marketId", "accountObjectAddress", "orderId", "triggerPriceKey", "orderTypeTag", "newSize", "newTriggerPrice"];
1137
+ return (tx) => tx.moveCall({
1138
+ package: packageAddress,
1139
+ module: 'trading',
1140
+ function: 'execute_update_order',
1141
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1142
+ typeArguments: options.typeArguments
1143
+ });
1144
+ }
1145
+ /**
1146
+ * Cancels a single pre-order by id. Validates ownership / collateral type on the
1147
+ * reserved `Order`, then verifies `pre_order_id` actually belongs to
1148
+ * `main_order_id` via the index. Destroys the `Order` through
1149
+ * `position::remove_order<C_TOKEN>` and emits
1150
+ * `PreOrderCancelled { main_order_id, pre_order_count: 1 }`.
1151
+ */
1152
+ function executeCancelPreOrder(options) {
1153
+ const packageAddress = options.package ?? '@waterx/perp';
1154
+ const argumentsTypes = [
1155
+ null,
1156
+ null,
1157
+ '0x2::object::ID',
1158
+ 'address',
1159
+ 'u64',
1160
+ 'u64'
1161
+ ];
1162
+ const parameterNames = ["globalConfig", "market", "marketId", "accountObjectAddress", "mainOrderId", "preOrderId"];
1163
+ return (tx) => tx.moveCall({
1164
+ package: packageAddress,
1165
+ module: 'trading',
1166
+ function: 'execute_cancel_pre_order',
1167
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1168
+ typeArguments: options.typeArguments
1169
+ });
1170
+ }
1171
+ /**
1172
+ * Appends a single pre-order to an existing or empty reservation for
1173
+ * `main_order_id`. Locates the main on a book, verifies eligibility, then
1174
+ * `assert_pre_order_count(existing + 1, cap)` and per-entry validation before
1175
+ * delegating to `reserve_pre_orders`.
1176
+ */
1177
+ function executeAddPreOrder(options) {
1178
+ const packageAddress = options.package ?? '@waterx/perp';
1179
+ const argumentsTypes = [
1180
+ null,
1181
+ null,
1182
+ '0x2::object::ID',
1183
+ 'address',
1184
+ 'u64',
1185
+ 'vector<null>',
1186
+ '0x2::clock::Clock'
1187
+ ];
1188
+ const parameterNames = ["globalConfig", "market", "marketId", "accountObjectAddress", "mainOrderId", "newPreOrder"];
1189
+ return (tx) => tx.moveCall({
1190
+ package: packageAddress,
1191
+ module: 'trading',
1192
+ function: 'execute_add_pre_order',
1193
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1194
+ typeArguments: options.typeArguments
1195
+ });
1196
+ }
1197
+ function executeDepositCollateral(options) {
1198
+ const packageAddress = options.package ?? '@waterx/perp';
1199
+ const argumentsTypes = [
1200
+ null,
1201
+ null,
1202
+ null,
1203
+ null,
1204
+ '0x2::object::ID',
1205
+ 'address',
1206
+ 'u64',
1207
+ null,
1208
+ '0x2::clock::Clock'
1209
+ ];
1210
+ const parameterNames = ["globalConfig", "market", "pool", "oracle", "marketId", "accountObjectAddress", "positionId", "collateral"];
1211
+ return (tx) => tx.moveCall({
1212
+ package: packageAddress,
1213
+ module: 'trading',
1214
+ function: 'execute_deposit_collateral',
1215
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1216
+ typeArguments: options.typeArguments
1217
+ });
1218
+ }
1219
+ /**
1220
+ * Returns `(returned_collateral_amount, position_collateral_amount)`: the first is
1221
+ * the amount actually credited back to the wxa account (read off the `Balance`
1222
+ * rather than echoing the requested `amount`, so the response field can't drift if
1223
+ * `pos.withdraw_collateral` ever gains clamping semantics); the second is the
1224
+ * post-action position collateral.
1225
+ */
1226
+ function executeWithdrawCollateral(options) {
1227
+ const packageAddress = options.package ?? '@waterx/perp';
1228
+ const argumentsTypes = [
1229
+ null,
1230
+ null,
1231
+ null,
1232
+ null,
1233
+ null,
1234
+ '0x2::object::ID',
1235
+ 'address',
1236
+ 'u64',
1237
+ 'u64',
1238
+ '0x2::clock::Clock'
1239
+ ];
1240
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "pool", "oracle", "marketId", "accountObjId", "positionId", "amount"];
1241
+ return (tx) => tx.moveCall({
1242
+ package: packageAddress,
1243
+ module: 'trading',
1244
+ function: 'execute_withdraw_collateral',
1245
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1246
+ typeArguments: options.typeArguments
1247
+ });
1248
+ }
1249
+ function executeLiquidate(options) {
1250
+ const packageAddress = options.package ?? '@waterx/perp';
1251
+ const argumentsTypes = [
1252
+ null,
1253
+ null,
1254
+ null,
1255
+ null,
1256
+ null,
1257
+ '0x2::object::ID',
1258
+ '0x2::object::ID',
1259
+ 'address',
1260
+ 'address',
1261
+ 'u64',
1262
+ '0x2::clock::Clock'
1263
+ ];
1264
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "pool", "oracle", "marketId", "accountId", "accountObjectAddress", "sender", "positionId"];
1265
+ return (tx) => tx.moveCall({
1266
+ package: packageAddress,
1267
+ module: 'trading',
1268
+ function: 'execute_liquidate',
1269
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1270
+ typeArguments: options.typeArguments
1271
+ });
1272
+ }
1273
+ function matchOrders(options) {
1274
+ const packageAddress = options.package ?? '@waterx/perp';
1275
+ const argumentsTypes = [
1276
+ null,
1277
+ null,
1278
+ null,
1279
+ '0x1::string::String',
1280
+ null,
1281
+ null,
1282
+ null,
1283
+ 'u8',
1284
+ 'u128',
1285
+ 'u64',
1286
+ '0x2::clock::Clock'
1287
+ ];
1288
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "pool", "senderRequest", "oracle", "orderTypeTag", "triggerPrice", "maxFills"];
1289
+ return (tx) => tx.moveCall({
1290
+ package: packageAddress,
1291
+ module: 'trading',
1292
+ function: 'match_orders',
1293
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1294
+ typeArguments: options.typeArguments
1295
+ });
1296
+ }
1297
+ /** Keeper: updates funding rate for a market. */
1298
+ function updateFundingRate(options) {
1299
+ const packageAddress = options.package ?? '@waterx/perp';
1300
+ const argumentsTypes = [
1301
+ null,
1302
+ null,
1303
+ '0x1::string::String',
1304
+ null,
1305
+ null,
1306
+ null,
1307
+ '0x2::clock::Clock'
1308
+ ];
1309
+ const parameterNames = ["globalConfig", "marketRegistry", "ticker", "pool", "oracle", "senderRequest"];
1310
+ return (tx) => tx.moveCall({
1311
+ package: packageAddress,
1312
+ module: 'trading',
1313
+ function: 'update_funding_rate',
1314
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1315
+ typeArguments: options.typeArguments
1316
+ });
1317
+ }
1318
+ function settleFundingRate(options) {
1319
+ const packageAddress = options.package ?? '@waterx/perp';
1320
+ const argumentsTypes = [
1321
+ null,
1322
+ null,
1323
+ null,
1324
+ null,
1325
+ '0x2::clock::Clock'
1326
+ ];
1327
+ const parameterNames = ["globalConfig", "market", "pool", "oracle"];
1328
+ return (tx) => tx.moveCall({
1329
+ package: packageAddress,
1330
+ module: 'trading',
1331
+ function: 'settle_funding_rate',
1332
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1333
+ typeArguments: options.typeArguments
1334
+ });
1335
+ }
1336
+ /**
1337
+ * Keeper-only: open a new position for an account, funded by the keeper's own
1338
+ * `Coin<C_TOKEN>` (campaign / airdrop use case). The keeper bypasses
1339
+ * `min_coll_value` on this path — `increase_position` and `place_order` still
1340
+ * enforce it for all callers including keepers. Returns a droppable receipt vector
1341
+ * so the keeper or a composing protocol can reference the position in the same
1342
+ * PTB.
1343
+ */
1344
+ function openPositionByKeeper(options) {
1345
+ const packageAddress = options.package ?? '@waterx/perp';
1346
+ const argumentsTypes = [
1347
+ null,
1348
+ null,
1349
+ null,
1350
+ '0x1::string::String',
1351
+ null,
1352
+ null,
1353
+ 'address',
1354
+ null,
1355
+ 'bool',
1356
+ 'u128',
1357
+ 'u64',
1358
+ null,
1359
+ '0x2::clock::Clock'
1360
+ ];
1361
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "pool", "keeperRequest", "accountObjectAddress", "collateralCoin", "isLong", "size", "acceptablePrice", "oracle"];
1362
+ return (tx) => tx.moveCall({
1363
+ package: packageAddress,
1364
+ module: 'trading',
1365
+ function: 'open_position_by_keeper',
1366
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1367
+ typeArguments: options.typeArguments
1368
+ });
1369
+ }
1370
+ /**
1371
+ * Risk-manager-only: force-close a position (emergency use). Reads
1372
+ * `account_object_address` from the position directly, like `liquidate`. Returns a
1373
+ * droppable receipt vector for PTB composition.
1374
+ */
1375
+ function closePositionByKeeper(options) {
1376
+ const packageAddress = options.package ?? '@waterx/perp';
1377
+ const argumentsTypes = [
1378
+ null,
1379
+ null,
1380
+ null,
1381
+ '0x1::string::String',
1382
+ null,
1383
+ null,
1384
+ 'u64',
1385
+ 'u64',
1386
+ null,
1387
+ '0x2::clock::Clock'
1388
+ ];
1389
+ const parameterNames = ["globalConfig", "wxaRegistry", "marketRegistry", "ticker", "pool", "keeperRequest", "positionId", "acceptablePrice", "oracle"];
1390
+ return (tx) => tx.moveCall({
1391
+ package: packageAddress,
1392
+ module: 'trading',
1393
+ function: 'close_position_by_keeper',
1394
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1395
+ typeArguments: options.typeArguments
1396
+ });
1397
+ }
1398
+ /**
1399
+ * Computes the scaled size (u128, 9 decimals) for a given collateral amount,
1400
+ * leverage, and actual collateral price. Compatible with non-dollar-pegged
1401
+ * collateral. Base ticker comes from `market.symbol()`, collateral ticker from
1402
+ * `pool.token_ticker<LP, C>()` — callers cannot mis-price by lying about either.
1403
+ */
1404
+ function resolveSize(options) {
1405
+ const packageAddress = options.package ?? '@waterx/perp';
1406
+ const argumentsTypes = [
1407
+ null,
1408
+ null,
1409
+ null,
1410
+ 'u64',
1411
+ 'u64',
1412
+ '0x2::clock::Clock'
1413
+ ];
1414
+ const parameterNames = ["market", "pool", "oracle", "collateralAmount", "leverageBps"];
1415
+ return (tx) => tx.moveCall({
1416
+ package: packageAddress,
1417
+ module: 'trading',
1418
+ function: 'resolve_size',
1419
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1420
+ typeArguments: options.typeArguments
1421
+ });
1422
+ }
1423
+ /**
1424
+ * Like `resolve_size` but uses a trigger price instead of the base oracle price.
1425
+ * Use this to compute the `size` parameter for `place_order_request`.
1426
+ * `trigger_price` is a scaled Float value (the same u128 you pass to
1427
+ * `place_order_request`).
1428
+ */
1429
+ function resolveOrderSize(options) {
1430
+ const packageAddress = options.package ?? '@waterx/perp';
1431
+ const argumentsTypes = [
1432
+ null,
1433
+ null,
1434
+ 'u128',
1435
+ 'u64',
1436
+ 'u64',
1437
+ '0x2::clock::Clock'
1438
+ ];
1439
+ const parameterNames = ["pool", "oracle", "triggerPrice", "collateralAmount", "leverageBps"];
1440
+ return (tx) => tx.moveCall({
1441
+ package: packageAddress,
1442
+ module: 'trading',
1443
+ function: 'resolve_order_size',
1444
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1445
+ typeArguments: options.typeArguments
1446
+ });
1447
+ }
1448
+ function checkOpenSlippage(options) {
1449
+ const packageAddress = options.package ?? '@waterx/perp';
1450
+ const argumentsTypes = [
1451
+ 'bool',
1452
+ null,
1453
+ 'u64'
1454
+ ];
1455
+ const parameterNames = ["isLong", "price", "acceptablePrice"];
1456
+ return (tx) => tx.moveCall({
1457
+ package: packageAddress,
1458
+ module: 'trading',
1459
+ function: 'check_open_slippage',
1460
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1461
+ });
1462
+ }
1463
+ function assertOpenSlippage(options) {
1464
+ const packageAddress = options.package ?? '@waterx/perp';
1465
+ const argumentsTypes = [
1466
+ 'bool',
1467
+ null,
1468
+ 'u64'
1469
+ ];
1470
+ const parameterNames = ["isLong", "price", "acceptablePrice"];
1471
+ return (tx) => tx.moveCall({
1472
+ package: packageAddress,
1473
+ module: 'trading',
1474
+ function: 'assert_open_slippage',
1475
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1476
+ });
1477
+ }
1478
+ function assertCloseSlippage(options) {
1479
+ const packageAddress = options.package ?? '@waterx/perp';
1480
+ const argumentsTypes = [
1481
+ 'bool',
1482
+ null,
1483
+ 'u64'
1484
+ ];
1485
+ const parameterNames = ["isLong", "price", "acceptablePrice"];
1486
+ return (tx) => tx.moveCall({
1487
+ package: packageAddress,
1488
+ module: 'trading',
1489
+ function: 'assert_close_slippage',
1490
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1491
+ });
1492
+ }
1493
+ function calculateTotalTradingFee(options) {
1494
+ const packageAddress = options.package ?? '@waterx/perp';
1495
+ const argumentsTypes = [
1496
+ null,
1497
+ null,
1498
+ null,
1499
+ 'bool',
1500
+ null
1501
+ ];
1502
+ const parameterNames = ["marketConfig", "pool", "executionPrice", "orderIsLong", "orderSize"];
1503
+ return (tx) => tx.moveCall({
1504
+ package: packageAddress,
1505
+ module: 'trading',
1506
+ function: 'calculate_total_trading_fee',
1507
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1508
+ typeArguments: options.typeArguments
1509
+ });
1510
+ }
1511
+ /**
1512
+ * Emits a `WlpEquityChanged` event for a settlement that moves `amount` of
1513
+ * `collateral_token` to/from the LP pool. No-op when `amount == 0`. Centralizes
1514
+ * the `market.symbol()` / `with_defining_ids<LP_TOKEN>()` lookups so call sites
1515
+ * stay short.
1516
+ */
1517
+ function emitLpEquity(options) {
1518
+ const packageAddress = options.package ?? '@waterx/perp';
1519
+ const argumentsTypes = [
1520
+ null,
1521
+ null,
1522
+ 'u64',
1523
+ 'bool',
1524
+ '0x1::string::String'
1525
+ ];
1526
+ const parameterNames = ["market", "collateralToken", "amount", "isProfit", "memo"];
1527
+ return (tx) => tx.moveCall({
1528
+ package: packageAddress,
1529
+ module: 'trading',
1530
+ function: 'emit_lp_equity',
1531
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1532
+ typeArguments: options.typeArguments
1533
+ });
1534
+ }
1535
+ /**
1536
+ * Splits an already-collected trading-fee balance into the protocol's cut (sent to
1537
+ * `GlobalVault.protocol_fee_balance`) and the LP pool's cut (joined into the pool,
1538
+ * emitted as a `WlpEquityChanged` "fee" event). Used by every closing/liquidation
1539
+ * path that realizes a fee.
1540
+ */
1541
+ function distributeTradingFee(options) {
1542
+ const packageAddress = options.package ?? '@waterx/perp';
1543
+ const argumentsTypes = [
1544
+ null,
1545
+ null,
1546
+ null,
1547
+ null,
1548
+ 'u64',
1549
+ '0x2::object::ID',
1550
+ null,
1551
+ null
1552
+ ];
1553
+ const parameterNames = ["globalConfig", "pool", "market", "feeBalance", "protocolShareBps", "marketId", "collateralToken", "collateralPrice"];
1554
+ return (tx) => tx.moveCall({
1555
+ package: packageAddress,
1556
+ module: 'trading',
1557
+ function: 'distribute_trading_fee',
1558
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1559
+ typeArguments: options.typeArguments
1560
+ });
1561
+ }
1562
+ function calculateEffectiveCollateralAmount(options) {
1563
+ const packageAddress = options.package ?? '@waterx/perp';
1564
+ const argumentsTypes = [
1565
+ 'u64',
1566
+ 'u64',
1567
+ 'bool',
1568
+ 'u64',
1569
+ 'u64',
1570
+ 'u64'
1571
+ ];
1572
+ const parameterNames = ["grossCollateralAmount", "borrowFee", "fundingSign", "fundingFee", "tradingFee", "projectedTradingFee"];
1573
+ return (tx) => tx.moveCall({
1574
+ package: packageAddress,
1575
+ module: 'trading',
1576
+ function: 'calculate_effective_collateral_amount',
1577
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1578
+ });
1579
+ }
1580
+ function calculateLossAdjustedEffectiveCollateralAmount(options) {
1581
+ const packageAddress = options.package ?? '@waterx/perp';
1582
+ const argumentsTypes = [
1583
+ null,
1584
+ null,
1585
+ null,
1586
+ 'u64',
1587
+ 'u64',
1588
+ 'bool',
1589
+ 'u64',
1590
+ 'u64',
1591
+ 'u64'
1592
+ ];
1593
+ const parameterNames = ["position", "currentPrice", "collateralPrice", "grossCollateralAmount", "borrowFee", "fundingSign", "fundingFee", "tradingFee", "projectedTradingFee"];
1594
+ return (tx) => tx.moveCall({
1595
+ package: packageAddress,
1596
+ module: 'trading',
1597
+ function: 'calculate_loss_adjusted_effective_collateral_amount',
1598
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1599
+ });
1600
+ }
1601
+ function settleLossToBalance(options) {
1602
+ const packageAddress = options.package ?? '@waterx/perp';
1603
+ const argumentsTypes = [
1604
+ null,
1605
+ null,
1606
+ null,
1607
+ null,
1608
+ null,
1609
+ 'u64',
1610
+ null,
1611
+ 'u128'
1612
+ ];
1613
+ const parameterNames = ["globalConfig", "pool", "market", "collateral", "collateralToken", "lossAmount", "collateralPrice", "deficit"];
1614
+ return (tx) => tx.moveCall({
1615
+ package: packageAddress,
1616
+ module: 'trading',
1617
+ function: 'settle_loss_to_balance',
1618
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1619
+ typeArguments: options.typeArguments
1620
+ });
1621
+ }
1622
+ function settleLossToPosition(options) {
1623
+ const packageAddress = options.package ?? '@waterx/perp';
1624
+ const argumentsTypes = [
1625
+ null,
1626
+ null,
1627
+ null,
1628
+ null,
1629
+ null,
1630
+ 'u64',
1631
+ null,
1632
+ 'u128'
1633
+ ];
1634
+ const parameterNames = ["globalConfig", "pool", "market", "position", "collateralToken", "lossAmount", "collateralPrice", "deficit"];
1635
+ return (tx) => tx.moveCall({
1636
+ package: packageAddress,
1637
+ module: 'trading',
1638
+ function: 'settle_loss_to_position',
1639
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1640
+ typeArguments: options.typeArguments
1641
+ });
1642
+ }
1643
+ function settleFeesToBalance(options) {
1644
+ const packageAddress = options.package ?? '@waterx/perp';
1645
+ const argumentsTypes = [
1646
+ null,
1647
+ null,
1648
+ null,
1649
+ null,
1650
+ 'u64',
1651
+ '0x2::object::ID',
1652
+ null,
1653
+ null,
1654
+ 'u64',
1655
+ 'u128'
1656
+ ];
1657
+ const parameterNames = ["globalConfig", "pool", "market", "collateral", "protocolShareBps", "marketId", "collateralToken", "collateralPrice", "feeAmount", "deficit"];
1658
+ return (tx) => tx.moveCall({
1659
+ package: packageAddress,
1660
+ module: 'trading',
1661
+ function: 'settle_fees_to_balance',
1662
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1663
+ typeArguments: options.typeArguments
1664
+ });
1665
+ }
1666
+ function settleFeesToPosition(options) {
1667
+ const packageAddress = options.package ?? '@waterx/perp';
1668
+ const argumentsTypes = [
1669
+ null,
1670
+ null,
1671
+ null,
1672
+ null,
1673
+ 'u64',
1674
+ '0x2::object::ID',
1675
+ null,
1676
+ null,
1677
+ 'u64',
1678
+ 'u128'
1679
+ ];
1680
+ const parameterNames = ["globalConfig", "pool", "market", "position", "protocolShareBps", "marketId", "collateralToken", "collateralPrice", "feeAmount", "deficit"];
1681
+ return (tx) => tx.moveCall({
1682
+ package: packageAddress,
1683
+ module: 'trading',
1684
+ function: 'settle_fees_to_position',
1685
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1686
+ typeArguments: options.typeArguments
1687
+ });
1688
+ }
1689
+ function settleFundingToBalance(options) {
1690
+ const packageAddress = options.package ?? '@waterx/perp';
1691
+ const argumentsTypes = [
1692
+ null,
1693
+ null,
1694
+ null,
1695
+ 'bool',
1696
+ 'u64',
1697
+ null,
1698
+ '0x1::string::String',
1699
+ 'u128'
1700
+ ];
1701
+ const parameterNames = ["globalConfig", "pool", "collateral", "fundingSign", "fundingFee", "collateralPrice", "marketTicker", "deficit"];
1702
+ return (tx) => tx.moveCall({
1703
+ package: packageAddress,
1704
+ module: 'trading',
1705
+ function: 'settle_funding_to_balance',
1706
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1707
+ typeArguments: options.typeArguments
1708
+ });
1709
+ }
1710
+ function settleFundingToPosition(options) {
1711
+ const packageAddress = options.package ?? '@waterx/perp';
1712
+ const argumentsTypes = [
1713
+ null,
1714
+ null,
1715
+ null,
1716
+ 'bool',
1717
+ 'u64',
1718
+ null,
1719
+ '0x1::string::String',
1720
+ 'u128'
1721
+ ];
1722
+ const parameterNames = ["globalConfig", "pool", "position", "fundingSign", "fundingFee", "collateralPrice", "marketTicker", "deficit"];
1723
+ return (tx) => tx.moveCall({
1724
+ package: packageAddress,
1725
+ module: 'trading',
1726
+ function: 'settle_funding_to_position',
1727
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1728
+ typeArguments: options.typeArguments
1729
+ });
1730
+ }
1731
+ function calculateImpactFee(options) {
1732
+ const packageAddress = options.package ?? '@waterx/perp';
1733
+ const argumentsTypes = [
1734
+ null,
1735
+ null,
1736
+ null,
1737
+ 'bool',
1738
+ null
1739
+ ];
1740
+ const parameterNames = ["marketConfig", "pool", "executionPrice", "orderIsLong", "orderSize"];
1741
+ return (tx) => tx.moveCall({
1742
+ package: packageAddress,
1743
+ module: 'trading',
1744
+ function: 'calculate_impact_fee',
1745
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1746
+ typeArguments: options.typeArguments
1747
+ });
1748
+ }
1749
+ function impactFeeCostUsd(options) {
1750
+ const packageAddress = options.package ?? '@waterx/perp';
1751
+ const argumentsTypes = [
1752
+ null,
1753
+ null,
1754
+ null,
1755
+ 'u64',
1756
+ 'u64'
1757
+ ];
1758
+ const parameterNames = ["maxImpactFee", "allocatedExposureUsd", "exposureUsd", "impactFeeCurvature", "impactFeeScale"];
1759
+ return (tx) => tx.moveCall({
1760
+ package: packageAddress,
1761
+ module: 'trading',
1762
+ function: 'impact_fee_cost_usd',
1763
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1764
+ });
1765
+ }
1766
+ function calculatePositionLeverageBps(options) {
1767
+ const packageAddress = options.package ?? '@waterx/perp';
1768
+ const argumentsTypes = [
1769
+ null,
1770
+ 'u64',
1771
+ 'u8',
1772
+ null,
1773
+ null
1774
+ ];
1775
+ const parameterNames = ["totalSize", "totalCollateralAmount", "collateralDecimal", "executionPrice", "collateralPrice"];
1776
+ return (tx) => tx.moveCall({
1777
+ package: packageAddress,
1778
+ module: 'trading',
1779
+ function: 'calculate_position_leverage_bps',
1780
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1781
+ });
1782
+ }
1783
+ function hasMinPositionCollateralValue(options) {
1784
+ const packageAddress = options.package ?? '@waterx/perp';
1785
+ const argumentsTypes = [
1786
+ 'u64',
1787
+ 'u64',
1788
+ 'u8',
1789
+ null
1790
+ ];
1791
+ const parameterNames = ["minCollateralValue", "collateralAmount", "collateralDecimal", "collateralPrice"];
1792
+ return (tx) => tx.moveCall({
1793
+ package: packageAddress,
1794
+ module: 'trading',
1795
+ function: 'has_min_position_collateral_value',
1796
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1797
+ });
1798
+ }
1799
+ function assertMinPositionCollateralValue(options) {
1800
+ const packageAddress = options.package ?? '@waterx/perp';
1801
+ const argumentsTypes = [
1802
+ 'u64',
1803
+ 'u64',
1804
+ 'u8',
1805
+ null
1806
+ ];
1807
+ const parameterNames = ["minCollateralValue", "collateralAmount", "collateralDecimal", "collateralPrice"];
1808
+ return (tx) => tx.moveCall({
1809
+ package: packageAddress,
1810
+ module: 'trading',
1811
+ function: 'assert_min_position_collateral_value',
1812
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1813
+ });
1814
+ }
1815
+ function proportionalAmount(options) {
1816
+ const packageAddress = options.package ?? '@waterx/perp';
1817
+ const argumentsTypes = [
1818
+ 'u64',
1819
+ null,
1820
+ null
1821
+ ];
1822
+ const parameterNames = ["total", "partial", "base"];
1823
+ return (tx) => tx.moveCall({
1824
+ package: packageAddress,
1825
+ module: 'trading',
1826
+ function: 'proportional_amount',
1827
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1828
+ });
1829
+ }
1830
+ function debitCollateralAmount(options) {
1831
+ const packageAddress = options.package ?? '@waterx/perp';
1832
+ const argumentsTypes = [
1833
+ 'u64',
1834
+ 'u128',
1835
+ 'u64'
1836
+ ];
1837
+ const parameterNames = ["remaining", "deficit", "amount"];
1838
+ return (tx) => tx.moveCall({
1839
+ package: packageAddress,
1840
+ module: 'trading',
1841
+ function: 'debit_collateral_amount',
1842
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1843
+ });
1844
+ }
1845
+ function creditCollateralAmount(options) {
1846
+ const packageAddress = options.package ?? '@waterx/perp';
1847
+ const argumentsTypes = [
1848
+ 'u64',
1849
+ 'u128',
1850
+ 'u64'
1851
+ ];
1852
+ const parameterNames = ["remaining", "deficit", "amount"];
1853
+ return (tx) => tx.moveCall({
1854
+ package: packageAddress,
1855
+ module: 'trading',
1856
+ function: 'credit_collateral_amount',
1857
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1858
+ });
1859
+ }
1860
+ function calculateRemainingCollateralAfterPartialReduce(options) {
1861
+ const packageAddress = options.package ?? '@waterx/perp';
1862
+ const argumentsTypes = [
1863
+ null,
1864
+ null,
1865
+ 'u64',
1866
+ null,
1867
+ null,
1868
+ 'u64'
1869
+ ];
1870
+ const parameterNames = ["position", "reduceSize", "closeFee", "currentPrice", "collateralPrice", "addedCollateralAmount"];
1871
+ return (tx) => tx.moveCall({
1872
+ package: packageAddress,
1873
+ module: 'trading',
1874
+ function: 'calculate_remaining_collateral_after_partial_reduce',
1875
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1876
+ });
1877
+ }
1878
+ /**
1879
+ * Non-aborting growth check used by keeper order matching. Invalid standalone
1880
+ * orders are rotated behind valid orders at the same trigger price.
1881
+ */
1882
+ function canPositionGrow(options) {
1883
+ const packageAddress = options.package ?? '@waterx/perp';
1884
+ const argumentsTypes = [
1885
+ null,
1886
+ null,
1887
+ null,
1888
+ 'bool',
1889
+ null,
1890
+ null,
1891
+ 'u64',
1892
+ 'u8',
1893
+ null,
1894
+ null,
1895
+ null
1896
+ ];
1897
+ const parameterNames = ["globalConfig", "marketConfig", "pool", "isLong", "currentSize", "addedSize", "effectiveCollateralAmount", "collateralDecimal", "collateralToken", "executionPrice", "collateralPrice"];
1898
+ return (tx) => tx.moveCall({
1899
+ package: packageAddress,
1900
+ module: 'trading',
1901
+ function: 'can_position_grow',
1902
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1903
+ typeArguments: options.typeArguments
1904
+ });
1905
+ }
1906
+ function validatePositionGrowth(options) {
1907
+ const packageAddress = options.package ?? '@waterx/perp';
1908
+ const argumentsTypes = [
1909
+ null,
1910
+ null,
1911
+ null,
1912
+ 'bool',
1913
+ null,
1914
+ null,
1915
+ 'u64',
1916
+ 'u8',
1917
+ null,
1918
+ null,
1919
+ null
1920
+ ];
1921
+ const parameterNames = ["globalConfig", "marketConfig", "pool", "isLong", "currentSize", "addedSize", "effectiveCollateralAmount", "collateralDecimal", "collateralToken", "executionPrice", "collateralPrice"];
1922
+ return (tx) => tx.moveCall({
1923
+ package: packageAddress,
1924
+ module: 'trading',
1925
+ function: 'validate_position_growth',
1926
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1927
+ typeArguments: options.typeArguments
1928
+ });
1929
+ }
1930
+ function weightedAveragePrice(options) {
1931
+ const packageAddress = options.package ?? '@waterx/perp';
1932
+ const argumentsTypes = [
1933
+ null,
1934
+ null,
1935
+ null,
1936
+ null
1937
+ ];
1938
+ const parameterNames = ["currentSize", "currentAveragePrice", "addSize", "fillPrice"];
1939
+ return (tx) => tx.moveCall({
1940
+ package: packageAddress,
1941
+ module: 'trading',
1942
+ function: 'weighted_average_price',
1943
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1944
+ });
1945
+ }
1946
+ function normalizeTriggerPrice(options) {
1947
+ const packageAddress = options.package ?? '@waterx/perp';
1948
+ const argumentsTypes = [
1949
+ null,
1950
+ null
1951
+ ];
1952
+ const parameterNames = ["triggerPrice", "orderPriceTick"];
1953
+ return (tx) => tx.moveCall({
1954
+ package: packageAddress,
1955
+ module: 'trading',
1956
+ function: 'normalize_trigger_price',
1957
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1958
+ });
1959
+ }
1960
+ /** View: whether `main_order_id` has reserved pre-orders pending in `market`. */
1961
+ function hasPendingPreOrders(options) {
1962
+ const packageAddress = options.package ?? '@waterx/perp';
1963
+ const argumentsTypes = [
1964
+ null,
1965
+ 'u64'
1966
+ ];
1967
+ const parameterNames = ["market", "mainOrderId"];
1968
+ return (tx) => tx.moveCall({
1969
+ package: packageAddress,
1970
+ module: 'trading',
1971
+ function: 'has_pending_pre_orders',
1972
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1973
+ typeArguments: options.typeArguments
1974
+ });
1975
+ }
1976
+ /**
1977
+ * View: how many pre-orders are reserved against `main_order_id`. `0` if no entry
1978
+ * exists.
1979
+ */
1980
+ function pendingPreOrdersCount(options) {
1981
+ const packageAddress = options.package ?? '@waterx/perp';
1982
+ const argumentsTypes = [
1983
+ null,
1984
+ 'u64'
1985
+ ];
1986
+ const parameterNames = ["market", "mainOrderId"];
1987
+ return (tx) => tx.moveCall({
1988
+ package: packageAddress,
1989
+ module: 'trading',
1990
+ function: 'pending_pre_orders_count',
1991
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1992
+ typeArguments: options.typeArguments
1993
+ });
1994
+ }
1995
+ /**
1996
+ * Mints fresh order ids for every `PlaceOrderArgument` in `pre_orders`, builds a
1997
+ * real `Order` per entry (reduce-only, zero-collateral,
1998
+ * `linked_position_id = None`), stashes each one in `pending_pre_orders` under its
1999
+ * own id, and records the id list in `pending_pre_order_index` under
2000
+ * `main_order_id` — appending to any existing entry so this helper also works for
2001
+ * the per-leg `add_pre_order` path. Emits one `PreOrderCreated` per reserved
2002
+ * pre-order. No-op when `pre_orders` is empty.
2003
+ */
2004
+ function reservePreOrders(options) {
2005
+ const packageAddress = options.package ?? '@waterx/perp';
2006
+ const argumentsTypes = [
2007
+ null,
2008
+ null,
2009
+ 'u64',
2010
+ 'address',
2011
+ '0x2::object::ID',
2012
+ 'u8',
2013
+ 'vector<null>',
2014
+ '0x2::clock::Clock'
2015
+ ];
2016
+ const parameterNames = ["globalConfig", "market", "mainOrderId", "accountObjectAddress", "marketId", "collateralDecimal", "preOrders"];
2017
+ return (tx) => tx.moveCall({
2018
+ package: packageAddress,
2019
+ module: 'trading',
2020
+ function: 'reserve_pre_orders',
2021
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2022
+ typeArguments: options.typeArguments
2023
+ });
2024
+ }
2025
+ /**
2026
+ * Drops every pre-order reserved against `main_order_id` (if any), destroying each
2027
+ * via `position::remove_order` (which splits the zero collateral back into the
2028
+ * vault and deletes the order UID) and emitting one `PreOrderCancelled` per
2029
+ * dropped pre-order.
2030
+ */
2031
+ function dropPendingPreOrdersIfExists(options) {
2032
+ const packageAddress = options.package ?? '@waterx/perp';
2033
+ const argumentsTypes = [
2034
+ null,
2035
+ null,
2036
+ '0x2::object::ID',
2037
+ 'address',
2038
+ 'u64'
2039
+ ];
2040
+ const parameterNames = ["globalConfig", "market", "marketId", "accountObjectAddress", "mainOrderId"];
2041
+ return (tx) => tx.moveCall({
2042
+ package: packageAddress,
2043
+ module: 'trading',
2044
+ function: 'drop_pending_pre_orders_if_exists',
2045
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2046
+ typeArguments: options.typeArguments
2047
+ });
2048
+ }
2049
+ /**
2050
+ * Promotes reserved pre-orders to real reduce-only linked orders on the freshly
2051
+ * opened position. Called from the standalone-fill branch of `match_orders` right
2052
+ * before the new position is pushed to the market. Each reserved `Order` was
2053
+ * created at place time with `linked_position_id = None`; here we stamp in the new
2054
+ * `position_id` and move the order onto the live book.
2055
+ */
2056
+ function activatePendingPreOrders(options) {
2057
+ const packageAddress = options.package ?? '@waterx/perp';
2058
+ const argumentsTypes = [
2059
+ null,
2060
+ null,
2061
+ null,
2062
+ 'u64',
2063
+ 'u64',
2064
+ 'address',
2065
+ '0x2::object::ID'
2066
+ ];
2067
+ const parameterNames = ["wxaRegistry", "market", "pos", "positionId", "mainOrderId", "accountObjectAddress", "marketId"];
2068
+ return (tx) => tx.moveCall({
2069
+ package: packageAddress,
2070
+ module: 'trading',
2071
+ function: 'activate_pending_pre_orders',
2072
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2073
+ typeArguments: options.typeArguments
2074
+ });
2075
+ }
2076
+ function assertPositionOwner(options) {
2077
+ const packageAddress = options.package ?? '@waterx/perp';
2078
+ const argumentsTypes = [
2079
+ null,
2080
+ 'address'
2081
+ ];
2082
+ const parameterNames = ["position", "accountObjectAddress"];
2083
+ return (tx) => tx.moveCall({
2084
+ package: packageAddress,
2085
+ module: 'trading',
2086
+ function: 'assert_position_owner',
2087
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2088
+ });
2089
+ }
2090
+ function assertPositionCollateralType(options) {
2091
+ const packageAddress = options.package ?? '@waterx/perp';
2092
+ const argumentsTypes = [
2093
+ null
2094
+ ];
2095
+ const parameterNames = ["position"];
2096
+ return (tx) => tx.moveCall({
2097
+ package: packageAddress,
2098
+ module: 'trading',
2099
+ function: 'assert_position_collateral_type',
2100
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2101
+ typeArguments: options.typeArguments
2102
+ });
2103
+ }
2104
+ function borrowOwnedPosition(options) {
2105
+ const packageAddress = options.package ?? '@waterx/perp';
2106
+ const argumentsTypes = [
2107
+ null,
2108
+ 'u64',
2109
+ 'address'
2110
+ ];
2111
+ const parameterNames = ["market", "positionId", "accountObjectAddress"];
2112
+ return (tx) => tx.moveCall({
2113
+ package: packageAddress,
2114
+ module: 'trading',
2115
+ function: 'borrow_owned_position',
2116
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2117
+ typeArguments: options.typeArguments
2118
+ });
2119
+ }
2120
+ function borrowOwnedPositionMut(options) {
2121
+ const packageAddress = options.package ?? '@waterx/perp';
2122
+ const argumentsTypes = [
2123
+ null,
2124
+ 'u64',
2125
+ 'address'
2126
+ ];
2127
+ const parameterNames = ["market", "positionId", "accountObjectAddress"];
2128
+ return (tx) => tx.moveCall({
2129
+ package: packageAddress,
2130
+ module: 'trading',
2131
+ function: 'borrow_owned_position_mut',
2132
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2133
+ typeArguments: options.typeArguments
2134
+ });
2135
+ }
2136
+ function takeOwnedPosition(options) {
2137
+ const packageAddress = options.package ?? '@waterx/perp';
2138
+ const argumentsTypes = [
2139
+ null,
2140
+ 'u64',
2141
+ 'address',
2142
+ 'u64',
2143
+ 'bool'
2144
+ ];
2145
+ const parameterNames = ["market", "positionId", "accountObjectAddress", "now", "requireCooldown"];
2146
+ return (tx) => tx.moveCall({
2147
+ package: packageAddress,
2148
+ module: 'trading',
2149
+ function: 'take_owned_position',
2150
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2151
+ typeArguments: options.typeArguments
2152
+ });
2153
+ }
2154
+ function findOrderTypeTag(options) {
2155
+ const packageAddress = options.package ?? '@waterx/perp';
2156
+ const argumentsTypes = [
2157
+ null,
2158
+ 'u128',
2159
+ 'u64'
2160
+ ];
2161
+ const parameterNames = ["market", "triggerPriceKey", "orderId"];
2162
+ return (tx) => tx.moveCall({
2163
+ package: packageAddress,
2164
+ module: 'trading',
2165
+ function: 'find_order_type_tag',
2166
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2167
+ typeArguments: options.typeArguments
2168
+ });
2169
+ }
2170
+ function findCancelOrderLocation(options) {
2171
+ const packageAddress = options.package ?? '@waterx/perp';
2172
+ const argumentsTypes = [
2173
+ null,
2174
+ 'u8',
2175
+ 'u128',
2176
+ 'u64'
2177
+ ];
2178
+ const parameterNames = ["market", "orderTypeTag", "triggerPrice", "orderId"];
2179
+ return (tx) => tx.moveCall({
2180
+ package: packageAddress,
2181
+ module: 'trading',
2182
+ function: 'find_cancel_order_location',
2183
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2184
+ typeArguments: options.typeArguments
2185
+ });
2186
+ }
2187
+ function findOrderLocationById(options) {
2188
+ const packageAddress = options.package ?? '@waterx/perp';
2189
+ const argumentsTypes = [
2190
+ null,
2191
+ 'u8',
2192
+ 'u64'
2193
+ ];
2194
+ const parameterNames = ["market", "orderTypeTag", "orderId"];
2195
+ return (tx) => tx.moveCall({
2196
+ package: packageAddress,
2197
+ module: 'trading',
2198
+ function: 'find_order_location_by_id',
2199
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2200
+ typeArguments: options.typeArguments
2201
+ });
2202
+ }
2203
+ function findOrderPriceKeyInBook(options) {
2204
+ const packageAddress = options.package ?? '@waterx/perp';
2205
+ const argumentsTypes = [
2206
+ null,
2207
+ 'u64'
2208
+ ];
2209
+ const parameterNames = ["book", "orderId"];
2210
+ return (tx) => tx.moveCall({
2211
+ package: packageAddress,
2212
+ module: 'trading',
2213
+ function: 'find_order_price_key_in_book',
2214
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2215
+ });
2216
+ }
2217
+ function levelContainsOrder(options) {
2218
+ const packageAddress = options.package ?? '@waterx/perp';
2219
+ const argumentsTypes = [
2220
+ null,
2221
+ 'u64'
2222
+ ];
2223
+ const parameterNames = ["level", "orderId"];
2224
+ return (tx) => tx.moveCall({
2225
+ package: packageAddress,
2226
+ module: 'trading',
2227
+ function: 'level_contains_order',
2228
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2229
+ });
2230
+ }
2231
+ function hasOrderInBook(options) {
2232
+ const packageAddress = options.package ?? '@waterx/perp';
2233
+ const argumentsTypes = [
2234
+ null,
2235
+ 'u128',
2236
+ 'u64'
2237
+ ];
2238
+ const parameterNames = ["book", "priceKey", "orderId"];
2239
+ return (tx) => tx.moveCall({
2240
+ package: packageAddress,
2241
+ module: 'trading',
2242
+ function: 'has_order_in_book',
2243
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2244
+ });
2245
+ }
2246
+ function takeLinkedOrderAtKey(options) {
2247
+ const packageAddress = options.package ?? '@waterx/perp';
2248
+ const argumentsTypes = [
2249
+ null,
2250
+ 'u128',
2251
+ 'u64'
2252
+ ];
2253
+ const parameterNames = ["market", "triggerPriceKey", "orderId"];
2254
+ return (tx) => tx.moveCall({
2255
+ package: packageAddress,
2256
+ module: 'trading',
2257
+ function: 'take_linked_order_at_key',
2258
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2259
+ typeArguments: options.typeArguments
2260
+ });
2261
+ }
2262
+ function cancelLinkedOrdersToBalance(options) {
2263
+ const packageAddress = options.package ?? '@waterx/perp';
2264
+ const argumentsTypes = [
2265
+ null,
2266
+ null,
2267
+ null,
2268
+ '0x2::object::ID',
2269
+ 'vector<u64>',
2270
+ 'vector<u128>',
2271
+ 'u8'
2272
+ ];
2273
+ const parameterNames = ["globalConfig", "wxaRegistry", "market", "accountId", "linkedOrderIds", "linkedOrderPriceKeys", "memoCode"];
2274
+ return (tx) => tx.moveCall({
2275
+ package: packageAddress,
2276
+ module: 'trading',
2277
+ function: 'cancel_linked_orders_to_balance',
2278
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2279
+ typeArguments: options.typeArguments
2280
+ });
2281
+ }
2282
+ function borrowMutOrderBook(options) {
2283
+ const packageAddress = options.package ?? '@waterx/perp';
2284
+ const argumentsTypes = [
2285
+ null,
2286
+ 'u8'
2287
+ ];
2288
+ const parameterNames = ["market", "tag"];
2289
+ return (tx) => tx.moveCall({
2290
+ package: packageAddress,
2291
+ module: 'trading',
2292
+ function: 'borrow_mut_order_book',
2293
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2294
+ typeArguments: options.typeArguments
2295
+ });
2296
+ }
2297
+ function takeOrderDirect(options) {
2298
+ const packageAddress = options.package ?? '@waterx/perp';
2299
+ const argumentsTypes = [
2300
+ null,
2301
+ 'u128',
2302
+ 'u64',
2303
+ 'address',
2304
+ 'u8'
2305
+ ];
2306
+ const parameterNames = ["market", "triggerPriceKey", "orderId", "user", "orderTypeTag"];
2307
+ return (tx) => tx.moveCall({
2308
+ package: packageAddress,
2309
+ module: 'trading',
2310
+ function: 'take_order_direct',
2311
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2312
+ typeArguments: options.typeArguments
2313
+ });
2314
+ }
2315
+ /**
2316
+ * Returns `balance` to the user's wxa stored balance under the `WaterXPerp`
2317
+ * witness. `account_obj_addr` is the wxa account's UID address (i.e.
2318
+ * `account_id.to_address()`), so `.to_id()` recovers the account_id. Zero balances
2319
+ * are silently destroyed (no event).
2320
+ */
2321
+ function returnToUser(options) {
2322
+ const packageAddress = options.package ?? '@waterx/perp';
2323
+ const argumentsTypes = [
2324
+ null,
2325
+ null,
2326
+ 'address'
2327
+ ];
2328
+ const parameterNames = ["wxaRegistry", "balance", "accountObjAddr"];
2329
+ return (tx) => tx.moveCall({
2330
+ package: packageAddress,
2331
+ module: 'trading',
2332
+ function: 'return_to_user',
2333
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2334
+ typeArguments: options.typeArguments
2335
+ });
2336
+ }
2337
+ /** Returns the object ID of this Market (trading vault). */
2338
+ function marketId(options) {
2339
+ const packageAddress = options.package ?? '@waterx/perp';
2340
+ const argumentsTypes = [
2341
+ null
2342
+ ];
2343
+ const parameterNames = ["market"];
2344
+ return (tx) => tx.moveCall({
2345
+ package: packageAddress,
2346
+ module: 'trading',
2347
+ function: 'market_id',
2348
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2349
+ typeArguments: options.typeArguments
2350
+ });
2351
+ }
2352
+ /** Borrows a position by ID. */
2353
+ function borrowPosition(options) {
2354
+ const packageAddress = options.package ?? '@waterx/perp';
2355
+ const argumentsTypes = [
2356
+ null,
2357
+ 'u64'
2358
+ ];
2359
+ const parameterNames = ["market", "positionId"];
2360
+ return (tx) => tx.moveCall({
2361
+ package: packageAddress,
2362
+ module: 'trading',
2363
+ function: 'borrow_position',
2364
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2365
+ typeArguments: options.typeArguments
2366
+ });
2367
+ }
2368
+ /** Checks if a position exists. */
2369
+ function hasPosition(options) {
2370
+ const packageAddress = options.package ?? '@waterx/perp';
2371
+ const argumentsTypes = [
2372
+ null,
2373
+ 'u64'
2374
+ ];
2375
+ const parameterNames = ["market", "positionId"];
2376
+ return (tx) => tx.moveCall({
2377
+ package: packageAddress,
2378
+ module: 'trading',
2379
+ function: 'has_position',
2380
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2381
+ typeArguments: options.typeArguments
2382
+ });
2383
+ }
2384
+ /** Borrows a single order by type, price key, and order id. */
2385
+ function borrowOrder(options) {
2386
+ const packageAddress = options.package ?? '@waterx/perp';
2387
+ const argumentsTypes = [
2388
+ null,
2389
+ 'u8',
2390
+ 'u128',
2391
+ 'u64'
2392
+ ];
2393
+ const parameterNames = ["market", "orderTypeTag", "triggerPriceKey", "orderId"];
2394
+ return (tx) => tx.moveCall({
2395
+ package: packageAddress,
2396
+ module: 'trading',
2397
+ function: 'borrow_order',
2398
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2399
+ typeArguments: options.typeArguments
2400
+ });
2401
+ }
2402
+ /** Borrows the positions KeyedBigVector (for paginated iteration). */
2403
+ function borrowPositions(options) {
2404
+ const packageAddress = options.package ?? '@waterx/perp';
2405
+ const argumentsTypes = [
2406
+ null
2407
+ ];
2408
+ const parameterNames = ["market"];
2409
+ return (tx) => tx.moveCall({
2410
+ package: packageAddress,
2411
+ module: 'trading',
2412
+ function: 'borrow_positions',
2413
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2414
+ typeArguments: options.typeArguments
2415
+ });
2416
+ }
2417
+ /** Borrows an order book by type tag (0-3), read-only. */
2418
+ function borrowOrderBook(options) {
2419
+ const packageAddress = options.package ?? '@waterx/perp';
2420
+ const argumentsTypes = [
2421
+ null,
2422
+ 'u8'
2423
+ ];
2424
+ const parameterNames = ["market", "orderTypeTag"];
2425
+ return (tx) => tx.moveCall({
2426
+ package: packageAddress,
2427
+ module: 'trading',
2428
+ function: 'borrow_order_book',
2429
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2430
+ typeArguments: options.typeArguments
2431
+ });
2432
+ }
2433
+ /** Borrows the market config (for view.move). */
2434
+ function borrowConfig(options) {
2435
+ const packageAddress = options.package ?? '@waterx/perp';
2436
+ const argumentsTypes = [
2437
+ null
2438
+ ];
2439
+ const parameterNames = ["market"];
2440
+ return (tx) => tx.moveCall({
2441
+ package: packageAddress,
2442
+ module: 'trading',
2443
+ function: 'borrow_config',
2444
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2445
+ typeArguments: options.typeArguments
2446
+ });
2447
+ }
2448
+ function marketSymbol(options) {
2449
+ const packageAddress = options.package ?? '@waterx/perp';
2450
+ const argumentsTypes = [
2451
+ null
2452
+ ];
2453
+ const parameterNames = ["market"];
2454
+ return (tx) => tx.moveCall({
2455
+ package: packageAddress,
2456
+ module: 'trading',
2457
+ function: 'market_symbol',
2458
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2459
+ typeArguments: options.typeArguments
2460
+ });
2461
+ }
2462
+ /** Creates and shares a new `MarketRegistry`. Admin-gated. */
2463
+ function createMarketRegistry(options) {
2464
+ const packageAddress = options.package ?? '@waterx/perp';
2465
+ const argumentsTypes = [
2466
+ null
2467
+ ];
2468
+ const parameterNames = ["Cap"];
2469
+ return (tx) => tx.moveCall({
2470
+ package: packageAddress,
2471
+ module: 'trading',
2472
+ function: 'create_market_registry',
2473
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2474
+ typeArguments: options.typeArguments
2475
+ });
2476
+ }
2477
+ function registryAssertVersion(options) {
2478
+ const packageAddress = options.package ?? '@waterx/perp';
2479
+ const argumentsTypes = [
2480
+ null
2481
+ ];
2482
+ const parameterNames = ["registry"];
2483
+ return (tx) => tx.moveCall({
2484
+ package: packageAddress,
2485
+ module: 'trading',
2486
+ function: 'registry_assert_version',
2487
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2488
+ typeArguments: options.typeArguments
2489
+ });
2490
+ }
2491
+ function registryAllowVersion(options) {
2492
+ const packageAddress = options.package ?? '@waterx/perp';
2493
+ const argumentsTypes = [
2494
+ null,
2495
+ null,
2496
+ 'u16'
2497
+ ];
2498
+ const parameterNames = ["registry", "_", "v"];
2499
+ return (tx) => tx.moveCall({
2500
+ package: packageAddress,
2501
+ module: 'trading',
2502
+ function: 'registry_allow_version',
2503
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2504
+ typeArguments: options.typeArguments
2505
+ });
2506
+ }
2507
+ function registryDisallowVersion(options) {
2508
+ const packageAddress = options.package ?? '@waterx/perp';
2509
+ const argumentsTypes = [
2510
+ null,
2511
+ null,
2512
+ 'u16'
2513
+ ];
2514
+ const parameterNames = ["registry", "_", "v"];
2515
+ return (tx) => tx.moveCall({
2516
+ package: packageAddress,
2517
+ module: 'trading',
2518
+ function: 'registry_disallow_version',
2519
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2520
+ typeArguments: options.typeArguments
2521
+ });
2522
+ }
2523
+ /** Stores `market` in the registry under `ticker`. Aborts if already taken. */
2524
+ function addMarket(options) {
2525
+ const packageAddress = options.package ?? '@waterx/perp';
2526
+ const argumentsTypes = [
2527
+ null,
2528
+ null,
2529
+ '0x1::string::String',
2530
+ null
2531
+ ];
2532
+ const parameterNames = ["registry", "Cap", "ticker", "market"];
2533
+ return (tx) => tx.moveCall({
2534
+ package: packageAddress,
2535
+ module: 'trading',
2536
+ function: 'add_market',
2537
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2538
+ typeArguments: options.typeArguments
2539
+ });
2540
+ }
2541
+ /** Removes a market from the registry and returns it. */
2542
+ function removeMarket(options) {
2543
+ const packageAddress = options.package ?? '@waterx/perp';
2544
+ const argumentsTypes = [
2545
+ null,
2546
+ null,
2547
+ '0x1::string::String'
2548
+ ];
2549
+ const parameterNames = ["registry", "Cap", "ticker"];
2550
+ return (tx) => tx.moveCall({
2551
+ package: packageAddress,
2552
+ module: 'trading',
2553
+ function: 'remove_market',
2554
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2555
+ typeArguments: options.typeArguments
2556
+ });
2557
+ }
2558
+ function hasMarket(options) {
2559
+ const packageAddress = options.package ?? '@waterx/perp';
2560
+ const argumentsTypes = [
2561
+ null,
2562
+ '0x1::string::String'
2563
+ ];
2564
+ const parameterNames = ["registry", "ticker"];
2565
+ return (tx) => tx.moveCall({
2566
+ package: packageAddress,
2567
+ module: 'trading',
2568
+ function: 'has_market',
2569
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2570
+ typeArguments: options.typeArguments
2571
+ });
2572
+ }
2573
+ function listedTickers(options) {
2574
+ const packageAddress = options.package ?? '@waterx/perp';
2575
+ const argumentsTypes = [
2576
+ null
2577
+ ];
2578
+ const parameterNames = ["registry"];
2579
+ return (tx) => tx.moveCall({
2580
+ package: packageAddress,
2581
+ module: 'trading',
2582
+ function: 'listed_tickers',
2583
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2584
+ typeArguments: options.typeArguments
2585
+ });
2586
+ }
2587
+ function borrowMarket(options) {
2588
+ const packageAddress = options.package ?? '@waterx/perp';
2589
+ const argumentsTypes = [
2590
+ null,
2591
+ '0x1::string::String'
2592
+ ];
2593
+ const parameterNames = ["registry", "ticker"];
2594
+ return (tx) => tx.moveCall({
2595
+ package: packageAddress,
2596
+ module: 'trading',
2597
+ function: 'borrow_market',
2598
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2599
+ typeArguments: options.typeArguments
2600
+ });
2601
+ }
2602
+ function borrowMarketMut(options) {
2603
+ const packageAddress = options.package ?? '@waterx/perp';
2604
+ const argumentsTypes = [
2605
+ null,
2606
+ '0x1::string::String'
2607
+ ];
2608
+ const parameterNames = ["registry", "ticker"];
2609
+ return (tx) => tx.moveCall({
2610
+ package: packageAddress,
2611
+ module: 'trading',
2612
+ function: 'borrow_market_mut',
2613
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2614
+ typeArguments: options.typeArguments
2615
+ });
2616
+ }