@waterx/sdk 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/account/account-request.d.ts +9 -0
- package/dist/cjs/src/account/account-request.js +20 -0
- package/dist/cjs/src/account/account.d.ts +158 -0
- package/dist/cjs/src/account/account.js +238 -0
- package/dist/cjs/src/account/client.d.ts +42 -0
- package/dist/cjs/src/account/client.js +18 -0
- package/dist/cjs/src/account/config.d.ts +151 -0
- package/dist/cjs/src/account/config.js +9 -0
- package/dist/cjs/src/account/constants.d.ts +5 -0
- package/dist/cjs/src/account/constants.js +8 -0
- package/dist/cjs/src/account/fetch/referral.d.ts +15 -0
- package/dist/cjs/src/account/fetch/referral.js +56 -0
- package/dist/cjs/src/account/fetch/simulate.d.ts +34 -0
- package/dist/cjs/src/account/fetch/simulate.js +49 -0
- package/dist/cjs/src/account/funding/balance.d.ts +32 -0
- package/dist/cjs/src/account/funding/balance.js +100 -0
- package/dist/cjs/src/account/funding/consolidate.d.ts +46 -0
- package/dist/cjs/src/account/funding/consolidate.js +143 -0
- package/dist/cjs/src/account/funding/credit.d.ts +129 -0
- package/dist/cjs/src/account/funding/credit.js +252 -0
- package/dist/cjs/src/account/funding/custody.d.ts +57 -0
- package/dist/cjs/src/account/funding/custody.js +139 -0
- package/dist/cjs/src/account/funding/wormhole.d.ts +86 -0
- package/dist/cjs/src/account/funding/wormhole.js +166 -0
- package/dist/cjs/src/account/index.d.ts +29 -0
- package/dist/cjs/src/account/index.js +45 -0
- package/dist/cjs/src/account/referral.d.ts +21 -0
- package/dist/cjs/src/account/referral.js +78 -0
- package/dist/cjs/src/account/waterx-account.d.ts +31 -0
- package/dist/cjs/src/account/waterx-account.js +29 -0
- package/dist/cjs/src/base-client.d.ts +74 -0
- package/dist/cjs/src/base-client.js +101 -0
- package/dist/cjs/src/constants.d.ts +32 -0
- package/dist/cjs/src/constants.js +41 -0
- package/dist/cjs/src/generated/bucket_v2_framework/account.d.ts +107 -0
- package/dist/cjs/src/generated/bucket_v2_framework/account.js +141 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/bucket_v2_framework/double.d.ts +384 -0
- package/dist/cjs/src/generated/bucket_v2_framework/double.js +504 -0
- package/dist/cjs/src/generated/bucket_v2_framework/float.d.ts +364 -0
- package/dist/cjs/src/generated/bucket_v2_framework/float.js +476 -0
- package/dist/cjs/src/generated/bucket_v2_framework/liability.d.ts +171 -0
- package/dist/cjs/src/generated/bucket_v2_framework/liability.js +192 -0
- package/dist/cjs/src/generated/bucket_v2_framework/linked_table.d.ts +384 -0
- package/dist/cjs/src/generated/bucket_v2_framework/linked_table.js +405 -0
- package/dist/cjs/src/generated/bucket_v2_framework/sheet.d.ts +424 -0
- package/dist/cjs/src/generated/bucket_v2_framework/sheet.js +395 -0
- package/dist/cjs/src/generated/native_custody/custody_vault.d.ts +586 -0
- package/dist/cjs/src/generated/native_custody/custody_vault.js +555 -0
- package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/float.js +13 -0
- package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/liability.d.ts +11 -0
- package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/liability.js +16 -0
- package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/sheet.d.ts +49 -0
- package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/sheet.js +52 -0
- package/dist/cjs/src/generated/native_custody/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/native_custody/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/native_custody/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/native_custody/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/native_custody/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/native_custody/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/native_custody/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/native_custody/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/native_custody/events.d.ts +36 -0
- package/dist/cjs/src/generated/native_custody/events.js +71 -0
- package/dist/cjs/src/generated/pyth_sponsor_rule/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/pyth_sponsor_rule/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.d.ts +68 -0
- package/dist/cjs/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.js +113 -0
- package/dist/cjs/src/generated/utils/index.d.ts +30 -0
- package/dist/cjs/src/generated/utils/index.js +168 -0
- package/dist/cjs/src/generated/waterx_account/account.d.ts +1906 -0
- package/dist/cjs/src/generated/waterx_account/account.js +1929 -0
- package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/liability.d.ts +11 -0
- package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/liability.js +16 -0
- package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/sheet.d.ts +49 -0
- package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/sheet.js +52 -0
- package/dist/cjs/src/generated/waterx_account/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/waterx_account/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/object_table.d.ts +17 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/object_table.js +22 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/table.d.ts +29 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/table.js +34 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_account/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_account/direct_rule.d.ts +77 -0
- package/dist/cjs/src/generated/waterx_account/direct_rule.js +83 -0
- package/dist/cjs/src/generated/waterx_account/events.d.ts +190 -0
- package/dist/cjs/src/generated/waterx_account/events.js +173 -0
- package/dist/cjs/src/generated/waterx_account/version.d.ts +10 -0
- package/dist/cjs/src/generated/waterx_account/version.js +11 -0
- package/dist/cjs/src/generated/waterx_constant_rule/constant_rule.d.ts +68 -0
- package/dist/cjs/src/generated/waterx_constant_rule/constant_rule.js +97 -0
- package/dist/cjs/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.js +13 -0
- package/dist/cjs/src/generated/waterx_constant_rule/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_constant_rule/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_credit/credit_registry.d.ts +708 -0
- package/dist/cjs/src/generated/waterx_credit/credit_registry.js +728 -0
- package/dist/cjs/src/generated/waterx_credit/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/waterx_credit/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/waterx_credit/deps/sui/table.d.ts +29 -0
- package/dist/cjs/src/generated/waterx_credit/deps/sui/table.js +34 -0
- package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_credit/limited_supply.d.ts +107 -0
- package/dist/cjs/src/generated/waterx_credit/limited_supply.js +143 -0
- package/dist/cjs/src/generated/waterx_oracle/aggregator.d.ts +211 -0
- package/dist/cjs/src/generated/waterx_oracle/aggregator.js +258 -0
- package/dist/cjs/src/generated/waterx_oracle/collector.d.ts +119 -0
- package/dist/cjs/src/generated/waterx_oracle/collector.js +147 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/bucket_v2_framework/float.js +13 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_oracle/oracle.d.ts +304 -0
- package/dist/cjs/src/generated/waterx_oracle/oracle.js +381 -0
- package/dist/cjs/src/generated/waterx_oracle/version.d.ts +10 -0
- package/dist/cjs/src/generated/waterx_oracle/version.js +11 -0
- package/dist/cjs/src/generated/waterx_perp/account_data.d.ts +269 -0
- package/dist/cjs/src/generated/waterx_perp/account_data.js +340 -0
- package/dist/cjs/src/generated/waterx_perp/admin.d.ts +19 -0
- package/dist/cjs/src/generated/waterx_perp/admin.js +26 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/double.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/double.js +13 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/float.js +13 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/liability.d.ts +11 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/liability.js +16 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.js +21 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.d.ts +49 -0
- package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.js +52 -0
- package/dist/cjs/src/generated/waterx_perp/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/waterx_perp/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/balance.d.ts +15 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/balance.js +20 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/coin.d.ts +14 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/coin.js +51 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_perp/events.d.ts +1283 -0
- package/dist/cjs/src/generated/waterx_perp/events.js +990 -0
- package/dist/cjs/src/generated/waterx_perp/global_config.d.ts +775 -0
- package/dist/cjs/src/generated/waterx_perp/global_config.js +918 -0
- package/dist/cjs/src/generated/waterx_perp/keyed_big_vector.d.ts +553 -0
- package/dist/cjs/src/generated/waterx_perp/keyed_big_vector.js +626 -0
- package/dist/cjs/src/generated/waterx_perp/lp_pool.d.ts +1648 -0
- package/dist/cjs/src/generated/waterx_perp/lp_pool.js +1630 -0
- package/dist/cjs/src/generated/waterx_perp/market_config.d.ts +733 -0
- package/dist/cjs/src/generated/waterx_perp/market_config.js +871 -0
- package/dist/cjs/src/generated/waterx_perp/math.d.ts +63 -0
- package/dist/cjs/src/generated/waterx_perp/math.js +70 -0
- package/dist/cjs/src/generated/waterx_perp/memo.d.ts +251 -0
- package/dist/cjs/src/generated/waterx_perp/memo.js +360 -0
- package/dist/cjs/src/generated/waterx_perp/order_book.d.ts +290 -0
- package/dist/cjs/src/generated/waterx_perp/order_book.js +388 -0
- package/dist/cjs/src/generated/waterx_perp/position.d.ts +1005 -0
- package/dist/cjs/src/generated/waterx_perp/position.js +1200 -0
- package/dist/cjs/src/generated/waterx_perp/request.d.ts +544 -0
- package/dist/cjs/src/generated/waterx_perp/request.js +609 -0
- package/dist/cjs/src/generated/waterx_perp/response.d.ts +247 -0
- package/dist/cjs/src/generated/waterx_perp/response.js +331 -0
- package/dist/cjs/src/generated/waterx_perp/trading.d.ts +2945 -0
- package/dist/cjs/src/generated/waterx_perp/trading.js +2616 -0
- package/dist/cjs/src/generated/waterx_perp/version.d.ts +10 -0
- package/dist/cjs/src/generated/waterx_perp/version.js +11 -0
- package/dist/cjs/src/generated/waterx_perp/witness.d.ts +18 -0
- package/dist/cjs/src/generated/waterx_perp/witness.js +25 -0
- package/dist/cjs/src/generated/waterx_perp_view/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/waterx_perp_view/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/waterx_perp_view/view.d.ts +447 -0
- package/dist/cjs/src/generated/waterx_perp_view/view.js +459 -0
- package/dist/cjs/src/generated/waterx_prediction/account_data.d.ts +344 -0
- package/dist/cjs/src/generated/waterx_prediction/account_data.js +470 -0
- package/dist/cjs/src/generated/waterx_prediction/admin.d.ts +7 -0
- package/dist/cjs/src/generated/waterx_prediction/admin.js +12 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.js +21 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/sui/table.d.ts +29 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/sui/table.js +34 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_prediction/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_prediction/events.d.ts +288 -0
- package/dist/cjs/src/generated/waterx_prediction/events.js +254 -0
- package/dist/cjs/src/generated/waterx_prediction/global_config.d.ts +121 -0
- package/dist/cjs/src/generated/waterx_prediction/global_config.js +186 -0
- package/dist/cjs/src/generated/waterx_prediction/order.d.ts +233 -0
- package/dist/cjs/src/generated/waterx_prediction/order.js +339 -0
- package/dist/cjs/src/generated/waterx_prediction/outcome.d.ts +58 -0
- package/dist/cjs/src/generated/waterx_prediction/outcome.js +82 -0
- package/dist/cjs/src/generated/waterx_prediction/position.d.ts +175 -0
- package/dist/cjs/src/generated/waterx_prediction/position.js +232 -0
- package/dist/cjs/src/generated/waterx_prediction/version.d.ts +10 -0
- package/dist/cjs/src/generated/waterx_prediction/version.js +11 -0
- package/dist/cjs/src/generated/waterx_prediction/view.d.ts +418 -0
- package/dist/cjs/src/generated/waterx_prediction/view.js +492 -0
- package/dist/cjs/src/generated/waterx_prediction/waterx_prediction.d.ts +1858 -0
- package/dist/cjs/src/generated/waterx_prediction/waterx_prediction.js +1972 -0
- package/dist/cjs/src/generated/waterx_pyth_rule/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_pyth_rule/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_pyth_rule/pyth_rule.d.ts +192 -0
- package/dist/cjs/src/generated/waterx_pyth_rule/pyth_rule.js +214 -0
- package/dist/cjs/src/generated/waterx_referral/deps/sui/table.d.ts +29 -0
- package/dist/cjs/src/generated/waterx_referral/deps/sui/table.js +34 -0
- package/dist/cjs/src/generated/waterx_referral/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_referral/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_referral/referral_table.d.ts +171 -0
- package/dist/cjs/src/generated/waterx_referral/referral_table.js +239 -0
- package/dist/cjs/src/generated/waterx_staking/deps/bucket_v2_framework/double.d.ts +8 -0
- package/dist/cjs/src/generated/waterx_staking/deps/bucket_v2_framework/double.js +13 -0
- package/dist/cjs/src/generated/waterx_staking/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/waterx_staking/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/waterx_staking/deps/sui/table.d.ts +29 -0
- package/dist/cjs/src/generated/waterx_staking/deps/sui/table.js +34 -0
- package/dist/cjs/src/generated/waterx_staking/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_staking/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/waterx_staking/waterx_staking.d.ts +746 -0
- package/dist/cjs/src/generated/waterx_staking/waterx_staking.js +797 -0
- package/dist/cjs/src/generated/waterx_staking/witness.d.ts +16 -0
- package/dist/cjs/src/generated/waterx_staking/witness.js +21 -0
- package/dist/cjs/src/generated/waterx_supra_rule/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/waterx_supra_rule/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/waterx_supra_rule/supra_rule.d.ts +158 -0
- package/dist/cjs/src/generated/waterx_supra_rule/supra_rule.js +189 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.d.ts +8 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.js +13 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.d.ts +8 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.js +21 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/std/type_name.d.ts +17 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/std/type_name.js +22 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/sui/balance.d.ts +12 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/sui/balance.js +17 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/withdrawal_queue/withdrawal_queue.d.ts +923 -0
- package/dist/cjs/src/generated/withdrawal_queue/withdrawal_queue.js +965 -0
- package/dist/cjs/src/generated/wlp/wlp.d.ts +28 -0
- package/dist/cjs/src/generated/wlp/wlp.js +37 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/sui/table.d.ts +29 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/sui/table.js +34 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_map.d.ts +36 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_map.js +31 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_set.d.ts +16 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_set.js +22 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.d.ts +12 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.js +45 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.d.ts +14 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.js +19 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/set.d.ts +16 -0
- package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/set.js +51 -0
- package/dist/cjs/src/generated/wormhole_bridge/events.d.ts +32 -0
- package/dist/cjs/src/generated/wormhole_bridge/events.js +31 -0
- package/dist/cjs/src/generated/wormhole_bridge/wormhole_bridge.d.ts +638 -0
- package/dist/cjs/src/generated/wormhole_bridge/wormhole_bridge.js +692 -0
- package/dist/cjs/src/oracle/aggregate.d.ts +74 -0
- package/dist/cjs/src/oracle/aggregate.js +118 -0
- package/dist/cjs/src/oracle/config.d.ts +99 -0
- package/dist/cjs/src/oracle/config.js +26 -0
- package/dist/cjs/src/oracle/host.d.ts +32 -0
- package/dist/cjs/src/oracle/host.js +11 -0
- package/dist/cjs/src/oracle/index.d.ts +16 -0
- package/dist/cjs/src/oracle/index.js +31 -0
- package/dist/cjs/src/oracle/pyth.d.ts +52 -0
- package/dist/cjs/src/oracle/pyth.js +227 -0
- package/dist/cjs/src/oracle/rules/constant-rule.d.ts +9 -0
- package/dist/cjs/src/oracle/rules/constant-rule.js +17 -0
- package/dist/cjs/src/oracle/rules/pyth-rule.d.ts +11 -0
- package/dist/cjs/src/oracle/rules/pyth-rule.js +23 -0
- package/dist/cjs/src/oracle/rules/sponsor.d.ts +28 -0
- package/dist/cjs/src/oracle/rules/sponsor.js +52 -0
- package/dist/cjs/src/oracle/rules/supra-rule.d.ts +11 -0
- package/dist/cjs/src/oracle/rules/supra-rule.js +25 -0
- package/dist/cjs/src/perp/client.d.ts +78 -0
- package/dist/cjs/src/perp/client.js +112 -0
- package/dist/cjs/src/perp/config-view.d.ts +102 -0
- package/dist/cjs/src/perp/config-view.js +178 -0
- package/dist/cjs/src/perp/config.d.ts +126 -0
- package/dist/cjs/src/perp/config.js +119 -0
- package/dist/cjs/src/perp/constants.d.ts +49 -0
- package/dist/cjs/src/perp/constants.js +79 -0
- package/dist/cjs/src/perp/fetch/account.d.ts +43 -0
- package/dist/cjs/src/perp/fetch/account.js +69 -0
- package/dist/cjs/src/perp/fetch/bridge.d.ts +90 -0
- package/dist/cjs/src/perp/fetch/bridge.js +131 -0
- package/dist/cjs/src/perp/fetch/custody.d.ts +32 -0
- package/dist/cjs/src/perp/fetch/custody.js +66 -0
- package/dist/cjs/src/perp/fetch/market.d.ts +30 -0
- package/dist/cjs/src/perp/fetch/market.js +75 -0
- package/dist/cjs/src/perp/fetch/positions.d.ts +70 -0
- package/dist/cjs/src/perp/fetch/positions.js +195 -0
- package/dist/cjs/src/perp/fetch/simulate.d.ts +12 -0
- package/dist/cjs/src/perp/fetch/simulate.js +21 -0
- package/dist/cjs/src/perp/fetch.d.ts +23 -0
- package/dist/cjs/src/perp/fetch.js +39 -0
- package/dist/cjs/src/perp/index.d.ts +29 -0
- package/dist/cjs/src/perp/index.js +183 -0
- package/dist/cjs/src/perp/tx-builders/common.d.ts +83 -0
- package/dist/cjs/src/perp/tx-builders/common.js +76 -0
- package/dist/cjs/src/perp/tx-builders/credit.d.ts +65 -0
- package/dist/cjs/src/perp/tx-builders/credit.js +67 -0
- package/dist/cjs/src/perp/tx-builders/rewards.d.ts +30 -0
- package/dist/cjs/src/perp/tx-builders/rewards.js +37 -0
- package/dist/cjs/src/perp/tx-builders/trading.d.ts +51 -0
- package/dist/cjs/src/perp/tx-builders/trading.js +71 -0
- package/dist/cjs/src/perp/tx-builders/wlp.d.ts +90 -0
- package/dist/cjs/src/perp/tx-builders/wlp.js +126 -0
- package/dist/cjs/src/perp/tx-builders.d.ts +23 -0
- package/dist/cjs/src/perp/tx-builders.js +45 -0
- package/dist/cjs/src/perp/user/index.d.ts +8 -0
- package/dist/cjs/src/perp/user/index.js +24 -0
- package/dist/cjs/src/perp/user/order.d.ts +89 -0
- package/dist/cjs/src/perp/user/order.js +175 -0
- package/dist/cjs/src/perp/user/staking.d.ts +54 -0
- package/dist/cjs/src/perp/user/staking.js +147 -0
- package/dist/cjs/src/perp/user/trading.d.ts +119 -0
- package/dist/cjs/src/perp/user/trading.js +310 -0
- package/dist/cjs/src/perp/user/wlp.d.ts +58 -0
- package/dist/cjs/src/perp/user/wlp.js +139 -0
- package/dist/cjs/src/prediction/account.d.ts +96 -0
- package/dist/cjs/src/prediction/account.js +212 -0
- package/dist/cjs/src/prediction/admin.d.ts +47 -0
- package/dist/cjs/src/prediction/admin.js +116 -0
- package/dist/cjs/src/prediction/bcs.d.ts +28 -0
- package/dist/cjs/src/prediction/bcs.js +189 -0
- package/dist/cjs/src/prediction/client.d.ts +56 -0
- package/dist/cjs/src/prediction/client.js +128 -0
- package/dist/cjs/src/prediction/config.d.ts +74 -0
- package/dist/cjs/src/prediction/config.js +86 -0
- package/dist/cjs/src/prediction/constants.d.ts +44 -0
- package/dist/cjs/src/prediction/constants.js +49 -0
- package/dist/cjs/src/prediction/fetch.d.ts +82 -0
- package/dist/cjs/src/prediction/fetch.js +294 -0
- package/dist/cjs/src/prediction/gift-link.d.ts +6 -0
- package/dist/cjs/src/prediction/gift-link.js +16 -0
- package/dist/cjs/src/prediction/gift.d.ts +242 -0
- package/dist/cjs/src/prediction/gift.js +490 -0
- package/dist/cjs/src/prediction/index.d.ts +29 -0
- package/dist/cjs/src/prediction/index.js +154 -0
- package/dist/cjs/src/prediction/prediction.d.ts +149 -0
- package/dist/cjs/src/prediction/prediction.js +410 -0
- package/dist/cjs/src/prediction/tx-builders.d.ts +44 -0
- package/dist/cjs/src/prediction/tx-builders.js +56 -0
- package/dist/cjs/src/prediction/types.d.ts +95 -0
- package/dist/cjs/src/prediction/types.js +2 -0
- package/dist/cjs/src/prediction/user/account.d.ts +2 -0
- package/dist/cjs/src/prediction/user/account.js +17 -0
- package/dist/cjs/src/prediction/user/admin.d.ts +6 -0
- package/dist/cjs/src/prediction/user/admin.js +19 -0
- package/dist/cjs/src/prediction/user/gift.d.ts +2 -0
- package/dist/cjs/src/prediction/user/gift.js +24 -0
- package/dist/cjs/src/prediction/user/index.d.ts +5 -0
- package/dist/cjs/src/prediction/user/index.js +60 -0
- package/dist/cjs/src/prediction/user/keeper.d.ts +2 -0
- package/dist/cjs/src/prediction/user/keeper.js +13 -0
- package/dist/cjs/src/prediction/user/order.d.ts +2 -0
- package/dist/cjs/src/prediction/user/order.js +6 -0
- package/dist/cjs/src/prediction/user/position.d.ts +2 -0
- package/dist/cjs/src/prediction/user/position.js +11 -0
- package/dist/cjs/src/prediction/utils/bcs.d.ts +6 -0
- package/dist/cjs/src/prediction/utils/bcs.js +29 -0
- package/dist/cjs/src/prediction/utils/index.d.ts +8 -0
- package/dist/cjs/src/prediction/utils/index.js +31 -0
- package/dist/cjs/src/prediction/utils.d.ts +30 -0
- package/dist/cjs/src/prediction/utils.js +200 -0
- package/dist/cjs/src/sdk.d.ts +22 -0
- package/dist/cjs/src/sdk.js +62 -0
- package/dist/cjs/src/unified-client.d.ts +402 -0
- package/dist/cjs/src/unified-client.js +218 -0
- package/dist/cjs/src/utils/config.d.ts +11 -0
- package/dist/cjs/src/utils/config.js +19 -0
- package/dist/cjs/src/utils/math.d.ts +287 -0
- package/dist/cjs/src/utils/math.js +469 -0
- package/dist/src/prediction/client.d.ts +11 -0
- package/dist/src/prediction/client.js +16 -0
- package/dist/src/prediction/gift.d.ts +19 -0
- package/dist/src/prediction/gift.js +26 -1
- package/package.json +119 -31
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared scaffolding for the high-level perp `build*Tx` composers:
|
|
4
|
+
* `CommonBuildOpts`, the new-or-reuse PTB helper, the WLP pool-oracle refresh,
|
|
5
|
+
* and the request+execute envelope (optional Pyth-sponsor flow + pre-sweep).
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.newTx = newTx;
|
|
9
|
+
exports.refreshWlpPoolOracles = refreshWlpPoolOracles;
|
|
10
|
+
exports.wrapRequestAndExecute = wrapRequestAndExecute;
|
|
11
|
+
exports.maybeConsolidate = maybeConsolidate;
|
|
12
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
13
|
+
const consolidate_ts_1 = require("../../account/funding/consolidate.js");
|
|
14
|
+
const index_ts_1 = require("../../oracle/index.js");
|
|
15
|
+
const config_ts_1 = require("../../utils/config.js");
|
|
16
|
+
const trading_ts_1 = require("../user/trading.js");
|
|
17
|
+
const wlp_ts_1 = require("../user/wlp.js");
|
|
18
|
+
function newTx(opts) {
|
|
19
|
+
return opts?.tx ?? new transactions_1.Transaction();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Refresh every WLP pool-token oracle (+ caller-supplied extra tickers) and
|
|
23
|
+
* bump each pool token's `last_price_refresh_timestamp` so the pool's
|
|
24
|
+
* `assert_prices_fresh` passes when the next `mint_wlp` / `request_redeem` /
|
|
25
|
+
* trading `execute` runs in the same PTB.
|
|
26
|
+
*/
|
|
27
|
+
async function refreshWlpPoolOracles(tx, client, extraTickers, opts) {
|
|
28
|
+
const poolTickers = (0, config_ts_1.getCollateralAssets)(client.config);
|
|
29
|
+
const oracleTickers = Array.from(new Set([...extraTickers, ...poolTickers]));
|
|
30
|
+
await (0, index_ts_1.refreshOraclePrices)(tx, client, oracleTickers, {
|
|
31
|
+
cache: opts.cache,
|
|
32
|
+
sponsorFund: opts.sponsorFund,
|
|
33
|
+
});
|
|
34
|
+
for (const tokenType of Object.values(client.config.packages.wlp.pool_tokens)) {
|
|
35
|
+
(0, wlp_ts_1.updateTokenValue)(client, tx, { tokenType, lpType: opts.lpType });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build the *Request + execute envelope with optional Pyth sponsor flow:
|
|
40
|
+
*
|
|
41
|
+
* [fund = sponsor.request()]
|
|
42
|
+
* refreshOraclePrices(..., sponsorFund?)
|
|
43
|
+
* req = buildRequest()
|
|
44
|
+
* [sponsor.reimburse(fund, req)]
|
|
45
|
+
* trading::execute(req)
|
|
46
|
+
*/
|
|
47
|
+
async function wrapRequestAndExecute(client, tx, req, collateralTicker, opts, buildRequest) {
|
|
48
|
+
await maybeConsolidate(client, tx, req.accountId, opts);
|
|
49
|
+
const useSponsor = opts?.useSponsor ?? true;
|
|
50
|
+
let sponsorFund;
|
|
51
|
+
if (useSponsor)
|
|
52
|
+
sponsorFund = (0, index_ts_1.openPythSponsorFund)(tx, client);
|
|
53
|
+
if (!opts?.skipOraclePriceRefresh) {
|
|
54
|
+
await refreshWlpPoolOracles(tx, client, [req.ticker, collateralTicker], {
|
|
55
|
+
cache: opts?.pythCache,
|
|
56
|
+
sponsorFund,
|
|
57
|
+
lpType: req.lpType,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const tradingReq = buildRequest(sponsorFund);
|
|
61
|
+
if (sponsorFund) {
|
|
62
|
+
(0, index_ts_1.reimbursePythSponsor)(tx, client, sponsorFund.fund, tradingReq, req.collateralType);
|
|
63
|
+
}
|
|
64
|
+
(0, trading_ts_1.executeTrading)(client, tx, {
|
|
65
|
+
ticker: req.ticker,
|
|
66
|
+
collateralType: req.collateralType,
|
|
67
|
+
lpType: req.lpType,
|
|
68
|
+
request: tradingReq,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/** Run the async sweep iff `consolidateToUsd !== false`. */
|
|
72
|
+
async function maybeConsolidate(client, tx, accountId, opts) {
|
|
73
|
+
if (opts?.consolidateToUsd === false)
|
|
74
|
+
return;
|
|
75
|
+
await (0, consolidate_ts_1.appendConsolidateForSpend)(client, tx, accountId);
|
|
76
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level cross-chain credit / bridge composers: VAA redeem (EVM → Sui mint),
|
|
3
|
+
* the user-side withdraw request (encode route + `request_withdraw` + enqueue),
|
|
4
|
+
* and the keeper-side queue drain.
|
|
5
|
+
*/
|
|
6
|
+
import { Transaction, type TransactionArgument } from "@mysten/sui/transactions";
|
|
7
|
+
import { type RedeemVaaParams, type RouteWormholeParams } from "../../account/funding/credit.ts";
|
|
8
|
+
import type { PerpClient } from "../client.ts";
|
|
9
|
+
export interface BuildRedeemVaaParams extends RedeemVaaParams {
|
|
10
|
+
/** Append to an existing PTB instead of creating a new one. */
|
|
11
|
+
tx?: Transaction;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Mint (EVM → Sui): `redeem_vaa<CREDIT>` + consume the resulting
|
|
15
|
+
* `DepositRequest<CREDIT>` via the configured wxa deposit policy, in one
|
|
16
|
+
* PTB. The recipient wxa account is encoded in the VAA payload.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildRedeemVaaTx(client: PerpClient, params: BuildRedeemVaaParams): Transaction;
|
|
19
|
+
export type CreditWithdrawRoute = ({
|
|
20
|
+
kind: "wormhole";
|
|
21
|
+
} & RouteWormholeParams) | {
|
|
22
|
+
kind: "native";
|
|
23
|
+
assetType: string;
|
|
24
|
+
};
|
|
25
|
+
export interface BuildRequestCreditWithdrawParams {
|
|
26
|
+
accountId: string;
|
|
27
|
+
amount: bigint | number;
|
|
28
|
+
/** Sui-side recipient (honored for native payouts; ignored for wormhole). */
|
|
29
|
+
recipient: string;
|
|
30
|
+
route: CreditWithdrawRoute;
|
|
31
|
+
creditType?: string;
|
|
32
|
+
bucketAccount?: string | TransactionArgument;
|
|
33
|
+
tx?: Transaction;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Withdraw (user side): encode the route, `account::request_withdraw<CREDIT>`,
|
|
37
|
+
* then `withdrawal_queue::enqueue<CREDIT>` — all in one PTB. A keeper later
|
|
38
|
+
* drains the parked entry via {@link buildExecuteWithdrawalTx}.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildRequestCreditWithdrawTx(client: PerpClient, params: BuildRequestCreditWithdrawParams): Transaction;
|
|
41
|
+
export type ExecuteWithdrawalRoute = {
|
|
42
|
+
kind: "wormhole";
|
|
43
|
+
/**
|
|
44
|
+
* `Coin<SUI>` paying the Wormhole message fee. Omit to mint a zero-value
|
|
45
|
+
* coin via `0x2::coin::zero<SUI>` — sponsor-safe (never touches `tx.gas`,
|
|
46
|
+
* so Shinami-style gas stations don't reject the PTB) and free as long as
|
|
47
|
+
* `WormholeState.message_fee == 0`. Pass an explicit coin (e.g.
|
|
48
|
+
* `tx.object(...)`) once Wormhole raises the message fee.
|
|
49
|
+
*/
|
|
50
|
+
wormholeFeeCoin?: TransactionArgument;
|
|
51
|
+
} | {
|
|
52
|
+
kind: "native";
|
|
53
|
+
assetType: string;
|
|
54
|
+
};
|
|
55
|
+
export interface BuildExecuteWithdrawalParams {
|
|
56
|
+
/** Queue entry key (from the `Enqueued` event). */
|
|
57
|
+
key: bigint | number;
|
|
58
|
+
route: ExecuteWithdrawalRoute;
|
|
59
|
+
creditType?: string;
|
|
60
|
+
/** Executor identity (must be on the queue allowlist). Defaults to tx sender. */
|
|
61
|
+
bucketAccount?: string | TransactionArgument;
|
|
62
|
+
tx?: Transaction;
|
|
63
|
+
}
|
|
64
|
+
/** Keeper: drain one parked queue entry. */
|
|
65
|
+
export declare function buildExecuteWithdrawalTx(client: PerpClient, params: BuildExecuteWithdrawalParams): Transaction;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level cross-chain credit / bridge composers: VAA redeem (EVM → Sui mint),
|
|
4
|
+
* the user-side withdraw request (encode route + `request_withdraw` + enqueue),
|
|
5
|
+
* and the keeper-side queue drain.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.buildRedeemVaaTx = buildRedeemVaaTx;
|
|
9
|
+
exports.buildRequestCreditWithdrawTx = buildRequestCreditWithdrawTx;
|
|
10
|
+
exports.buildExecuteWithdrawalTx = buildExecuteWithdrawalTx;
|
|
11
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
12
|
+
const credit_ts_1 = require("../../account/funding/credit.js");
|
|
13
|
+
/**
|
|
14
|
+
* Mint (EVM → Sui): `redeem_vaa<CREDIT>` + consume the resulting
|
|
15
|
+
* `DepositRequest<CREDIT>` via the configured wxa deposit policy, in one
|
|
16
|
+
* PTB. The recipient wxa account is encoded in the VAA payload.
|
|
17
|
+
*/
|
|
18
|
+
function buildRedeemVaaTx(client, params) {
|
|
19
|
+
const tx = params.tx ?? new transactions_1.Transaction();
|
|
20
|
+
const req = (0, credit_ts_1.redeemVaa)(client, tx, params);
|
|
21
|
+
(0, credit_ts_1.consumeCreditDeposit)(client, tx, { depositRequest: req, creditType: params.creditType });
|
|
22
|
+
return tx;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Withdraw (user side): encode the route, `account::request_withdraw<CREDIT>`,
|
|
26
|
+
* then `withdrawal_queue::enqueue<CREDIT>` — all in one PTB. A keeper later
|
|
27
|
+
* drains the parked entry via {@link buildExecuteWithdrawalTx}.
|
|
28
|
+
*/
|
|
29
|
+
function buildRequestCreditWithdrawTx(client, params) {
|
|
30
|
+
const tx = params.tx ?? new transactions_1.Transaction();
|
|
31
|
+
const route = params.route.kind === "wormhole"
|
|
32
|
+
? (0, credit_ts_1.routeWormhole)(client, tx, params.route)
|
|
33
|
+
: (0, credit_ts_1.routeNative)(client, tx, { assetType: params.route.assetType });
|
|
34
|
+
const wreq = (0, credit_ts_1.requestCreditWithdraw)(client, tx, {
|
|
35
|
+
accountId: params.accountId,
|
|
36
|
+
amount: params.amount,
|
|
37
|
+
recipient: params.recipient,
|
|
38
|
+
route,
|
|
39
|
+
creditType: params.creditType,
|
|
40
|
+
bucketAccount: params.bucketAccount,
|
|
41
|
+
});
|
|
42
|
+
(0, credit_ts_1.enqueueWithdrawal)(client, tx, { withdrawRequest: wreq, creditType: params.creditType });
|
|
43
|
+
return tx;
|
|
44
|
+
}
|
|
45
|
+
/** Keeper: drain one parked queue entry. */
|
|
46
|
+
function buildExecuteWithdrawalTx(client, params) {
|
|
47
|
+
const tx = params.tx ?? new transactions_1.Transaction();
|
|
48
|
+
if (params.route.kind === "wormhole") {
|
|
49
|
+
const fee = params.route.wormholeFeeCoin ??
|
|
50
|
+
tx.moveCall({ target: "0x2::coin::zero", typeArguments: ["0x2::sui::SUI"] });
|
|
51
|
+
(0, credit_ts_1.executeWithdrawalWormhole)(client, tx, {
|
|
52
|
+
key: params.key,
|
|
53
|
+
wormholeFee: fee,
|
|
54
|
+
creditType: params.creditType,
|
|
55
|
+
bucketAccount: params.bucketAccount,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
(0, credit_ts_1.executeWithdrawalNative)(client, tx, {
|
|
60
|
+
key: params.key,
|
|
61
|
+
assetType: params.route.assetType,
|
|
62
|
+
creditType: params.creditType,
|
|
63
|
+
bucketAccount: params.bucketAccount,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return tx;
|
|
67
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level reward composer: claim every accrued staking reward to the wxa
|
|
3
|
+
* account (TTO). The account owner collects each coin via `wxa_account::receive`
|
|
4
|
+
* in a separate user action.
|
|
5
|
+
*/
|
|
6
|
+
import type { Transaction, TransactionArgument } from "@mysten/sui/transactions";
|
|
7
|
+
import type { PerpClient } from "../client.ts";
|
|
8
|
+
import { type CommonBuildOpts } from "./common.ts";
|
|
9
|
+
export interface BuildClaimRewardsToAccountParams extends CommonBuildOpts {
|
|
10
|
+
accountId: string;
|
|
11
|
+
/** Staking pool alias. Defaults to `"WLP"`. */
|
|
12
|
+
stakeAlias?: string;
|
|
13
|
+
/** Fully-qualified stake coin type. Defaults to `client.wlpType()`. */
|
|
14
|
+
stakeType?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Reward coin types to claim. Defaults to every rewarder configured for the
|
|
17
|
+
* stake pool in `waterx_staking.rewarders[stakeAlias]`.
|
|
18
|
+
*/
|
|
19
|
+
rewarderTypes?: string[];
|
|
20
|
+
bucketAccount?: string | TransactionArgument;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Claims every accrued reward for `accountId` on the given stake pool. Each
|
|
24
|
+
* resulting `Coin<R>` is TTO'd to the wxa account's UID address via
|
|
25
|
+
* `wxa_account::transfer_coin<R>` (the default behaviour of the Move
|
|
26
|
+
* `staking::claim` entry — no deposit-policy registration required for the
|
|
27
|
+
* reward token). The account owner collects each coin via
|
|
28
|
+
* `wxa_account::receive` in a separate user action.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildClaimRewardsToAccountTx(client: PerpClient, params: BuildClaimRewardsToAccountParams): Transaction;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level reward composer: claim every accrued staking reward to the wxa
|
|
4
|
+
* account (TTO). The account owner collects each coin via `wxa_account::receive`
|
|
5
|
+
* in a separate user action.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.buildClaimRewardsToAccountTx = buildClaimRewardsToAccountTx;
|
|
9
|
+
const staking_ts_1 = require("../user/staking.js");
|
|
10
|
+
const common_ts_1 = require("./common.js");
|
|
11
|
+
/**
|
|
12
|
+
* Claims every accrued reward for `accountId` on the given stake pool. Each
|
|
13
|
+
* resulting `Coin<R>` is TTO'd to the wxa account's UID address via
|
|
14
|
+
* `wxa_account::transfer_coin<R>` (the default behaviour of the Move
|
|
15
|
+
* `staking::claim` entry — no deposit-policy registration required for the
|
|
16
|
+
* reward token). The account owner collects each coin via
|
|
17
|
+
* `wxa_account::receive` in a separate user action.
|
|
18
|
+
*/
|
|
19
|
+
function buildClaimRewardsToAccountTx(client, params) {
|
|
20
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
21
|
+
const stakeAlias = params.stakeAlias ?? "WLP";
|
|
22
|
+
const stakeType = params.stakeType ?? client.wlpType();
|
|
23
|
+
const rewarderTypes = params.rewarderTypes ?? client.getRewarderTypes(stakeAlias);
|
|
24
|
+
if (rewarderTypes.length === 0) {
|
|
25
|
+
throw new Error(`buildClaimRewardsToAccountTx: no rewarders configured for stakeAlias=${stakeAlias}`);
|
|
26
|
+
}
|
|
27
|
+
for (const rewardType of rewarderTypes) {
|
|
28
|
+
(0, staking_ts_1.claimReward)(client, tx, {
|
|
29
|
+
accountId: params.accountId,
|
|
30
|
+
stakeAlias,
|
|
31
|
+
stakeType,
|
|
32
|
+
rewardType,
|
|
33
|
+
bucketAccount: params.bucketAccount,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return tx;
|
|
37
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level trading composers: position lifecycle (close / increase /
|
|
3
|
+
* decrease), collateral deposit / withdraw, and order lifecycle (place /
|
|
4
|
+
* cancel / update / pre-order). Each wraps the matching `*_request` builder in
|
|
5
|
+
* the shared request+execute envelope.
|
|
6
|
+
*/
|
|
7
|
+
import type { Transaction } from "@mysten/sui/transactions";
|
|
8
|
+
import type { PerpClient } from "../client.ts";
|
|
9
|
+
import { type AddPreOrderRequestParams, type CancelOrderRequestParams, type CancelPreOrderRequestParams, type PlaceOrderRequestParams, type UpdateOrderRequestParams } from "../user/order.ts";
|
|
10
|
+
import { type ClosePositionRequestParams, type DecreasePositionRequestParams, type DepositCollateralRequestParams, type IncreasePositionRequestParams, type WithdrawCollateralRequestParams } from "../user/trading.ts";
|
|
11
|
+
import { type CommonBuildOpts } from "./common.ts";
|
|
12
|
+
export interface BuildClosePositionParams extends ClosePositionRequestParams, CommonBuildOpts {
|
|
13
|
+
collateralTicker?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function buildClosePositionTx(client: PerpClient, params: BuildClosePositionParams): Promise<Transaction>;
|
|
16
|
+
export interface BuildIncreasePositionParams extends IncreasePositionRequestParams, CommonBuildOpts {
|
|
17
|
+
collateralTicker?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function buildIncreasePositionTx(client: PerpClient, params: BuildIncreasePositionParams): Promise<Transaction>;
|
|
20
|
+
export interface BuildDecreasePositionParams extends DecreasePositionRequestParams, CommonBuildOpts {
|
|
21
|
+
collateralTicker?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function buildDecreasePositionTx(client: PerpClient, params: BuildDecreasePositionParams): Promise<Transaction>;
|
|
24
|
+
export interface BuildDepositCollateralParams extends DepositCollateralRequestParams, CommonBuildOpts {
|
|
25
|
+
collateralTicker?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function buildDepositCollateralTx(client: PerpClient, params: BuildDepositCollateralParams): Promise<Transaction>;
|
|
28
|
+
export interface BuildWithdrawCollateralParams extends WithdrawCollateralRequestParams, CommonBuildOpts {
|
|
29
|
+
collateralTicker?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare function buildWithdrawCollateralTx(client: PerpClient, params: BuildWithdrawCollateralParams): Promise<Transaction>;
|
|
32
|
+
export interface BuildPlaceOrderParams extends PlaceOrderRequestParams, CommonBuildOpts {
|
|
33
|
+
collateralTicker?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function buildPlaceOrderTx(client: PerpClient, params: BuildPlaceOrderParams): Promise<Transaction>;
|
|
36
|
+
export interface BuildCancelOrderParams extends CancelOrderRequestParams, CommonBuildOpts {
|
|
37
|
+
collateralTicker?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function buildCancelOrderTx(client: PerpClient, params: BuildCancelOrderParams): Promise<Transaction>;
|
|
40
|
+
export interface BuildUpdateOrderParams extends UpdateOrderRequestParams, CommonBuildOpts {
|
|
41
|
+
collateralTicker?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function buildUpdateOrderTx(client: PerpClient, params: BuildUpdateOrderParams): Promise<Transaction>;
|
|
44
|
+
export interface BuildCancelPreOrderParams extends CancelPreOrderRequestParams, CommonBuildOpts {
|
|
45
|
+
collateralTicker?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function buildCancelPreOrderTx(client: PerpClient, params: BuildCancelPreOrderParams): Promise<Transaction>;
|
|
48
|
+
export interface BuildAddPreOrderParams extends AddPreOrderRequestParams, CommonBuildOpts {
|
|
49
|
+
collateralTicker?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare function buildAddPreOrderTx(client: PerpClient, params: BuildAddPreOrderParams): Promise<Transaction>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level trading composers: position lifecycle (close / increase /
|
|
4
|
+
* decrease), collateral deposit / withdraw, and order lifecycle (place /
|
|
5
|
+
* cancel / update / pre-order). Each wraps the matching `*_request` builder in
|
|
6
|
+
* the shared request+execute envelope.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.buildClosePositionTx = buildClosePositionTx;
|
|
10
|
+
exports.buildIncreasePositionTx = buildIncreasePositionTx;
|
|
11
|
+
exports.buildDecreasePositionTx = buildDecreasePositionTx;
|
|
12
|
+
exports.buildDepositCollateralTx = buildDepositCollateralTx;
|
|
13
|
+
exports.buildWithdrawCollateralTx = buildWithdrawCollateralTx;
|
|
14
|
+
exports.buildPlaceOrderTx = buildPlaceOrderTx;
|
|
15
|
+
exports.buildCancelOrderTx = buildCancelOrderTx;
|
|
16
|
+
exports.buildUpdateOrderTx = buildUpdateOrderTx;
|
|
17
|
+
exports.buildCancelPreOrderTx = buildCancelPreOrderTx;
|
|
18
|
+
exports.buildAddPreOrderTx = buildAddPreOrderTx;
|
|
19
|
+
const order_ts_1 = require("../user/order.js");
|
|
20
|
+
const trading_ts_1 = require("../user/trading.js");
|
|
21
|
+
const common_ts_1 = require("./common.js");
|
|
22
|
+
async function buildClosePositionTx(client, params) {
|
|
23
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
24
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, trading_ts_1.closePositionRequest)(client, tx, params));
|
|
25
|
+
return tx;
|
|
26
|
+
}
|
|
27
|
+
async function buildIncreasePositionTx(client, params) {
|
|
28
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
29
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, trading_ts_1.increasePositionRequest)(client, tx, params));
|
|
30
|
+
return tx;
|
|
31
|
+
}
|
|
32
|
+
async function buildDecreasePositionTx(client, params) {
|
|
33
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
34
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, trading_ts_1.decreasePositionRequest)(client, tx, params));
|
|
35
|
+
return tx;
|
|
36
|
+
}
|
|
37
|
+
async function buildDepositCollateralTx(client, params) {
|
|
38
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
39
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, trading_ts_1.depositCollateralRequest)(client, tx, params));
|
|
40
|
+
return tx;
|
|
41
|
+
}
|
|
42
|
+
async function buildWithdrawCollateralTx(client, params) {
|
|
43
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
44
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, trading_ts_1.withdrawCollateralRequest)(client, tx, params));
|
|
45
|
+
return tx;
|
|
46
|
+
}
|
|
47
|
+
async function buildPlaceOrderTx(client, params) {
|
|
48
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
49
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, order_ts_1.placeOrderRequest)(client, tx, params));
|
|
50
|
+
return tx;
|
|
51
|
+
}
|
|
52
|
+
async function buildCancelOrderTx(client, params) {
|
|
53
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
54
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, order_ts_1.cancelOrderRequest)(client, tx, params));
|
|
55
|
+
return tx;
|
|
56
|
+
}
|
|
57
|
+
async function buildUpdateOrderTx(client, params) {
|
|
58
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
59
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, order_ts_1.updateOrderRequest)(client, tx, params));
|
|
60
|
+
return tx;
|
|
61
|
+
}
|
|
62
|
+
async function buildCancelPreOrderTx(client, params) {
|
|
63
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
64
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, order_ts_1.cancelPreOrderRequest)(client, tx, params));
|
|
65
|
+
return tx;
|
|
66
|
+
}
|
|
67
|
+
async function buildAddPreOrderTx(client, params) {
|
|
68
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
69
|
+
await (0, common_ts_1.wrapRequestAndExecute)(client, tx, params, params.collateralTicker ?? "USDCUSD", params, () => (0, order_ts_1.addPreOrderRequest)(client, tx, params));
|
|
70
|
+
return tx;
|
|
71
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level WLP composers: mint, mint+stake, unstake+request-redeem, and
|
|
3
|
+
* cancel-redeem+re-stake. The staking-coupled variants keep the product
|
|
4
|
+
* invariant that user-held WLP is always staked.
|
|
5
|
+
*/
|
|
6
|
+
import type { Transaction } from "@mysten/sui/transactions";
|
|
7
|
+
import type { PerpClient } from "../client.ts";
|
|
8
|
+
import { type CancelRedeemWlpParams, type MintWlpParams, type RequestRedeemWlpParams } from "../user/wlp.ts";
|
|
9
|
+
import { type CommonBuildOpts } from "./common.ts";
|
|
10
|
+
export interface BuildMintWlpParams extends MintWlpParams, CommonBuildOpts {
|
|
11
|
+
/** Oracle ticker for the deposited token (must be a registered pool token). */
|
|
12
|
+
depositTicker: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Mints WLP from a deposit asset already in the wxa account's stored
|
|
16
|
+
* balance. Refreshes every pool-token oracle + bumps each pool token's
|
|
17
|
+
* `last_price_refresh_timestamp` so `assert_prices_fresh` inside
|
|
18
|
+
* `mint_wlp` passes.
|
|
19
|
+
*
|
|
20
|
+
* Does NOT use the pyth_sponsor flow — `mint_wlp` produces no
|
|
21
|
+
* `TradingRequest`, so there's nothing for the sponsor to attach its
|
|
22
|
+
* witness to. Pyth update fees come from `tx.gas`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildMintWlpTx(client: PerpClient, params: BuildMintWlpParams): Promise<Transaction>;
|
|
25
|
+
export interface BuildMintAndStakeWlpParams extends BuildMintWlpParams {
|
|
26
|
+
/**
|
|
27
|
+
* Staking pool alias (key into `waterx_staking.pools`). Defaults to `"WLP"`.
|
|
28
|
+
*/
|
|
29
|
+
stakeAlias?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Rewarder coin types to settle on the stake deposit. Order must match the
|
|
32
|
+
* pool's on-chain `rewarder_ids`. Defaults to every rewarder configured for
|
|
33
|
+
* the stake pool in `waterx_staking.rewarders[stakeAlias]`.
|
|
34
|
+
*/
|
|
35
|
+
rewarderTypes?: string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Mints WLP and immediately stakes the minted amount into the WLP staking pool
|
|
39
|
+
* in the same PTB. The mint's `lp_amount` return is piped directly into the
|
|
40
|
+
* `stake` call so no precision loss / dust can occur.
|
|
41
|
+
*
|
|
42
|
+
* Use this instead of `buildMintWlpTx` when the product flow is "deposit USD
|
|
43
|
+
* and earn rewards" — un-staked WLP sitting in the wxa account's `Balance<WLP>`
|
|
44
|
+
* slot earns nothing.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildMintAndStakeWlpTx(client: PerpClient, params: BuildMintAndStakeWlpParams): Promise<Transaction>;
|
|
47
|
+
export interface BuildUnstakeAndRequestRedeemWlpParams extends Omit<RequestRedeemWlpParams, "lpAmount">, CommonBuildOpts {
|
|
48
|
+
/** Amount of staked WLP to unstake and enqueue for redemption. */
|
|
49
|
+
withdrawalAmount: bigint | number;
|
|
50
|
+
/** Staking pool alias. Defaults to `"WLP"`. */
|
|
51
|
+
stakeAlias?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Rewarder coin types to settle on unstake. Defaults to every rewarder
|
|
54
|
+
* configured for the stake pool in `waterx_staking.rewarders[stakeAlias]`.
|
|
55
|
+
*/
|
|
56
|
+
rewarderTypes?: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Unstakes WLP from the staking pool and immediately enqueues a redeem request
|
|
60
|
+
* in the same PTB. Mirror of `buildMintAndStakeWlpTx` for withdrawals.
|
|
61
|
+
*
|
|
62
|
+
* Refreshes every WLP pool-token oracle by default — `request_redeem` runs
|
|
63
|
+
* `assert_prices_fresh` internally, so a stale oracle would abort the PTB.
|
|
64
|
+
* Pass `skipOraclePriceRefresh: true` only when the caller is composing this
|
|
65
|
+
* into a larger PTB that already pre-pumps prices.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildUnstakeAndRequestRedeemWlpTx(client: PerpClient, params: BuildUnstakeAndRequestRedeemWlpParams): Promise<Transaction>;
|
|
68
|
+
export interface BuildCancelRedeemAndStakeWlpParams extends CancelRedeemWlpParams, CommonBuildOpts {
|
|
69
|
+
accountId: string;
|
|
70
|
+
/**
|
|
71
|
+
* WLP amount (base units) that was originally enqueued by `request_redeem`
|
|
72
|
+
* and is being returned to the wxa account by `cancel_redeem` — gets
|
|
73
|
+
* re-staked into the WLP staking pool in the same PTB.
|
|
74
|
+
*/
|
|
75
|
+
stakeAmount: bigint | number;
|
|
76
|
+
/** Staking pool alias. Defaults to `"WLP"`. */
|
|
77
|
+
stakeAlias?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Rewarder coin types to settle on stake. Defaults to every rewarder
|
|
80
|
+
* configured for the stake pool in `waterx_staking.rewarders[stakeAlias]`.
|
|
81
|
+
*/
|
|
82
|
+
rewarderTypes?: string[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cancels a pending WLP redeem request and re-stakes the returned WLP in the
|
|
86
|
+
* same PTB. Third partner of `buildMintAndStakeWlpTx` /
|
|
87
|
+
* `buildUnstakeAndRequestRedeemWlpTx`; together they keep the product
|
|
88
|
+
* invariant that user-held WLP is always staked.
|
|
89
|
+
*/
|
|
90
|
+
export declare function buildCancelRedeemAndStakeWlpTx(client: PerpClient, params: BuildCancelRedeemAndStakeWlpParams): Transaction;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level WLP composers: mint, mint+stake, unstake+request-redeem, and
|
|
4
|
+
* cancel-redeem+re-stake. The staking-coupled variants keep the product
|
|
5
|
+
* invariant that user-held WLP is always staked.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.buildMintWlpTx = buildMintWlpTx;
|
|
9
|
+
exports.buildMintAndStakeWlpTx = buildMintAndStakeWlpTx;
|
|
10
|
+
exports.buildUnstakeAndRequestRedeemWlpTx = buildUnstakeAndRequestRedeemWlpTx;
|
|
11
|
+
exports.buildCancelRedeemAndStakeWlpTx = buildCancelRedeemAndStakeWlpTx;
|
|
12
|
+
const staking_ts_1 = require("../user/staking.js");
|
|
13
|
+
const wlp_ts_1 = require("../user/wlp.js");
|
|
14
|
+
const common_ts_1 = require("./common.js");
|
|
15
|
+
/**
|
|
16
|
+
* Mints WLP from a deposit asset already in the wxa account's stored
|
|
17
|
+
* balance. Refreshes every pool-token oracle + bumps each pool token's
|
|
18
|
+
* `last_price_refresh_timestamp` so `assert_prices_fresh` inside
|
|
19
|
+
* `mint_wlp` passes.
|
|
20
|
+
*
|
|
21
|
+
* Does NOT use the pyth_sponsor flow — `mint_wlp` produces no
|
|
22
|
+
* `TradingRequest`, so there's nothing for the sponsor to attach its
|
|
23
|
+
* witness to. Pyth update fees come from `tx.gas`.
|
|
24
|
+
*/
|
|
25
|
+
async function buildMintWlpTx(client, params) {
|
|
26
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
27
|
+
await (0, common_ts_1.maybeConsolidate)(client, tx, params.accountId, params);
|
|
28
|
+
if (!params.skipOraclePriceRefresh) {
|
|
29
|
+
await (0, common_ts_1.refreshWlpPoolOracles)(tx, client, [params.depositTicker], {
|
|
30
|
+
cache: params.pythCache,
|
|
31
|
+
lpType: params.lpType,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
(0, wlp_ts_1.mintWlp)(client, tx, params);
|
|
35
|
+
return tx;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Mints WLP and immediately stakes the minted amount into the WLP staking pool
|
|
39
|
+
* in the same PTB. The mint's `lp_amount` return is piped directly into the
|
|
40
|
+
* `stake` call so no precision loss / dust can occur.
|
|
41
|
+
*
|
|
42
|
+
* Use this instead of `buildMintWlpTx` when the product flow is "deposit USD
|
|
43
|
+
* and earn rewards" — un-staked WLP sitting in the wxa account's `Balance<WLP>`
|
|
44
|
+
* slot earns nothing.
|
|
45
|
+
*/
|
|
46
|
+
async function buildMintAndStakeWlpTx(client, params) {
|
|
47
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
48
|
+
await (0, common_ts_1.maybeConsolidate)(client, tx, params.accountId, params);
|
|
49
|
+
if (!params.skipOraclePriceRefresh) {
|
|
50
|
+
await (0, common_ts_1.refreshWlpPoolOracles)(tx, client, [params.depositTicker], {
|
|
51
|
+
cache: params.pythCache,
|
|
52
|
+
lpType: params.lpType,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const stakeAlias = params.stakeAlias ?? "WLP";
|
|
56
|
+
const lpAmount = (0, wlp_ts_1.mintWlp)(client, tx, params);
|
|
57
|
+
(0, staking_ts_1.stake)(client, tx, {
|
|
58
|
+
accountId: params.accountId,
|
|
59
|
+
stakeAlias,
|
|
60
|
+
stakeType: params.lpType ?? client.wlpType(),
|
|
61
|
+
stakeAmount: lpAmount,
|
|
62
|
+
rewarderTypes: params.rewarderTypes ?? client.getRewarderTypes(stakeAlias),
|
|
63
|
+
bucketAccount: params.bucketAccount,
|
|
64
|
+
});
|
|
65
|
+
return tx;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Unstakes WLP from the staking pool and immediately enqueues a redeem request
|
|
69
|
+
* in the same PTB. Mirror of `buildMintAndStakeWlpTx` for withdrawals.
|
|
70
|
+
*
|
|
71
|
+
* Refreshes every WLP pool-token oracle by default — `request_redeem` runs
|
|
72
|
+
* `assert_prices_fresh` internally, so a stale oracle would abort the PTB.
|
|
73
|
+
* Pass `skipOraclePriceRefresh: true` only when the caller is composing this
|
|
74
|
+
* into a larger PTB that already pre-pumps prices.
|
|
75
|
+
*/
|
|
76
|
+
async function buildUnstakeAndRequestRedeemWlpTx(client, params) {
|
|
77
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
78
|
+
const stakeAlias = params.stakeAlias ?? "WLP";
|
|
79
|
+
await (0, common_ts_1.maybeConsolidate)(client, tx, params.accountId, params);
|
|
80
|
+
if (!params.skipOraclePriceRefresh) {
|
|
81
|
+
await (0, common_ts_1.refreshWlpPoolOracles)(tx, client, [], {
|
|
82
|
+
cache: params.pythCache,
|
|
83
|
+
lpType: params.lpType,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
(0, staking_ts_1.unstake)(client, tx, {
|
|
87
|
+
accountId: params.accountId,
|
|
88
|
+
stakeAlias,
|
|
89
|
+
stakeType: params.lpType ?? client.wlpType(),
|
|
90
|
+
withdrawalAmount: params.withdrawalAmount,
|
|
91
|
+
rewarderTypes: params.rewarderTypes ?? client.getRewarderTypes(stakeAlias),
|
|
92
|
+
bucketAccount: params.bucketAccount,
|
|
93
|
+
});
|
|
94
|
+
(0, wlp_ts_1.requestRedeemWlp)(client, tx, {
|
|
95
|
+
accountId: params.accountId,
|
|
96
|
+
redeemTokenType: params.redeemTokenType,
|
|
97
|
+
lpAmount: params.withdrawalAmount,
|
|
98
|
+
lpType: params.lpType,
|
|
99
|
+
bucketAccount: params.bucketAccount,
|
|
100
|
+
});
|
|
101
|
+
return tx;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Cancels a pending WLP redeem request and re-stakes the returned WLP in the
|
|
105
|
+
* same PTB. Third partner of `buildMintAndStakeWlpTx` /
|
|
106
|
+
* `buildUnstakeAndRequestRedeemWlpTx`; together they keep the product
|
|
107
|
+
* invariant that user-held WLP is always staked.
|
|
108
|
+
*/
|
|
109
|
+
function buildCancelRedeemAndStakeWlpTx(client, params) {
|
|
110
|
+
const tx = (0, common_ts_1.newTx)(params);
|
|
111
|
+
const stakeAlias = params.stakeAlias ?? "WLP";
|
|
112
|
+
(0, wlp_ts_1.cancelRedeemWlp)(client, tx, {
|
|
113
|
+
requestId: params.requestId,
|
|
114
|
+
lpType: params.lpType,
|
|
115
|
+
bucketAccount: params.bucketAccount,
|
|
116
|
+
});
|
|
117
|
+
(0, staking_ts_1.stake)(client, tx, {
|
|
118
|
+
accountId: params.accountId,
|
|
119
|
+
stakeAlias,
|
|
120
|
+
stakeType: params.lpType ?? client.wlpType(),
|
|
121
|
+
stakeAmount: params.stakeAmount,
|
|
122
|
+
rewarderTypes: params.rewarderTypes ?? client.getRewarderTypes(stakeAlias),
|
|
123
|
+
bucketAccount: params.bucketAccount,
|
|
124
|
+
});
|
|
125
|
+
return tx;
|
|
126
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level perp transaction builders — barrel.
|
|
3
|
+
*
|
|
4
|
+
* Each `build*Tx` composer creates (or appends to) a `Transaction`, refreshes
|
|
5
|
+
* the on-chain `Oracle` via Pyth, optionally pre-sweeps parked balances
|
|
6
|
+
* (`consolidateToUsd`), wires the `pyth_sponsor_rule` flow when enabled, and
|
|
7
|
+
* calls the matching `*_request` + `execute`. Implementations are split by
|
|
8
|
+
* domain under `tx-builders/`:
|
|
9
|
+
*
|
|
10
|
+
* common.ts CommonBuildOpts + request/execute envelope + oracle refresh
|
|
11
|
+
* consolidate.ts parked-balance → wxUSD pre-sweep (appendConsolidate*)
|
|
12
|
+
* trading.ts position lifecycle + collateral + order lifecycle
|
|
13
|
+
* wlp.ts mint / mint+stake / unstake+redeem / cancel-redeem+restake
|
|
14
|
+
* rewards.ts claim staking rewards to the wxa account
|
|
15
|
+
* credit.ts cross-chain credit / bridge (redeem VAA, withdraw, drain)
|
|
16
|
+
*/
|
|
17
|
+
export type { CommonBuildOpts } from "./tx-builders/common.ts";
|
|
18
|
+
export * from "../account/funding/consolidate.ts";
|
|
19
|
+
export * from "./tx-builders/trading.ts";
|
|
20
|
+
export * from "./tx-builders/wlp.ts";
|
|
21
|
+
export * from "./tx-builders/rewards.ts";
|
|
22
|
+
export * from "./tx-builders/credit.ts";
|
|
23
|
+
export { openPythSponsorFund, PythCache, refreshOraclePrices, reimbursePythSponsor, updatePythPrices, } from "../oracle/index.ts";
|