@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.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/dist/src/client.d.ts +109 -0
- package/dist/src/client.js +197 -0
- package/dist/src/config.d.ts +229 -0
- package/dist/src/config.js +107 -0
- package/dist/src/constants.d.ts +64 -0
- package/dist/src/constants.js +71 -0
- package/dist/src/fetch.d.ts +144 -0
- package/dist/src/fetch.js +419 -0
- package/dist/src/generated/bucket_v2_framework/account.d.ts +107 -0
- package/dist/src/generated/bucket_v2_framework/account.js +129 -0
- package/dist/src/generated/bucket_v2_framework/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/bucket_v2_framework/deps/std/type_name.js +19 -0
- package/dist/src/generated/bucket_v2_framework/deps/sui/balance.d.ts +12 -0
- package/dist/src/generated/bucket_v2_framework/deps/sui/balance.js +14 -0
- package/dist/src/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/bucket_v2_framework/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/bucket_v2_framework/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/bucket_v2_framework/double.d.ts +384 -0
- package/dist/src/generated/bucket_v2_framework/double.js +466 -0
- package/dist/src/generated/bucket_v2_framework/float.d.ts +364 -0
- package/dist/src/generated/bucket_v2_framework/float.js +440 -0
- package/dist/src/generated/bucket_v2_framework/liability.d.ts +197 -0
- package/dist/src/generated/bucket_v2_framework/liability.js +205 -0
- package/dist/src/generated/bucket_v2_framework/linked_table.d.ts +384 -0
- package/dist/src/generated/bucket_v2_framework/linked_table.js +382 -0
- package/dist/src/generated/bucket_v2_framework/sheet.d.ts +424 -0
- package/dist/src/generated/bucket_v2_framework/sheet.js +344 -0
- package/dist/src/generated/native_custody/custody_vault.d.ts +572 -0
- package/dist/src/generated/native_custody/custody_vault.js +483 -0
- package/dist/src/generated/native_custody/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/src/generated/native_custody/deps/bucket_v2_framework/float.js +10 -0
- package/dist/src/generated/native_custody/deps/bucket_v2_framework/liability.d.ts +11 -0
- package/dist/src/generated/native_custody/deps/bucket_v2_framework/liability.js +13 -0
- package/dist/src/generated/native_custody/deps/bucket_v2_framework/sheet.d.ts +49 -0
- package/dist/src/generated/native_custody/deps/bucket_v2_framework/sheet.js +18 -0
- package/dist/src/generated/native_custody/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/native_custody/deps/std/type_name.js +19 -0
- package/dist/src/generated/native_custody/deps/sui/balance.d.ts +12 -0
- package/dist/src/generated/native_custody/deps/sui/balance.js +14 -0
- package/dist/src/generated/native_custody/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/native_custody/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/native_custody/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/native_custody/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/native_custody/events.d.ts +36 -0
- package/dist/src/generated/native_custody/events.js +36 -0
- package/dist/src/generated/pyth_sponsor_rule/deps/sui/balance.d.ts +12 -0
- package/dist/src/generated/pyth_sponsor_rule/deps/sui/balance.js +14 -0
- package/dist/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.d.ts +68 -0
- package/dist/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.js +74 -0
- package/dist/src/generated/utils/index.d.ts +30 -0
- package/dist/src/generated/utils/index.js +157 -0
- package/dist/src/generated/waterx_account/account.d.ts +1818 -0
- package/dist/src/generated/waterx_account/account.js +1723 -0
- package/dist/src/generated/waterx_account/deps/bucket_v2_framework/liability.d.ts +11 -0
- package/dist/src/generated/waterx_account/deps/bucket_v2_framework/liability.js +13 -0
- package/dist/src/generated/waterx_account/deps/bucket_v2_framework/sheet.d.ts +49 -0
- package/dist/src/generated/waterx_account/deps/bucket_v2_framework/sheet.js +18 -0
- package/dist/src/generated/waterx_account/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/waterx_account/deps/std/type_name.js +19 -0
- package/dist/src/generated/waterx_account/deps/sui/balance.d.ts +12 -0
- package/dist/src/generated/waterx_account/deps/sui/balance.js +14 -0
- package/dist/src/generated/waterx_account/deps/sui/object_table.d.ts +17 -0
- package/dist/src/generated/waterx_account/deps/sui/object_table.js +19 -0
- package/dist/src/generated/waterx_account/deps/sui/table.d.ts +29 -0
- package/dist/src/generated/waterx_account/deps/sui/table.js +31 -0
- package/dist/src/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/waterx_account/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/waterx_account/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/waterx_account/direct_rule.d.ts +77 -0
- package/dist/src/generated/waterx_account/direct_rule.js +78 -0
- package/dist/src/generated/waterx_account/events.d.ts +180 -0
- package/dist/src/generated/waterx_account/events.js +156 -0
- package/dist/src/generated/waterx_account/version.d.ts +10 -0
- package/dist/src/generated/waterx_account/version.js +8 -0
- package/dist/src/generated/waterx_credit/credit_registry.d.ts +708 -0
- package/dist/src/generated/waterx_credit/credit_registry.js +658 -0
- package/dist/src/generated/waterx_credit/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/waterx_credit/deps/std/type_name.js +19 -0
- package/dist/src/generated/waterx_credit/deps/sui/table.d.ts +29 -0
- package/dist/src/generated/waterx_credit/deps/sui/table.js +31 -0
- package/dist/src/generated/waterx_credit/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/waterx_credit/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/waterx_credit/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/waterx_credit/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/waterx_credit/limited_supply.d.ts +107 -0
- package/dist/src/generated/waterx_credit/limited_supply.js +131 -0
- package/dist/src/generated/waterx_oracle/aggregator.d.ts +211 -0
- package/dist/src/generated/waterx_oracle/aggregator.js +213 -0
- package/dist/src/generated/waterx_oracle/collector.d.ts +119 -0
- package/dist/src/generated/waterx_oracle/collector.js +105 -0
- package/dist/src/generated/waterx_oracle/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/src/generated/waterx_oracle/deps/bucket_v2_framework/float.js +10 -0
- package/dist/src/generated/waterx_oracle/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/waterx_oracle/deps/std/type_name.js +19 -0
- package/dist/src/generated/waterx_oracle/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/waterx_oracle/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/waterx_oracle/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/waterx_oracle/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/waterx_oracle/oracle.d.ts +298 -0
- package/dist/src/generated/waterx_oracle/oracle.js +323 -0
- package/dist/src/generated/waterx_oracle/version.d.ts +10 -0
- package/dist/src/generated/waterx_oracle/version.js +8 -0
- package/dist/src/generated/waterx_perp/account_data.d.ts +269 -0
- package/dist/src/generated/waterx_perp/account_data.js +284 -0
- package/dist/src/generated/waterx_perp/admin.d.ts +19 -0
- package/dist/src/generated/waterx_perp/admin.js +22 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/double.d.ts +8 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/double.js +10 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/float.js +10 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/liability.d.ts +11 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/liability.js +13 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.d.ts +8 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.js +18 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.d.ts +49 -0
- package/dist/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.js +18 -0
- package/dist/src/generated/waterx_perp/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/waterx_perp/deps/std/type_name.js +19 -0
- package/dist/src/generated/waterx_perp/deps/sui/balance.d.ts +15 -0
- package/dist/src/generated/waterx_perp/deps/sui/balance.js +17 -0
- package/dist/src/generated/waterx_perp/deps/sui/coin.d.ts +14 -0
- package/dist/src/generated/waterx_perp/deps/sui/coin.js +15 -0
- package/dist/src/generated/waterx_perp/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/waterx_perp/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/waterx_perp/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/waterx_perp/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/waterx_perp/events.d.ts +1283 -0
- package/dist/src/generated/waterx_perp/events.js +1018 -0
- package/dist/src/generated/waterx_perp/global_config.d.ts +775 -0
- package/dist/src/generated/waterx_perp/global_config.js +836 -0
- package/dist/src/generated/waterx_perp/keyed_big_vector.d.ts +553 -0
- package/dist/src/generated/waterx_perp/keyed_big_vector.js +554 -0
- package/dist/src/generated/waterx_perp/lp_pool.d.ts +1648 -0
- package/dist/src/generated/waterx_perp/lp_pool.js +1521 -0
- package/dist/src/generated/waterx_perp/market_config.d.ts +715 -0
- package/dist/src/generated/waterx_perp/market_config.js +780 -0
- package/dist/src/generated/waterx_perp/math.d.ts +63 -0
- package/dist/src/generated/waterx_perp/math.js +64 -0
- package/dist/src/generated/waterx_perp/memo.d.ts +251 -0
- package/dist/src/generated/waterx_perp/memo.js +323 -0
- package/dist/src/generated/waterx_perp/order_book.d.ts +290 -0
- package/dist/src/generated/waterx_perp/order_book.js +329 -0
- package/dist/src/generated/waterx_perp/position.d.ts +1005 -0
- package/dist/src/generated/waterx_perp/position.js +1103 -0
- package/dist/src/generated/waterx_perp/request.d.ts +544 -0
- package/dist/src/generated/waterx_perp/request.js +541 -0
- package/dist/src/generated/waterx_perp/response.d.ts +247 -0
- package/dist/src/generated/waterx_perp/response.js +280 -0
- package/dist/src/generated/waterx_perp/trading.d.ts +2821 -0
- package/dist/src/generated/waterx_perp/trading.js +2372 -0
- package/dist/src/generated/waterx_perp/version.d.ts +10 -0
- package/dist/src/generated/waterx_perp/version.js +8 -0
- package/dist/src/generated/waterx_perp/witness.d.ts +18 -0
- package/dist/src/generated/waterx_perp/witness.js +21 -0
- package/dist/src/generated/waterx_perp_view/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/waterx_perp_view/deps/std/type_name.js +19 -0
- package/dist/src/generated/waterx_perp_view/view.d.ts +447 -0
- package/dist/src/generated/waterx_perp_view/view.js +414 -0
- package/dist/src/generated/waterx_pyth_rule/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/waterx_pyth_rule/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/waterx_pyth_rule/pyth_rule.d.ts +90 -0
- package/dist/src/generated/waterx_pyth_rule/pyth_rule.js +72 -0
- package/dist/src/generated/waterx_referral/deps/sui/table.d.ts +29 -0
- package/dist/src/generated/waterx_referral/deps/sui/table.js +31 -0
- package/dist/src/generated/waterx_referral/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/waterx_referral/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/waterx_referral/referral_table.d.ts +171 -0
- package/dist/src/generated/waterx_referral/referral_table.js +192 -0
- package/dist/src/generated/waterx_staking/deps/bucket_v2_framework/double.d.ts +8 -0
- package/dist/src/generated/waterx_staking/deps/bucket_v2_framework/double.js +10 -0
- package/dist/src/generated/waterx_staking/deps/sui/balance.d.ts +12 -0
- package/dist/src/generated/waterx_staking/deps/sui/balance.js +14 -0
- package/dist/src/generated/waterx_staking/deps/sui/table.d.ts +29 -0
- package/dist/src/generated/waterx_staking/deps/sui/table.js +31 -0
- package/dist/src/generated/waterx_staking/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/waterx_staking/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/waterx_staking/waterx_staking.d.ts +746 -0
- package/dist/src/generated/waterx_staking/waterx_staking.js +731 -0
- package/dist/src/generated/waterx_staking/witness.d.ts +16 -0
- package/dist/src/generated/waterx_staking/witness.js +18 -0
- package/dist/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.d.ts +8 -0
- package/dist/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.js +18 -0
- package/dist/src/generated/withdrawal_queue/deps/std/type_name.d.ts +17 -0
- package/dist/src/generated/withdrawal_queue/deps/std/type_name.js +19 -0
- package/dist/src/generated/withdrawal_queue/deps/sui/balance.d.ts +12 -0
- package/dist/src/generated/withdrawal_queue/deps/sui/balance.js +14 -0
- package/dist/src/generated/withdrawal_queue/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/withdrawal_queue/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/withdrawal_queue/withdrawal_queue.d.ts +483 -0
- package/dist/src/generated/withdrawal_queue/withdrawal_queue.js +480 -0
- package/dist/src/generated/wlp/wlp.d.ts +28 -0
- package/dist/src/generated/wlp/wlp.js +32 -0
- package/dist/src/generated/wormhole_bridge/deps/sui/table.d.ts +29 -0
- package/dist/src/generated/wormhole_bridge/deps/sui/table.js +31 -0
- package/dist/src/generated/wormhole_bridge/deps/sui/vec_map.d.ts +36 -0
- package/dist/src/generated/wormhole_bridge/deps/sui/vec_map.js +27 -0
- package/dist/src/generated/wormhole_bridge/deps/sui/vec_set.d.ts +16 -0
- package/dist/src/generated/wormhole_bridge/deps/sui/vec_set.js +19 -0
- package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.d.ts +12 -0
- package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.js +9 -0
- package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.d.ts +14 -0
- package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.js +16 -0
- package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/set.d.ts +16 -0
- package/dist/src/generated/wormhole_bridge/deps/wormhole_sdk/set.js +15 -0
- package/dist/src/generated/wormhole_bridge/events.d.ts +32 -0
- package/dist/src/generated/wormhole_bridge/events.js +28 -0
- package/dist/src/generated/wormhole_bridge/wormhole_bridge.d.ts +498 -0
- package/dist/src/generated/wormhole_bridge/wormhole_bridge.js +494 -0
- package/dist/src/index.d.ts +28 -0
- package/dist/src/index.js +34 -0
- package/dist/src/tx-builders.d.ts +242 -0
- package/dist/src/tx-builders.js +320 -0
- package/dist/src/user/account.d.ts +129 -0
- package/dist/src/user/account.js +166 -0
- package/dist/src/user/credit.d.ts +135 -0
- package/dist/src/user/credit.js +255 -0
- package/dist/src/user/custody.d.ts +71 -0
- package/dist/src/user/custody.js +112 -0
- package/dist/src/user/index.d.ts +8 -0
- package/dist/src/user/index.js +8 -0
- package/dist/src/user/order.d.ts +89 -0
- package/dist/src/user/order.js +134 -0
- package/dist/src/user/referral.d.ts +21 -0
- package/dist/src/user/referral.js +41 -0
- package/dist/src/user/staking.d.ts +54 -0
- package/dist/src/user/staking.js +109 -0
- package/dist/src/user/trading.d.ts +119 -0
- package/dist/src/user/trading.js +262 -0
- package/dist/src/user/wlp.d.ts +58 -0
- package/dist/src/user/wlp.js +99 -0
- package/dist/src/utils/account-request.d.ts +9 -0
- package/dist/src/utils/account-request.js +17 -0
- package/dist/src/utils/config.d.ts +11 -0
- package/dist/src/utils/config.js +15 -0
- package/dist/src/utils/math.d.ts +201 -0
- package/dist/src/utils/math.js +343 -0
- package/dist/src/utils/pyth.d.ts +89 -0
- package/dist/src/utils/pyth.js +316 -0
- package/dist/src/utils/wormhole.d.ts +86 -0
- package/dist/src/utils/wormhole.js +154 -0
- 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
|
+
}
|