@waterx/sdk 2.1.0 → 2.3.1-dev.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 (231) hide show
  1. package/README.md +75 -169
  2. package/dist/src/client.d.ts +52 -2
  3. package/dist/src/client.js +76 -6
  4. package/dist/src/config.d.ts +57 -3
  5. package/dist/src/config.js +10 -4
  6. package/dist/src/constants.d.ts +6 -0
  7. package/dist/src/constants.js +6 -0
  8. package/dist/src/core/waterx-account.d.ts +31 -0
  9. package/dist/src/core/waterx-account.js +26 -0
  10. package/dist/src/fetch.d.ts +110 -0
  11. package/dist/src/fetch.js +149 -4
  12. package/dist/src/generated/bucket_v2_framework/account.d.ts +5 -5
  13. package/dist/src/generated/bucket_v2_framework/double.d.ts +77 -77
  14. package/dist/src/generated/bucket_v2_framework/float.d.ts +73 -73
  15. package/dist/src/generated/bucket_v2_framework/liability.d.ts +33 -33
  16. package/dist/src/generated/bucket_v2_framework/linked_table.d.ts +5 -5
  17. package/dist/src/generated/bucket_v2_framework/linked_table.js +2 -2
  18. package/dist/src/generated/bucket_v2_framework/sheet.d.ts +57 -57
  19. package/dist/src/generated/bucket_v2_framework/sheet.js +5 -11
  20. package/dist/src/generated/native_custody/custody_vault.d.ts +46 -32
  21. package/dist/src/generated/native_custody/custody_vault.js +19 -10
  22. package/dist/src/generated/native_custody/deps/bucket_v2_framework/sheet.js +1 -3
  23. package/dist/src/generated/native_custody/events.js +1 -2
  24. package/dist/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.d.ts +7 -7
  25. package/dist/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.js +1 -2
  26. package/dist/src/generated/utils/index.d.ts +7 -7
  27. package/dist/src/generated/utils/index.js +9 -6
  28. package/dist/src/generated/waterx_account/account.d.ts +124 -71
  29. package/dist/src/generated/waterx_account/account.js +64 -29
  30. package/dist/src/generated/waterx_account/deps/bucket_v2_framework/sheet.js +1 -3
  31. package/dist/src/generated/waterx_account/direct_rule.d.ts +5 -5
  32. package/dist/src/generated/waterx_account/events.d.ts +10 -0
  33. package/dist/src/generated/waterx_account/events.js +31 -50
  34. package/dist/src/generated/waterx_constant_rule/constant_rule.d.ts +68 -0
  35. package/dist/src/generated/waterx_constant_rule/constant_rule.js +59 -0
  36. package/dist/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  37. package/dist/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.js +10 -0
  38. package/dist/src/generated/waterx_constant_rule/deps/sui/vec_map.d.ts +36 -0
  39. package/dist/src/generated/waterx_constant_rule/deps/sui/vec_map.js +27 -0
  40. package/dist/src/generated/waterx_credit/credit_registry.d.ts +9 -9
  41. package/dist/src/generated/waterx_credit/credit_registry.js +1 -2
  42. package/dist/src/generated/waterx_credit/limited_supply.d.ts +17 -17
  43. package/dist/src/generated/waterx_oracle/aggregator.js +1 -2
  44. package/dist/src/generated/waterx_oracle/collector.d.ts +17 -17
  45. package/dist/src/generated/waterx_oracle/collector.js +1 -1
  46. package/dist/src/generated/waterx_oracle/oracle.d.ts +5 -5
  47. package/dist/src/generated/waterx_perp/account_data.d.ts +5 -5
  48. package/dist/src/generated/waterx_perp/account_data.js +1 -2
  49. package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.js +1 -3
  50. package/dist/src/generated/waterx_perp/events.d.ts +181 -181
  51. package/dist/src/generated/waterx_perp/events.js +87 -173
  52. package/dist/src/generated/waterx_perp/global_config.d.ts +3 -3
  53. package/dist/src/generated/waterx_perp/global_config.js +6 -12
  54. package/dist/src/generated/waterx_perp/keyed_big_vector.d.ts +9 -9
  55. package/dist/src/generated/waterx_perp/keyed_big_vector.js +1 -2
  56. package/dist/src/generated/waterx_perp/lp_pool.d.ts +115 -115
  57. package/dist/src/generated/waterx_perp/lp_pool.js +11 -22
  58. package/dist/src/generated/waterx_perp/market_config.d.ts +61 -43
  59. package/dist/src/generated/waterx_perp/market_config.js +29 -22
  60. package/dist/src/generated/waterx_perp/math.d.ts +7 -7
  61. package/dist/src/generated/waterx_perp/order_book.d.ts +47 -47
  62. package/dist/src/generated/waterx_perp/position.d.ts +99 -99
  63. package/dist/src/generated/waterx_perp/position.js +6 -12
  64. package/dist/src/generated/waterx_perp/request.d.ts +67 -67
  65. package/dist/src/generated/waterx_perp/request.js +2 -3
  66. package/dist/src/generated/waterx_perp/response.d.ts +35 -35
  67. package/dist/src/generated/waterx_perp/response.js +1 -2
  68. package/dist/src/generated/waterx_perp/trading.d.ts +303 -179
  69. package/dist/src/generated/waterx_perp/trading.js +99 -14
  70. package/dist/src/generated/waterx_perp_view/view.js +5 -10
  71. package/dist/src/generated/waterx_pyth_rule/pyth_rule.d.ts +5 -5
  72. package/dist/src/generated/waterx_pyth_rule/pyth_rule.js +1 -2
  73. package/dist/src/generated/waterx_referral/referral_table.d.ts +5 -5
  74. package/dist/src/generated/waterx_referral/referral_table.js +1 -2
  75. package/dist/src/generated/waterx_staking/waterx_staking.d.ts +19 -19
  76. package/dist/src/generated/waterx_staking/waterx_staking.js +10 -20
  77. package/dist/src/generated/waterx_supra_rule/deps/sui/vec_map.d.ts +36 -0
  78. package/dist/src/generated/waterx_supra_rule/deps/sui/vec_map.js +27 -0
  79. package/dist/src/generated/waterx_supra_rule/supra_rule.d.ts +158 -0
  80. package/dist/src/generated/waterx_supra_rule/supra_rule.js +148 -0
  81. package/dist/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.d.ts +8 -0
  82. package/dist/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.js +10 -0
  83. package/dist/src/generated/withdrawal_queue/deps/sui/vec_map.d.ts +36 -0
  84. package/dist/src/generated/withdrawal_queue/deps/sui/vec_map.js +27 -0
  85. package/dist/src/generated/withdrawal_queue/withdrawal_queue.d.ts +444 -4
  86. package/dist/src/generated/withdrawal_queue/withdrawal_queue.js +417 -4
  87. package/dist/src/generated/wormhole_bridge/wormhole_bridge.d.ts +214 -74
  88. package/dist/src/generated/wormhole_bridge/wormhole_bridge.js +158 -29
  89. package/dist/src/index.d.ts +4 -3
  90. package/dist/src/index.js +3 -2
  91. package/dist/src/prediction/account.d.ts +96 -0
  92. package/dist/src/prediction/account.js +230 -0
  93. package/dist/src/prediction/admin.d.ts +47 -0
  94. package/dist/src/prediction/admin.js +105 -0
  95. package/dist/src/prediction/bcs.d.ts +22 -0
  96. package/dist/src/prediction/bcs.js +240 -0
  97. package/dist/src/prediction/client.d.ts +75 -0
  98. package/dist/src/prediction/client.js +164 -0
  99. package/dist/src/prediction/config.d.ts +60 -0
  100. package/dist/src/prediction/config.js +75 -0
  101. package/dist/src/prediction/constants.d.ts +44 -0
  102. package/dist/src/prediction/constants.js +46 -0
  103. package/dist/src/prediction/fetch.d.ts +82 -0
  104. package/dist/src/prediction/fetch.js +270 -0
  105. package/dist/src/prediction/generated/bucket_v2_framework/account.d.ts +100 -0
  106. package/dist/src/prediction/generated/bucket_v2_framework/account.js +129 -0
  107. package/dist/src/prediction/generated/bucket_v2_framework/deps/std/type_name.d.ts +6 -0
  108. package/dist/src/prediction/generated/bucket_v2_framework/deps/std/type_name.js +19 -0
  109. package/dist/src/prediction/generated/bucket_v2_framework/deps/sui/balance.d.ts +10 -0
  110. package/dist/src/prediction/generated/bucket_v2_framework/deps/sui/balance.js +14 -0
  111. package/dist/src/prediction/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
  112. package/dist/src/prediction/generated/bucket_v2_framework/deps/sui/vec_map.js +27 -0
  113. package/dist/src/prediction/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
  114. package/dist/src/prediction/generated/bucket_v2_framework/deps/sui/vec_set.js +19 -0
  115. package/dist/src/prediction/generated/bucket_v2_framework/double.d.ts +382 -0
  116. package/dist/src/prediction/generated/bucket_v2_framework/double.js +466 -0
  117. package/dist/src/prediction/generated/bucket_v2_framework/float.d.ts +362 -0
  118. package/dist/src/prediction/generated/bucket_v2_framework/float.js +440 -0
  119. package/dist/src/prediction/generated/bucket_v2_framework/liability.d.ts +193 -0
  120. package/dist/src/prediction/generated/bucket_v2_framework/liability.js +205 -0
  121. package/dist/src/prediction/generated/bucket_v2_framework/linked_table.d.ts +384 -0
  122. package/dist/src/prediction/generated/bucket_v2_framework/linked_table.js +382 -0
  123. package/dist/src/prediction/generated/bucket_v2_framework/sheet.d.ts +344 -0
  124. package/dist/src/prediction/generated/bucket_v2_framework/sheet.js +338 -0
  125. package/dist/src/prediction/generated/utils/index.d.ts +30 -0
  126. package/dist/src/prediction/generated/utils/index.js +160 -0
  127. package/dist/src/prediction/generated/waterx_account/account.d.ts +1589 -0
  128. package/dist/src/prediction/generated/waterx_account/account.js +1758 -0
  129. package/dist/src/prediction/generated/waterx_account/deps/bucket_v2_framework/liability.d.ts +7 -0
  130. package/dist/src/prediction/generated/waterx_account/deps/bucket_v2_framework/liability.js +13 -0
  131. package/dist/src/prediction/generated/waterx_account/deps/bucket_v2_framework/sheet.d.ts +7 -0
  132. package/dist/src/prediction/generated/waterx_account/deps/bucket_v2_framework/sheet.js +16 -0
  133. package/dist/src/prediction/generated/waterx_account/deps/std/type_name.d.ts +6 -0
  134. package/dist/src/prediction/generated/waterx_account/deps/std/type_name.js +19 -0
  135. package/dist/src/prediction/generated/waterx_account/deps/sui/balance.d.ts +10 -0
  136. package/dist/src/prediction/generated/waterx_account/deps/sui/balance.js +14 -0
  137. package/dist/src/prediction/generated/waterx_account/deps/sui/object_table.d.ts +12 -0
  138. package/dist/src/prediction/generated/waterx_account/deps/sui/object_table.js +19 -0
  139. package/dist/src/prediction/generated/waterx_account/deps/sui/table.d.ts +24 -0
  140. package/dist/src/prediction/generated/waterx_account/deps/sui/table.js +31 -0
  141. package/dist/src/prediction/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
  142. package/dist/src/prediction/generated/waterx_account/deps/sui/vec_map.js +27 -0
  143. package/dist/src/prediction/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
  144. package/dist/src/prediction/generated/waterx_account/deps/sui/vec_set.js +19 -0
  145. package/dist/src/prediction/generated/waterx_account/direct_rule.d.ts +75 -0
  146. package/dist/src/prediction/generated/waterx_account/direct_rule.js +78 -0
  147. package/dist/src/prediction/generated/waterx_account/events.d.ts +33 -0
  148. package/dist/src/prediction/generated/waterx_account/events.js +137 -0
  149. package/dist/src/prediction/generated/waterx_account/version.d.ts +10 -0
  150. package/dist/src/prediction/generated/waterx_account/version.js +8 -0
  151. package/dist/src/prediction/generated/waterx_prediction/account_data.d.ts +327 -0
  152. package/dist/src/prediction/generated/waterx_prediction/account_data.js +405 -0
  153. package/dist/src/prediction/generated/waterx_prediction/admin.d.ts +5 -0
  154. package/dist/src/prediction/generated/waterx_prediction/admin.js +9 -0
  155. package/dist/src/prediction/generated/waterx_prediction/bet_sharing.d.ts +60 -0
  156. package/dist/src/prediction/generated/waterx_prediction/bet_sharing.js +83 -0
  157. package/dist/src/prediction/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  158. package/dist/src/prediction/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.js +18 -0
  159. package/dist/src/prediction/generated/waterx_prediction/deps/sui/balance.d.ts +10 -0
  160. package/dist/src/prediction/generated/waterx_prediction/deps/sui/balance.js +14 -0
  161. package/dist/src/prediction/generated/waterx_prediction/deps/sui/table.d.ts +24 -0
  162. package/dist/src/prediction/generated/waterx_prediction/deps/sui/table.js +31 -0
  163. package/dist/src/prediction/generated/waterx_prediction/deps/sui/vec_set.d.ts +16 -0
  164. package/dist/src/prediction/generated/waterx_prediction/deps/sui/vec_set.js +19 -0
  165. package/dist/src/prediction/generated/waterx_prediction/events.d.ts +22 -0
  166. package/dist/src/prediction/generated/waterx_prediction/events.js +179 -0
  167. package/dist/src/prediction/generated/waterx_prediction/global_config.d.ts +116 -0
  168. package/dist/src/prediction/generated/waterx_prediction/global_config.js +141 -0
  169. package/dist/src/prediction/generated/waterx_prediction/order.d.ts +200 -0
  170. package/dist/src/prediction/generated/waterx_prediction/order.js +284 -0
  171. package/dist/src/prediction/generated/waterx_prediction/outcome.d.ts +58 -0
  172. package/dist/src/prediction/generated/waterx_prediction/outcome.js +73 -0
  173. package/dist/src/prediction/generated/waterx_prediction/position.d.ts +160 -0
  174. package/dist/src/prediction/generated/waterx_prediction/position.js +214 -0
  175. package/dist/src/prediction/generated/waterx_prediction/version.d.ts +10 -0
  176. package/dist/src/prediction/generated/waterx_prediction/version.js +8 -0
  177. package/dist/src/prediction/generated/waterx_prediction/view.d.ts +353 -0
  178. package/dist/src/prediction/generated/waterx_prediction/view.js +432 -0
  179. package/dist/src/prediction/generated/waterx_prediction/waterx_prediction.d.ts +1698 -0
  180. package/dist/src/prediction/generated/waterx_prediction/waterx_prediction.js +1733 -0
  181. package/dist/src/prediction/gift-link.d.ts +6 -0
  182. package/dist/src/prediction/gift-link.js +5 -0
  183. package/dist/src/prediction/gift.d.ts +223 -0
  184. package/dist/src/prediction/gift.js +451 -0
  185. package/dist/src/prediction/index.d.ts +29 -0
  186. package/dist/src/prediction/index.js +21 -0
  187. package/dist/src/prediction/prediction.d.ts +104 -0
  188. package/dist/src/prediction/prediction.js +317 -0
  189. package/dist/src/prediction/tx-builders.d.ts +44 -0
  190. package/dist/src/prediction/tx-builders.js +52 -0
  191. package/dist/src/prediction/types.d.ts +93 -0
  192. package/dist/src/prediction/types.js +1 -0
  193. package/dist/src/prediction/user/account.d.ts +2 -0
  194. package/dist/src/prediction/user/account.js +1 -0
  195. package/dist/src/prediction/user/admin.d.ts +6 -0
  196. package/dist/src/prediction/user/admin.js +3 -0
  197. package/dist/src/prediction/user/gift.d.ts +2 -0
  198. package/dist/src/prediction/user/gift.js +1 -0
  199. package/dist/src/prediction/user/index.d.ts +5 -0
  200. package/dist/src/prediction/user/index.js +3 -0
  201. package/dist/src/prediction/user/keeper.d.ts +2 -0
  202. package/dist/src/prediction/user/keeper.js +1 -0
  203. package/dist/src/prediction/user/order.d.ts +2 -0
  204. package/dist/src/prediction/user/order.js +1 -0
  205. package/dist/src/prediction/user/position.d.ts +2 -0
  206. package/dist/src/prediction/user/position.js +1 -0
  207. package/dist/src/prediction/utils/bcs.d.ts +1 -0
  208. package/dist/src/prediction/utils/bcs.js +1 -0
  209. package/dist/src/prediction/utils/index.d.ts +1 -0
  210. package/dist/src/prediction/utils/index.js +1 -0
  211. package/dist/src/prediction/utils.d.ts +30 -0
  212. package/dist/src/prediction/utils.js +177 -0
  213. package/dist/src/sdk.d.ts +18 -0
  214. package/dist/src/sdk.js +17 -0
  215. package/dist/src/tx-builders.d.ts +54 -0
  216. package/dist/src/tx-builders.js +141 -0
  217. package/dist/src/unified-client.d.ts +407 -0
  218. package/dist/src/unified-client.js +123 -0
  219. package/dist/src/user/account.d.ts +27 -0
  220. package/dist/src/user/account.js +34 -8
  221. package/dist/src/user/credit.d.ts +8 -14
  222. package/dist/src/user/credit.js +9 -23
  223. package/dist/src/user/custody.d.ts +4 -18
  224. package/dist/src/user/custody.js +14 -25
  225. package/dist/src/utils/consolidate-balance.d.ts +37 -0
  226. package/dist/src/utils/consolidate-balance.js +89 -0
  227. package/dist/src/utils/math.d.ts +86 -0
  228. package/dist/src/utils/math.js +100 -0
  229. package/dist/src/utils/pyth.d.ts +35 -3
  230. package/dist/src/utils/pyth.js +145 -14
  231. package/package.json +129 -34
@@ -10,21 +10,10 @@ import { MoveStruct, normalizeMoveArguments } from "../utils/index.js";
10
10
  import { bcs } from '@mysten/sui/bcs';
11
11
  import * as type_name from "./deps/std/type_name.js";
12
12
  import * as float from "./deps/bucket_v2_framework/float.js";
13
- import * as float_1 from "./deps/bucket_v2_framework/float.js";
14
- import * as float_2 from "./deps/bucket_v2_framework/float.js";
15
- import * as float_3 from "./deps/bucket_v2_framework/float.js";
16
- import * as float_4 from "./deps/bucket_v2_framework/float.js";
17
13
  import * as vec_set from "./deps/sui/vec_set.js";
18
14
  import * as coin from "./deps/sui/coin.js";
19
- import * as type_name_1 from "./deps/std/type_name.js";
20
- import * as float_5 from "./deps/bucket_v2_framework/float.js";
21
15
  import * as keyed_big_vector from "./keyed_big_vector.js";
22
16
  import * as balance from "./deps/sui/balance.js";
23
- import * as type_name_2 from "./deps/std/type_name.js";
24
- import * as keyed_big_vector_1 from "./keyed_big_vector.js";
25
- import * as float_6 from "./deps/bucket_v2_framework/float.js";
26
- import * as float_7 from "./deps/bucket_v2_framework/float.js";
27
- import * as float_8 from "./deps/bucket_v2_framework/float.js";
28
17
  const $moduleName = '@waterx/perp::lp_pool';
29
18
  export const TokenPoolInfo = new MoveStruct({ name: `${$moduleName}::TokenPoolInfo`, fields: {
30
19
  /** Token type. */
@@ -52,9 +41,9 @@ export const TokenPoolInfo = new MoveStruct({ name: `${$moduleName}::TokenPoolIn
52
41
  /** Per-interval borrow rate at utilization 0 (Float, 1e9 scale). */
53
42
  basic_borrow_rate_0: float.Float,
54
43
  /** Per-interval borrow rate at utilization threshold_0 (Float). */
55
- basic_borrow_rate_1: float_1.Float,
44
+ basic_borrow_rate_1: float.Float,
56
45
  /** Per-interval borrow rate at utilization threshold_1 (Float). */
57
- basic_borrow_rate_2: float_2.Float,
46
+ basic_borrow_rate_2: float.Float,
58
47
  utilization_threshold_0_bps: bcs.u64(),
59
48
  utilization_threshold_1_bps: bcs.u64(),
60
49
  borrow_interval_ms: bcs.u64(),
@@ -62,13 +51,13 @@ export const TokenPoolInfo = new MoveStruct({ name: `${$moduleName}::TokenPoolIn
62
51
  /** Liquidity amount in token units. */
63
52
  liquidity_amount: bcs.u64(),
64
53
  /** Value in USD. */
65
- value_usd: float_3.Float,
54
+ value_usd: float.Float,
66
55
  /** Reserved amount for open positions. */
67
56
  reserved_amount: bcs.u64(),
68
57
  /** Last borrow rate update timestamp. */
69
58
  last_borrow_timestamp: bcs.u64(),
70
59
  /** Cumulative borrow rate as Float (1e9 scale). */
71
- cumulative_borrow_rate: float_4.Float,
60
+ cumulative_borrow_rate: float.Float,
72
61
  /** Last timestamp when this token price was refreshed via oracle. */
73
62
  last_price_refresh_timestamp: bcs.u64()
74
63
  } });
@@ -83,11 +72,11 @@ export const WlpPool = new MoveStruct({ name: `${$moduleName}::WlpPool<phantom L
83
72
  /** LP token decimal. */
84
73
  lp_decimal: bcs.u8(),
85
74
  /** Supported token types. */
86
- token_types: bcs.vector(type_name_1.TypeName),
75
+ token_types: bcs.vector(type_name.TypeName),
87
76
  /** Token pool configs and states. */
88
77
  token_pools: bcs.vector(TokenPoolInfo),
89
78
  /** Total value locked in USD (Float). */
90
- tvl_usd: float_5.Float,
79
+ tvl_usd: float.Float,
91
80
  /** Redeem requests. */
92
81
  redeem_requests: keyed_big_vector.KeyedBigVector,
93
82
  /** Next redeem request ID. */
@@ -99,7 +88,7 @@ export const RedeemRequest = new MoveStruct({ name: `${$moduleName}::RedeemReque
99
88
  /** LP balance held pending settlement. */
100
89
  lp_balance: balance.Balance,
101
90
  /** Requested token type to receive. */
102
- token_type: type_name_2.TypeName,
91
+ token_type: type_name.TypeName,
103
92
  /** Request timestamp. */
104
93
  request_timestamp: bcs.u64()
105
94
  } });
@@ -108,17 +97,17 @@ export const WlpAum = new MoveStruct({ name: `${$moduleName}::WlpAum<phantom LP_
108
97
  /** WLP pool this AUM object prices. */
109
98
  pool_id: bcs.Address,
110
99
  /** Registered market PnL contributions keyed by market ID. */
111
- market_contributions: keyed_big_vector_1.KeyedBigVector,
100
+ market_contributions: keyed_big_vector.KeyedBigVector,
112
101
  /** Sum of registered markets where traders are in profit. */
113
- total_trader_profit_usd: float_6.Float,
102
+ total_trader_profit_usd: float.Float,
114
103
  /** Sum of registered markets where traders are in loss. */
115
- total_trader_loss_usd: float_7.Float
104
+ total_trader_loss_usd: float.Float
116
105
  } });
117
106
  export const AumMarketContribution = new MoveStruct({ name: `${$moduleName}::AumMarketContribution`, fields: {
118
107
  /** Whether the market's aggregate unrealized PnL is trader profit. */
119
108
  is_trader_profit: bcs.bool(),
120
109
  /** Absolute aggregate unrealized PnL in USD. */
121
- pnl_usd: float_8.Float,
110
+ pnl_usd: float.Float,
122
111
  /** Timestamp of the oracle price used to refresh this contribution. */
123
112
  last_refresh_timestamp: bcs.u64()
124
113
  } });
@@ -3,7 +3,7 @@
3
3
  **************************************************************/
4
4
  /** MarketConfig: per-market configuration, state, and funding rate logic. */
5
5
  import { MoveStruct, type RawTransactionArgument } from '../utils/index.ts';
6
- import { type Transaction } from '@mysten/sui/transactions';
6
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
7
7
  export declare const MarketConfig: MoveStruct<{
8
8
  id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
9
9
  /** Ticker symbol (e.g., `b"BTC_USD".to_string()`). Doubles as the oracle key. */
@@ -103,8 +103,8 @@ export interface NewMarketConfigArguments {
103
103
  minCollValue: RawTransactionArgument<number | bigint>;
104
104
  tradingFee: RawTransactionArgument<number | bigint>;
105
105
  maintenanceMargin: RawTransactionArgument<number | bigint>;
106
- maxLongOi: RawTransactionArgument<string>;
107
- maxShortOi: RawTransactionArgument<string>;
106
+ maxLongOi: TransactionArgument;
107
+ maxShortOi: TransactionArgument;
108
108
  cooldownMs: RawTransactionArgument<number | bigint>;
109
109
  basicFundingRate: RawTransactionArgument<number | bigint>;
110
110
  fundingIntervalMs: RawTransactionArgument<number | bigint>;
@@ -117,8 +117,8 @@ export interface NewMarketConfigOptions {
117
117
  minCollValue: RawTransactionArgument<number | bigint>,
118
118
  tradingFee: RawTransactionArgument<number | bigint>,
119
119
  maintenanceMargin: RawTransactionArgument<number | bigint>,
120
- maxLongOi: RawTransactionArgument<string>,
121
- maxShortOi: RawTransactionArgument<string>,
120
+ maxLongOi: TransactionArgument,
121
+ maxShortOi: TransactionArgument,
122
122
  cooldownMs: RawTransactionArgument<number | bigint>,
123
123
  basicFundingRate: RawTransactionArgument<number | bigint>,
124
124
  fundingIntervalMs: RawTransactionArgument<number | bigint>
@@ -144,7 +144,7 @@ export interface UpdateMarketConfigArguments {
144
144
  maxLongOi: RawTransactionArgument<number | bigint | null>;
145
145
  maxShortOi: RawTransactionArgument<number | bigint | null>;
146
146
  cooldownMs: RawTransactionArgument<number | bigint | null>;
147
- orderPriceTick: RawTransactionArgument<string | null>;
147
+ orderPriceTick: TransactionArgument;
148
148
  maxPreOrders: RawTransactionArgument<number | bigint | null>;
149
149
  basicFundingRate: RawTransactionArgument<number | bigint | null>;
150
150
  fundingIntervalMs: RawTransactionArgument<number | bigint | null>;
@@ -165,7 +165,7 @@ export interface UpdateMarketConfigOptions {
165
165
  maxLongOi: RawTransactionArgument<number | bigint | null>,
166
166
  maxShortOi: RawTransactionArgument<number | bigint | null>,
167
167
  cooldownMs: RawTransactionArgument<number | bigint | null>,
168
- orderPriceTick: RawTransactionArgument<string | null>,
168
+ orderPriceTick: TransactionArgument,
169
169
  maxPreOrders: RawTransactionArgument<number | bigint | null>,
170
170
  basicFundingRate: RawTransactionArgument<number | bigint | null>,
171
171
  fundingIntervalMs: RawTransactionArgument<number | bigint | null>
@@ -569,63 +569,65 @@ export declare function incrementNextOrderId(options: IncrementNextOrderIdOption
569
569
  export interface IncreaseOiArguments {
570
570
  m: RawTransactionArgument<string>;
571
571
  isLong: RawTransactionArgument<boolean>;
572
- amount: RawTransactionArgument<string>;
573
- entryPrice: RawTransactionArgument<string>;
572
+ amount: TransactionArgument;
573
+ entryPrice: TransactionArgument;
574
574
  }
575
575
  export interface IncreaseOiOptions {
576
576
  package?: string;
577
577
  arguments: IncreaseOiArguments | [
578
578
  m: RawTransactionArgument<string>,
579
579
  isLong: RawTransactionArgument<boolean>,
580
- amount: RawTransactionArgument<string>,
581
- entryPrice: RawTransactionArgument<string>
580
+ amount: TransactionArgument,
581
+ entryPrice: TransactionArgument
582
582
  ];
583
583
  }
584
584
  export declare function increaseOi(options: IncreaseOiOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
585
585
  export interface DecreaseOiArguments {
586
586
  m: RawTransactionArgument<string>;
587
587
  isLong: RawTransactionArgument<boolean>;
588
- amount: RawTransactionArgument<string>;
588
+ amount: TransactionArgument;
589
+ reducedAvgEntryPrice: TransactionArgument;
589
590
  }
590
591
  export interface DecreaseOiOptions {
591
592
  package?: string;
592
593
  arguments: DecreaseOiArguments | [
593
594
  m: RawTransactionArgument<string>,
594
595
  isLong: RawTransactionArgument<boolean>,
595
- amount: RawTransactionArgument<string>
596
+ amount: TransactionArgument,
597
+ reducedAvgEntryPrice: TransactionArgument
596
598
  ];
597
599
  }
598
600
  export declare function decreaseOi(options: DecreaseOiOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
599
601
  export interface UnrealizedTraderPnlArguments {
600
602
  m: RawTransactionArgument<string>;
601
- currentPrice: RawTransactionArgument<string>;
603
+ currentPrice: TransactionArgument;
602
604
  }
603
605
  export interface UnrealizedTraderPnlOptions {
604
606
  package?: string;
605
607
  arguments: UnrealizedTraderPnlArguments | [
606
608
  m: RawTransactionArgument<string>,
607
- currentPrice: RawTransactionArgument<string>
609
+ currentPrice: TransactionArgument
608
610
  ];
609
611
  }
610
612
  export declare function unrealizedTraderPnl(options: UnrealizedTraderPnlOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
611
613
  export interface LpEquityUsdArguments {
612
614
  m: RawTransactionArgument<string>;
613
- poolTvlUsd: RawTransactionArgument<string>;
614
- currentPrice: RawTransactionArgument<string>;
615
+ poolTvlUsd: TransactionArgument;
616
+ currentPrice: TransactionArgument;
615
617
  }
616
618
  export interface LpEquityUsdOptions {
617
619
  package?: string;
618
620
  arguments: LpEquityUsdArguments | [
619
621
  m: RawTransactionArgument<string>,
620
- poolTvlUsd: RawTransactionArgument<string>,
621
- currentPrice: RawTransactionArgument<string>
622
+ poolTvlUsd: TransactionArgument,
623
+ currentPrice: TransactionArgument
622
624
  ];
623
625
  }
624
626
  export declare function lpEquityUsd(options: LpEquityUsdOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
625
627
  export interface UpdateFundingStateArguments {
626
628
  m: RawTransactionArgument<string>;
627
629
  sign: RawTransactionArgument<boolean>;
628
- index: RawTransactionArgument<string>;
630
+ index: TransactionArgument;
629
631
  timestamp: RawTransactionArgument<number | bigint>;
630
632
  }
631
633
  export interface UpdateFundingStateOptions {
@@ -633,7 +635,7 @@ export interface UpdateFundingStateOptions {
633
635
  arguments: UpdateFundingStateArguments | [
634
636
  m: RawTransactionArgument<string>,
635
637
  sign: RawTransactionArgument<boolean>,
636
- index: RawTransactionArgument<string>,
638
+ index: TransactionArgument,
637
639
  timestamp: RawTransactionArgument<number | bigint>
638
640
  ];
639
641
  }
@@ -642,8 +644,8 @@ export interface UpdateFundingRateArguments {
642
644
  market: RawTransactionArgument<string>;
643
645
  marketId: RawTransactionArgument<string>;
644
646
  nowMs: RawTransactionArgument<number | bigint>;
645
- basePrice: RawTransactionArgument<string>;
646
- tvlUsd: RawTransactionArgument<string>;
647
+ basePrice: TransactionArgument;
648
+ tvlUsd: TransactionArgument;
647
649
  }
648
650
  export interface UpdateFundingRateOptions {
649
651
  package?: string;
@@ -651,8 +653,8 @@ export interface UpdateFundingRateOptions {
651
653
  market: RawTransactionArgument<string>,
652
654
  marketId: RawTransactionArgument<string>,
653
655
  nowMs: RawTransactionArgument<number | bigint>,
654
- basePrice: RawTransactionArgument<string>,
655
- tvlUsd: RawTransactionArgument<string>
656
+ basePrice: TransactionArgument,
657
+ tvlUsd: TransactionArgument
656
658
  ];
657
659
  }
658
660
  /**
@@ -661,18 +663,18 @@ export interface UpdateFundingRateOptions {
661
663
  */
662
664
  export declare function updateFundingRate(options: UpdateFundingRateOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
663
665
  export interface CalculateFundingRateArguments {
664
- longOiUsd: RawTransactionArgument<string>;
665
- shortOiUsd: RawTransactionArgument<string>;
666
- basicRate: RawTransactionArgument<string>;
667
- tvlUsd: RawTransactionArgument<string>;
666
+ longOiUsd: TransactionArgument;
667
+ shortOiUsd: TransactionArgument;
668
+ basicRate: TransactionArgument;
669
+ tvlUsd: TransactionArgument;
668
670
  }
669
671
  export interface CalculateFundingRateOptions {
670
672
  package?: string;
671
673
  arguments: CalculateFundingRateArguments | [
672
- longOiUsd: RawTransactionArgument<string>,
673
- shortOiUsd: RawTransactionArgument<string>,
674
- basicRate: RawTransactionArgument<string>,
675
- tvlUsd: RawTransactionArgument<string>
674
+ longOiUsd: TransactionArgument,
675
+ shortOiUsd: TransactionArgument,
676
+ basicRate: TransactionArgument,
677
+ tvlUsd: TransactionArgument
676
678
  ];
677
679
  }
678
680
  /**
@@ -682,7 +684,7 @@ export interface CalculateFundingRateOptions {
682
684
  */
683
685
  export declare function calculateFundingRate(options: CalculateFundingRateOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
684
686
  export interface AssertValidImpactFeeConfigArguments {
685
- maxImpactFee: RawTransactionArgument<string>;
687
+ maxImpactFee: TransactionArgument;
686
688
  allocatedLpExposureBps: RawTransactionArgument<number | bigint>;
687
689
  impactFeeCurvature: RawTransactionArgument<number | bigint>;
688
690
  impactFeeScale: RawTransactionArgument<number | bigint>;
@@ -690,7 +692,7 @@ export interface AssertValidImpactFeeConfigArguments {
690
692
  export interface AssertValidImpactFeeConfigOptions {
691
693
  package?: string;
692
694
  arguments: AssertValidImpactFeeConfigArguments | [
693
- maxImpactFee: RawTransactionArgument<string>,
695
+ maxImpactFee: TransactionArgument,
694
696
  allocatedLpExposureBps: RawTransactionArgument<number | bigint>,
695
697
  impactFeeCurvature: RawTransactionArgument<number | bigint>,
696
698
  impactFeeScale: RawTransactionArgument<number | bigint>
@@ -698,18 +700,34 @@ export interface AssertValidImpactFeeConfigOptions {
698
700
  }
699
701
  export declare function assertValidImpactFeeConfig(options: AssertValidImpactFeeConfigOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
700
702
  export interface WeightedAveragePriceArguments {
701
- currentSize: RawTransactionArgument<string>;
702
- currentAveragePrice: RawTransactionArgument<string>;
703
- addSize: RawTransactionArgument<string>;
704
- addPrice: RawTransactionArgument<string>;
703
+ currentSize: TransactionArgument;
704
+ currentAveragePrice: TransactionArgument;
705
+ addSize: TransactionArgument;
706
+ addPrice: TransactionArgument;
705
707
  }
706
708
  export interface WeightedAveragePriceOptions {
707
709
  package?: string;
708
710
  arguments: WeightedAveragePriceArguments | [
709
- currentSize: RawTransactionArgument<string>,
710
- currentAveragePrice: RawTransactionArgument<string>,
711
- addSize: RawTransactionArgument<string>,
712
- addPrice: RawTransactionArgument<string>
711
+ currentSize: TransactionArgument,
712
+ currentAveragePrice: TransactionArgument,
713
+ addSize: TransactionArgument,
714
+ addPrice: TransactionArgument
713
715
  ];
714
716
  }
715
717
  export declare function weightedAveragePrice(options: WeightedAveragePriceOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
718
+ export interface AveragePriceAfterDecreaseArguments {
719
+ currentSize: TransactionArgument;
720
+ currentAveragePrice: TransactionArgument;
721
+ reduceSize: TransactionArgument;
722
+ reducePrice: TransactionArgument;
723
+ }
724
+ export interface AveragePriceAfterDecreaseOptions {
725
+ package?: string;
726
+ arguments: AveragePriceAfterDecreaseArguments | [
727
+ currentSize: TransactionArgument,
728
+ currentAveragePrice: TransactionArgument,
729
+ reduceSize: TransactionArgument,
730
+ reducePrice: TransactionArgument
731
+ ];
732
+ }
733
+ export declare function averagePriceAfterDecrease(options: AveragePriceAfterDecreaseOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
@@ -5,18 +5,8 @@
5
5
  import { MoveStruct, normalizeMoveArguments } from "../utils/index.js";
6
6
  import { bcs } from '@mysten/sui/bcs';
7
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
8
  import * as type_name from "./deps/std/type_name.js";
15
9
  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
10
  import * as double from "./deps/bucket_v2_framework/double.js";
21
11
  const $moduleName = '@waterx/perp::market_config';
22
12
  export const MarketConfig = new MoveStruct({ name: `${$moduleName}::MarketConfig`, fields: {
@@ -32,7 +22,7 @@ export const MarketConfig = new MoveStruct({ name: `${$moduleName}::MarketConfig
32
22
  /** Base trading fee as Float rate (e.g. 0.0005 = 5 bps). */
33
23
  trading_fee: float.Float,
34
24
  /** Maximum additional impact fee as Float rate. */
35
- max_impact_fee: float_1.Float,
25
+ max_impact_fee: float.Float,
36
26
  /** Share of LP TVL allocated to net exposure before impact hits max, in bps. */
37
27
  allocated_lp_exposure_bps: bcs.u64(),
38
28
  /** Curvature exponent for the impact fee curve. */
@@ -40,15 +30,15 @@ export const MarketConfig = new MoveStruct({ name: `${$moduleName}::MarketConfig
40
30
  /** Scale divisor applied to the exposure ratio before curvature. */
41
31
  impact_fee_scale: bcs.u64(),
42
32
  /** Maintenance margin rate as Float (e.g. 0.015 = 150 bps). */
43
- maintenance_margin: float_2.Float,
33
+ maintenance_margin: float.Float,
44
34
  /** Maximum long open interest as Float (in base tokens). */
45
- max_long_oi: float_3.Float,
35
+ max_long_oi: float.Float,
46
36
  /** Maximum short open interest as Float (in base tokens). */
47
- max_short_oi: float_4.Float,
37
+ max_short_oi: float.Float,
48
38
  /** Cooldown between position updates in ms. */
49
39
  cooldown_ms: bcs.u64(),
50
40
  /** Bucket size for order book trigger price normalization. */
51
- order_price_tick: float_5.Float,
41
+ order_price_tick: float.Float,
52
42
  /**
53
43
  * Maximum number of TP / SL pre-orders reservable against a single unfilled main
54
44
  * order. Defaults to `DEFAULT_MAX_PRE_ORDERS`; admin may tune via
@@ -56,7 +46,7 @@ export const MarketConfig = new MoveStruct({ name: `${$moduleName}::MarketConfig
56
46
  */
57
47
  max_pre_orders: bcs.u64(),
58
48
  /** Basic funding rate per interval (Float, typically ~0.01% = 1 bps). */
59
- basic_funding_rate: float_6.Float,
49
+ basic_funding_rate: float.Float,
60
50
  /** Funding interval in milliseconds (default 3600000 = 1 hour). */
61
51
  funding_interval_ms: bcs.u64(),
62
52
  /** Required witness types before execution. */
@@ -64,13 +54,13 @@ export const MarketConfig = new MoveStruct({ name: `${$moduleName}::MarketConfig
64
54
  /** Prevents reentrancy: locked during the request→execute lifecycle. */
65
55
  position_locker: vec_set.VecSet(bcs.u64()),
66
56
  /** Current long open interest as Float. */
67
- long_oi: float_7.Float,
57
+ long_oi: float.Float,
68
58
  /** Current short open interest as Float. */
69
- short_oi: float_8.Float,
59
+ short_oi: float.Float,
70
60
  /** Aggregate long average entry price. */
71
- long_avg_entry_price: float_9.Float,
61
+ long_avg_entry_price: float.Float,
72
62
  /** Aggregate short average entry price. */
73
- short_avg_entry_price: float_10.Float,
63
+ short_avg_entry_price: float.Float,
74
64
  /** Next position ID counter. */
75
65
  next_position_id: bcs.u64(),
76
66
  /** Next order ID counter. */
@@ -130,7 +120,7 @@ export function updateMarketConfig(options) {
130
120
  '0x1::option::Option<u128>',
131
121
  '0x1::option::Option<u128>',
132
122
  '0x1::option::Option<u64>',
133
- '0x1::option::Option<null>',
123
+ null,
134
124
  '0x1::option::Option<u64>',
135
125
  '0x1::option::Option<u128>',
136
126
  '0x1::option::Option<u64>'
@@ -649,9 +639,10 @@ export function decreaseOi(options) {
649
639
  const argumentsTypes = [
650
640
  null,
651
641
  'bool',
642
+ null,
652
643
  null
653
644
  ];
654
- const parameterNames = ["m", "isLong", "amount"];
645
+ const parameterNames = ["m", "isLong", "amount", "reducedAvgEntryPrice"];
655
646
  return (tx) => tx.moveCall({
656
647
  package: packageAddress,
657
648
  module: 'market_config',
@@ -778,3 +769,19 @@ export function weightedAveragePrice(options) {
778
769
  arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
779
770
  });
780
771
  }
772
+ export function averagePriceAfterDecrease(options) {
773
+ const packageAddress = options.package ?? '@waterx/perp';
774
+ const argumentsTypes = [
775
+ null,
776
+ null,
777
+ null,
778
+ null
779
+ ];
780
+ const parameterNames = ["currentSize", "currentAveragePrice", "reduceSize", "reducePrice"];
781
+ return (tx) => tx.moveCall({
782
+ package: packageAddress,
783
+ module: 'market_config',
784
+ function: 'average_price_after_decrease',
785
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
786
+ });
787
+ }
@@ -5,19 +5,19 @@
5
5
  * Math utilities for WaterX Perp using bucket_v2_framework::float. All price/rate
6
6
  * calculations use Float (1e9) or Double (1e18).
7
7
  */
8
- import { type Transaction } from '@mysten/sui/transactions';
8
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
9
9
  import { type RawTransactionArgument } from '../utils/index.ts';
10
10
  export interface AmountToUsdArguments {
11
11
  amount: RawTransactionArgument<number | bigint>;
12
12
  tokenDecimal: RawTransactionArgument<number>;
13
- price: RawTransactionArgument<string>;
13
+ price: TransactionArgument;
14
14
  }
15
15
  export interface AmountToUsdOptions {
16
16
  package?: string;
17
17
  arguments: AmountToUsdArguments | [
18
18
  amount: RawTransactionArgument<number | bigint>,
19
19
  tokenDecimal: RawTransactionArgument<number>,
20
- price: RawTransactionArgument<string>
20
+ price: TransactionArgument
21
21
  ];
22
22
  }
23
23
  /**
@@ -27,16 +27,16 @@ export interface AmountToUsdOptions {
27
27
  */
28
28
  export declare function amountToUsd(options: AmountToUsdOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
29
29
  export interface UsdToAmountArguments {
30
- usd: RawTransactionArgument<string>;
30
+ usd: TransactionArgument;
31
31
  tokenDecimal: RawTransactionArgument<number>;
32
- price: RawTransactionArgument<string>;
32
+ price: TransactionArgument;
33
33
  }
34
34
  export interface UsdToAmountOptions {
35
35
  package?: string;
36
36
  arguments: UsdToAmountArguments | [
37
- usd: RawTransactionArgument<string>,
37
+ usd: TransactionArgument,
38
38
  tokenDecimal: RawTransactionArgument<number>,
39
- price: RawTransactionArgument<string>
39
+ price: TransactionArgument
40
40
  ];
41
41
  }
42
42
  /** Converts a USD value (Float) to a token amount. Returns u64 raw amount. */