@waterx/sdk 2.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 (245) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -0
  3. package/dist/src/client.d.ts +109 -0
  4. package/dist/src/client.js +197 -0
  5. package/dist/src/config.d.ts +229 -0
  6. package/dist/src/config.js +107 -0
  7. package/dist/src/constants.d.ts +64 -0
  8. package/dist/src/constants.js +71 -0
  9. package/dist/src/fetch.d.ts +144 -0
  10. package/dist/src/fetch.js +419 -0
  11. package/dist/src/generated/bucket_v2_framework/account.d.ts +107 -0
  12. package/dist/src/generated/bucket_v2_framework/account.js +129 -0
  13. package/dist/src/generated/bucket_v2_framework/deps/std/type_name.d.ts +17 -0
  14. package/dist/src/generated/bucket_v2_framework/deps/std/type_name.js +19 -0
  15. package/dist/src/generated/bucket_v2_framework/deps/sui/balance.d.ts +12 -0
  16. package/dist/src/generated/bucket_v2_framework/deps/sui/balance.js +14 -0
  17. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
  18. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_map.js +27 -0
  19. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
  20. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_set.js +19 -0
  21. package/dist/src/generated/bucket_v2_framework/double.d.ts +384 -0
  22. package/dist/src/generated/bucket_v2_framework/double.js +466 -0
  23. package/dist/src/generated/bucket_v2_framework/float.d.ts +364 -0
  24. package/dist/src/generated/bucket_v2_framework/float.js +440 -0
  25. package/dist/src/generated/bucket_v2_framework/liability.d.ts +197 -0
  26. package/dist/src/generated/bucket_v2_framework/liability.js +205 -0
  27. package/dist/src/generated/bucket_v2_framework/linked_table.d.ts +384 -0
  28. package/dist/src/generated/bucket_v2_framework/linked_table.js +382 -0
  29. package/dist/src/generated/bucket_v2_framework/sheet.d.ts +424 -0
  30. package/dist/src/generated/bucket_v2_framework/sheet.js +344 -0
  31. package/dist/src/generated/native_custody/custody_vault.d.ts +572 -0
  32. package/dist/src/generated/native_custody/custody_vault.js +483 -0
  33. package/dist/src/generated/native_custody/deps/bucket_v2_framework/float.d.ts +8 -0
  34. package/dist/src/generated/native_custody/deps/bucket_v2_framework/float.js +10 -0
  35. package/dist/src/generated/native_custody/deps/bucket_v2_framework/liability.d.ts +11 -0
  36. package/dist/src/generated/native_custody/deps/bucket_v2_framework/liability.js +13 -0
  37. package/dist/src/generated/native_custody/deps/bucket_v2_framework/sheet.d.ts +49 -0
  38. package/dist/src/generated/native_custody/deps/bucket_v2_framework/sheet.js +18 -0
  39. package/dist/src/generated/native_custody/deps/std/type_name.d.ts +17 -0
  40. package/dist/src/generated/native_custody/deps/std/type_name.js +19 -0
  41. package/dist/src/generated/native_custody/deps/sui/balance.d.ts +12 -0
  42. package/dist/src/generated/native_custody/deps/sui/balance.js +14 -0
  43. package/dist/src/generated/native_custody/deps/sui/vec_map.d.ts +36 -0
  44. package/dist/src/generated/native_custody/deps/sui/vec_map.js +27 -0
  45. package/dist/src/generated/native_custody/deps/sui/vec_set.d.ts +16 -0
  46. package/dist/src/generated/native_custody/deps/sui/vec_set.js +19 -0
  47. package/dist/src/generated/native_custody/events.d.ts +36 -0
  48. package/dist/src/generated/native_custody/events.js +36 -0
  49. package/dist/src/generated/pyth_sponsor_rule/deps/sui/balance.d.ts +12 -0
  50. package/dist/src/generated/pyth_sponsor_rule/deps/sui/balance.js +14 -0
  51. package/dist/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.d.ts +68 -0
  52. package/dist/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.js +74 -0
  53. package/dist/src/generated/utils/index.d.ts +30 -0
  54. package/dist/src/generated/utils/index.js +157 -0
  55. package/dist/src/generated/waterx_account/account.d.ts +1818 -0
  56. package/dist/src/generated/waterx_account/account.js +1723 -0
  57. package/dist/src/generated/waterx_account/deps/bucket_v2_framework/liability.d.ts +11 -0
  58. package/dist/src/generated/waterx_account/deps/bucket_v2_framework/liability.js +13 -0
  59. package/dist/src/generated/waterx_account/deps/bucket_v2_framework/sheet.d.ts +49 -0
  60. package/dist/src/generated/waterx_account/deps/bucket_v2_framework/sheet.js +18 -0
  61. package/dist/src/generated/waterx_account/deps/std/type_name.d.ts +17 -0
  62. package/dist/src/generated/waterx_account/deps/std/type_name.js +19 -0
  63. package/dist/src/generated/waterx_account/deps/sui/balance.d.ts +12 -0
  64. package/dist/src/generated/waterx_account/deps/sui/balance.js +14 -0
  65. package/dist/src/generated/waterx_account/deps/sui/object_table.d.ts +17 -0
  66. package/dist/src/generated/waterx_account/deps/sui/object_table.js +19 -0
  67. package/dist/src/generated/waterx_account/deps/sui/table.d.ts +29 -0
  68. package/dist/src/generated/waterx_account/deps/sui/table.js +31 -0
  69. package/dist/src/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
  70. package/dist/src/generated/waterx_account/deps/sui/vec_map.js +27 -0
  71. package/dist/src/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
  72. package/dist/src/generated/waterx_account/deps/sui/vec_set.js +19 -0
  73. package/dist/src/generated/waterx_account/direct_rule.d.ts +77 -0
  74. package/dist/src/generated/waterx_account/direct_rule.js +78 -0
  75. package/dist/src/generated/waterx_account/events.d.ts +180 -0
  76. package/dist/src/generated/waterx_account/events.js +156 -0
  77. package/dist/src/generated/waterx_account/version.d.ts +10 -0
  78. package/dist/src/generated/waterx_account/version.js +8 -0
  79. package/dist/src/generated/waterx_credit/credit_registry.d.ts +708 -0
  80. package/dist/src/generated/waterx_credit/credit_registry.js +658 -0
  81. package/dist/src/generated/waterx_credit/deps/std/type_name.d.ts +17 -0
  82. package/dist/src/generated/waterx_credit/deps/std/type_name.js +19 -0
  83. package/dist/src/generated/waterx_credit/deps/sui/table.d.ts +29 -0
  84. package/dist/src/generated/waterx_credit/deps/sui/table.js +31 -0
  85. package/dist/src/generated/waterx_credit/deps/sui/vec_map.d.ts +36 -0
  86. package/dist/src/generated/waterx_credit/deps/sui/vec_map.js +27 -0
  87. package/dist/src/generated/waterx_credit/deps/sui/vec_set.d.ts +16 -0
  88. package/dist/src/generated/waterx_credit/deps/sui/vec_set.js +19 -0
  89. package/dist/src/generated/waterx_credit/limited_supply.d.ts +107 -0
  90. package/dist/src/generated/waterx_credit/limited_supply.js +131 -0
  91. package/dist/src/generated/waterx_oracle/aggregator.d.ts +211 -0
  92. package/dist/src/generated/waterx_oracle/aggregator.js +213 -0
  93. package/dist/src/generated/waterx_oracle/collector.d.ts +119 -0
  94. package/dist/src/generated/waterx_oracle/collector.js +105 -0
  95. package/dist/src/generated/waterx_oracle/deps/bucket_v2_framework/float.d.ts +8 -0
  96. package/dist/src/generated/waterx_oracle/deps/bucket_v2_framework/float.js +10 -0
  97. package/dist/src/generated/waterx_oracle/deps/std/type_name.d.ts +17 -0
  98. package/dist/src/generated/waterx_oracle/deps/std/type_name.js +19 -0
  99. package/dist/src/generated/waterx_oracle/deps/sui/vec_map.d.ts +36 -0
  100. package/dist/src/generated/waterx_oracle/deps/sui/vec_map.js +27 -0
  101. package/dist/src/generated/waterx_oracle/deps/sui/vec_set.d.ts +16 -0
  102. package/dist/src/generated/waterx_oracle/deps/sui/vec_set.js +19 -0
  103. package/dist/src/generated/waterx_oracle/oracle.d.ts +298 -0
  104. package/dist/src/generated/waterx_oracle/oracle.js +323 -0
  105. package/dist/src/generated/waterx_oracle/version.d.ts +10 -0
  106. package/dist/src/generated/waterx_oracle/version.js +8 -0
  107. package/dist/src/generated/waterx_perp/account_data.d.ts +269 -0
  108. package/dist/src/generated/waterx_perp/account_data.js +284 -0
  109. package/dist/src/generated/waterx_perp/admin.d.ts +19 -0
  110. package/dist/src/generated/waterx_perp/admin.js +22 -0
  111. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/double.d.ts +8 -0
  112. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/double.js +10 -0
  113. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/float.d.ts +8 -0
  114. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/float.js +10 -0
  115. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/liability.d.ts +11 -0
  116. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/liability.js +13 -0
  117. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  118. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.js +18 -0
  119. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.d.ts +49 -0
  120. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.js +18 -0
  121. package/dist/src/generated/waterx_perp/deps/std/type_name.d.ts +17 -0
  122. package/dist/src/generated/waterx_perp/deps/std/type_name.js +19 -0
  123. package/dist/src/generated/waterx_perp/deps/sui/balance.d.ts +15 -0
  124. package/dist/src/generated/waterx_perp/deps/sui/balance.js +17 -0
  125. package/dist/src/generated/waterx_perp/deps/sui/coin.d.ts +14 -0
  126. package/dist/src/generated/waterx_perp/deps/sui/coin.js +15 -0
  127. package/dist/src/generated/waterx_perp/deps/sui/vec_map.d.ts +36 -0
  128. package/dist/src/generated/waterx_perp/deps/sui/vec_map.js +27 -0
  129. package/dist/src/generated/waterx_perp/deps/sui/vec_set.d.ts +16 -0
  130. package/dist/src/generated/waterx_perp/deps/sui/vec_set.js +19 -0
  131. package/dist/src/generated/waterx_perp/events.d.ts +1283 -0
  132. package/dist/src/generated/waterx_perp/events.js +1018 -0
  133. package/dist/src/generated/waterx_perp/global_config.d.ts +775 -0
  134. package/dist/src/generated/waterx_perp/global_config.js +836 -0
  135. package/dist/src/generated/waterx_perp/keyed_big_vector.d.ts +553 -0
  136. package/dist/src/generated/waterx_perp/keyed_big_vector.js +554 -0
  137. package/dist/src/generated/waterx_perp/lp_pool.d.ts +1648 -0
  138. package/dist/src/generated/waterx_perp/lp_pool.js +1521 -0
  139. package/dist/src/generated/waterx_perp/market_config.d.ts +715 -0
  140. package/dist/src/generated/waterx_perp/market_config.js +780 -0
  141. package/dist/src/generated/waterx_perp/math.d.ts +63 -0
  142. package/dist/src/generated/waterx_perp/math.js +64 -0
  143. package/dist/src/generated/waterx_perp/memo.d.ts +251 -0
  144. package/dist/src/generated/waterx_perp/memo.js +323 -0
  145. package/dist/src/generated/waterx_perp/order_book.d.ts +290 -0
  146. package/dist/src/generated/waterx_perp/order_book.js +329 -0
  147. package/dist/src/generated/waterx_perp/position.d.ts +1005 -0
  148. package/dist/src/generated/waterx_perp/position.js +1103 -0
  149. package/dist/src/generated/waterx_perp/request.d.ts +544 -0
  150. package/dist/src/generated/waterx_perp/request.js +541 -0
  151. package/dist/src/generated/waterx_perp/response.d.ts +247 -0
  152. package/dist/src/generated/waterx_perp/response.js +280 -0
  153. package/dist/src/generated/waterx_perp/trading.d.ts +2821 -0
  154. package/dist/src/generated/waterx_perp/trading.js +2372 -0
  155. package/dist/src/generated/waterx_perp/version.d.ts +10 -0
  156. package/dist/src/generated/waterx_perp/version.js +8 -0
  157. package/dist/src/generated/waterx_perp/witness.d.ts +18 -0
  158. package/dist/src/generated/waterx_perp/witness.js +21 -0
  159. package/dist/src/generated/waterx_perp_view/deps/std/type_name.d.ts +17 -0
  160. package/dist/src/generated/waterx_perp_view/deps/std/type_name.js +19 -0
  161. package/dist/src/generated/waterx_perp_view/view.d.ts +447 -0
  162. package/dist/src/generated/waterx_perp_view/view.js +414 -0
  163. package/dist/src/generated/waterx_pyth_rule/deps/sui/vec_map.d.ts +36 -0
  164. package/dist/src/generated/waterx_pyth_rule/deps/sui/vec_map.js +27 -0
  165. package/dist/src/generated/waterx_pyth_rule/pyth_rule.d.ts +90 -0
  166. package/dist/src/generated/waterx_pyth_rule/pyth_rule.js +72 -0
  167. package/dist/src/generated/waterx_referral/deps/sui/table.d.ts +29 -0
  168. package/dist/src/generated/waterx_referral/deps/sui/table.js +31 -0
  169. package/dist/src/generated/waterx_referral/deps/sui/vec_set.d.ts +16 -0
  170. package/dist/src/generated/waterx_referral/deps/sui/vec_set.js +19 -0
  171. package/dist/src/generated/waterx_referral/referral_table.d.ts +171 -0
  172. package/dist/src/generated/waterx_referral/referral_table.js +192 -0
  173. package/dist/src/generated/waterx_staking/deps/bucket_v2_framework/double.d.ts +8 -0
  174. package/dist/src/generated/waterx_staking/deps/bucket_v2_framework/double.js +10 -0
  175. package/dist/src/generated/waterx_staking/deps/sui/balance.d.ts +12 -0
  176. package/dist/src/generated/waterx_staking/deps/sui/balance.js +14 -0
  177. package/dist/src/generated/waterx_staking/deps/sui/table.d.ts +29 -0
  178. package/dist/src/generated/waterx_staking/deps/sui/table.js +31 -0
  179. package/dist/src/generated/waterx_staking/deps/sui/vec_set.d.ts +16 -0
  180. package/dist/src/generated/waterx_staking/deps/sui/vec_set.js +19 -0
  181. package/dist/src/generated/waterx_staking/waterx_staking.d.ts +746 -0
  182. package/dist/src/generated/waterx_staking/waterx_staking.js +731 -0
  183. package/dist/src/generated/waterx_staking/witness.d.ts +16 -0
  184. package/dist/src/generated/waterx_staking/witness.js +18 -0
  185. package/dist/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  186. package/dist/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.js +18 -0
  187. package/dist/src/generated/withdrawal_queue/deps/std/type_name.d.ts +17 -0
  188. package/dist/src/generated/withdrawal_queue/deps/std/type_name.js +19 -0
  189. package/dist/src/generated/withdrawal_queue/deps/sui/balance.d.ts +12 -0
  190. package/dist/src/generated/withdrawal_queue/deps/sui/balance.js +14 -0
  191. package/dist/src/generated/withdrawal_queue/deps/sui/vec_set.d.ts +16 -0
  192. package/dist/src/generated/withdrawal_queue/deps/sui/vec_set.js +19 -0
  193. package/dist/src/generated/withdrawal_queue/withdrawal_queue.d.ts +483 -0
  194. package/dist/src/generated/withdrawal_queue/withdrawal_queue.js +480 -0
  195. package/dist/src/generated/wlp/wlp.d.ts +28 -0
  196. package/dist/src/generated/wlp/wlp.js +32 -0
  197. package/dist/src/generated/wormhole_bridge/deps/sui/table.d.ts +29 -0
  198. package/dist/src/generated/wormhole_bridge/deps/sui/table.js +31 -0
  199. package/dist/src/generated/wormhole_bridge/deps/sui/vec_map.d.ts +36 -0
  200. package/dist/src/generated/wormhole_bridge/deps/sui/vec_map.js +27 -0
  201. package/dist/src/generated/wormhole_bridge/deps/sui/vec_set.d.ts +16 -0
  202. package/dist/src/generated/wormhole_bridge/deps/sui/vec_set.js +19 -0
  203. package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.d.ts +12 -0
  204. package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.js +9 -0
  205. package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.d.ts +14 -0
  206. package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.js +16 -0
  207. package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/set.d.ts +16 -0
  208. package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/set.js +15 -0
  209. package/dist/src/generated/wormhole_bridge/events.d.ts +32 -0
  210. package/dist/src/generated/wormhole_bridge/events.js +28 -0
  211. package/dist/src/generated/wormhole_bridge/wormhole_bridge.d.ts +498 -0
  212. package/dist/src/generated/wormhole_bridge/wormhole_bridge.js +494 -0
  213. package/dist/src/index.d.ts +28 -0
  214. package/dist/src/index.js +34 -0
  215. package/dist/src/tx-builders.d.ts +242 -0
  216. package/dist/src/tx-builders.js +320 -0
  217. package/dist/src/user/account.d.ts +129 -0
  218. package/dist/src/user/account.js +166 -0
  219. package/dist/src/user/credit.d.ts +135 -0
  220. package/dist/src/user/credit.js +255 -0
  221. package/dist/src/user/custody.d.ts +71 -0
  222. package/dist/src/user/custody.js +112 -0
  223. package/dist/src/user/index.d.ts +8 -0
  224. package/dist/src/user/index.js +8 -0
  225. package/dist/src/user/order.d.ts +89 -0
  226. package/dist/src/user/order.js +134 -0
  227. package/dist/src/user/referral.d.ts +21 -0
  228. package/dist/src/user/referral.js +41 -0
  229. package/dist/src/user/staking.d.ts +54 -0
  230. package/dist/src/user/staking.js +109 -0
  231. package/dist/src/user/trading.d.ts +119 -0
  232. package/dist/src/user/trading.js +262 -0
  233. package/dist/src/user/wlp.d.ts +58 -0
  234. package/dist/src/user/wlp.js +99 -0
  235. package/dist/src/utils/account-request.d.ts +9 -0
  236. package/dist/src/utils/account-request.js +17 -0
  237. package/dist/src/utils/config.d.ts +11 -0
  238. package/dist/src/utils/config.js +15 -0
  239. package/dist/src/utils/math.d.ts +201 -0
  240. package/dist/src/utils/math.js +343 -0
  241. package/dist/src/utils/pyth.d.ts +89 -0
  242. package/dist/src/utils/pyth.js +316 -0
  243. package/dist/src/utils/wormhole.d.ts +86 -0
  244. package/dist/src/utils/wormhole.js +154 -0
  245. package/package.json +66 -0
@@ -0,0 +1,780 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ /** MarketConfig: per-market configuration, state, and funding rate logic. */
5
+ import { MoveStruct, normalizeMoveArguments } from "../utils/index.js";
6
+ import { bcs } from '@mysten/sui/bcs';
7
+ import * as float from "./deps/bucket_v2_framework/float.js";
8
+ import * as float_1 from "./deps/bucket_v2_framework/float.js";
9
+ import * as float_2 from "./deps/bucket_v2_framework/float.js";
10
+ import * as float_3 from "./deps/bucket_v2_framework/float.js";
11
+ import * as float_4 from "./deps/bucket_v2_framework/float.js";
12
+ import * as float_5 from "./deps/bucket_v2_framework/float.js";
13
+ import * as float_6 from "./deps/bucket_v2_framework/float.js";
14
+ import * as type_name from "./deps/std/type_name.js";
15
+ import * as vec_set from "./deps/sui/vec_set.js";
16
+ import * as float_7 from "./deps/bucket_v2_framework/float.js";
17
+ import * as float_8 from "./deps/bucket_v2_framework/float.js";
18
+ import * as float_9 from "./deps/bucket_v2_framework/float.js";
19
+ import * as float_10 from "./deps/bucket_v2_framework/float.js";
20
+ import * as double from "./deps/bucket_v2_framework/double.js";
21
+ const $moduleName = '@waterx/perp::market_config';
22
+ export const MarketConfig = new MoveStruct({ name: `${$moduleName}::MarketConfig`, fields: {
23
+ id: bcs.Address,
24
+ /** Ticker symbol (e.g., `b"BTC_USD".to_string()`). Doubles as the oracle key. */
25
+ symbol: bcs.string(),
26
+ /** Whether this market is paused. When true, trading actions abort. */
27
+ is_paused: bcs.bool(),
28
+ /** Maximum leverage in bps (e.g., 100x = 1_000_000 bps). */
29
+ max_leverage_bps: bcs.u64(),
30
+ /** Minimum position collateral value in USD, scaled by 1e9. */
31
+ min_coll_value: bcs.u64(),
32
+ /** Base trading fee as Float rate (e.g. 0.0005 = 5 bps). */
33
+ trading_fee: float.Float,
34
+ /** Maximum additional impact fee as Float rate. */
35
+ max_impact_fee: float_1.Float,
36
+ /** Share of LP TVL allocated to net exposure before impact hits max, in bps. */
37
+ allocated_lp_exposure_bps: bcs.u64(),
38
+ /** Curvature exponent for the impact fee curve. */
39
+ impact_fee_curvature: bcs.u64(),
40
+ /** Scale divisor applied to the exposure ratio before curvature. */
41
+ impact_fee_scale: bcs.u64(),
42
+ /** Maintenance margin rate as Float (e.g. 0.015 = 150 bps). */
43
+ maintenance_margin: float_2.Float,
44
+ /** Maximum long open interest as Float (in base tokens). */
45
+ max_long_oi: float_3.Float,
46
+ /** Maximum short open interest as Float (in base tokens). */
47
+ max_short_oi: float_4.Float,
48
+ /** Cooldown between position updates in ms. */
49
+ cooldown_ms: bcs.u64(),
50
+ /** Bucket size for order book trigger price normalization. */
51
+ order_price_tick: float_5.Float,
52
+ /**
53
+ * Maximum number of TP / SL pre-orders reservable against a single unfilled main
54
+ * order. Defaults to `DEFAULT_MAX_PRE_ORDERS`; admin may tune via
55
+ * `update_market_config`. Enforced at place / update / add pre-order paths.
56
+ */
57
+ max_pre_orders: bcs.u64(),
58
+ /** Basic funding rate per interval (Float, typically ~0.01% = 1 bps). */
59
+ basic_funding_rate: float_6.Float,
60
+ /** Funding interval in milliseconds (default 3600000 = 1 hour). */
61
+ funding_interval_ms: bcs.u64(),
62
+ /** Required witness types before execution. */
63
+ request_checklist: bcs.vector(type_name.TypeName),
64
+ /** Prevents reentrancy: locked during the request→execute lifecycle. */
65
+ position_locker: vec_set.VecSet(bcs.u64()),
66
+ /** Current long open interest as Float. */
67
+ long_oi: float_7.Float,
68
+ /** Current short open interest as Float. */
69
+ short_oi: float_8.Float,
70
+ /** Aggregate long average entry price. */
71
+ long_avg_entry_price: float_9.Float,
72
+ /** Aggregate short average entry price. */
73
+ short_avg_entry_price: float_10.Float,
74
+ /** Next position ID counter. */
75
+ next_position_id: bcs.u64(),
76
+ /** Next order ID counter. */
77
+ next_order_id: bcs.u64(),
78
+ /** Last funding rate update timestamp. */
79
+ last_funding_timestamp: bcs.u64(),
80
+ /** Sign of cumulative funding rate index (true = longs pay). */
81
+ cumulative_funding_sign: bcs.bool(),
82
+ /** Cumulative funding index in USD per one base token (Double precision). */
83
+ cumulative_funding_index: double.Double
84
+ } });
85
+ /**
86
+ * Creates a new MarketConfig (called by trading::create_market). `trading_fee`,
87
+ * `maintenance_margin`, and `basic_funding_rate` are scaled Float values (1e9
88
+ * scale). For example, a 5 bps fee = `500_000`.
89
+ */
90
+ export function newMarketConfig(options) {
91
+ const packageAddress = options.package ?? '@waterx/perp';
92
+ const argumentsTypes = [
93
+ '0x1::string::String',
94
+ 'u64',
95
+ 'u64',
96
+ 'u128',
97
+ 'u128',
98
+ null,
99
+ null,
100
+ 'u64',
101
+ 'u128',
102
+ 'u64',
103
+ '0x2::clock::Clock'
104
+ ];
105
+ const parameterNames = ["symbol", "maxLeverageBps", "minCollValue", "tradingFee", "maintenanceMargin", "maxLongOi", "maxShortOi", "cooldownMs", "basicFundingRate", "fundingIntervalMs"];
106
+ return (tx) => tx.moveCall({
107
+ package: packageAddress,
108
+ module: 'market_config',
109
+ function: 'new_market_config',
110
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
111
+ });
112
+ }
113
+ /**
114
+ * Updates MarketConfig fields. `trading_fee`, `max_impact_fee`, and
115
+ * `maintenance_margin` are scaled Float values (1e9 scale).
116
+ */
117
+ export function updateMarketConfig(options) {
118
+ const packageAddress = options.package ?? '@waterx/perp';
119
+ const argumentsTypes = [
120
+ null,
121
+ null,
122
+ '0x1::option::Option<u64>',
123
+ '0x1::option::Option<u64>',
124
+ '0x1::option::Option<u128>',
125
+ '0x1::option::Option<u128>',
126
+ '0x1::option::Option<u64>',
127
+ '0x1::option::Option<u64>',
128
+ '0x1::option::Option<u64>',
129
+ '0x1::option::Option<u128>',
130
+ '0x1::option::Option<u128>',
131
+ '0x1::option::Option<u128>',
132
+ '0x1::option::Option<u64>',
133
+ '0x1::option::Option<null>',
134
+ '0x1::option::Option<u64>',
135
+ '0x1::option::Option<u128>',
136
+ '0x1::option::Option<u64>'
137
+ ];
138
+ const parameterNames = ["marketConfig", "Cap", "maxLeverageBps", "minCollValue", "tradingFee", "maxImpactFee", "allocatedLpExposureBps", "impactFeeCurvature", "impactFeeScale", "maintenanceMargin", "maxLongOi", "maxShortOi", "cooldownMs", "orderPriceTick", "maxPreOrders", "basicFundingRate", "fundingIntervalMs"];
139
+ return (tx) => tx.moveCall({
140
+ package: packageAddress,
141
+ module: 'market_config',
142
+ function: 'update_market_config',
143
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
144
+ });
145
+ }
146
+ export function updateFundingConfig(options) {
147
+ const packageAddress = options.package ?? '@waterx/perp';
148
+ const argumentsTypes = [
149
+ null,
150
+ null,
151
+ '0x1::option::Option<u128>',
152
+ '0x1::option::Option<u64>'
153
+ ];
154
+ const parameterNames = ["marketConfig", "Cap", "basicFundingRate", "fundingIntervalMs"];
155
+ return (tx) => tx.moveCall({
156
+ package: packageAddress,
157
+ module: 'market_config',
158
+ function: 'update_funding_config',
159
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
160
+ });
161
+ }
162
+ /** Pauses a market config (blocks trading actions). */
163
+ export function pauseMarket(options) {
164
+ const packageAddress = options.package ?? '@waterx/perp';
165
+ const argumentsTypes = [
166
+ null,
167
+ null
168
+ ];
169
+ const parameterNames = ["marketConfig", "Cap"];
170
+ return (tx) => tx.moveCall({
171
+ package: packageAddress,
172
+ module: 'market_config',
173
+ function: 'pause_market',
174
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
175
+ });
176
+ }
177
+ /** Resumes a paused market. */
178
+ export function unpauseMarket(options) {
179
+ const packageAddress = options.package ?? '@waterx/perp';
180
+ const argumentsTypes = [
181
+ null,
182
+ null
183
+ ];
184
+ const parameterNames = ["marketConfig", "Cap"];
185
+ return (tx) => tx.moveCall({
186
+ package: packageAddress,
187
+ module: 'market_config',
188
+ function: 'unpause_market',
189
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
190
+ });
191
+ }
192
+ /** Adds a witness type to the request checklist. */
193
+ export function addRequestRule(options) {
194
+ const packageAddress = options.package ?? '@waterx/perp';
195
+ const argumentsTypes = [
196
+ null,
197
+ null
198
+ ];
199
+ const parameterNames = ["marketConfig", "Cap"];
200
+ return (tx) => tx.moveCall({
201
+ package: packageAddress,
202
+ module: 'market_config',
203
+ function: 'add_request_rule',
204
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
205
+ typeArguments: options.typeArguments
206
+ });
207
+ }
208
+ /** Removes a witness type from the request checklist. */
209
+ export function removeRequestRule(options) {
210
+ const packageAddress = options.package ?? '@waterx/perp';
211
+ const argumentsTypes = [
212
+ null,
213
+ null
214
+ ];
215
+ const parameterNames = ["marketConfig", "Cap"];
216
+ return (tx) => tx.moveCall({
217
+ package: packageAddress,
218
+ module: 'market_config',
219
+ function: 'remove_request_rule',
220
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
221
+ typeArguments: options.typeArguments
222
+ });
223
+ }
224
+ /** Locks a position by ID (prevents reentrancy). */
225
+ export function lockPosition(options) {
226
+ const packageAddress = options.package ?? '@waterx/perp';
227
+ const argumentsTypes = [
228
+ null,
229
+ 'u64'
230
+ ];
231
+ const parameterNames = ["m", "positionId"];
232
+ return (tx) => tx.moveCall({
233
+ package: packageAddress,
234
+ module: 'market_config',
235
+ function: 'lock_position',
236
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
237
+ });
238
+ }
239
+ /** Unlocks a position at the tail of `execute`. */
240
+ export function unlockPosition(options) {
241
+ const packageAddress = options.package ?? '@waterx/perp';
242
+ const argumentsTypes = [
243
+ null,
244
+ 'u64'
245
+ ];
246
+ const parameterNames = ["m", "positionId"];
247
+ return (tx) => tx.moveCall({
248
+ package: packageAddress,
249
+ module: 'market_config',
250
+ function: 'unlock_position',
251
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
252
+ });
253
+ }
254
+ export function requestChecklist(options) {
255
+ const packageAddress = options.package ?? '@waterx/perp';
256
+ const argumentsTypes = [
257
+ null
258
+ ];
259
+ const parameterNames = ["m"];
260
+ return (tx) => tx.moveCall({
261
+ package: packageAddress,
262
+ module: 'market_config',
263
+ function: 'request_checklist',
264
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
265
+ });
266
+ }
267
+ export function marketConfigSymbol(options) {
268
+ const packageAddress = options.package ?? '@waterx/perp';
269
+ const argumentsTypes = [
270
+ null
271
+ ];
272
+ const parameterNames = ["m"];
273
+ return (tx) => tx.moveCall({
274
+ package: packageAddress,
275
+ module: 'market_config',
276
+ function: 'market_config_symbol',
277
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
278
+ });
279
+ }
280
+ export function marketConfigIsPaused(options) {
281
+ const packageAddress = options.package ?? '@waterx/perp';
282
+ const argumentsTypes = [
283
+ null
284
+ ];
285
+ const parameterNames = ["m"];
286
+ return (tx) => tx.moveCall({
287
+ package: packageAddress,
288
+ module: 'market_config',
289
+ function: 'market_config_is_paused',
290
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
291
+ });
292
+ }
293
+ export function marketConfigMaxLeverageBps(options) {
294
+ const packageAddress = options.package ?? '@waterx/perp';
295
+ const argumentsTypes = [
296
+ null
297
+ ];
298
+ const parameterNames = ["m"];
299
+ return (tx) => tx.moveCall({
300
+ package: packageAddress,
301
+ module: 'market_config',
302
+ function: 'market_config_max_leverage_bps',
303
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
304
+ });
305
+ }
306
+ export function marketConfigMinCollValue(options) {
307
+ const packageAddress = options.package ?? '@waterx/perp';
308
+ const argumentsTypes = [
309
+ null
310
+ ];
311
+ const parameterNames = ["m"];
312
+ return (tx) => tx.moveCall({
313
+ package: packageAddress,
314
+ module: 'market_config',
315
+ function: 'market_config_min_coll_value',
316
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
317
+ });
318
+ }
319
+ export function marketConfigTradingFee(options) {
320
+ const packageAddress = options.package ?? '@waterx/perp';
321
+ const argumentsTypes = [
322
+ null
323
+ ];
324
+ const parameterNames = ["m"];
325
+ return (tx) => tx.moveCall({
326
+ package: packageAddress,
327
+ module: 'market_config',
328
+ function: 'market_config_trading_fee',
329
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
330
+ });
331
+ }
332
+ export function marketConfigMaxImpactFee(options) {
333
+ const packageAddress = options.package ?? '@waterx/perp';
334
+ const argumentsTypes = [
335
+ null
336
+ ];
337
+ const parameterNames = ["m"];
338
+ return (tx) => tx.moveCall({
339
+ package: packageAddress,
340
+ module: 'market_config',
341
+ function: 'market_config_max_impact_fee',
342
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
343
+ });
344
+ }
345
+ export function marketConfigAllocatedLpExposureBps(options) {
346
+ const packageAddress = options.package ?? '@waterx/perp';
347
+ const argumentsTypes = [
348
+ null
349
+ ];
350
+ const parameterNames = ["m"];
351
+ return (tx) => tx.moveCall({
352
+ package: packageAddress,
353
+ module: 'market_config',
354
+ function: 'market_config_allocated_lp_exposure_bps',
355
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
356
+ });
357
+ }
358
+ export function marketConfigImpactFeeCurvature(options) {
359
+ const packageAddress = options.package ?? '@waterx/perp';
360
+ const argumentsTypes = [
361
+ null
362
+ ];
363
+ const parameterNames = ["m"];
364
+ return (tx) => tx.moveCall({
365
+ package: packageAddress,
366
+ module: 'market_config',
367
+ function: 'market_config_impact_fee_curvature',
368
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
369
+ });
370
+ }
371
+ export function marketConfigImpactFeeScale(options) {
372
+ const packageAddress = options.package ?? '@waterx/perp';
373
+ const argumentsTypes = [
374
+ null
375
+ ];
376
+ const parameterNames = ["m"];
377
+ return (tx) => tx.moveCall({
378
+ package: packageAddress,
379
+ module: 'market_config',
380
+ function: 'market_config_impact_fee_scale',
381
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
382
+ });
383
+ }
384
+ export function marketConfigMaintenanceMargin(options) {
385
+ const packageAddress = options.package ?? '@waterx/perp';
386
+ const argumentsTypes = [
387
+ null
388
+ ];
389
+ const parameterNames = ["m"];
390
+ return (tx) => tx.moveCall({
391
+ package: packageAddress,
392
+ module: 'market_config',
393
+ function: 'market_config_maintenance_margin',
394
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
395
+ });
396
+ }
397
+ export function marketConfigMaxLongOi(options) {
398
+ const packageAddress = options.package ?? '@waterx/perp';
399
+ const argumentsTypes = [
400
+ null
401
+ ];
402
+ const parameterNames = ["m"];
403
+ return (tx) => tx.moveCall({
404
+ package: packageAddress,
405
+ module: 'market_config',
406
+ function: 'market_config_max_long_oi',
407
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
408
+ });
409
+ }
410
+ export function marketConfigMaxShortOi(options) {
411
+ const packageAddress = options.package ?? '@waterx/perp';
412
+ const argumentsTypes = [
413
+ null
414
+ ];
415
+ const parameterNames = ["m"];
416
+ return (tx) => tx.moveCall({
417
+ package: packageAddress,
418
+ module: 'market_config',
419
+ function: 'market_config_max_short_oi',
420
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
421
+ });
422
+ }
423
+ export function marketConfigCooldownMs(options) {
424
+ const packageAddress = options.package ?? '@waterx/perp';
425
+ const argumentsTypes = [
426
+ null
427
+ ];
428
+ const parameterNames = ["m"];
429
+ return (tx) => tx.moveCall({
430
+ package: packageAddress,
431
+ module: 'market_config',
432
+ function: 'market_config_cooldown_ms',
433
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
434
+ });
435
+ }
436
+ export function marketConfigOrderPriceTick(options) {
437
+ const packageAddress = options.package ?? '@waterx/perp';
438
+ const argumentsTypes = [
439
+ null
440
+ ];
441
+ const parameterNames = ["m"];
442
+ return (tx) => tx.moveCall({
443
+ package: packageAddress,
444
+ module: 'market_config',
445
+ function: 'market_config_order_price_tick',
446
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
447
+ });
448
+ }
449
+ export function marketConfigMaxPreOrders(options) {
450
+ const packageAddress = options.package ?? '@waterx/perp';
451
+ const argumentsTypes = [
452
+ null
453
+ ];
454
+ const parameterNames = ["m"];
455
+ return (tx) => tx.moveCall({
456
+ package: packageAddress,
457
+ module: 'market_config',
458
+ function: 'market_config_max_pre_orders',
459
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
460
+ });
461
+ }
462
+ export function marketConfigBasicFundingRate(options) {
463
+ const packageAddress = options.package ?? '@waterx/perp';
464
+ const argumentsTypes = [
465
+ null
466
+ ];
467
+ const parameterNames = ["m"];
468
+ return (tx) => tx.moveCall({
469
+ package: packageAddress,
470
+ module: 'market_config',
471
+ function: 'market_config_basic_funding_rate',
472
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
473
+ });
474
+ }
475
+ export function marketConfigFundingIntervalMs(options) {
476
+ const packageAddress = options.package ?? '@waterx/perp';
477
+ const argumentsTypes = [
478
+ null
479
+ ];
480
+ const parameterNames = ["m"];
481
+ return (tx) => tx.moveCall({
482
+ package: packageAddress,
483
+ module: 'market_config',
484
+ function: 'market_config_funding_interval_ms',
485
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
486
+ });
487
+ }
488
+ export function marketConfigLongOi(options) {
489
+ const packageAddress = options.package ?? '@waterx/perp';
490
+ const argumentsTypes = [
491
+ null
492
+ ];
493
+ const parameterNames = ["m"];
494
+ return (tx) => tx.moveCall({
495
+ package: packageAddress,
496
+ module: 'market_config',
497
+ function: 'market_config_long_oi',
498
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
499
+ });
500
+ }
501
+ export function marketConfigShortOi(options) {
502
+ const packageAddress = options.package ?? '@waterx/perp';
503
+ const argumentsTypes = [
504
+ null
505
+ ];
506
+ const parameterNames = ["m"];
507
+ return (tx) => tx.moveCall({
508
+ package: packageAddress,
509
+ module: 'market_config',
510
+ function: 'market_config_short_oi',
511
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
512
+ });
513
+ }
514
+ export function marketConfigLongAvgEntryPrice(options) {
515
+ const packageAddress = options.package ?? '@waterx/perp';
516
+ const argumentsTypes = [
517
+ null
518
+ ];
519
+ const parameterNames = ["m"];
520
+ return (tx) => tx.moveCall({
521
+ package: packageAddress,
522
+ module: 'market_config',
523
+ function: 'market_config_long_avg_entry_price',
524
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
525
+ });
526
+ }
527
+ export function marketConfigShortAvgEntryPrice(options) {
528
+ const packageAddress = options.package ?? '@waterx/perp';
529
+ const argumentsTypes = [
530
+ null
531
+ ];
532
+ const parameterNames = ["m"];
533
+ return (tx) => tx.moveCall({
534
+ package: packageAddress,
535
+ module: 'market_config',
536
+ function: 'market_config_short_avg_entry_price',
537
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
538
+ });
539
+ }
540
+ export function marketConfigNextPositionId(options) {
541
+ const packageAddress = options.package ?? '@waterx/perp';
542
+ const argumentsTypes = [
543
+ null
544
+ ];
545
+ const parameterNames = ["m"];
546
+ return (tx) => tx.moveCall({
547
+ package: packageAddress,
548
+ module: 'market_config',
549
+ function: 'market_config_next_position_id',
550
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
551
+ });
552
+ }
553
+ export function marketConfigNextOrderId(options) {
554
+ const packageAddress = options.package ?? '@waterx/perp';
555
+ const argumentsTypes = [
556
+ null
557
+ ];
558
+ const parameterNames = ["m"];
559
+ return (tx) => tx.moveCall({
560
+ package: packageAddress,
561
+ module: 'market_config',
562
+ function: 'market_config_next_order_id',
563
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
564
+ });
565
+ }
566
+ export function marketConfigCumulativeFundingSign(options) {
567
+ const packageAddress = options.package ?? '@waterx/perp';
568
+ const argumentsTypes = [
569
+ null
570
+ ];
571
+ const parameterNames = ["m"];
572
+ return (tx) => tx.moveCall({
573
+ package: packageAddress,
574
+ module: 'market_config',
575
+ function: 'market_config_cumulative_funding_sign',
576
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
577
+ });
578
+ }
579
+ export function marketConfigCumulativeFundingIndex(options) {
580
+ const packageAddress = options.package ?? '@waterx/perp';
581
+ const argumentsTypes = [
582
+ null
583
+ ];
584
+ const parameterNames = ["m"];
585
+ return (tx) => tx.moveCall({
586
+ package: packageAddress,
587
+ module: 'market_config',
588
+ function: 'market_config_cumulative_funding_index',
589
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
590
+ });
591
+ }
592
+ export function marketConfigLastFundingTimestamp(options) {
593
+ const packageAddress = options.package ?? '@waterx/perp';
594
+ const argumentsTypes = [
595
+ null
596
+ ];
597
+ const parameterNames = ["m"];
598
+ return (tx) => tx.moveCall({
599
+ package: packageAddress,
600
+ module: 'market_config',
601
+ function: 'market_config_last_funding_timestamp',
602
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
603
+ });
604
+ }
605
+ export function incrementNextPositionId(options) {
606
+ const packageAddress = options.package ?? '@waterx/perp';
607
+ const argumentsTypes = [
608
+ null
609
+ ];
610
+ const parameterNames = ["m"];
611
+ return (tx) => tx.moveCall({
612
+ package: packageAddress,
613
+ module: 'market_config',
614
+ function: 'increment_next_position_id',
615
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
616
+ });
617
+ }
618
+ export function incrementNextOrderId(options) {
619
+ const packageAddress = options.package ?? '@waterx/perp';
620
+ const argumentsTypes = [
621
+ null
622
+ ];
623
+ const parameterNames = ["m"];
624
+ return (tx) => tx.moveCall({
625
+ package: packageAddress,
626
+ module: 'market_config',
627
+ function: 'increment_next_order_id',
628
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
629
+ });
630
+ }
631
+ export function increaseOi(options) {
632
+ const packageAddress = options.package ?? '@waterx/perp';
633
+ const argumentsTypes = [
634
+ null,
635
+ 'bool',
636
+ null,
637
+ null
638
+ ];
639
+ const parameterNames = ["m", "isLong", "amount", "entryPrice"];
640
+ return (tx) => tx.moveCall({
641
+ package: packageAddress,
642
+ module: 'market_config',
643
+ function: 'increase_oi',
644
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
645
+ });
646
+ }
647
+ export function decreaseOi(options) {
648
+ const packageAddress = options.package ?? '@waterx/perp';
649
+ const argumentsTypes = [
650
+ null,
651
+ 'bool',
652
+ null
653
+ ];
654
+ const parameterNames = ["m", "isLong", "amount"];
655
+ return (tx) => tx.moveCall({
656
+ package: packageAddress,
657
+ module: 'market_config',
658
+ function: 'decrease_oi',
659
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
660
+ });
661
+ }
662
+ export function unrealizedTraderPnl(options) {
663
+ const packageAddress = options.package ?? '@waterx/perp';
664
+ const argumentsTypes = [
665
+ null,
666
+ null
667
+ ];
668
+ const parameterNames = ["m", "currentPrice"];
669
+ return (tx) => tx.moveCall({
670
+ package: packageAddress,
671
+ module: 'market_config',
672
+ function: 'unrealized_trader_pnl',
673
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
674
+ });
675
+ }
676
+ export function lpEquityUsd(options) {
677
+ const packageAddress = options.package ?? '@waterx/perp';
678
+ const argumentsTypes = [
679
+ null,
680
+ null,
681
+ null
682
+ ];
683
+ const parameterNames = ["m", "poolTvlUsd", "currentPrice"];
684
+ return (tx) => tx.moveCall({
685
+ package: packageAddress,
686
+ module: 'market_config',
687
+ function: 'lp_equity_usd',
688
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
689
+ });
690
+ }
691
+ export function updateFundingState(options) {
692
+ const packageAddress = options.package ?? '@waterx/perp';
693
+ const argumentsTypes = [
694
+ null,
695
+ 'bool',
696
+ null,
697
+ 'u64'
698
+ ];
699
+ const parameterNames = ["m", "sign", "index", "timestamp"];
700
+ return (tx) => tx.moveCall({
701
+ package: packageAddress,
702
+ module: 'market_config',
703
+ function: 'update_funding_state',
704
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
705
+ });
706
+ }
707
+ /**
708
+ * Updates the funding rate for a market. Called by keeper at regular intervals
709
+ * (default 1 hour). Returns true if the funding rate was updated.
710
+ */
711
+ export function updateFundingRate(options) {
712
+ const packageAddress = options.package ?? '@waterx/perp';
713
+ const argumentsTypes = [
714
+ null,
715
+ '0x2::object::ID',
716
+ 'u64',
717
+ null,
718
+ null
719
+ ];
720
+ const parameterNames = ["market", "marketId", "nowMs", "basePrice", "tvlUsd"];
721
+ return (tx) => tx.moveCall({
722
+ package: packageAddress,
723
+ module: 'market_config',
724
+ function: 'update_funding_rate',
725
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
726
+ });
727
+ }
728
+ /**
729
+ * Calculates the funding rate based on LP exposure relative to TVL. OI values
730
+ * should be in USD (caller converts via base_price). Returns (sign, rate) where
731
+ * sign=true means longs pay.
732
+ */
733
+ export function calculateFundingRate(options) {
734
+ const packageAddress = options.package ?? '@waterx/perp';
735
+ const argumentsTypes = [
736
+ null,
737
+ null,
738
+ null,
739
+ null
740
+ ];
741
+ const parameterNames = ["longOiUsd", "shortOiUsd", "basicRate", "tvlUsd"];
742
+ return (tx) => tx.moveCall({
743
+ package: packageAddress,
744
+ module: 'market_config',
745
+ function: 'calculate_funding_rate',
746
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
747
+ });
748
+ }
749
+ export function assertValidImpactFeeConfig(options) {
750
+ const packageAddress = options.package ?? '@waterx/perp';
751
+ const argumentsTypes = [
752
+ null,
753
+ 'u64',
754
+ 'u64',
755
+ 'u64'
756
+ ];
757
+ const parameterNames = ["maxImpactFee", "allocatedLpExposureBps", "impactFeeCurvature", "impactFeeScale"];
758
+ return (tx) => tx.moveCall({
759
+ package: packageAddress,
760
+ module: 'market_config',
761
+ function: 'assert_valid_impact_fee_config',
762
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
763
+ });
764
+ }
765
+ export function weightedAveragePrice(options) {
766
+ const packageAddress = options.package ?? '@waterx/perp';
767
+ const argumentsTypes = [
768
+ null,
769
+ null,
770
+ null,
771
+ null
772
+ ];
773
+ const parameterNames = ["currentSize", "currentAveragePrice", "addSize", "addPrice"];
774
+ return (tx) => tx.moveCall({
775
+ package: packageAddress,
776
+ module: 'market_config',
777
+ function: 'weighted_average_price',
778
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
779
+ });
780
+ }