@waterx/sdk 3.0.1 → 3.0.3
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 +45 -0
- package/dist/cjs/src/prediction/client.js +112 -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 +223 -0
- package/dist/cjs/src/prediction/gift.js +465 -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/package.json +119 -31
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cross-chain credit / bridge builders (low-level — one moveCall per fn).
|
|
4
|
+
*
|
|
5
|
+
* Flows (see waterx_credit/sui/*):
|
|
6
|
+
* - Mint (EVM → Sui): `redeemVaa` → `DepositRequest<CREDIT>` hot potato,
|
|
7
|
+
* consumed in the same PTB by `consumeCreditDeposit` (the wxa deposit
|
|
8
|
+
* policy CREDIT is registered under — selected via config).
|
|
9
|
+
* - Withdraw (Sui → EVM / native): `routeWormhole` / `routeNative` encode
|
|
10
|
+
* `extra_data`, fed to `account::request_withdraw` →
|
|
11
|
+
* `enqueueWithdrawal` parks a FIFO `Queue<CREDIT>` entry.
|
|
12
|
+
* - Keeper drains the queue via `executeWithdrawalWormhole` /
|
|
13
|
+
* `executeWithdrawalNative` (caller must be on the executor allowlist).
|
|
14
|
+
* - PSM: `custodyMint` against the native `CustodyVault` (direct burn was
|
|
15
|
+
* removed — audit L03/M14; redeem via the withdraw queue path above).
|
|
16
|
+
*
|
|
17
|
+
* Every builder that emits a hot potato returns its argument so the caller
|
|
18
|
+
* (or the high-level `tx-builders.ts` wrappers) can pair + consume it in the
|
|
19
|
+
* same PTB.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.redeemVaa = redeemVaa;
|
|
23
|
+
exports.consumeCreditDeposit = consumeCreditDeposit;
|
|
24
|
+
exports.routeWormhole = routeWormhole;
|
|
25
|
+
exports.routeNative = routeNative;
|
|
26
|
+
exports.requestCreditWithdraw = requestCreditWithdraw;
|
|
27
|
+
exports.enqueueWithdrawal = enqueueWithdrawal;
|
|
28
|
+
exports.executeWithdrawalWormhole = executeWithdrawalWormhole;
|
|
29
|
+
exports.executeWithdrawalNative = executeWithdrawalNative;
|
|
30
|
+
exports.custodyMint = custodyMint;
|
|
31
|
+
const bcs_1 = require("@mysten/bcs");
|
|
32
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
33
|
+
const custody_vault_ts_1 = require("../../generated/native_custody/custody_vault.js");
|
|
34
|
+
const account_ts_1 = require("../../generated/waterx_account/account.js");
|
|
35
|
+
const direct_rule_ts_1 = require("../../generated/waterx_account/direct_rule.js");
|
|
36
|
+
const withdrawal_queue_ts_1 = require("../../generated/withdrawal_queue/withdrawal_queue.js");
|
|
37
|
+
const wormhole_bridge_ts_1 = require("../../generated/wormhole_bridge/wormhole_bridge.js");
|
|
38
|
+
const account_request_ts_1 = require("../account-request.js");
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// Byte helpers
|
|
41
|
+
// ============================================================================
|
|
42
|
+
/** Accept a Uint8Array, number[], or 0x/bare hex string → `number[]`. */
|
|
43
|
+
function toBytes(input) {
|
|
44
|
+
if (typeof input === "string") {
|
|
45
|
+
const hex = input.startsWith("0x") ? input.slice(2) : input;
|
|
46
|
+
// `fromHex` silently mis-parses odd-length strings, so guard up front.
|
|
47
|
+
if (hex.length % 2 !== 0)
|
|
48
|
+
throw new Error(`odd-length hex: ${input}`);
|
|
49
|
+
return Array.from((0, bcs_1.fromHex)(hex));
|
|
50
|
+
}
|
|
51
|
+
return Array.from(input);
|
|
52
|
+
}
|
|
53
|
+
function toEvmAddressBytes(input, field) {
|
|
54
|
+
const bytes = toBytes(input);
|
|
55
|
+
if (bytes.length !== 20) {
|
|
56
|
+
throw new Error(`${field} must be a 20-byte EVM address (got ${bytes.length})`);
|
|
57
|
+
}
|
|
58
|
+
return bytes;
|
|
59
|
+
}
|
|
60
|
+
function creditTypeOf(client, override) {
|
|
61
|
+
return (0, utils_1.normalizeStructTag)(override ?? client.creditType());
|
|
62
|
+
}
|
|
63
|
+
// Required-ID accessors: the credit/bridge package entries carry their
|
|
64
|
+
// shared object ids only after the relevant deploy phase has run, so each
|
|
65
|
+
// is optional in the schema. These throw an actionable error rather than
|
|
66
|
+
// letting `tx.object(undefined)` fail opaquely.
|
|
67
|
+
function bridgeId(c) {
|
|
68
|
+
const id = c.getBridge().bridge;
|
|
69
|
+
if (!id)
|
|
70
|
+
throw new Error("wormhole_bridge.bridge missing from config (Bridge not initialized)");
|
|
71
|
+
return id;
|
|
72
|
+
}
|
|
73
|
+
function creditRegistryId(c) {
|
|
74
|
+
const id = c.getCredit().credit_registry;
|
|
75
|
+
if (!id)
|
|
76
|
+
throw new Error("waterx_credit.credit_registry missing from config");
|
|
77
|
+
return id;
|
|
78
|
+
}
|
|
79
|
+
function queuePkg(c) {
|
|
80
|
+
const q = c.config.packages.withdrawal_queue;
|
|
81
|
+
if (!q)
|
|
82
|
+
throw new Error("withdrawal_queue not configured for this deployment");
|
|
83
|
+
return q.published_at;
|
|
84
|
+
}
|
|
85
|
+
function queueId(c) {
|
|
86
|
+
const q = c.config.packages.withdrawal_queue;
|
|
87
|
+
if (!q?.queue)
|
|
88
|
+
throw new Error("withdrawal_queue.queue missing from config");
|
|
89
|
+
return q.queue;
|
|
90
|
+
}
|
|
91
|
+
function custodyPkg(c) {
|
|
92
|
+
const n = c.config.packages.native_custody;
|
|
93
|
+
if (!n)
|
|
94
|
+
throw new Error("native_custody not configured for this deployment");
|
|
95
|
+
return n.published_at;
|
|
96
|
+
}
|
|
97
|
+
function custodyVaultId(c) {
|
|
98
|
+
const n = c.config.packages.native_custody;
|
|
99
|
+
if (!n?.vault)
|
|
100
|
+
throw new Error("native_custody.vault missing from config");
|
|
101
|
+
return n.vault;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Build `wormhole_bridge::redeem_vaa<CREDIT>`. Returns the
|
|
105
|
+
* `DepositRequest<CREDIT>` hot-potato argument — **must** be consumed in the
|
|
106
|
+
* same PTB (see {@link consumeCreditDeposit} / `redeemVaaTx`).
|
|
107
|
+
*/
|
|
108
|
+
function redeemVaa(client, tx, params) {
|
|
109
|
+
const [req] = (0, wormhole_bridge_ts_1.redeemVaa)({
|
|
110
|
+
package: client.getBridge().published_at,
|
|
111
|
+
arguments: {
|
|
112
|
+
bridge: tx.object(bridgeId(client)),
|
|
113
|
+
registry: tx.object(creditRegistryId(client)),
|
|
114
|
+
accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
115
|
+
wormholeState: tx.object(client.wormholeStateId()),
|
|
116
|
+
vaaBytes: toBytes(params.vaaBytes),
|
|
117
|
+
},
|
|
118
|
+
typeArguments: [creditTypeOf(client, params.creditType)],
|
|
119
|
+
})(tx);
|
|
120
|
+
return req;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Consume a `DepositRequest<CREDIT>` via `direct_rule::consume_deposit_direct`
|
|
124
|
+
* — the wxa deposit policy CREDIT is registered under (deploy.ts phase 2:
|
|
125
|
+
* `register_deposit_policy<CREDIT, DirectRule>`). Must run in the same PTB
|
|
126
|
+
* as the `redeem_vaa` / custody `mint` that produced the request.
|
|
127
|
+
*/
|
|
128
|
+
function consumeCreditDeposit(client, tx, params) {
|
|
129
|
+
(0, direct_rule_ts_1.consumeDepositDirect)({
|
|
130
|
+
package: client.config.packages.waterx_account.published_at,
|
|
131
|
+
arguments: {
|
|
132
|
+
registry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
133
|
+
req: params.depositRequest,
|
|
134
|
+
},
|
|
135
|
+
typeArguments: [creditTypeOf(client, params.creditType)],
|
|
136
|
+
})(tx);
|
|
137
|
+
}
|
|
138
|
+
/** Build `withdrawal_queue::route_wormhole`. Returns the `extra_data` argument. */
|
|
139
|
+
function routeWormhole(client, tx, params) {
|
|
140
|
+
if (!Number.isInteger(params.evmDestinationChain) ||
|
|
141
|
+
params.evmDestinationChain < 0 ||
|
|
142
|
+
params.evmDestinationChain > 0xffff) {
|
|
143
|
+
throw new Error(`evmDestinationChain must be a u16 (0..65535), got ${params.evmDestinationChain}`);
|
|
144
|
+
}
|
|
145
|
+
const out = (0, withdrawal_queue_ts_1.routeWormhole)({
|
|
146
|
+
package: queuePkg(client),
|
|
147
|
+
arguments: {
|
|
148
|
+
evmDestinationChain: params.evmDestinationChain,
|
|
149
|
+
evmRecipient: toEvmAddressBytes(params.evmRecipient, "evmRecipient"),
|
|
150
|
+
evmToken: toEvmAddressBytes(params.evmToken, "evmToken"),
|
|
151
|
+
},
|
|
152
|
+
})(tx);
|
|
153
|
+
return out;
|
|
154
|
+
}
|
|
155
|
+
/** Build `withdrawal_queue::route_native<T>`. Returns the `extra_data` argument. */
|
|
156
|
+
function routeNative(client, tx, params) {
|
|
157
|
+
const out = (0, withdrawal_queue_ts_1.routeNative)({
|
|
158
|
+
package: queuePkg(client),
|
|
159
|
+
arguments: { minOutput: BigInt(params.minOutput ?? 0n) },
|
|
160
|
+
typeArguments: [(0, utils_1.normalizeStructTag)(params.assetType)],
|
|
161
|
+
})(tx);
|
|
162
|
+
return out;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Build `account::request_withdraw<CREDIT>` with a route-encoded `extra_data`.
|
|
166
|
+
* Returns the `WithdrawRequest<CREDIT>` hot-potato argument (feed to
|
|
167
|
+
* {@link enqueueWithdrawal} in the same PTB).
|
|
168
|
+
*/
|
|
169
|
+
function requestCreditWithdraw(client, tx, params) {
|
|
170
|
+
const senderRequest = (0, account_request_ts_1.makeSenderRequest)(client, tx, params.bucketAccount);
|
|
171
|
+
const [req] = (0, account_ts_1.requestWithdraw)({
|
|
172
|
+
package: client.config.packages.waterx_account.published_at,
|
|
173
|
+
arguments: {
|
|
174
|
+
registry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
175
|
+
senderRequest: senderRequest,
|
|
176
|
+
accountId: params.accountId,
|
|
177
|
+
amount: params.amount,
|
|
178
|
+
recipient: params.recipient,
|
|
179
|
+
extraData: params.route,
|
|
180
|
+
},
|
|
181
|
+
typeArguments: [creditTypeOf(client, params.creditType)],
|
|
182
|
+
})(tx);
|
|
183
|
+
return req;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Build `withdrawal_queue::enqueue<CREDIT>`. Returns the assigned `u64` key
|
|
187
|
+
* argument (also surfaced on-chain via the `Enqueued` event).
|
|
188
|
+
*/
|
|
189
|
+
function enqueueWithdrawal(client, tx, params) {
|
|
190
|
+
const out = (0, withdrawal_queue_ts_1.enqueue)({
|
|
191
|
+
package: queuePkg(client),
|
|
192
|
+
arguments: {
|
|
193
|
+
queue: tx.object(queueId(client)),
|
|
194
|
+
registry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
195
|
+
req: params.withdrawRequest,
|
|
196
|
+
},
|
|
197
|
+
typeArguments: [creditTypeOf(client, params.creditType)],
|
|
198
|
+
})(tx);
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
/** Build `withdrawal_queue::execute_wormhole<CREDIT>` (keeper / executor-gated). */
|
|
202
|
+
function executeWithdrawalWormhole(client, tx, params) {
|
|
203
|
+
const request = (0, account_request_ts_1.makeSenderRequest)(client, tx, params.bucketAccount);
|
|
204
|
+
(0, withdrawal_queue_ts_1.executeWormhole)({
|
|
205
|
+
package: queuePkg(client),
|
|
206
|
+
arguments: {
|
|
207
|
+
queue: tx.object(queueId(client)),
|
|
208
|
+
key: params.key,
|
|
209
|
+
request: request,
|
|
210
|
+
bridge: tx.object(bridgeId(client)),
|
|
211
|
+
creditRegistry: tx.object(creditRegistryId(client)),
|
|
212
|
+
wormholeState: tx.object(client.wormholeStateId()),
|
|
213
|
+
wormholeFee: params.wormholeFee,
|
|
214
|
+
},
|
|
215
|
+
typeArguments: [creditTypeOf(client, params.creditType)],
|
|
216
|
+
})(tx);
|
|
217
|
+
}
|
|
218
|
+
/** Build `withdrawal_queue::execute_native<T, CREDIT>` (keeper / executor-gated). */
|
|
219
|
+
function executeWithdrawalNative(client, tx, params) {
|
|
220
|
+
const request = (0, account_request_ts_1.makeSenderRequest)(client, tx, params.bucketAccount);
|
|
221
|
+
(0, withdrawal_queue_ts_1.executeNative)({
|
|
222
|
+
package: queuePkg(client),
|
|
223
|
+
arguments: {
|
|
224
|
+
queue: tx.object(queueId(client)),
|
|
225
|
+
key: params.key,
|
|
226
|
+
request: request,
|
|
227
|
+
vault: tx.object(custodyVaultId(client)),
|
|
228
|
+
creditRegistry: tx.object(creditRegistryId(client)),
|
|
229
|
+
},
|
|
230
|
+
typeArguments: [(0, utils_1.normalizeStructTag)(params.assetType), creditTypeOf(client, params.creditType)],
|
|
231
|
+
})(tx);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Build `native_custody::custody_vault::mint<T, CREDIT>`. Returns the
|
|
235
|
+
* `DepositRequest<CREDIT>` hot-potato argument (consume in-PTB via
|
|
236
|
+
* {@link consumeCreditDeposit}).
|
|
237
|
+
*/
|
|
238
|
+
function custodyMint(client, tx, params) {
|
|
239
|
+
const [req] = (0, custody_vault_ts_1.mint)({
|
|
240
|
+
package: custodyPkg(client),
|
|
241
|
+
arguments: {
|
|
242
|
+
vault: tx.object(custodyVaultId(client)),
|
|
243
|
+
registry: tx.object(creditRegistryId(client)),
|
|
244
|
+
accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
245
|
+
accountId: params.accountId,
|
|
246
|
+
assetCoin: params.assetCoin,
|
|
247
|
+
extraData: toBytes(params.extraData ?? new Uint8Array()),
|
|
248
|
+
},
|
|
249
|
+
typeArguments: [(0, utils_1.normalizeStructTag)(params.assetType), creditTypeOf(client, params.creditType)],
|
|
250
|
+
})(tx);
|
|
251
|
+
return req;
|
|
252
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builders for `native_custody::custody_vault` — the Sui-native PSM that
|
|
3
|
+
* mints the protocol CREDIT CoinType 1:1 against backing stable assets `T`
|
|
4
|
+
* (CCTP USDC, USDT, …).
|
|
5
|
+
*
|
|
6
|
+
* `mintCredit` / `mintCreditFromRequest` return a `DepositRequest<CREDIT>`
|
|
7
|
+
* hot potato — it must be consumed in the same PTB by the deposit policy
|
|
8
|
+
* registered for CREDIT (the canonical policy is `direct_rule::DirectRule`).
|
|
9
|
+
* `mintCreditToAccount` chains that consume for you.
|
|
10
|
+
*
|
|
11
|
+
* There is no direct burn builder: the contract removed witness-free
|
|
12
|
+
* `custody_vault::burn` (audit L03/M14). CREDIT redemption routes through
|
|
13
|
+
* requestCreditWithdraw -> enqueueWithdrawal -> keeper executeWithdrawalNative.
|
|
14
|
+
*
|
|
15
|
+
* Requires `waterx_credit` + `native_custody` in the loaded config — both
|
|
16
|
+
* are optional in `WaterXConfig` since not every deployment ships the
|
|
17
|
+
* credit pipeline.
|
|
18
|
+
*/
|
|
19
|
+
import type { Transaction, TransactionArgument } from "@mysten/sui/transactions";
|
|
20
|
+
import type { AccountClientLike } from "../client.ts";
|
|
21
|
+
export interface MintCreditParams {
|
|
22
|
+
/** wxa account ID the minted CREDIT is deposited into (also the partner-fee key). */
|
|
23
|
+
accountId: string;
|
|
24
|
+
/** `Coin<T>` of the backing asset to convert. */
|
|
25
|
+
assetCoin: TransactionArgument;
|
|
26
|
+
/** Fully-qualified backing-asset Move type `T` (must be registered on the vault). */
|
|
27
|
+
assetType: string;
|
|
28
|
+
/** CREDIT CoinType. Defaults to `client.creditType()`. */
|
|
29
|
+
creditType?: string;
|
|
30
|
+
/** Opaque bytes forwarded onto the returned `DepositRequest<CREDIT>`. */
|
|
31
|
+
extraData?: Uint8Array;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build `custody_vault::mint<T, CREDIT>`. Returns the `DepositRequest<CREDIT>`
|
|
35
|
+
* argument — consume it in the same PTB (see `mintCreditToAccount`).
|
|
36
|
+
*/
|
|
37
|
+
export declare function mintCredit(client: AccountClientLike, tx: Transaction, params: MintCreditParams): TransactionArgument;
|
|
38
|
+
export interface MintCreditFromRequestParams {
|
|
39
|
+
/** `DepositRequest<T>` from `account::request_deposit<T>` (T must have `NativeCustody` as its deposit policy). */
|
|
40
|
+
depositRequest: TransactionArgument;
|
|
41
|
+
/** Fully-qualified backing-asset Move type `T`. */
|
|
42
|
+
assetType: string;
|
|
43
|
+
/** CREDIT CoinType. Defaults to `client.creditType()`. */
|
|
44
|
+
creditType?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build `custody_vault::mint_from_request<T, CREDIT>`. The returned
|
|
48
|
+
* `DepositRequest<CREDIT>` inherits the input request's `accountId` /
|
|
49
|
+
* `extraData`. Consume it in the same PTB.
|
|
50
|
+
*/
|
|
51
|
+
export declare function mintCreditFromRequest(client: AccountClientLike, tx: Transaction, params: MintCreditFromRequestParams): TransactionArgument;
|
|
52
|
+
/**
|
|
53
|
+
* `mintCredit` followed by `direct_rule::consume_deposit_direct<CREDIT>`, so
|
|
54
|
+
* the freshly minted CREDIT settles straight into `accountId`'s wxa balance.
|
|
55
|
+
* Assumes CREDIT's deposit policy is `DirectRule` (the canonical setup).
|
|
56
|
+
*/
|
|
57
|
+
export declare function mintCreditToAccount(client: AccountClientLike, tx: Transaction, params: MintCreditParams): void;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Builders for `native_custody::custody_vault` — the Sui-native PSM that
|
|
4
|
+
* mints the protocol CREDIT CoinType 1:1 against backing stable assets `T`
|
|
5
|
+
* (CCTP USDC, USDT, …).
|
|
6
|
+
*
|
|
7
|
+
* `mintCredit` / `mintCreditFromRequest` return a `DepositRequest<CREDIT>`
|
|
8
|
+
* hot potato — it must be consumed in the same PTB by the deposit policy
|
|
9
|
+
* registered for CREDIT (the canonical policy is `direct_rule::DirectRule`).
|
|
10
|
+
* `mintCreditToAccount` chains that consume for you.
|
|
11
|
+
*
|
|
12
|
+
* There is no direct burn builder: the contract removed witness-free
|
|
13
|
+
* `custody_vault::burn` (audit L03/M14). CREDIT redemption routes through
|
|
14
|
+
* requestCreditWithdraw -> enqueueWithdrawal -> keeper executeWithdrawalNative.
|
|
15
|
+
*
|
|
16
|
+
* Requires `waterx_credit` + `native_custody` in the loaded config — both
|
|
17
|
+
* are optional in `WaterXConfig` since not every deployment ships the
|
|
18
|
+
* credit pipeline.
|
|
19
|
+
*/
|
|
20
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
23
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
24
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(o, k2, desc);
|
|
27
|
+
}) : (function(o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
}));
|
|
31
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
32
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
33
|
+
}) : function(o, v) {
|
|
34
|
+
o["default"] = v;
|
|
35
|
+
});
|
|
36
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
37
|
+
var ownKeys = function(o) {
|
|
38
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
39
|
+
var ar = [];
|
|
40
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
41
|
+
return ar;
|
|
42
|
+
};
|
|
43
|
+
return ownKeys(o);
|
|
44
|
+
};
|
|
45
|
+
return function (mod) {
|
|
46
|
+
if (mod && mod.__esModule) return mod;
|
|
47
|
+
var result = {};
|
|
48
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
})();
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.mintCredit = mintCredit;
|
|
55
|
+
exports.mintCreditFromRequest = mintCreditFromRequest;
|
|
56
|
+
exports.mintCreditToAccount = mintCreditToAccount;
|
|
57
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
58
|
+
const custody = __importStar(require("../../generated/native_custody/custody_vault.js"));
|
|
59
|
+
const direct_rule_ts_1 = require("../../generated/waterx_account/direct_rule.js");
|
|
60
|
+
function requireCredit(client) {
|
|
61
|
+
const credit = client.config.packages.waterx_credit;
|
|
62
|
+
if (!credit?.credit_registry) {
|
|
63
|
+
throw new Error("waterx_credit is not configured — set packages.waterx_credit.credit_registry");
|
|
64
|
+
}
|
|
65
|
+
return { credit_registry: credit.credit_registry };
|
|
66
|
+
}
|
|
67
|
+
function requireCustody(client) {
|
|
68
|
+
const nc = client.config.packages.native_custody;
|
|
69
|
+
if (!nc?.vault) {
|
|
70
|
+
throw new Error("native_custody is not configured — set packages.native_custody.vault");
|
|
71
|
+
}
|
|
72
|
+
return { published_at: nc.published_at, vault: nc.vault };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Build `custody_vault::mint<T, CREDIT>`. Returns the `DepositRequest<CREDIT>`
|
|
76
|
+
* argument — consume it in the same PTB (see `mintCreditToAccount`).
|
|
77
|
+
*/
|
|
78
|
+
function mintCredit(client, tx, params) {
|
|
79
|
+
const credit = requireCredit(client);
|
|
80
|
+
const nc = requireCustody(client);
|
|
81
|
+
const [req] = custody.mint({
|
|
82
|
+
package: nc.published_at,
|
|
83
|
+
arguments: {
|
|
84
|
+
vault: tx.object(nc.vault),
|
|
85
|
+
registry: tx.object(credit.credit_registry),
|
|
86
|
+
accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
87
|
+
accountId: params.accountId,
|
|
88
|
+
assetCoin: params.assetCoin,
|
|
89
|
+
extraData: Array.from(params.extraData ?? new Uint8Array()),
|
|
90
|
+
},
|
|
91
|
+
typeArguments: [
|
|
92
|
+
(0, utils_1.normalizeStructTag)(params.assetType),
|
|
93
|
+
(0, utils_1.normalizeStructTag)(params.creditType ?? client.creditType()),
|
|
94
|
+
],
|
|
95
|
+
})(tx);
|
|
96
|
+
return req;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build `custody_vault::mint_from_request<T, CREDIT>`. The returned
|
|
100
|
+
* `DepositRequest<CREDIT>` inherits the input request's `accountId` /
|
|
101
|
+
* `extraData`. Consume it in the same PTB.
|
|
102
|
+
*/
|
|
103
|
+
function mintCreditFromRequest(client, tx, params) {
|
|
104
|
+
const credit = requireCredit(client);
|
|
105
|
+
const nc = requireCustody(client);
|
|
106
|
+
const [req] = custody.mintFromRequest({
|
|
107
|
+
package: nc.published_at,
|
|
108
|
+
arguments: {
|
|
109
|
+
vault: tx.object(nc.vault),
|
|
110
|
+
registry: tx.object(credit.credit_registry),
|
|
111
|
+
accountRegistry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
112
|
+
depositRequest: params.depositRequest,
|
|
113
|
+
},
|
|
114
|
+
typeArguments: [
|
|
115
|
+
(0, utils_1.normalizeStructTag)(params.assetType),
|
|
116
|
+
(0, utils_1.normalizeStructTag)(params.creditType ?? client.creditType()),
|
|
117
|
+
],
|
|
118
|
+
})(tx);
|
|
119
|
+
return req;
|
|
120
|
+
}
|
|
121
|
+
// ============================================================================
|
|
122
|
+
// mint + consume — credit lands directly in the wxa account
|
|
123
|
+
// ============================================================================
|
|
124
|
+
/**
|
|
125
|
+
* `mintCredit` followed by `direct_rule::consume_deposit_direct<CREDIT>`, so
|
|
126
|
+
* the freshly minted CREDIT settles straight into `accountId`'s wxa balance.
|
|
127
|
+
* Assumes CREDIT's deposit policy is `DirectRule` (the canonical setup).
|
|
128
|
+
*/
|
|
129
|
+
function mintCreditToAccount(client, tx, params) {
|
|
130
|
+
const req = mintCredit(client, tx, params);
|
|
131
|
+
(0, direct_rule_ts_1.consumeDepositDirect)({
|
|
132
|
+
package: client.config.packages.waterx_account.published_at,
|
|
133
|
+
arguments: {
|
|
134
|
+
registry: tx.object(client.config.packages.waterx_account.account_registry),
|
|
135
|
+
req: req,
|
|
136
|
+
},
|
|
137
|
+
typeArguments: [(0, utils_1.normalizeStructTag)(params.creditType ?? client.creditType())],
|
|
138
|
+
})(tx);
|
|
139
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wormhole / Wormholescan integration for the cross-chain credit bridge.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for VAA discovery + (de)serialization — mirrors
|
|
5
|
+
* `oracle/pyth.ts`'s role for Pyth's Hermes endpoint. Two directions:
|
|
6
|
+
*
|
|
7
|
+
* - Mint (EVM → Sui): fetch the signed VAA for an EVM `Deposit` by
|
|
8
|
+
* (emitter chain, emitter address, sequence); the raw bytes feed
|
|
9
|
+
* `wormhole_bridge::redeem_vaa`.
|
|
10
|
+
* - Withdraw (Sui → EVM): list recent VAAs emitted by the bridge's
|
|
11
|
+
* `EmitterCap` to submit on the EVM side.
|
|
12
|
+
*
|
|
13
|
+
* Endpoints / chain ids come from `client.wormhole` (network defaults in
|
|
14
|
+
* `WORMHOLE_DEFAULTS`, overridable via `WaterXConfig.wormhole`).
|
|
15
|
+
*/
|
|
16
|
+
import type { AccountClientLike } from "../client.ts";
|
|
17
|
+
/**
|
|
18
|
+
* Normalize an emitter id to Wormholescan's `emitter` path segment:
|
|
19
|
+
* 64-char lowercase hex, no `0x`. Accepts a 0x EVM address (left-padded to
|
|
20
|
+
* 32 bytes) or a 32-byte Sui object id (the bridge `EmitterCap` id).
|
|
21
|
+
*/
|
|
22
|
+
export declare function toWormholescanEmitter(idOrAddress: string): string;
|
|
23
|
+
/** EVM-side naming alias of {@link toWormholescanEmitter}. */
|
|
24
|
+
export declare const padEvmEmitter: typeof toWormholescanEmitter;
|
|
25
|
+
export interface VaaResponse {
|
|
26
|
+
/** Base64-encoded signed VAA. */
|
|
27
|
+
vaa: string;
|
|
28
|
+
sequence: number;
|
|
29
|
+
emitterAddr: string;
|
|
30
|
+
guardianSetIndex: number;
|
|
31
|
+
}
|
|
32
|
+
export interface VaaListItem {
|
|
33
|
+
/** Wormholescan returns u64 as a string — keep it that way to avoid `number` precision loss. */
|
|
34
|
+
sequence: string;
|
|
35
|
+
/** Base64 VAA; absent until guardians have signed. */
|
|
36
|
+
vaa?: string;
|
|
37
|
+
emitterAddr?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface WormholescanOptions {
|
|
40
|
+
/** Override `fetch` (tests / non-global-fetch environments). */
|
|
41
|
+
fetchImpl?: typeof fetch;
|
|
42
|
+
/** Request timeout in ms. Default 10_000. */
|
|
43
|
+
timeoutMs?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fetch a single signed VAA. Returns `null` while guardians haven't signed
|
|
47
|
+
* it yet (HTTP 404 or no `vaa` field) so callers can retry on the next tick.
|
|
48
|
+
*/
|
|
49
|
+
export declare function fetchVaa(apiBase: string, chainId: number, emitter: string, sequence: number | string | bigint, opts?: WormholescanOptions): Promise<VaaResponse | null>;
|
|
50
|
+
/**
|
|
51
|
+
* List recent VAAs emitted by `emitter` on `chainId`, newest first. Used by
|
|
52
|
+
* the burn relayer to discover Sui→EVM `WithdrawalInitiated` messages
|
|
53
|
+
* (Wormholescan only returns guardian-signed VAAs, so the await is implicit).
|
|
54
|
+
*/
|
|
55
|
+
export declare function listVaasByEmitter(apiBase: string, chainId: number, emitter: string, opts?: WormholescanOptions & {
|
|
56
|
+
page?: number;
|
|
57
|
+
pageSize?: number;
|
|
58
|
+
}): Promise<VaaListItem[]>;
|
|
59
|
+
/** Poll {@link fetchVaa} until the VAA is signed or `timeoutMs` elapses. */
|
|
60
|
+
export declare function waitForVaa(apiBase: string, chainId: number, emitter: string, sequence: number | string | bigint, opts?: WormholescanOptions & {
|
|
61
|
+
intervalMs?: number;
|
|
62
|
+
timeoutMs?: number;
|
|
63
|
+
onTick?: (attempt: number) => void;
|
|
64
|
+
signal?: AbortSignal;
|
|
65
|
+
}): Promise<VaaResponse>;
|
|
66
|
+
/** Base64 VAA → raw bytes (the form Sui `redeem_vaa(vector<u8>)` expects). */
|
|
67
|
+
export declare function vaaBase64ToBytes(b64: string): Uint8Array;
|
|
68
|
+
/** Raw bytes → base64 (round-trips a VAA pulled off-chain). */
|
|
69
|
+
export declare function vaaBytesToBase64(bytes: Uint8Array): string;
|
|
70
|
+
/** Base64 VAA → `0x`-prefixed hex (the form EVM `submitWithdrawalVAA(bytes)` expects). */
|
|
71
|
+
export declare function vaaBase64ToHex(b64: string): `0x${string}`;
|
|
72
|
+
/**
|
|
73
|
+
* Fetch the signed VAA for an inbound EVM `Deposit` using the client's
|
|
74
|
+
* configured Wormholescan endpoint. `emitter` is the EVM-side bridge
|
|
75
|
+
* address (0x form accepted — left-padded automatically); `chainId` is the
|
|
76
|
+
* source EVM chain's Wormhole chain id.
|
|
77
|
+
*/
|
|
78
|
+
export declare function fetchDepositVaa(client: AccountClientLike, evmWormholeChainId: number, evmEmitter: string, sequence: number | string | bigint, opts?: WormholescanOptions): Promise<VaaResponse | null>;
|
|
79
|
+
/**
|
|
80
|
+
* List recent Sui→EVM VAAs from the configured bridge `EmitterCap` (burn
|
|
81
|
+
* relayer). Requires `packages.wormhole_bridge.emitter_cap` in config.
|
|
82
|
+
*/
|
|
83
|
+
export declare function listBridgeWithdrawalVaas(client: AccountClientLike, opts?: WormholescanOptions & {
|
|
84
|
+
page?: number;
|
|
85
|
+
pageSize?: number;
|
|
86
|
+
}): Promise<VaaListItem[]>;
|