From 00341923b635e3423bf9280a48f6fc8b47d6a32b Mon Sep 17 00:00:00 2001 From: dizpers Date: Wed, 1 Apr 2026 20:05:45 +0700 Subject: [PATCH 1/6] Add correct contracts for testnet and mainnet; Generate ABI for testnet and mainnet --- src/decibel/_constants.py | 4 +- src/decibel/abi/generate.py | 8 +- src/decibel/abi/json/mainnet.json | 2918 +++++++++++++++++++++++++++++ src/decibel/abi/json/testnet.json | 1282 ++++++++----- 4 files changed, 3758 insertions(+), 454 deletions(-) create mode 100644 src/decibel/abi/json/mainnet.json diff --git a/src/decibel/_constants.py b/src/decibel/_constants.py index a2630d2..da35fbd 100644 --- a/src/decibel/_constants.py +++ b/src/decibel/_constants.py @@ -81,10 +81,10 @@ def _create_deployment(package: str) -> Deployment: ) -_MAINNET_PACKAGE = "0xe6683d451db246750f180fb78d9b5e0a855dacba64ddf5810dffdaeb221e46bf" +_MAINNET_PACKAGE = "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06" _MAINNET_USDC = "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b" _NETNA_PACKAGE = "0xb8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95" -_TESTNET_PACKAGE = "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f" +_TESTNET_PACKAGE = "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f" _LOCAL_PACKAGE = "0xb8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95" _DOCKER_PACKAGE = "0xb8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95" diff --git a/src/decibel/abi/generate.py b/src/decibel/abi/generate.py index bb8bbd7..250a0b6 100644 --- a/src/decibel/abi/generate.py +++ b/src/decibel/abi/generate.py @@ -12,7 +12,7 @@ from aptos_sdk.account_address import AccountAddress from aptos_sdk.async_client import RestClient -from decibel._constants import NAMED_CONFIGS, NETNA_CONFIG, TESTNET_CONFIG, DecibelConfig +from decibel._constants import MAINNET_CONFIG, NAMED_CONFIGS, NETNA_CONFIG, TESTNET_CONFIG, DecibelConfig logger = logging.getLogger(__name__) @@ -42,6 +42,8 @@ def get_abi_filename(config: DecibelConfig) -> str: return "netna.json" elif config == TESTNET_CONFIG: return "testnet.json" + elif config == MAINNET_CONFIG: + return "mainnet.json" else: return f"{config.network.value}.json" @@ -167,14 +169,14 @@ def cli() -> None: "networks", nargs="*", default=["netna"], - help="Networks to fetch ABIs for (netna, testnet, all). Default: netna", + help="Networks to fetch ABIs for (netna, testnet, mainnet, all). Default: netna", ) args = parser.parse_args() networks: list[str] = args.networks if "all" in networks: - networks = ["netna", "testnet"] + networks = ["netna", "testnet", "mainnet"] asyncio.run(main(networks)) diff --git a/src/decibel/abi/json/mainnet.json b/src/decibel/abi/json/mainnet.json new file mode 100644 index 0000000..76ec956 --- /dev/null +++ b/src/decibel/abi/json/mainnet.json @@ -0,0 +1,2918 @@ +{ + "packageAddress": "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06", + "network": "mainnet", + "fullnodeUrl": "https://api.mainnet.aptoslabs.com/v1", + "fetchedAt": "2026-04-01T13:02:06.567129Z", + "abis": { + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::initialize": { + "name": "initialize", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::increment_time": { + "name": "increment_time", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_max_referral_codes_for_address": { + "name": "set_max_referral_codes_for_address", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_max_usage_per_referral_code_for_address": { + "name": "set_max_usage_per_referral_code_for_address", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::delist_market": { + "name": "delist_market", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option<0x1::string::String>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_blp_margin_as_profit_percentage": { + "name": "set_blp_margin_as_profit_percentage", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::admin_register_referral_code": { + "name": "admin_register_referral_code", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::string::String" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::admin_register_referrer": { + "name": "admin_register_referrer", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::string::String" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_fee_config": { + "name": "update_fee_config", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector", + "u128", + "vector", + "vector", + "u64", + "u64", + "bool", + "u64", + "u64", + "u128", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::drain_async_queue": { + "name": "drain_async_queue", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_to_account_creation_allow_list": { + "name": "add_to_account_creation_allow_list", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector
" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::decrease_market_lot_size": { + "name": "decrease_market_lot_size", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::decrease_market_notional_open_interest": { + "name": "decrease_market_notional_open_interest", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::decrease_market_open_interest": { + "name": "decrease_market_open_interest", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::delist_market_with_mark_price": { + "name": "delist_market_with_mark_price", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "0x1::option::Option<0x1::string::String>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::increase_market_lot_size": { + "name": "increase_market_lot_size", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::increase_market_notional_open_interest": { + "name": "increase_market_notional_open_interest", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::increase_market_open_interest": { + "name": "increase_market_open_interest", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::register_market_with_composite_oracle_primary_chainlink": { + "name": "register_market_with_composite_oracle_primary_chainlink", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "vector", + "u64", + "u8", + "u64", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::register_market_with_composite_oracle_primary_pyth": { + "name": "register_market_with_composite_oracle_primary_pyth", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "vector", + "u64", + "u64", + "u8", + "u64", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::register_market_with_internal_oracle": { + "name": "register_market_with_internal_oracle", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "u64", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::register_market_with_pyth_oracle": { + "name": "register_market_with_pyth_oracle", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "vector", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_backstop_liquidator_high_watermark": { + "name": "set_backstop_liquidator_high_watermark", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "i64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_invite_only_account_creation": { + "name": "set_invite_only_account_creation", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_allowlist_only": { + "name": "set_market_allowlist_only", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "vector
", + "0x1::option::Option<0x1::string::String>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_cooldown_period_micros": { + "name": "set_market_cooldown_period_micros", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_halted": { + "name": "set_market_halted", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option<0x1::string::String>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_margin_call_backstop_pct": { + "name": "set_market_margin_call_backstop_pct", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_margin_call_fee_pct": { + "name": "set_market_margin_call_fee_pct", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_max_leverage": { + "name": "set_market_max_leverage", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_max_leverage_with_fee_scaling": { + "name": "set_market_max_leverage_with_fee_scaling", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_min_size": { + "name": "set_market_min_size", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_open": { + "name": "set_market_open", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option<0x1::string::String>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_reduce_only": { + "name": "set_market_reduce_only", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "vector
", + "0x1::option::Option<0x1::string::String>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_slippage_increment_pct": { + "name": "set_market_slippage_increment_pct", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_starting_slippage_pct": { + "name": "set_market_starting_slippage_pct", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_unrealized_pnl_haircut": { + "name": "set_market_unrealized_pnl_haircut", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_access_control_admin": { + "name": "add_access_control_admin", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_access_control_guardian": { + "name": "add_access_control_guardian", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_fee_config_governor": { + "name": "add_fee_config_governor", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_global_pause_guardian": { + "name": "add_global_pause_guardian", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_global_unpause_council": { + "name": "add_global_unpause_council", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_invite_only_referral_management_permission": { + "name": "add_invite_only_referral_management_permission", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_market_delist_council": { + "name": "add_market_delist_council", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_market_list_admin": { + "name": "add_market_list_admin", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_market_mode_guardian": { + "name": "add_market_mode_guardian", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_market_open_admin": { + "name": "add_market_open_admin", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_market_risk_governor": { + "name": "add_market_risk_governor", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_market_risk_tightener": { + "name": "add_market_risk_tightener", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_oracle_and_mark_update_permission": { + "name": "add_oracle_and_mark_update_permission", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_order_management_admin": { + "name": "add_order_management_admin", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_vault_global_config_admin": { + "name": "add_vault_global_config_admin", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::add_withdraw_rate_limit_governor": { + "name": "add_withdraw_rate_limit_governor", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::admin_register_affiliate": { + "name": "admin_register_affiliate", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::configure_withdraw_rate_limit": { + "name": "configure_withdraw_rate_limit", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "bool", + "u64", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::drain_async_queue_with_limit": { + "name": "drain_async_queue_with_limit", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::init_account_status_cache_for_subaccount": { + "name": "init_account_status_cache_for_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::pause_global_exchange": { + "name": "pause_global_exchange", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_access_control_admin": { + "name": "remove_access_control_admin", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_access_control_guardian": { + "name": "remove_access_control_guardian", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_fee_config_governor": { + "name": "remove_fee_config_governor", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_global_pause_guardian": { + "name": "remove_global_pause_guardian", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_global_unpause_council": { + "name": "remove_global_unpause_council", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_invite_only_referral_management_permission": { + "name": "remove_invite_only_referral_management_permission", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_market_delist_council": { + "name": "remove_market_delist_council", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_market_list_admin": { + "name": "remove_market_list_admin", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_market_mode_guardian": { + "name": "remove_market_mode_guardian", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_market_open_admin": { + "name": "remove_market_open_admin", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_market_risk_governor": { + "name": "remove_market_risk_governor", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_market_risk_tightener": { + "name": "remove_market_risk_tightener", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_oracle_and_mark_update_permission": { + "name": "remove_oracle_and_mark_update_permission", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_order_management_admin": { + "name": "remove_order_management_admin", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_vault_global_config_admin": { + "name": "remove_vault_global_config_admin", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::remove_withdraw_rate_limit_governor": { + "name": "remove_withdraw_rate_limit_governor", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_global_max_builder_fee": { + "name": "set_global_max_builder_fee", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_adl_trigger_threshold": { + "name": "set_market_adl_trigger_threshold", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_book_oracle_ratio_cap_bps": { + "name": "set_market_book_oracle_ratio_cap_bps", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_funding_rate_pause_timeout_microseconds": { + "name": "set_market_funding_rate_pause_timeout_microseconds", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_market_withdrawable_margin_leverage": { + "name": "set_market_withdrawable_margin_leverage", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::set_withdraw_rate_limit_enabled": { + "name": "set_withdraw_rate_limit_enabled", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::unpause_global_exchange": { + "name": "unpause_global_exchange", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_chainlink_oracle": { + "name": "update_mark_for_chainlink_oracle", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "vector", + "vector
", + "vector
", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_chainlink_oracle_with_batch_key": { + "name": "update_mark_for_chainlink_oracle_with_batch_key", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "vector", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_composite_chainlink": { + "name": "update_mark_for_composite_chainlink", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option", + "0x1::option::Option>", + "0x1::option::Option", + "0x1::option::Option", + "vector
", + "vector
", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_composite_chainlink_with_batch_key": { + "name": "update_mark_for_composite_chainlink_with_batch_key", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option", + "0x1::option::Option>", + "0x1::option::Option", + "0x1::option::Option", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_internal_oracle": { + "name": "update_mark_for_internal_oracle", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "vector
", + "vector
", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_internal_oracle_with_batch_key": { + "name": "update_mark_for_internal_oracle_with_batch_key", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_pyth_oracle": { + "name": "update_mark_for_pyth_oracle", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "vector", + "vector
", + "vector
", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_mark_for_pyth_oracle_with_batch_key": { + "name": "update_mark_for_pyth_oracle_with_batch_key", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "vector", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_withdraw_absolute_rate_limit": { + "name": "update_withdraw_absolute_rate_limit", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_withdraw_rate_limit_bps": { + "name": "update_withdraw_rate_limit_bps", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::admin_apis::update_withdraw_window_duration": { + "name": "update_withdraw_window_duration", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::public_apis::close_delisted_position": { + "name": "close_delisted_position", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::public_apis::liquidate_positions": { + "name": "liquidate_positions", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "vector
", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::public_apis::liquidate_position": { + "name": "liquidate_position", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::public_apis::process_perp_collateral_withdrawals": { + "name": "process_perp_collateral_withdrawals", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "u32" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::public_apis::process_perp_market_pending_requests": { + "name": "process_perp_market_pending_requests", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u32" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::primary_subaccount": { + "name": "primary_subaccount", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "address" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::primary_subaccount_object": { + "name": "primary_subaccount_object", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::seeded_subacccount_address": { + "name": "seeded_subacccount_address", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "vector" + ], + "return": [ + "address" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::view_delegated_permissions": { + "name": "view_delegated_permissions", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>" + ], + "return": [ + "0x1::ordered_map::OrderedMap" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::view_is_subaccount_active": { + "name": "view_is_subaccount_active", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::register_referral_code": { + "name": "register_referral_code", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::register_referrer": { + "name": "register_referrer", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::configure_user_settings_for_market": { + "name": "configure_user_settings_for_market", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "bool", + "u8" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::transfer_collateral_to_isolated_position": { + "name": "transfer_collateral_to_isolated_position", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "bool", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::deposit_to_isolated_position_collateral": { + "name": "deposit_to_isolated_position_collateral", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::withdraw_from_isolated_position_collateral": { + "name": "withdraw_from_isolated_position_collateral", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::cancel_tp_sl_order_for_position": { + "name": "cancel_tp_sl_order_for_position", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::place_tp_sl_order_for_position": { + "name": "place_tp_sl_order_for_position", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::deactivate_subaccount": { + "name": "deactivate_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::delegate_ability_to_sub_delegate_to_for_subaccount": { + "name": "delegate_ability_to_sub_delegate_to_for_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::delegate_trading_to_for_subaccount": { + "name": "delegate_trading_to_for_subaccount", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::deposit_to_subaccount_at": { + "name": "deposit_to_subaccount_at", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::reactivate_subaccount": { + "name": "reactivate_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::revoke_all_delegations": { + "name": "revoke_all_delegations", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::revoke_delegation": { + "name": "revoke_delegation", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::transfer_collateral_between_subaccounts": { + "name": "transfer_collateral_between_subaccounts", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::withdraw_from_cross_collateral": { + "name": "withdraw_from_cross_collateral", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::withdraw_from_non_collateral": { + "name": "withdraw_from_non_collateral", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::withdraw_from_subaccount": { + "name": "withdraw_from_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::contribute_to_vault": { + "name": "contribute_to_vault", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "address", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::redeem_from_vault": { + "name": "redeem_from_vault", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "address", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::add_delegated_trader_and_deposit_to_subaccount": { + "name": "add_delegated_trader_and_deposit_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64", + "address", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::admin_create_new_subaccount": { + "name": "admin_create_new_subaccount", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::approve_max_builder_fee_for_subaccount": { + "name": "approve_max_builder_fee_for_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "address", + "u64" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::cancel_bulk_order_to_subaccount": { + "name": "cancel_bulk_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::cancel_client_order_to_subaccount": { + "name": "cancel_client_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::string::String", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::cancel_order_to_subaccount": { + "name": "cancel_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "u128", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::cancel_twap_orders_to_subaccount": { + "name": "cancel_twap_orders_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u128" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::create_new_subaccount": { + "name": "create_new_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::place_bulk_orders_to_subaccount": { + "name": "place_bulk_orders_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "vector", + "vector", + "vector", + "vector", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::place_market_order_to_subaccount": { + "name": "place_market_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "bool", + "bool", + "0x1::option::Option<0x1::string::String>", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::place_order_to_subaccount": { + "name": "place_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "u64", + "bool", + "u8", + "bool", + "0x1::option::Option<0x1::string::String>", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::place_twap_order_to_subaccount": { + "name": "place_twap_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "bool", + "bool", + "u64", + "u64", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::place_twap_order_to_subaccount_v2": { + "name": "place_twap_order_to_subaccount_v2", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "bool", + "bool", + "0x1::option::Option<0x1::string::String>", + "u64", + "u64", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::revoke_max_builder_fee_for_subaccount": { + "name": "revoke_max_builder_fee_for_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "address" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::update_client_order_to_subaccount": { + "name": "update_client_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::string::String", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "u64", + "bool", + "u8", + "bool", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::update_order_to_subaccount": { + "name": "update_order_to_subaccount", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "u128", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u64", + "u64", + "bool", + "u8", + "bool", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option
", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::update_sl_order_for_position": { + "name": "update_sl_order_for_position", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "u128", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts_entry::update_tp_order_for_position": { + "name": "update_tp_order_for_position", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "u128", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "0x1::option::Option", + "0x1::option::Option", + "0x1::option::Option" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_bulk_order": { + "name": "get_bulk_order", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "address" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::BulkOrderView" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_oracle_price": { + "name": "get_oracle_price", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_market_mode": { + "name": "get_market_mode", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market_config::MarketMode" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_oracle_source": { + "name": "get_oracle_source", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::oracle::OracleSource" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_global_primary_store_balance": { + "name": "get_global_primary_store_balance", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_global_secondary_store_balance": { + "name": "get_global_secondary_store_balance", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::primary_asset_metadata": { + "name": "primary_asset_metadata", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_mark_and_oracle_price": { + "name": "get_mark_and_oracle_price", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64", + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_mark_price": { + "name": "get_mark_price", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_adl_tracker_status": { + "name": "get_adl_tracker_status", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::backstop_liquidator_profit_tracker::AdlTrackerStatus" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::backstop_liquidator": { + "name": "backstop_liquidator", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "address" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_max_leverage": { + "name": "market_max_leverage", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u8" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::cross_position_status": { + "name": "cross_position_status", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_positions::AccountStatusDetailed" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_account_net_asset_value": { + "name": "get_account_net_asset_value", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "i64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_funding_index_at_last_update": { + "name": "get_position_funding_index_at_last_update", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "i128" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_is_long": { + "name": "get_position_is_long", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_size": { + "name": "get_position_size", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_unrealized_funding_amount_before_last_update": { + "name": "get_position_unrealized_funding_amount_before_last_update", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "i64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_unrealized_funding_cost": { + "name": "get_position_unrealized_funding_cost", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "i64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::has_position": { + "name": "has_position", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::is_position_isolated": { + "name": "is_position_isolated", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::is_position_liquidatable": { + "name": "is_position_liquidatable", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::list_positions": { + "name": "list_positions", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "vector<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::position_view_types::PositionViewInfo>" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::view_position": { + "name": "view_position", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x1::option::Option<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::position_view_types::PositionViewInfo>" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_current_open_interest": { + "name": "get_current_open_interest", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_max_notional_open_interest": { + "name": "get_max_notional_open_interest", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_cross_total_collateral_value": { + "name": "get_cross_total_collateral_value", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "i64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_isolated_position_total_collateral_value": { + "name": "get_isolated_position_total_collateral_value", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "i64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::max_allowed_withdraw_from_cross": { + "name": "max_allowed_withdraw_from_cross", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_rate_limit_status": { + "name": "get_rate_limit_status", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::async_withdraw_queue::RateLimitStatus" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_async_queue_length": { + "name": "get_async_queue_length", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_min_size": { + "name": "market_min_size", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_lot_size": { + "name": "market_lot_size", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::account_has_any_assets_positions_or_orders": { + "name": "account_has_any_assets_positions_or_orders", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::account_has_any_positions_or_orders": { + "name": "account_has_any_positions_or_orders", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::collateral_balance_decimals": { + "name": "collateral_balance_decimals", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "u8" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_blp_pnl": { + "name": "get_blp_pnl", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "i64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_fee_treasury_balance": { + "name": "get_fee_treasury_balance", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_max_open_interest_delta": { + "name": "get_max_open_interest_delta", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_oracle_internal_snapshot": { + "name": "get_oracle_internal_snapshot", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::OracleInternalSnapshot" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_avg_price": { + "name": "get_position_avg_price", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_position_entry_price_times_size_sum": { + "name": "get_position_entry_price_times_size_sum", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u128" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::get_remaining_size_for_order": { + "name": "get_remaining_size_for_order", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>", + "u128" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::is_exchange_open": { + "name": "is_exchange_open", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::is_market_open": { + "name": "is_market_open", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::is_supported_collateral": { + "name": "is_supported_collateral", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ], + "return": [ + "bool" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::list_markets": { + "name": "list_markets", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "vector
" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_cooldown_period_micros": { + "name": "market_cooldown_period_micros", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_margin_call_backstop_pct": { + "name": "market_margin_call_backstop_pct", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_margin_call_fee_pct": { + "name": "market_margin_call_fee_pct", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_name": { + "name": "market_name", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x1::string::String" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_slippage_increment_pct": { + "name": "market_slippage_increment_pct", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_starting_slippage_pct": { + "name": "market_starting_slippage_pct", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_sz_decimals": { + "name": "market_sz_decimals", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u8" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::market_ticker_size": { + "name": "market_ticker_size", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_engine::view_position_status": { + "name": "view_position_status", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_market::PerpMarket>" + ], + "return": [ + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::perp_positions::AccountStatusDetailed" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_admin": { + "name": "get_vault_admin", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "address" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_contribution_asset_type": { + "name": "get_vault_contribution_asset_type", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_net_asset_value": { + "name": "get_vault_net_asset_value", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_net_asset_value_in_contribution_asset": { + "name": "get_vault_net_asset_value_in_contribution_asset", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_num_shares": { + "name": "get_vault_num_shares", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "u64" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_portfolio_subaccounts": { + "name": "get_vault_portfolio_subaccounts", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "vector
" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::get_vault_share_asset_type": { + "name": "get_vault_share_asset_type", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "0x1::object::Object<0x1::fungible_asset::Metadata>" + ] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault_api::distribute_fees": { + "name": "distribute_fees", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault_api::process_pending_requests": { + "name": "process_pending_requests", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "u32" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault_api::activate_vault": { + "name": "activate_vault", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault_api::create_and_fund_vault": { + "name": "create_and_fund_vault", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "0x1::string::String", + "0x1::string::String", + "vector<0x1::string::String>", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "u64", + "u64", + "bool", + "bool" + ], + "return": [] + }, + "0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault_api::get_max_synchronous_redemption": { + "name": "get_max_synchronous_redemption", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06::vault::Vault>" + ], + "return": [ + "u64" + ] + } + }, + "errors": [ + { + "module": "usdc", + "function": "entire_module", + "error": "{\"message\":\"Module not found by Address(0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06), Module name(usdc) and Ledger version(4740890631)\",\"error_code\":\"module_not_found\",\"vm_error_code\":null} - 0x50ead22afd6ffd9769e3b3d6e0e64a2a350d68e8b102c4e72e33d0b8cfdfdb06" + } + ], + "summary": { + "totalModules": 9, + "totalFunctions": 209, + "successful": 209, + "failed": 1 + }, + "modules": [ + "admin_apis", + "public_apis", + "dex_accounts", + "dex_accounts_entry", + "dex_accounts_vault_extension", + "perp_engine", + "usdc", + "vault", + "vault_api" + ] +} \ No newline at end of file diff --git a/src/decibel/abi/json/testnet.json b/src/decibel/abi/json/testnet.json index 570931d..49fd23c 100644 --- a/src/decibel/abi/json/testnet.json +++ b/src/decibel/abi/json/testnet.json @@ -1,10 +1,10 @@ { - "packageAddress": "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f", + "packageAddress": "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f", "network": "testnet", "fullnodeUrl": "https://api.testnet.aptoslabs.com/v1", - "fetchedAt": "2026-02-12T02:22:21.338518Z", + "fetchedAt": "2026-04-01T13:00:25.060915Z", "abis": { - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::initialize": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::initialize": { "name": "initialize", "visibility": "public", "is_entry": true, @@ -17,7 +17,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::increment_time": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::increment_time": { "name": "increment_time", "visibility": "private", "is_entry": true, @@ -29,7 +29,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_max_referral_codes_for_address": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_max_referral_codes_for_address": { "name": "set_max_referral_codes_for_address", "visibility": "public", "is_entry": true, @@ -42,7 +42,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_max_usage_per_referral_code_for_address": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_max_usage_per_referral_code_for_address": { "name": "set_max_usage_per_referral_code_for_address", "visibility": "friend", "is_entry": true, @@ -55,7 +55,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::delist_market": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::delist_market": { "name": "delist_market", "visibility": "friend", "is_entry": true, @@ -63,12 +63,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option<0x1::string::String>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_blp_margin_as_profit_percentage": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_blp_margin_as_profit_percentage": { "name": "set_blp_margin_as_profit_percentage", "visibility": "private", "is_entry": true, @@ -80,7 +80,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::admin_register_referral_code": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::admin_register_referral_code": { "name": "admin_register_referral_code", "visibility": "public", "is_entry": true, @@ -93,7 +93,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::admin_register_referrer": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::admin_register_referrer": { "name": "admin_register_referrer", "visibility": "public", "is_entry": true, @@ -106,7 +106,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_fee_config": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_fee_config": { "name": "update_fee_config", "visibility": "public", "is_entry": true, @@ -130,7 +130,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::drain_async_queue": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::drain_async_queue": { "name": "drain_async_queue", "visibility": "friend", "is_entry": true, @@ -138,11 +138,11 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_to_account_creation_allow_list": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_to_account_creation_allow_list": { "name": "add_to_account_creation_allow_list", "visibility": "public", "is_entry": true, @@ -154,7 +154,20 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::decrease_market_notional_open_interest": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::decrease_market_lot_size": { + "name": "decrease_market_lot_size", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::decrease_market_notional_open_interest": { "name": "decrease_market_notional_open_interest", "visibility": "private", "is_entry": true, @@ -162,12 +175,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::decrease_market_open_interest": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::decrease_market_open_interest": { "name": "decrease_market_open_interest", "visibility": "private", "is_entry": true, @@ -175,12 +188,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::delist_market_with_mark_price": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::delist_market_with_mark_price": { "name": "delist_market_with_mark_price", "visibility": "friend", "is_entry": true, @@ -188,13 +201,26 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "0x1::option::Option<0x1::string::String>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::increase_market_notional_open_interest": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::increase_market_lot_size": { + "name": "increase_market_lot_size", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::increase_market_notional_open_interest": { "name": "increase_market_notional_open_interest", "visibility": "private", "is_entry": true, @@ -202,12 +228,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::increase_market_open_interest": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::increase_market_open_interest": { "name": "increase_market_open_interest", "visibility": "private", "is_entry": true, @@ -215,12 +241,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::register_market_with_composite_oracle_primary_chainlink": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_composite_oracle_primary_chainlink": { "name": "register_market_with_composite_oracle_primary_chainlink", "visibility": "private", "is_entry": true, @@ -247,7 +273,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::register_market_with_composite_oracle_primary_pyth": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_composite_oracle_primary_pyth": { "name": "register_market_with_composite_oracle_primary_pyth", "visibility": "private", "is_entry": true, @@ -275,7 +301,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::register_market_with_internal_oracle": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_internal_oracle": { "name": "register_market_with_internal_oracle", "visibility": "private", "is_entry": true, @@ -297,7 +323,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::register_market_with_pyth_oracle": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_pyth_oracle": { "name": "register_market_with_pyth_oracle", "visibility": "private", "is_entry": true, @@ -321,7 +347,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_backstop_liquidator_high_watermark": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_backstop_liquidator_high_watermark": { "name": "set_backstop_liquidator_high_watermark", "visibility": "private", "is_entry": true, @@ -329,12 +355,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "i64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_invite_only_account_creation": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_invite_only_account_creation": { "name": "set_invite_only_account_creation", "visibility": "public", "is_entry": true, @@ -346,7 +372,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_allowlist_only": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_allowlist_only": { "name": "set_market_allowlist_only", "visibility": "friend", "is_entry": true, @@ -354,26 +380,26 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "vector
", "0x1::option::Option<0x1::string::String>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_cooldown_period_ms": { - "name": "set_market_cooldown_period_ms", + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_cooldown_period_micros": { + "name": "set_market_cooldown_period_micros", "visibility": "private", "is_entry": true, "is_view": false, "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_halted": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_halted": { "name": "set_market_halted", "visibility": "friend", "is_entry": true, @@ -381,12 +407,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option<0x1::string::String>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_margin_call_backstop_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_margin_call_backstop_pct": { "name": "set_market_margin_call_backstop_pct", "visibility": "private", "is_entry": true, @@ -394,12 +420,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_margin_call_fee_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_margin_call_fee_pct": { "name": "set_market_margin_call_fee_pct", "visibility": "friend", "is_entry": true, @@ -407,12 +433,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_max_leverage": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_max_leverage": { "name": "set_market_max_leverage", "visibility": "friend", "is_entry": true, @@ -420,12 +446,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u8" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_max_leverage_with_fee_scaling": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_max_leverage_with_fee_scaling": { "name": "set_market_max_leverage_with_fee_scaling", "visibility": "friend", "is_entry": true, @@ -433,12 +459,25 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u8" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_open": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_min_size": { + "name": "set_market_min_size", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_open": { "name": "set_market_open", "visibility": "friend", "is_entry": true, @@ -446,12 +485,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option<0x1::string::String>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_reduce_only": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_reduce_only": { "name": "set_market_reduce_only", "visibility": "friend", "is_entry": true, @@ -459,13 +498,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "vector
", "0x1::option::Option<0x1::string::String>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_slippage_increment_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_slippage_increment_pct": { "name": "set_market_slippage_increment_pct", "visibility": "private", "is_entry": true, @@ -473,12 +512,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_starting_slippage_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_starting_slippage_pct": { "name": "set_market_starting_slippage_pct", "visibility": "private", "is_entry": true, @@ -486,12 +525,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_unrealized_pnl_haircut": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_unrealized_pnl_haircut": { "name": "set_market_unrealized_pnl_haircut", "visibility": "friend", "is_entry": true, @@ -499,25 +538,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_withdrawable_margin_leverage": { - "name": "set_market_withdrawable_margin_leverage", - "visibility": "friend", - "is_entry": true, - "is_view": false, - "generic_type_params": [], - "params": [ - "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", - "u8" - ], - "return": [] - }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_access_control_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_access_control_admin": { "name": "add_access_control_admin", "visibility": "public", "is_entry": true, @@ -529,7 +555,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_access_control_guardian": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_access_control_guardian": { "name": "add_access_control_guardian", "visibility": "friend", "is_entry": true, @@ -541,7 +567,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_fee_config_governor": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_fee_config_governor": { "name": "add_fee_config_governor", "visibility": "public", "is_entry": true, @@ -553,7 +579,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_global_pause_guardian": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_global_pause_guardian": { "name": "add_global_pause_guardian", "visibility": "public", "is_entry": true, @@ -565,7 +591,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_global_unpause_council": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_global_unpause_council": { "name": "add_global_unpause_council", "visibility": "friend", "is_entry": true, @@ -577,7 +603,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_invite_only_referral_management_permission": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_invite_only_referral_management_permission": { "name": "add_invite_only_referral_management_permission", "visibility": "public", "is_entry": true, @@ -589,7 +615,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_market_delist_council": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_market_delist_council": { "name": "add_market_delist_council", "visibility": "friend", "is_entry": true, @@ -601,7 +627,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_market_list_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_market_list_admin": { "name": "add_market_list_admin", "visibility": "private", "is_entry": true, @@ -613,7 +639,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_market_mode_guardian": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_market_mode_guardian": { "name": "add_market_mode_guardian", "visibility": "friend", "is_entry": true, @@ -625,7 +651,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_market_open_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_market_open_admin": { "name": "add_market_open_admin", "visibility": "friend", "is_entry": true, @@ -637,7 +663,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_market_risk_governor": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_market_risk_governor": { "name": "add_market_risk_governor", "visibility": "friend", "is_entry": true, @@ -649,7 +675,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_market_risk_tightener": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_market_risk_tightener": { "name": "add_market_risk_tightener", "visibility": "private", "is_entry": true, @@ -661,7 +687,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_oracle_and_mark_update_permission": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_oracle_and_mark_update_permission": { "name": "add_oracle_and_mark_update_permission", "visibility": "friend", "is_entry": true, @@ -673,7 +699,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_order_management_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_order_management_admin": { "name": "add_order_management_admin", "visibility": "friend", "is_entry": true, @@ -685,7 +711,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_vault_global_config_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_vault_global_config_admin": { "name": "add_vault_global_config_admin", "visibility": "public", "is_entry": true, @@ -697,7 +723,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::add_withdraw_rate_limit_governor": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::add_withdraw_rate_limit_governor": { "name": "add_withdraw_rate_limit_governor", "visibility": "public", "is_entry": true, @@ -709,7 +735,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::admin_register_affiliate": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::admin_register_affiliate": { "name": "admin_register_affiliate", "visibility": "private", "is_entry": true, @@ -721,7 +747,19 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::configure_withdraw_rate_limit": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::allow_market_cross_margin_mode": { + "name": "allow_market_cross_margin_mode", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::configure_withdraw_rate_limit": { "name": "configure_withdraw_rate_limit", "visibility": "public", "is_entry": true, @@ -738,7 +776,20 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::init_account_status_cache_for_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::drain_async_queue_with_limit": { + "name": "drain_async_queue_with_limit", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::init_account_status_cache_for_subaccount": { "name": "init_account_status_cache_for_subaccount", "visibility": "private", "is_entry": true, @@ -750,7 +801,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::pause_global_exchange": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::pause_global_exchange": { "name": "pause_global_exchange", "visibility": "public", "is_entry": true, @@ -761,7 +812,112 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_access_control_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_composite_oracle_primary_chainlink_v2": { + "name": "register_market_with_composite_oracle_primary_chainlink_v2", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "bool", + "vector", + "u64", + "u8", + "u64", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_composite_oracle_primary_pyth_v2": { + "name": "register_market_with_composite_oracle_primary_pyth_v2", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "bool", + "vector", + "u64", + "u64", + "u8", + "u64", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_internal_oracle_v2": { + "name": "register_market_with_internal_oracle_v2", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "bool", + "u64", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::register_market_with_pyth_oracle_v2": { + "name": "register_market_with_pyth_oracle_v2", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "u8", + "u64", + "u64", + "u64", + "u64", + "u8", + "u64", + "bool", + "bool", + "vector", + "u64", + "u64", + "u8" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_access_control_admin": { "name": "remove_access_control_admin", "visibility": "friend", "is_entry": true, @@ -773,7 +929,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_access_control_guardian": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_access_control_guardian": { "name": "remove_access_control_guardian", "visibility": "friend", "is_entry": true, @@ -785,7 +941,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_fee_config_governor": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_fee_config_governor": { "name": "remove_fee_config_governor", "visibility": "friend", "is_entry": true, @@ -797,7 +953,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_global_pause_guardian": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_global_pause_guardian": { "name": "remove_global_pause_guardian", "visibility": "private", "is_entry": true, @@ -809,7 +965,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_global_unpause_council": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_global_unpause_council": { "name": "remove_global_unpause_council", "visibility": "private", "is_entry": true, @@ -821,7 +977,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_invite_only_referral_management_permission": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_invite_only_referral_management_permission": { "name": "remove_invite_only_referral_management_permission", "visibility": "private", "is_entry": true, @@ -833,7 +989,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_market_delist_council": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_market_delist_council": { "name": "remove_market_delist_council", "visibility": "private", "is_entry": true, @@ -845,7 +1001,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_market_list_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_market_list_admin": { "name": "remove_market_list_admin", "visibility": "private", "is_entry": true, @@ -857,7 +1013,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_market_mode_guardian": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_market_mode_guardian": { "name": "remove_market_mode_guardian", "visibility": "private", "is_entry": true, @@ -869,7 +1025,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_market_open_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_market_open_admin": { "name": "remove_market_open_admin", "visibility": "private", "is_entry": true, @@ -881,7 +1037,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_market_risk_governor": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_market_risk_governor": { "name": "remove_market_risk_governor", "visibility": "friend", "is_entry": true, @@ -893,7 +1049,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_market_risk_tightener": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_market_risk_tightener": { "name": "remove_market_risk_tightener", "visibility": "private", "is_entry": true, @@ -905,7 +1061,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_oracle_and_mark_update_permission": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_oracle_and_mark_update_permission": { "name": "remove_oracle_and_mark_update_permission", "visibility": "friend", "is_entry": true, @@ -917,7 +1073,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_order_management_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_order_management_admin": { "name": "remove_order_management_admin", "visibility": "private", "is_entry": true, @@ -929,7 +1085,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_vault_global_config_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_vault_global_config_admin": { "name": "remove_vault_global_config_admin", "visibility": "public", "is_entry": true, @@ -941,7 +1097,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::remove_withdraw_rate_limit_governor": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::remove_withdraw_rate_limit_governor": { "name": "remove_withdraw_rate_limit_governor", "visibility": "public", "is_entry": true, @@ -953,7 +1109,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_global_max_builder_fee": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_global_max_builder_fee": { "name": "set_global_max_builder_fee", "visibility": "private", "is_entry": true, @@ -965,7 +1121,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_adl_trigger_threshold": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_adl_trigger_threshold": { "name": "set_market_adl_trigger_threshold", "visibility": "private", "is_entry": true, @@ -973,12 +1129,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_book_oracle_ratio_cap_bps": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_book_oracle_ratio_cap_bps": { "name": "set_market_book_oracle_ratio_cap_bps", "visibility": "private", "is_entry": true, @@ -986,12 +1142,25 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_funding_mode": { + "name": "set_market_funding_mode", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_market_funding_rate_pause_timeout_microseconds": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_funding_rate_pause_timeout_microseconds": { "name": "set_market_funding_rate_pause_timeout_microseconds", "visibility": "friend", "is_entry": true, @@ -999,12 +1168,25 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::set_withdraw_rate_limit_enabled": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_market_withdrawable_margin_leverage": { + "name": "set_market_withdrawable_margin_leverage", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u8" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::set_withdraw_rate_limit_enabled": { "name": "set_withdraw_rate_limit_enabled", "visibility": "public", "is_entry": true, @@ -1017,7 +1199,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::unpause_global_exchange": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::unpause_global_exchange": { "name": "unpause_global_exchange", "visibility": "friend", "is_entry": true, @@ -1028,7 +1210,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_mark_for_chainlink_oracle": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_chainlink_oracle": { "name": "update_mark_for_chainlink_oracle", "visibility": "private", "is_entry": true, @@ -1036,7 +1218,7 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "vector", "vector
", "vector
", @@ -1044,7 +1226,24 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_mark_for_composite_chainlink": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_chainlink_oracle_with_batch_key": { + "name": "update_mark_for_chainlink_oracle_with_batch_key", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "vector", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_composite_chainlink": { "name": "update_mark_for_composite_chainlink", "visibility": "private", "is_entry": true, @@ -1052,7 +1251,7 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option", "0x1::option::Option>", "0x1::option::Option", @@ -1063,7 +1262,27 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_mark_for_internal_oracle": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_composite_chainlink_with_batch_key": { + "name": "update_mark_for_composite_chainlink_with_batch_key", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "0x1::option::Option", + "0x1::option::Option>", + "0x1::option::Option", + "0x1::option::Option", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_internal_oracle": { "name": "update_mark_for_internal_oracle", "visibility": "friend", "is_entry": true, @@ -1071,7 +1290,7 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "vector
", "vector
", @@ -1079,7 +1298,24 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_mark_for_pyth_oracle": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_internal_oracle_with_batch_key": { + "name": "update_mark_for_internal_oracle_with_batch_key", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "u64", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_pyth_oracle": { "name": "update_mark_for_pyth_oracle", "visibility": "friend", "is_entry": true, @@ -1087,7 +1323,7 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "vector", "vector
", "vector
", @@ -1095,7 +1331,24 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_withdraw_absolute_rate_limit": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_mark_for_pyth_oracle_with_batch_key": { + "name": "update_mark_for_pyth_oracle_with_batch_key", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", + "vector", + "vector
", + "vector
", + "bool", + "u128" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_withdraw_absolute_rate_limit": { "name": "update_withdraw_absolute_rate_limit", "visibility": "public", "is_entry": true, @@ -1108,7 +1361,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_withdraw_rate_limit_bps": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_withdraw_rate_limit_bps": { "name": "update_withdraw_rate_limit_bps", "visibility": "public", "is_entry": true, @@ -1121,7 +1374,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::admin_apis::update_withdraw_window_duration": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::update_withdraw_window_duration": { "name": "update_withdraw_window_duration", "visibility": "public", "is_entry": true, @@ -1134,7 +1387,18 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::public_apis::close_delisted_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::admin_apis::view_fee_treasury_balance": { + "name": "view_fee_treasury_balance", + "visibility": "private", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::public_apis::close_delisted_position": { "name": "close_delisted_position", "visibility": "friend", "is_entry": true, @@ -1142,11 +1406,11 @@ "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::public_apis::liquidate_positions": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::public_apis::liquidate_positions": { "name": "liquidate_positions", "visibility": "friend", "is_entry": true, @@ -1154,11 +1418,11 @@ "generic_type_params": [], "params": [ "vector
", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::public_apis::liquidate_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::public_apis::liquidate_position": { "name": "liquidate_position", "visibility": "friend", "is_entry": true, @@ -1166,11 +1430,11 @@ "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::public_apis::process_perp_collateral_withdrawals": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::public_apis::process_perp_collateral_withdrawals": { "name": "process_perp_collateral_withdrawals", "visibility": "public", "is_entry": true, @@ -1181,21 +1445,21 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::public_apis::process_perp_market_pending_requests": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::public_apis::process_perp_market_pending_requests": { "name": "process_perp_market_pending_requests", "visibility": "public", "is_entry": true, "is_view": false, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u32" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::primary_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::primary_subaccount": { "name": "primary_subaccount", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1206,9 +1470,9 @@ "address" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::primary_subaccount_object": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::primary_subaccount_object": { "name": "primary_subaccount_object", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1216,12 +1480,12 @@ "address" ], "return": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::seeded_subacccount_address": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::seeded_subacccount_address": { "name": "seeded_subacccount_address", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1233,33 +1497,33 @@ "address" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::view_delegated_permissions": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::view_delegated_permissions": { "name": "view_delegated_permissions", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>" ], "return": [ - "0x1::ordered_map::OrderedMap" + "0x1::ordered_map::OrderedMap" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::view_is_subaccount_active": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::view_is_subaccount_active": { "name": "view_is_subaccount_active", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>" ], "return": [ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::register_referral_code": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::register_referral_code": { "name": "register_referral_code", "visibility": "private", "is_entry": true, @@ -1271,7 +1535,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::register_referrer": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::register_referrer": { "name": "register_referrer", "visibility": "private", "is_entry": true, @@ -1283,7 +1547,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::configure_user_settings_for_market": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::configure_user_settings_for_market": { "name": "configure_user_settings_for_market", "visibility": "private", "is_entry": true, @@ -1292,13 +1556,13 @@ "params": [ "&signer", "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "bool", "u8" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::transfer_collateral_to_isolated_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::transfer_collateral_to_isolated_position": { "name": "transfer_collateral_to_isolated_position", "visibility": "private", "is_entry": true, @@ -1306,15 +1570,15 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "bool", "0x1::object::Object<0x1::fungible_asset::Metadata>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::deposit_to_isolated_position_collateral": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::deposit_to_isolated_position_collateral": { "name": "deposit_to_isolated_position_collateral", "visibility": "private", "is_entry": true, @@ -1322,14 +1586,14 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::object::Object<0x1::fungible_asset::Metadata>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::withdraw_from_isolated_position_collateral": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::withdraw_from_isolated_position_collateral": { "name": "withdraw_from_isolated_position_collateral", "visibility": "private", "is_entry": true, @@ -1337,14 +1601,14 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::object::Object<0x1::fungible_asset::Metadata>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::cancel_tp_sl_order_for_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::cancel_tp_sl_order_for_position": { "name": "cancel_tp_sl_order_for_position", "visibility": "private", "is_entry": true, @@ -1352,13 +1616,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u128" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::place_tp_sl_order_for_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::place_tp_sl_order_for_position": { "name": "place_tp_sl_order_for_position", "visibility": "private", "is_entry": true, @@ -1366,8 +1630,8 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option", "0x1::option::Option", "0x1::option::Option", @@ -1379,7 +1643,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::deactivate_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::deactivate_subaccount": { "name": "deactivate_subaccount", "visibility": "private", "is_entry": true, @@ -1387,12 +1651,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "bool" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::delegate_ability_to_sub_delegate_to_for_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::delegate_ability_to_sub_delegate_to_for_subaccount": { "name": "delegate_ability_to_sub_delegate_to_for_subaccount", "visibility": "private", "is_entry": true, @@ -1406,8 +1670,36 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::delegate_trading_to_for_subaccount": { - "name": "delegate_trading_to_for_subaccount", + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::delegate_all_trading_to_for_subaccount": { + "name": "delegate_all_trading_to_for_subaccount", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::option::Option" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::delegate_perp_trading_to_for_subaccount": { + "name": "delegate_perp_trading_to_for_subaccount", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::option::Option" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::delegate_perp_trading_to_market_for_subaccount": { + "name": "delegate_perp_trading_to_market_for_subaccount", "visibility": "friend", "is_entry": true, "is_view": false, @@ -1416,11 +1708,12 @@ "&signer", "address", "address", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::deposit_to_subaccount_at": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::deposit_to_subaccount_at": { "name": "deposit_to_subaccount_at", "visibility": "private", "is_entry": true, @@ -1434,7 +1727,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::reactivate_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::reactivate_subaccount": { "name": "reactivate_subaccount", "visibility": "private", "is_entry": true, @@ -1442,11 +1735,11 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::revoke_all_delegations": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::revoke_all_delegations": { "name": "revoke_all_delegations", "visibility": "private", "is_entry": true, @@ -1454,11 +1747,11 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::revoke_delegation": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::revoke_delegation": { "name": "revoke_delegation", "visibility": "private", "is_entry": true, @@ -1466,12 +1759,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "address" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::transfer_collateral_between_subaccounts": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::transfer_collateral_between_subaccounts": { "name": "transfer_collateral_between_subaccounts", "visibility": "private", "is_entry": true, @@ -1479,14 +1772,42 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::withdraw_from_cross_collateral": { + "name": "withdraw_from_cross_collateral", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "0x1::object::Object<0x1::fungible_asset::Metadata>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::withdraw_from_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::withdraw_from_non_collateral": { + "name": "withdraw_from_non_collateral", + "visibility": "private", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0x1::fungible_asset::Metadata>", + "u64" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::withdraw_from_subaccount": { "name": "withdraw_from_subaccount", "visibility": "private", "is_entry": true, @@ -1494,13 +1815,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "0x1::object::Object<0x1::fungible_asset::Metadata>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::contribute_to_vault": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::contribute_to_vault": { "name": "contribute_to_vault", "visibility": "private", "is_entry": true, @@ -1508,14 +1829,14 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "address", "0x1::object::Object<0x1::fungible_asset::Metadata>", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::redeem_from_vault": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::redeem_from_vault": { "name": "redeem_from_vault", "visibility": "private", "is_entry": true, @@ -1523,13 +1844,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "address", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::add_delegated_trader_and_deposit_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::add_delegated_trader_and_deposit_to_subaccount": { "name": "add_delegated_trader_and_deposit_to_subaccount", "visibility": "private", "is_entry": true, @@ -1545,7 +1866,19 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::approve_max_builder_fee_for_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::admin_create_new_subaccount": { + "name": "admin_create_new_subaccount", + "visibility": "public", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::approve_max_builder_fee_for_subaccount": { "name": "approve_max_builder_fee_for_subaccount", "visibility": "private", "is_entry": true, @@ -1553,13 +1886,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "address", "u64" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::cancel_bulk_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::cancel_bulk_order_to_subaccount": { "name": "cancel_bulk_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1567,12 +1900,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::cancel_client_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::cancel_client_order_to_subaccount": { "name": "cancel_client_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1580,13 +1913,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "0x1::string::String", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::cancel_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::cancel_order_to_subaccount": { "name": "cancel_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1594,13 +1927,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "u128", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::cancel_twap_orders_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::cancel_twap_orders_to_subaccount": { "name": "cancel_twap_orders_to_subaccount", "visibility": "private", "is_entry": true, @@ -1608,13 +1941,13 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u128" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::create_new_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::create_new_subaccount": { "name": "create_new_subaccount", "visibility": "private", "is_entry": true, @@ -1625,7 +1958,21 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::place_bulk_orders_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::delegate_trading_to_for_subaccount": { + "name": "delegate_trading_to_for_subaccount", + "visibility": "friend", + "is_entry": true, + "is_view": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::option::Option" + ], + "return": [] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::place_bulk_orders_to_subaccount": { "name": "place_bulk_orders_to_subaccount", "visibility": "private", "is_entry": true, @@ -1633,8 +1980,8 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "vector", "vector", @@ -1645,7 +1992,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::place_market_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::place_market_order_to_subaccount": { "name": "place_market_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1653,8 +2000,8 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "bool", "bool", @@ -1669,7 +2016,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::place_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::place_order_to_subaccount": { "name": "place_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1677,8 +2024,8 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "u64", "bool", @@ -1695,7 +2042,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::place_twap_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::place_twap_order_to_subaccount": { "name": "place_twap_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1703,8 +2050,8 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "bool", "bool", @@ -1715,7 +2062,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::place_twap_order_to_subaccount_v2": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::place_twap_order_to_subaccount_v2": { "name": "place_twap_order_to_subaccount_v2", "visibility": "private", "is_entry": true, @@ -1723,8 +2070,8 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "bool", "bool", @@ -1736,7 +2083,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::revoke_max_builder_fee_for_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::revoke_max_builder_fee_for_subaccount": { "name": "revoke_max_builder_fee_for_subaccount", "visibility": "private", "is_entry": true, @@ -1744,12 +2091,12 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "address" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::update_client_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::update_client_order_to_subaccount": { "name": "update_client_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1757,9 +2104,9 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "0x1::string::String", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "u64", "bool", @@ -1774,7 +2121,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::update_order_to_subaccount": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::update_order_to_subaccount": { "name": "update_order_to_subaccount", "visibility": "private", "is_entry": true, @@ -1782,9 +2129,9 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "u128", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u64", "u64", "bool", @@ -1799,7 +2146,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::update_sl_order_for_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::update_sl_order_for_position": { "name": "update_sl_order_for_position", "visibility": "private", "is_entry": true, @@ -1807,16 +2154,16 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "u128", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option", "0x1::option::Option", "0x1::option::Option" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts_entry::update_tp_order_for_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts_entry::update_tp_order_for_position": { "name": "update_tp_order_for_position", "visibility": "private", "is_entry": true, @@ -1824,71 +2171,71 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "u128", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "0x1::option::Option", "0x1::option::Option", "0x1::option::Option" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_bulk_order": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_bulk_order": { "name": "get_bulk_order", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "address" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::BulkOrderView" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::BulkOrderView" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_oracle_price": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_oracle_price": { "name": "get_oracle_price", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_market_mode": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_market_mode": { "name": "get_market_mode", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market_config::MarketMode" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market_config::MarketMode" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_oracle_source": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_oracle_source": { "name": "get_oracle_source", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::oracle::OracleSource" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::oracle::OracleSource" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_global_primary_store_balance": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_global_primary_store_balance": { "name": "get_global_primary_store_balance", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1897,9 +2244,9 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_global_secondary_store_balance": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_global_secondary_store_balance": { "name": "get_global_secondary_store_balance", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1910,9 +2257,9 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::primary_asset_metadata": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::primary_asset_metadata": { "name": "primary_asset_metadata", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1921,49 +2268,49 @@ "0x1::object::Object<0x1::fungible_asset::Metadata>" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_mark_and_oracle_price": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_mark_and_oracle_price": { "name": "get_mark_and_oracle_price", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64", "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_mark_price": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_mark_price": { "name": "get_mark_price", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_adl_tracker_status": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_adl_tracker_status": { "name": "get_adl_tracker_status", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::backstop_liquidator_profit_tracker::AdlTrackerStatus" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::backstop_liquidator_profit_tracker::AdlTrackerStatus" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::backstop_liquidator": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::backstop_liquidator": { "name": "backstop_liquidator", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1972,22 +2319,22 @@ "address" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_max_leverage": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_max_leverage": { "name": "market_max_leverage", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u8" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::cross_position_status": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::cross_position_status": { "name": "cross_position_status", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -1995,12 +2342,12 @@ "address" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_positions::AccountStatusDetailed" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_positions::AccountStatusDetailed" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_account_net_asset_value": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_account_net_asset_value": { "name": "get_account_net_asset_value", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2011,134 +2358,121 @@ "i64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_funding_index_at_last_update": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_funding_index_at_last_update": { "name": "get_position_funding_index_at_last_update", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "i128" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_is_long": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_is_long": { "name": "get_position_is_long", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_size": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_size": { "name": "get_position_size", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_unrealized_funding_amount_before_last_update": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_unrealized_funding_amount_before_last_update": { "name": "get_position_unrealized_funding_amount_before_last_update", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "i64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_unrealized_funding_cost": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_unrealized_funding_cost": { "name": "get_position_unrealized_funding_cost", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "i64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::has_any_assets_or_positions": { - "name": "has_any_assets_or_positions", - "visibility": "public", - "is_entry": false, - "is_view": true, - "generic_type_params": [], - "params": [ - "address" - ], - "return": [ - "bool" - ] - }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::has_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::has_position": { "name": "has_position", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::is_position_isolated": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::is_position_isolated": { "name": "is_position_isolated", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::is_position_liquidatable": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::is_position_liquidatable": { "name": "is_position_liquidatable", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::list_positions": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::list_positions": { "name": "list_positions", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2146,52 +2480,52 @@ "address" ], "return": [ - "vector<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::position_view_types::PositionViewInfo>" + "vector<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::position_view_types::PositionViewInfo>" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::view_position": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::view_position": { "name": "view_position", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ - "0x1::option::Option<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::position_view_types::PositionViewInfo>" + "0x1::option::Option<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::position_view_types::PositionViewInfo>" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_current_open_interest": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_current_open_interest": { "name": "get_current_open_interest", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_max_notional_open_interest": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_max_notional_open_interest": { "name": "get_max_notional_open_interest", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_cross_total_collateral_value": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_cross_total_collateral_value": { "name": "get_cross_total_collateral_value", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2202,23 +2536,23 @@ "i64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_isolated_position_total_collateral_value": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_isolated_position_total_collateral_value": { "name": "get_isolated_position_total_collateral_value", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "i64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::max_allowed_withdraw_from_cross": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::max_allowed_withdraw_from_cross": { "name": "max_allowed_withdraw_from_cross", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2230,9 +2564,9 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_rate_limit_status": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_rate_limit_status": { "name": "get_rate_limit_status", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2240,51 +2574,77 @@ "0x1::object::Object<0x1::fungible_asset::Metadata>" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::async_withdraw_queue::RateLimitStatus" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::async_withdraw_queue::RateLimitStatus" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_async_queue_length": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_async_queue_length": { "name": "get_async_queue_length", "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_min_size": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_min_size": { "name": "market_min_size", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_lot_size": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_lot_size": { "name": "market_lot_size", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::collateral_balance_decimals": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::account_has_any_assets_positions_or_orders": { + "name": "account_has_any_assets_positions_or_orders", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::account_has_any_positions_or_orders": { + "name": "account_has_any_positions_or_orders", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::collateral_balance_decimals": { "name": "collateral_balance_decimals", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2293,90 +2653,101 @@ "u8" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_blp_pnl": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_blp_pnl": { "name": "get_blp_pnl", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "i64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_max_open_interest_delta": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_fee_treasury_balance": { + "name": "get_fee_treasury_balance", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_max_open_interest_delta": { "name": "get_max_open_interest_delta", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_oracle_internal_snapshot": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_oracle_internal_snapshot": { "name": "get_oracle_internal_snapshot", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::OracleInternalSnapshot" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::OracleInternalSnapshot" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_avg_price": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_avg_price": { "name": "get_position_avg_price", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_position_entry_price_times_size_sum": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_position_entry_price_times_size_sum": { "name": "get_position_entry_price_times_size_sum", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u128" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::get_remaining_size_for_order": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::get_remaining_size_for_order": { "name": "get_remaining_size_for_order", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>", "u128" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::is_exchange_open": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::is_exchange_open": { "name": "is_exchange_open", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2385,22 +2756,22 @@ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::is_market_open": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::is_market_open": { "name": "is_market_open", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::is_supported_collateral": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::is_supported_collateral": { "name": "is_supported_collateral", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2411,9 +2782,9 @@ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::list_markets": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::list_markets": { "name": "list_markets", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], @@ -2422,112 +2793,125 @@ "vector
" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_cooldown_period_ms": { - "name": "market_cooldown_period_ms", - "visibility": "public", + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_cooldown_period_micros": { + "name": "market_cooldown_period_micros", + "visibility": "friend", + "is_entry": false, + "is_view": true, + "generic_type_params": [], + "params": [ + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" + ], + "return": [ + "u64" + ] + }, + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_margin_call_backstop_pct": { + "name": "market_margin_call_backstop_pct", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_margin_call_fee_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_margin_call_fee_pct": { "name": "market_margin_call_fee_pct", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_name": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_name": { "name": "market_name", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "0x1::string::String" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_slippage_increment_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_slippage_increment_pct": { "name": "market_slippage_increment_pct", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_starting_slippage_pct": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_starting_slippage_pct": { "name": "market_starting_slippage_pct", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_sz_decimals": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_sz_decimals": { "name": "market_sz_decimals", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u8" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::market_ticker_size": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::market_ticker_size": { "name": "market_ticker_size", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_engine::view_position_status": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_engine::view_position_status": { "name": "view_position_status", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ "address", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_market::PerpMarket>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_market::PerpMarket>" ], "return": [ - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::perp_positions::AccountStatusDetailed" + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::perp_positions::AccountStatusDetailed" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::burn": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::burn": { "name": "burn", "visibility": "public", "is_entry": true, @@ -2539,7 +2923,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::mint": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::mint": { "name": "mint", "visibility": "public", "is_entry": true, @@ -2552,7 +2936,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::add_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::add_admin": { "name": "add_admin", "visibility": "public", "is_entry": true, @@ -2564,7 +2948,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::available_restricted_mint_for": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::available_restricted_mint_for": { "name": "available_restricted_mint_for", "visibility": "public", "is_entry": false, @@ -2577,7 +2961,7 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::can_mint": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::can_mint": { "name": "can_mint", "visibility": "public", "is_entry": false, @@ -2590,7 +2974,7 @@ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::can_restricted_mint": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::can_restricted_mint": { "name": "can_restricted_mint", "visibility": "public", "is_entry": false, @@ -2603,7 +2987,7 @@ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::change_restricted_mint_settings": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::change_restricted_mint_settings": { "name": "change_restricted_mint_settings", "visibility": "private", "is_entry": true, @@ -2617,7 +3001,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::enter_trading_competition": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::enter_trading_competition": { "name": "enter_trading_competition", "visibility": "private", "is_entry": true, @@ -2628,7 +3012,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::get_admin_count": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::get_admin_count": { "name": "get_admin_count", "visibility": "public", "is_entry": false, @@ -2639,7 +3023,7 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::is_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::is_admin": { "name": "is_admin", "visibility": "public", "is_entry": false, @@ -2652,7 +3036,7 @@ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::is_public_minting_allowed": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::is_public_minting_allowed": { "name": "is_public_minting_allowed", "visibility": "public", "is_entry": false, @@ -2663,7 +3047,7 @@ "bool" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::mints_remaining": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::mints_remaining": { "name": "mints_remaining", "visibility": "public", "is_entry": false, @@ -2674,7 +3058,7 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::remove_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::remove_admin": { "name": "remove_admin", "visibility": "public", "is_entry": true, @@ -2686,7 +3070,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::restricted_mint": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::restricted_mint": { "name": "restricted_mint", "visibility": "private", "is_entry": true, @@ -2698,7 +3082,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::restricted_mint_daily_reset_timestamp": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::restricted_mint_daily_reset_timestamp": { "name": "restricted_mint_daily_reset_timestamp", "visibility": "public", "is_entry": false, @@ -2709,7 +3093,7 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::restricted_mint_daily_reset_timestamp_for": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::restricted_mint_daily_reset_timestamp_for": { "name": "restricted_mint_daily_reset_timestamp_for", "visibility": "public", "is_entry": false, @@ -2722,7 +3106,7 @@ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::usdc::set_public_minting": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::usdc::set_public_minting": { "name": "set_public_minting", "visibility": "private", "is_entry": true, @@ -2734,109 +3118,109 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_admin": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_admin": { "name": "get_vault_admin", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "address" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_contribution_asset_type": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_contribution_asset_type": { "name": "get_vault_contribution_asset_type", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "0x1::object::Object<0x1::fungible_asset::Metadata>" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_net_asset_value": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_net_asset_value": { "name": "get_vault_net_asset_value", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_net_asset_value_in_contribution_asset": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_net_asset_value_in_contribution_asset": { "name": "get_vault_net_asset_value_in_contribution_asset", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_num_shares": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_num_shares": { "name": "get_vault_num_shares", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "u64" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_portfolio_subaccounts": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_portfolio_subaccounts": { "name": "get_vault_portfolio_subaccounts", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "vector
" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::get_vault_share_asset_type": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::get_vault_share_asset_type": { "name": "get_vault_share_asset_type", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "0x1::object::Object<0x1::fungible_asset::Metadata>" ] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault_api::distribute_fees": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault_api::distribute_fees": { "name": "distribute_fees", "visibility": "public", "is_entry": true, "is_view": false, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault_api::process_pending_requests": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault_api::process_pending_requests": { "name": "process_pending_requests", "visibility": "public", "is_entry": true, @@ -2847,7 +3231,7 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault_api::activate_vault": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault_api::activate_vault": { "name": "activate_vault", "visibility": "public", "is_entry": true, @@ -2855,11 +3239,11 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault_api::create_and_fund_vault": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault_api::create_and_fund_vault": { "name": "create_and_fund_vault", "visibility": "private", "is_entry": true, @@ -2867,7 +3251,7 @@ "generic_type_params": [], "params": [ "&signer", - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::dex_accounts::Subaccount>", + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::dex_accounts::Subaccount>", "0x1::object::Object<0x1::fungible_asset::Metadata>", "0x1::string::String", "0x1::string::String", @@ -2884,14 +3268,14 @@ ], "return": [] }, - "0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault_api::get_max_synchronous_redemption": { + "0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault_api::get_max_synchronous_redemption": { "name": "get_max_synchronous_redemption", - "visibility": "public", + "visibility": "friend", "is_entry": false, "is_view": true, "generic_type_params": [], "params": [ - "0x1::object::Object<0x952535c3049e52f195f26798c2f1340d7dd5100edbe0f464e520a974d16fbe9f::vault::Vault>" + "0x1::object::Object<0xe7da2794b1d8af76532ed95f38bfdf1136abfd8ea3a240189971988a83101b7f::vault::Vault>" ], "return": [ "u64" @@ -2901,8 +3285,8 @@ "errors": [], "summary": { "totalModules": 9, - "totalFunctions": 212, - "successful": 212, + "totalFunctions": 236, + "successful": 236, "failed": 0 }, "modules": [ From 3828ba2803943114af7ede9d99b9c81444921859 Mon Sep 17 00:00:00 2001 From: dizpers Date: Wed, 1 Apr 2026 20:06:25 +0700 Subject: [PATCH 2/6] Extend .gitignore with .idea/ (PyCharm) --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b7faf40..e8fece7 100644 --- a/.gitignore +++ b/.gitignore @@ -173,7 +173,7 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ # Abstra # Abstra is an AI-powered process automation framework. From 8fb86d25cc6ca9ea6e0414b62ee205d66d988681 Mon Sep 17 00:00:00 2001 From: dizpers Date: Wed, 1 Apr 2026 23:40:42 +0700 Subject: [PATCH 3/6] Add mainnet to registry --- src/decibel/abi/_registry.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/decibel/abi/_registry.py b/src/decibel/abi/_registry.py index 9f8278b..28638ee 100644 --- a/src/decibel/abi/_registry.py +++ b/src/decibel/abi/_registry.py @@ -19,6 +19,7 @@ CHAIN_ID_NETNA = 208 CHAIN_ID_TESTNET = 2 +CHAIN_ID_MAINNET = 1 @lru_cache(maxsize=4) @@ -31,7 +32,9 @@ def _load_abi_json(filename: str) -> ABIData: def get_abi_data(chain_id: int | None) -> ABIData: - if chain_id == CHAIN_ID_NETNA: + if chain_id == CHAIN_ID_MAINNET: + return _load_abi_json("mainnet.json") + elif chain_id == CHAIN_ID_NETNA: return _load_abi_json("netna.json") elif chain_id == CHAIN_ID_TESTNET: return _load_abi_json("testnet.json") From 02cf0b045556d3e7837bdc490c02f5aadc05d346 Mon Sep 17 00:00:00 2001 From: dizpers Date: Wed, 1 Apr 2026 22:28:30 +0700 Subject: [PATCH 4/6] Add the support for custom timeouts (txn confirmation) --- src/decibel/_base.py | 15 +++-- src/decibel/_constants.py | 5 ++ src/decibel/write/__init__.py | 123 +++++++++++++++++++++++++++++----- 3 files changed, 122 insertions(+), 21 deletions(-) diff --git a/src/decibel/_base.py b/src/decibel/_base.py index de64cff..fdd7526 100644 --- a/src/decibel/_base.py +++ b/src/decibel/_base.py @@ -18,6 +18,7 @@ from aptos_sdk.ed25519 import Signature as Ed25519Signature from aptos_sdk.transactions import FeePayerRawTransaction, SignedTransaction +from ._constants import DEFAULT_TX_TIMEOUT_SECS from ._fee_pay import ( PendingTransactionResponse, submit_fee_paid_transaction, @@ -183,6 +184,7 @@ async def _send_tx( self, payload: InputEntryFunctionData, account_override: Account | None = None, + timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None ) -> dict[str, Any]: signer = account_override if account_override is not None else self._account sender = signer.address() @@ -218,7 +220,7 @@ async def _send_tx( pending_tx = await self.submit_tx(transaction, sender_authenticator) - return await self._wait_for_transaction(pending_tx.hash) + return await self._wait_for_transaction(pending_tx.hash, timeout_secs=timeout_secs) def _sign_transaction( self, @@ -313,9 +315,11 @@ async def _submit_direct( async def _wait_for_transaction( self, tx_hash: str, - timeout_secs: float = 30.0, + timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None poll_interval_secs: float = 1.0, ) -> dict[str, Any]: + if timeout_secs is None: + timeout_secs = DEFAULT_TX_TIMEOUT_SECS url = f"{self._config.fullnode_url}/transactions/by_hash/{tx_hash}" headers = self._build_node_headers() start_time = time.time() @@ -508,6 +512,7 @@ def _send_tx( self, payload: InputEntryFunctionData, account_override: Account | None = None, + timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None ) -> dict[str, Any]: signer = account_override if account_override is not None else self._account sender = signer.address() @@ -543,7 +548,7 @@ def _send_tx( pending_tx = self.submit_tx(transaction, sender_authenticator) - return self._wait_for_transaction(pending_tx.hash) + return self._wait_for_transaction(pending_tx.hash, timeout_secs=timeout_secs) def _sign_transaction( self, @@ -645,9 +650,11 @@ def make_request(client: httpx.Client) -> PendingTransactionResponse: def _wait_for_transaction( self, tx_hash: str, - timeout_secs: float = 30.0, + timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None poll_interval_secs: float = 1.0, ) -> dict[str, Any]: + if timeout_secs is None: + timeout_secs = DEFAULT_TX_TIMEOUT_SECS url = f"{self._config.fullnode_url}/transactions/by_hash/{tx_hash}" headers = self._build_node_headers() start_time = time.time() diff --git a/src/decibel/_constants.py b/src/decibel/_constants.py index da35fbd..70984c2 100644 --- a/src/decibel/_constants.py +++ b/src/decibel/_constants.py @@ -11,6 +11,7 @@ "Deployment", "DecibelConfig", "DEFAULT_COMPAT_VERSION", + "DEFAULT_TX_TIMEOUT_SECS", "MAINNET_CONFIG", "NETNA_CONFIG", "TESTNET_CONFIG", @@ -22,6 +23,10 @@ "get_perp_engine_global_address", ] +# Configurable timeout for transaction confirmation +# Default is 30 seconds +DEFAULT_TX_TIMEOUT_SECS = 30.0 + class Network(str, Enum): MAINNET = "mainnet" diff --git a/src/decibel/write/__init__.py b/src/decibel/write/__init__.py index ad9712a..ef96103 100644 --- a/src/decibel/write/__init__.py +++ b/src/decibel/write/__init__.py @@ -147,7 +147,12 @@ async def create_subaccount(self) -> dict[str, Any]: ) ) - async def deposit(self, amount: int, subaccount_addr: str | None = None) -> dict[str, Any]: + async def deposit( + self, + amount: int, + subaccount_addr: str | None = None, + timeout_secs: float | None = None, + ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -157,12 +162,18 @@ async def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::deposit_to_subaccount_at", type_arguments=[], function_arguments=[addr, usdc, amount], - ) + ), + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) - async def withdraw(self, amount: int, subaccount_addr: str | None = None) -> dict[str, Any]: + async def withdraw( + self, + amount: int, + subaccount_addr: str | None = None, + timeout_secs: float | None = None, + ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -172,7 +183,8 @@ async def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::withdraw_from_subaccount", type_arguments=[], function_arguments=[addr, usdc, amount], - ) + ), + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -184,6 +196,7 @@ async def configure_user_settings_for_market( subaccount_addr: str, is_cross: bool, user_leverage: int, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -193,7 +206,8 @@ async def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::configure_user_settings_for_market", type_arguments=[], function_arguments=[addr, market_addr, is_cross, user_leverage], - ) + ), + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -218,6 +232,7 @@ async def place_order( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + timeout_secs: float | None = None, ) -> PlaceOrderResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -275,6 +290,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) tx_response = await self.send_subaccount_tx(_send, subaccount_addr) @@ -298,6 +314,7 @@ async def trigger_matching( *, market_addr: str, max_work_unit: int, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package tx_response = await self._send_tx( @@ -305,7 +322,8 @@ async def trigger_matching( function=f"{pkg}::public_apis::process_perp_market_pending_requests", type_arguments=[], function_arguments=[market_addr, max_work_unit], - ) + ), + timeout_secs=timeout_secs, ) return { "success": True, @@ -326,6 +344,7 @@ async def place_twap_order( builder_fees: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> PlaceOrderResult: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -349,6 +368,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) tx_response = await self.send_subaccount_tx(_send, subaccount_addr) @@ -369,6 +389,7 @@ async def cancel_order( market_addr: str | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: if market_name is not None: resolved_market_addr = get_market_addr( @@ -389,6 +410,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, int(order_id), resolved_market_addr], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -406,6 +428,7 @@ async def place_bulk_orders( builder_fee: int | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> PlaceBulkOrdersResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -429,6 +452,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) tx_response = await self.send_subaccount_tx(_send, subaccount_addr) @@ -446,6 +470,7 @@ async def cancel_bulk_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -458,6 +483,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -469,6 +495,7 @@ async def cancel_client_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -481,6 +508,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, client_order_id, market_addr], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -491,6 +519,7 @@ async def delegate_trading_to_for_subaccount( subaccount_addr: str, account_to_delegate_to: str, expiration_timestamp_secs: int | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -504,7 +533,8 @@ async def _send(addr: str) -> dict[str, Any]: account_to_delegate_to, expiration_timestamp_secs, ], - ) + ), + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -514,6 +544,7 @@ async def revoke_delegation( *, account_to_revoke: str, subaccount_addr: str | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -523,7 +554,8 @@ async def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::revoke_delegation", type_arguments=[], function_arguments=[addr, account_to_revoke], - ) + ), + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -541,6 +573,7 @@ async def place_tp_sl_order_for_position( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: final_tp_trigger = ( _round_to_tick_size(tp_trigger_price, tick_size) @@ -584,6 +617,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -598,6 +632,7 @@ async def update_tp_order_for_position( tp_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -616,6 +651,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -630,6 +666,7 @@ async def update_sl_order_for_position( sl_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -648,6 +685,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -659,6 +697,7 @@ async def cancel_tp_sl_order_for_position( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -670,6 +709,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -681,6 +721,7 @@ async def cancel_twap_order( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -692,6 +733,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -719,6 +761,7 @@ async def deactivate_subaccount( subaccount_addr: str, revoke_all_delegations: bool = True, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -730,6 +773,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, revoke_all_delegations], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -770,6 +814,7 @@ async def create_vault( *, account_override: Account | None = None, subaccount_addr: str | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -799,6 +844,7 @@ async def _send(_: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -1095,7 +1141,12 @@ def create_subaccount(self) -> dict[str, Any]: ) ) - def deposit(self, amount: int, subaccount_addr: str | None = None) -> dict[str, Any]: + def deposit( + self, + amount: int, + subaccount_addr: str | None = None, + timeout_secs: float | None = None, + ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -1105,12 +1156,18 @@ def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::deposit_to_subaccount_at", type_arguments=[], function_arguments=[addr, usdc, amount], - ) + ), + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) - def withdraw(self, amount: int, subaccount_addr: str | None = None) -> dict[str, Any]: + def withdraw( + self, + amount: int, + subaccount_addr: str | None = None, + timeout_secs: float | None = None, + ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -1120,7 +1177,8 @@ def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::withdraw_from_subaccount", type_arguments=[], function_arguments=[addr, usdc, amount], - ) + ), + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1132,6 +1190,7 @@ def configure_user_settings_for_market( subaccount_addr: str, is_cross: bool, user_leverage: int, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1141,7 +1200,8 @@ def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::configure_user_settings_for_market", type_arguments=[], function_arguments=[addr, market_addr, is_cross, user_leverage], - ) + ), + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1166,6 +1226,7 @@ def place_order( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + timeout_secs: float | None = None, ) -> PlaceOrderResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1223,6 +1284,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) tx_response = self.send_subaccount_tx(_send, subaccount_addr) @@ -1246,6 +1308,7 @@ def trigger_matching( *, market_addr: str, max_work_unit: int, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package tx_response = self._send_tx( @@ -1253,7 +1316,8 @@ def trigger_matching( function=f"{pkg}::public_apis::process_perp_market_pending_requests", type_arguments=[], function_arguments=[market_addr, max_work_unit], - ) + ), + timeout_secs=timeout_secs, ) return { "success": True, @@ -1274,6 +1338,7 @@ def place_twap_order( builder_fees: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> PlaceOrderResult: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -1297,6 +1362,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) tx_response = self.send_subaccount_tx(_send, subaccount_addr) @@ -1317,6 +1383,7 @@ def cancel_order( market_addr: str | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: if market_name is not None: resolved_market_addr = get_market_addr( @@ -1337,6 +1404,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, int(order_id), resolved_market_addr], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1354,6 +1422,7 @@ def place_bulk_orders( builder_fee: int | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> PlaceBulkOrdersResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1377,6 +1446,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) tx_response = self.send_subaccount_tx(_send, subaccount_addr) @@ -1394,6 +1464,7 @@ def cancel_bulk_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -1406,6 +1477,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1417,6 +1489,7 @@ def cancel_client_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -1429,6 +1502,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, client_order_id, market_addr], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1439,6 +1513,7 @@ def delegate_trading_to_for_subaccount( subaccount_addr: str, account_to_delegate_to: str, expiration_timestamp_secs: int | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1452,7 +1527,8 @@ def _send(addr: str) -> dict[str, Any]: account_to_delegate_to, expiration_timestamp_secs, ], - ) + ), + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1462,6 +1538,7 @@ def revoke_delegation( *, account_to_revoke: str, subaccount_addr: str | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1471,7 +1548,8 @@ def _send(addr: str) -> dict[str, Any]: function=f"{pkg}::dex_accounts_entry::revoke_delegation", type_arguments=[], function_arguments=[addr, account_to_revoke], - ) + ), + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1489,6 +1567,7 @@ def place_tp_sl_order_for_position( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: final_tp_trigger = ( _round_to_tick_size(tp_trigger_price, tick_size) @@ -1532,6 +1611,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1546,6 +1626,7 @@ def update_tp_order_for_position( tp_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1564,6 +1645,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1578,6 +1660,7 @@ def update_sl_order_for_position( sl_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1596,6 +1679,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1607,6 +1691,7 @@ def cancel_tp_sl_order_for_position( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1618,6 +1703,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1629,6 +1715,7 @@ def cancel_twap_order( market_addr: str, subaccount_addr: str | None = None, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1640,6 +1727,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, order_id], ), account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1667,6 +1755,7 @@ def deactivate_subaccount( subaccount_addr: str, revoke_all_delegations: bool = True, account_override: Account | None = None, + timeout_secs: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1677,7 +1766,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, revoke_all_delegations], ), - account_override, + timeout_secs=timeout_secs, ) return self.send_subaccount_tx(_send, subaccount_addr) From 6f376f0e58dbe3a16abeaa12840948fedf66b214 Mon Sep 17 00:00:00 2001 From: dizpers Date: Fri, 3 Apr 2026 18:48:26 +0700 Subject: [PATCH 5/6] Custom excceptions / timeouts for txn submit / confirm --- src/decibel/__init__.py | 8 ++ src/decibel/_base.py | 120 ++++++++++++++++++++------- src/decibel/_constants.py | 9 ++- src/decibel/_exceptions.py | 51 ++++++++++++ src/decibel/_fee_pay.py | 32 ++++++-- src/decibel/write/__init__.py | 148 +++++++++++++++++----------------- 6 files changed, 257 insertions(+), 111 deletions(-) create mode 100644 src/decibel/_exceptions.py diff --git a/src/decibel/__init__.py b/src/decibel/__init__.py index 4fa5637..83374ec 100644 --- a/src/decibel/__init__.py +++ b/src/decibel/__init__.py @@ -2,8 +2,14 @@ BaseSDKOptions, BaseSDKOptionsSync, ) +from decibel._exceptions import ( + TxnConfirmError, + TxnSubmitError, +) from decibel._constants import ( DEFAULT_COMPAT_VERSION, + DEFAULT_TXN_CONFIRM_TIMEOUT, + DEFAULT_TXN_SUBMIT_TIMEOUT, DOCKER_CONFIG, LOCAL_CONFIG, MAINNET_CONFIG, @@ -143,6 +149,8 @@ "DecibelAdminDex", "DecibelAdminDexSync", "ABIErrorEntry", + "TxnConfirmError", + "TxnSubmitError", "ABISummary", "AbiRegistry", "amount_to_chain_units", diff --git a/src/decibel/_base.py b/src/decibel/_base.py index fdd7526..1df28dc 100644 --- a/src/decibel/_base.py +++ b/src/decibel/_base.py @@ -7,6 +7,8 @@ import httpx from aptos_sdk.async_client import RestClient + +from ._exceptions import TxnConfirmError, TxnSubmitError from aptos_sdk.authenticator import ( AccountAuthenticator, Authenticator, @@ -18,7 +20,7 @@ from aptos_sdk.ed25519 import Signature as Ed25519Signature from aptos_sdk.transactions import FeePayerRawTransaction, SignedTransaction -from ._constants import DEFAULT_TX_TIMEOUT_SECS +from ._constants import DEFAULT_TXN_CONFIRM_TIMEOUT, DEFAULT_TXN_SUBMIT_TIMEOUT from ._fee_pay import ( PendingTransactionResponse, submit_fee_paid_transaction, @@ -171,20 +173,27 @@ async def submit_tx( self, transaction: SimpleTransaction, sender_authenticator: AccountAuthenticator, + *, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: if self._no_fee_payer: - return await self._submit_direct(transaction, sender_authenticator) + return await self._submit_direct( + transaction, sender_authenticator, txn_submit_timeout + ) return await submit_fee_paid_transaction( self._config, transaction, sender_authenticator, + txn_submit_timeout=txn_submit_timeout, ) async def _send_tx( self, payload: InputEntryFunctionData, account_override: Account | None = None, - timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None + *, + txn_submit_timeout: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: signer = account_override if account_override is not None else self._account sender = signer.address() @@ -218,9 +227,35 @@ async def _send_tx( sender_authenticator = self._sign_transaction(signer, transaction) - pending_tx = await self.submit_tx(transaction, sender_authenticator) + if txn_submit_timeout is None: + txn_submit_timeout = DEFAULT_TXN_SUBMIT_TIMEOUT + + try: + pending_tx = await self.submit_tx( + transaction, sender_authenticator, txn_submit_timeout=txn_submit_timeout + ) + except httpx.ConnectTimeout as e: + raise TxnSubmitError( + f"Failed to submit transaction: connection timeout to {self._config.fullnode_url}", + original_exception=e, + ) + except httpx.ConnectError as e: + raise TxnSubmitError( + f"Failed to submit transaction: connection error - {e}", + original_exception=e, + ) + except httpx.HTTPStatusError as e: + raise TxnSubmitError( + f"Failed to submit transaction: HTTP {e.response.status_code}", + original_exception=e, + ) + except Exception as e: + raise TxnSubmitError( + f"Failed to submit transaction: {e}", + original_exception=e, + ) - return await self._wait_for_transaction(pending_tx.hash, timeout_secs=timeout_secs) + return await self._wait_for_transaction(pending_tx.hash, txn_confirm_timeout=txn_confirm_timeout) def _sign_transaction( self, @@ -285,6 +320,7 @@ async def _submit_direct( self, transaction: SimpleTransaction, sender_authenticator: AccountAuthenticator, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: url = f"{self._config.fullnode_url}/transactions" headers = self._build_node_headers() @@ -293,7 +329,7 @@ async def _submit_direct( bcs_bytes = self._serialize_signed_transaction(transaction, sender_authenticator) async with httpx.AsyncClient() as client: - response = await client.post(url, content=bcs_bytes, headers=headers) + response = await client.post(url, content=bcs_bytes, headers=headers, timeout=txn_submit_timeout) if not response.is_success: raise ValueError( @@ -315,11 +351,11 @@ async def _submit_direct( async def _wait_for_transaction( self, tx_hash: str, - timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None + txn_confirm_timeout: float | None = None, # Uses DEFAULT_TXN_CONFIRM_TIMEOUT if None poll_interval_secs: float = 1.0, ) -> dict[str, Any]: - if timeout_secs is None: - timeout_secs = DEFAULT_TX_TIMEOUT_SECS + if txn_confirm_timeout is None: + txn_confirm_timeout = DEFAULT_TXN_CONFIRM_TIMEOUT url = f"{self._config.fullnode_url}/transactions/by_hash/{tx_hash}" headers = self._build_node_headers() start_time = time.time() @@ -337,12 +373,10 @@ async def _wait_for_transaction( return data elif data.get("success") is False: vm_status = data.get("vm_status", "Unknown error") - raise ValueError(f"Transaction failed: {vm_status}") + raise TxnConfirmError(tx_hash, f"failed: {vm_status}") - if time.time() - start_time > timeout_secs: - raise TimeoutError( - f"Transaction {tx_hash} did not complete within {timeout_secs}s" - ) + if time.time() - start_time > txn_confirm_timeout: + raise TxnConfirmError(tx_hash, f"did not confirm within {txn_confirm_timeout}s") await self._async_sleep(poll_interval_secs) @@ -499,20 +533,27 @@ def submit_tx( self, transaction: SimpleTransaction, sender_authenticator: AccountAuthenticator, + *, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: if self._no_fee_payer: - return self._submit_direct(transaction, sender_authenticator) + return self._submit_direct( + transaction, sender_authenticator, txn_submit_timeout + ) return submit_fee_paid_transaction_sync( self._config, transaction, sender_authenticator, + txn_submit_timeout=txn_submit_timeout, ) def _send_tx( self, payload: InputEntryFunctionData, account_override: Account | None = None, - timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None + *, + txn_submit_timeout: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: signer = account_override if account_override is not None else self._account sender = signer.address() @@ -546,9 +587,35 @@ def _send_tx( sender_authenticator = self._sign_transaction(signer, transaction) - pending_tx = self.submit_tx(transaction, sender_authenticator) + if txn_submit_timeout is None: + txn_submit_timeout = DEFAULT_TXN_SUBMIT_TIMEOUT + + try: + pending_tx = self.submit_tx( + transaction, sender_authenticator, txn_submit_timeout=txn_submit_timeout + ) + except httpx.ConnectTimeout as e: + raise TxnSubmitError( + f"Failed to submit transaction: connection timeout to {self._config.fullnode_url}", + original_exception=e, + ) + except httpx.ConnectError as e: + raise TxnSubmitError( + f"Failed to submit transaction: connection error - {e}", + original_exception=e, + ) + except httpx.HTTPStatusError as e: + raise TxnSubmitError( + f"Failed to submit transaction: HTTP {e.response.status_code}", + original_exception=e, + ) + except Exception as e: + raise TxnSubmitError( + f"Failed to submit transaction: {e}", + original_exception=e, + ) - return self._wait_for_transaction(pending_tx.hash, timeout_secs=timeout_secs) + return self._wait_for_transaction(pending_tx.hash, txn_confirm_timeout=txn_confirm_timeout) def _sign_transaction( self, @@ -619,6 +686,7 @@ def _submit_direct( self, transaction: SimpleTransaction, sender_authenticator: AccountAuthenticator, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: url = f"{self._config.fullnode_url}/transactions" headers = self._build_node_headers() @@ -626,7 +694,7 @@ def _submit_direct( bcs_bytes = self._serialize_signed_transaction(transaction, sender_authenticator) def make_request(client: httpx.Client) -> PendingTransactionResponse: - response = client.post(url, content=bcs_bytes, headers=headers) + response = client.post(url, content=bcs_bytes, headers=headers, timeout=txn_submit_timeout) if not response.is_success: raise ValueError( f"Transaction submission failed: {response.status_code} - {response.text}" @@ -650,11 +718,11 @@ def make_request(client: httpx.Client) -> PendingTransactionResponse: def _wait_for_transaction( self, tx_hash: str, - timeout_secs: float | None = None, # Uses DEFAULT_TX_TIMEOUT_SECS if None + txn_confirm_timeout: float | None = None, # Uses DEFAULT_TXN_CONFIRM_TIMEOUT if None poll_interval_secs: float = 1.0, ) -> dict[str, Any]: - if timeout_secs is None: - timeout_secs = DEFAULT_TX_TIMEOUT_SECS + if txn_confirm_timeout is None: + txn_confirm_timeout = DEFAULT_TXN_CONFIRM_TIMEOUT url = f"{self._config.fullnode_url}/transactions/by_hash/{tx_hash}" headers = self._build_node_headers() start_time = time.time() @@ -671,11 +739,9 @@ def poll_loop(client: httpx.Client) -> dict[str, Any]: return data elif data.get("success") is False: vm_status = data.get("vm_status", "Unknown error") - raise ValueError(f"Transaction failed: {vm_status}") - if time.time() - start_time > timeout_secs: - raise TimeoutError( - f"Transaction {tx_hash} did not complete within {timeout_secs}s" - ) + raise TxnConfirmError(tx_hash, f"failed: {vm_status}") + if time.time() - start_time > txn_confirm_timeout: + raise TxnConfirmError(tx_hash, f"did not confirm within {txn_confirm_timeout}s") time.sleep(poll_interval_secs) if self._http_client is not None: diff --git a/src/decibel/_constants.py b/src/decibel/_constants.py index 70984c2..ad7fa15 100644 --- a/src/decibel/_constants.py +++ b/src/decibel/_constants.py @@ -11,7 +11,8 @@ "Deployment", "DecibelConfig", "DEFAULT_COMPAT_VERSION", - "DEFAULT_TX_TIMEOUT_SECS", + "DEFAULT_TXN_CONFIRM_TIMEOUT", + "DEFAULT_TXN_SUBMIT_TIMEOUT", "MAINNET_CONFIG", "NETNA_CONFIG", "TESTNET_CONFIG", @@ -25,7 +26,11 @@ # Configurable timeout for transaction confirmation # Default is 30 seconds -DEFAULT_TX_TIMEOUT_SECS = 30.0 +DEFAULT_TXN_CONFIRM_TIMEOUT = 30.0 + +# Configurable timeout for transaction submission +# Default is 10 seconds (should be shorter than confirmation timeout) +DEFAULT_TXN_SUBMIT_TIMEOUT = 10.0 class Network(str, Enum): diff --git a/src/decibel/_exceptions.py b/src/decibel/_exceptions.py new file mode 100644 index 0000000..d8d92bc --- /dev/null +++ b/src/decibel/_exceptions.py @@ -0,0 +1,51 @@ +"""Custom exceptions for the Decibel SDK. + +These exceptions help callers distinguish between failures that are safe to retry +(submission errors) vs failures that require checking transaction status first +(confirmation errors). +""" + +from __future__ import annotations + + +class TxnConfirmError(Exception): + """ + Transaction was submitted but confirmation failed. + + Causes: + - Transaction did not confirm within timeout (still pending or dropped) + - Transaction executed but reverted (VM error) + - Transaction failed during execution + + CRITICAL: The transaction MAY be on-chain. Check tx_hash status before retrying + to avoid duplicate transactions. + + Attributes: + tx_hash: The transaction hash that was submitted + message: Description of what went wrong + """ + + def __init__(self, tx_hash: str, message: str) -> None: + self.tx_hash = tx_hash + super().__init__(f"Transaction {tx_hash}: {message}") + + +class TxnSubmitError(Exception): + """ + Transaction submission failed before reaching the blockchain. + + Causes: + - Network connectivity issues (timeout, connection refused) + - RPC endpoint unavailable + - HTTP errors (5xx, 429 rate limit) + - Serialization errors + + SAFE TO RETRY: The transaction was never submitted to the blockchain. + + Attributes: + original_exception: The underlying exception that caused the failure + """ + + def __init__(self, message: str, original_exception: Exception | None = None) -> None: + self.original_exception = original_exception + super().__init__(message) diff --git a/src/decibel/_fee_pay.py b/src/decibel/_fee_pay.py index 9d6a3fe..e864842 100644 --- a/src/decibel/_fee_pay.py +++ b/src/decibel/_fee_pay.py @@ -34,6 +34,7 @@ async def submit_fee_paid_transaction( sender_authenticator: AccountAuthenticator, *, client: httpx.AsyncClient | None = None, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: if config.gas_station_api_key: return await _submit_via_gas_station_api( @@ -41,6 +42,7 @@ async def submit_fee_paid_transaction( transaction, sender_authenticator, client=client, + txn_submit_timeout=txn_submit_timeout, ) if config.gas_station_url: @@ -49,6 +51,7 @@ async def submit_fee_paid_transaction( transaction, sender_authenticator, client=client, + txn_submit_timeout=txn_submit_timeout, ) raise ValueError("Either gas_station_api_key or gas_station_url must be provided") @@ -60,6 +63,7 @@ def submit_fee_paid_transaction_sync( sender_authenticator: AccountAuthenticator, *, client: httpx.Client | None = None, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: if config.gas_station_api_key: return _submit_via_gas_station_api_sync( @@ -67,6 +71,7 @@ def submit_fee_paid_transaction_sync( transaction, sender_authenticator, client=client, + txn_submit_timeout=txn_submit_timeout, ) if config.gas_station_url: @@ -75,6 +80,7 @@ def submit_fee_paid_transaction_sync( transaction, sender_authenticator, client=client, + txn_submit_timeout=txn_submit_timeout, ) raise ValueError("Either gas_station_api_key or gas_station_url must be provided") @@ -86,6 +92,7 @@ async def _submit_via_gas_station_api( sender_authenticator: AccountAuthenticator, *, client: httpx.AsyncClient | None = None, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: base_url = _get_default_gas_station_url(config) url = f"{base_url}/api/transaction/signAndSubmit" @@ -115,11 +122,14 @@ async def _submit_via_gas_station_api( "Authorization": f"Bearer {config.gas_station_api_key}", } + async def _do_submit(c: httpx.AsyncClient) -> httpx.Response: + return await c.post(url, json=body, headers=headers, timeout=txn_submit_timeout) + if client is not None: - response = await client.post(url, json=body, headers=headers) + response = await _do_submit(client) else: async with httpx.AsyncClient() as temp_client: - response = await temp_client.post(url, json=body, headers=headers) + response = await _do_submit(temp_client) if not response.is_success: raise ValueError(f"Gas station API error: {response.status_code} - {response.text}") @@ -143,6 +153,7 @@ def _submit_via_gas_station_api_sync( sender_authenticator: AccountAuthenticator, *, client: httpx.Client | None = None, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: base_url = _get_default_gas_station_url(config) url = f"{base_url}/api/transaction/signAndSubmit" @@ -172,11 +183,14 @@ def _submit_via_gas_station_api_sync( "Authorization": f"Bearer {config.gas_station_api_key}", } + def _do_submit(c: httpx.Client) -> httpx.Response: + return c.post(url, json=body, headers=headers, timeout=txn_submit_timeout) + if client is not None: - response = client.post(url, json=body, headers=headers) + response = _do_submit(client) else: with httpx.Client() as temp_client: - response = temp_client.post(url, json=body, headers=headers) + response = _do_submit(temp_client) if not response.is_success: raise ValueError(f"Gas station API error: {response.status_code} - {response.text}") @@ -200,6 +214,7 @@ async def _submit_via_legacy_fee_payer( sender_authenticator: AccountAuthenticator, *, client: httpx.AsyncClient | None = None, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: url = f"{config.gas_station_url}/transactions" @@ -219,10 +234,10 @@ async def _submit_via_legacy_fee_payer( headers = {"Content-Type": "application/json"} if client is not None: - response = await client.post(url, json=body, headers=headers) + response = await client.post(url, json=body, headers=headers, timeout=txn_submit_timeout) else: async with httpx.AsyncClient() as temp_client: - response = await temp_client.post(url, json=body, headers=headers) + response = await temp_client.post(url, json=body, headers=headers, timeout=txn_submit_timeout) # TODO: Improve error handling if not response.is_success: @@ -245,6 +260,7 @@ def _submit_via_legacy_fee_payer_sync( sender_authenticator: AccountAuthenticator, *, client: httpx.Client | None = None, + txn_submit_timeout: float | None = None, ) -> PendingTransactionResponse: url = f"{config.gas_station_url}/transactions" @@ -264,10 +280,10 @@ def _submit_via_legacy_fee_payer_sync( headers = {"Content-Type": "application/json"} if client is not None: - response = client.post(url, json=body, headers=headers) + response = client.post(url, json=body, headers=headers, timeout=txn_submit_timeout) else: with httpx.Client() as temp_client: - response = temp_client.post(url, json=body, headers=headers) + response = temp_client.post(url, json=body, headers=headers, timeout=txn_submit_timeout) # TODO: Improve error handling if not response.is_success: diff --git a/src/decibel/write/__init__.py b/src/decibel/write/__init__.py index ef96103..4fee0ad 100644 --- a/src/decibel/write/__init__.py +++ b/src/decibel/write/__init__.py @@ -151,7 +151,7 @@ async def deposit( self, amount: int, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -163,7 +163,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -172,7 +172,7 @@ async def withdraw( self, amount: int, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -184,7 +184,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -196,7 +196,7 @@ async def configure_user_settings_for_market( subaccount_addr: str, is_cross: bool, user_leverage: int, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -207,7 +207,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, market_addr, is_cross, user_leverage], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -232,7 +232,7 @@ async def place_order( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -290,7 +290,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) tx_response = await self.send_subaccount_tx(_send, subaccount_addr) @@ -314,7 +314,7 @@ async def trigger_matching( *, market_addr: str, max_work_unit: int, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package tx_response = await self._send_tx( @@ -323,7 +323,7 @@ async def trigger_matching( type_arguments=[], function_arguments=[market_addr, max_work_unit], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return { "success": True, @@ -344,7 +344,7 @@ async def place_twap_order( builder_fees: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -368,7 +368,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) tx_response = await self.send_subaccount_tx(_send, subaccount_addr) @@ -389,7 +389,7 @@ async def cancel_order( market_addr: str | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: if market_name is not None: resolved_market_addr = get_market_addr( @@ -410,7 +410,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, int(order_id), resolved_market_addr], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -428,7 +428,7 @@ async def place_bulk_orders( builder_fee: int | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> PlaceBulkOrdersResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -452,7 +452,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) tx_response = await self.send_subaccount_tx(_send, subaccount_addr) @@ -470,7 +470,7 @@ async def cancel_bulk_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -483,7 +483,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -495,7 +495,7 @@ async def cancel_client_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -508,7 +508,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, client_order_id, market_addr], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -519,7 +519,7 @@ async def delegate_trading_to_for_subaccount( subaccount_addr: str, account_to_delegate_to: str, expiration_timestamp_secs: int | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -534,7 +534,7 @@ async def _send(addr: str) -> dict[str, Any]: expiration_timestamp_secs, ], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -544,7 +544,7 @@ async def revoke_delegation( *, account_to_revoke: str, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -555,7 +555,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, account_to_revoke], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -573,7 +573,7 @@ async def place_tp_sl_order_for_position( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: final_tp_trigger = ( _round_to_tick_size(tp_trigger_price, tick_size) @@ -617,7 +617,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -632,7 +632,7 @@ async def update_tp_order_for_position( tp_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -651,7 +651,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -666,7 +666,7 @@ async def update_sl_order_for_position( sl_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -685,7 +685,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -697,7 +697,7 @@ async def cancel_tp_sl_order_for_position( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -709,7 +709,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -721,7 +721,7 @@ async def cancel_twap_order( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -733,7 +733,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -761,7 +761,7 @@ async def deactivate_subaccount( subaccount_addr: str, revoke_all_delegations: bool = True, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -773,7 +773,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, revoke_all_delegations], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -814,7 +814,7 @@ async def create_vault( *, account_override: Account | None = None, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -844,7 +844,7 @@ async def _send(_: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return await self.send_subaccount_tx(_send, subaccount_addr) @@ -1145,7 +1145,7 @@ def deposit( self, amount: int, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -1157,7 +1157,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1166,7 +1166,7 @@ def withdraw( self, amount: int, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package usdc = self._config.deployment.usdc @@ -1178,7 +1178,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1190,7 +1190,7 @@ def configure_user_settings_for_market( subaccount_addr: str, is_cross: bool, user_leverage: int, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1201,7 +1201,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, market_addr, is_cross, user_leverage], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1226,7 +1226,7 @@ def place_order( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1284,7 +1284,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) tx_response = self.send_subaccount_tx(_send, subaccount_addr) @@ -1308,7 +1308,7 @@ def trigger_matching( *, market_addr: str, max_work_unit: int, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package tx_response = self._send_tx( @@ -1317,7 +1317,7 @@ def trigger_matching( type_arguments=[], function_arguments=[market_addr, max_work_unit], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return { "success": True, @@ -1338,7 +1338,7 @@ def place_twap_order( builder_fees: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -1362,7 +1362,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) tx_response = self.send_subaccount_tx(_send, subaccount_addr) @@ -1383,7 +1383,7 @@ def cancel_order( market_addr: str | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: if market_name is not None: resolved_market_addr = get_market_addr( @@ -1404,7 +1404,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, int(order_id), resolved_market_addr], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1422,7 +1422,7 @@ def place_bulk_orders( builder_fee: int | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> PlaceBulkOrdersResult: try: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1446,7 +1446,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) tx_response = self.send_subaccount_tx(_send, subaccount_addr) @@ -1464,7 +1464,7 @@ def cancel_bulk_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -1477,7 +1477,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1489,7 +1489,7 @@ def cancel_client_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) pkg = self._config.deployment.package @@ -1502,7 +1502,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, client_order_id, market_addr], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1513,7 +1513,7 @@ def delegate_trading_to_for_subaccount( subaccount_addr: str, account_to_delegate_to: str, expiration_timestamp_secs: int | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1528,7 +1528,7 @@ def _send(addr: str) -> dict[str, Any]: expiration_timestamp_secs, ], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1538,7 +1538,7 @@ def revoke_delegation( *, account_to_revoke: str, subaccount_addr: str | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1549,7 +1549,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, account_to_revoke], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1567,7 +1567,7 @@ def place_tp_sl_order_for_position( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: final_tp_trigger = ( _round_to_tick_size(tp_trigger_price, tick_size) @@ -1611,7 +1611,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1626,7 +1626,7 @@ def update_tp_order_for_position( tp_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1645,7 +1645,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1660,7 +1660,7 @@ def update_sl_order_for_position( sl_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1679,7 +1679,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1691,7 +1691,7 @@ def cancel_tp_sl_order_for_position( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1703,7 +1703,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1715,7 +1715,7 @@ def cancel_twap_order( market_addr: str, subaccount_addr: str | None = None, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1727,7 +1727,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, order_id], ), account_override, - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) @@ -1755,7 +1755,7 @@ def deactivate_subaccount( subaccount_addr: str, revoke_all_delegations: bool = True, account_override: Account | None = None, - timeout_secs: float | None = None, + txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1766,7 +1766,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, revoke_all_delegations], ), - timeout_secs=timeout_secs, + txn_confirm_timeout=txn_confirm_timeout, ) return self.send_subaccount_tx(_send, subaccount_addr) From 96b0bdf98f2f39616f4e2b7da8b94afff726796b Mon Sep 17 00:00:00 2001 From: dizpers Date: Sun, 5 Apr 2026 15:32:48 +0700 Subject: [PATCH 6/6] Separate configurable timeouts for txn submit / confirm --- src/decibel/write/__init__.py | 77 ++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/src/decibel/write/__init__.py b/src/decibel/write/__init__.py index 4fee0ad..931a238 100644 --- a/src/decibel/write/__init__.py +++ b/src/decibel/write/__init__.py @@ -151,6 +151,7 @@ async def deposit( self, amount: int, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -163,6 +164,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -172,6 +174,7 @@ async def withdraw( self, amount: int, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -184,6 +187,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -196,6 +200,7 @@ async def configure_user_settings_for_market( subaccount_addr: str, is_cross: bool, user_leverage: int, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -207,6 +212,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, market_addr, is_cross, user_leverage], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -232,6 +238,7 @@ async def place_order( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: try: @@ -290,6 +297,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -314,6 +322,7 @@ async def trigger_matching( *, market_addr: str, max_work_unit: int, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -323,6 +332,7 @@ async def trigger_matching( type_arguments=[], function_arguments=[market_addr, max_work_unit], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) return { @@ -344,6 +354,7 @@ async def place_twap_order( builder_fees: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -368,6 +379,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -389,6 +401,7 @@ async def cancel_order( market_addr: str | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: if market_name is not None: @@ -410,6 +423,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, int(order_id), resolved_market_addr], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -428,6 +442,7 @@ async def place_bulk_orders( builder_fee: int | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> PlaceBulkOrdersResult: try: @@ -452,6 +467,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -470,6 +486,7 @@ async def cancel_bulk_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -483,6 +500,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -495,6 +513,7 @@ async def cancel_client_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -508,6 +527,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, client_order_id, market_addr], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -519,6 +539,7 @@ async def delegate_trading_to_for_subaccount( subaccount_addr: str, account_to_delegate_to: str, expiration_timestamp_secs: int | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -534,6 +555,7 @@ async def _send(addr: str) -> dict[str, Any]: expiration_timestamp_secs, ], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -544,6 +566,7 @@ async def revoke_delegation( *, account_to_revoke: str, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -555,6 +578,7 @@ async def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, account_to_revoke], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -573,6 +597,7 @@ async def place_tp_sl_order_for_position( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: final_tp_trigger = ( @@ -617,6 +642,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -632,6 +658,7 @@ async def update_tp_order_for_position( tp_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -651,6 +678,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -666,6 +694,7 @@ async def update_sl_order_for_position( sl_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -685,6 +714,7 @@ async def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -697,6 +727,7 @@ async def cancel_tp_sl_order_for_position( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -709,6 +740,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -721,6 +753,7 @@ async def cancel_twap_order( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -733,6 +766,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -761,6 +795,7 @@ async def deactivate_subaccount( subaccount_addr: str, revoke_all_delegations: bool = True, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -773,6 +808,7 @@ async def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, revoke_all_delegations], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -814,6 +850,7 @@ async def create_vault( *, account_override: Account | None = None, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -844,6 +881,7 @@ async def _send(_: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1145,6 +1183,7 @@ def deposit( self, amount: int, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1157,6 +1196,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1166,6 +1206,7 @@ def withdraw( self, amount: int, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1178,6 +1219,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, usdc, amount], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1190,6 +1232,7 @@ def configure_user_settings_for_market( subaccount_addr: str, is_cross: bool, user_leverage: int, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1201,6 +1244,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, market_addr, is_cross, user_leverage], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1226,6 +1270,7 @@ def place_order( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: try: @@ -1284,6 +1329,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1308,6 +1354,7 @@ def trigger_matching( *, market_addr: str, max_work_unit: int, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1317,6 +1364,7 @@ def trigger_matching( type_arguments=[], function_arguments=[market_addr, max_work_unit], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) return { @@ -1338,6 +1386,7 @@ def place_twap_order( builder_fees: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> PlaceOrderResult: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1362,6 +1411,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1383,6 +1433,7 @@ def cancel_order( market_addr: str | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: if market_name is not None: @@ -1404,6 +1455,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, int(order_id), resolved_market_addr], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1422,6 +1474,7 @@ def place_bulk_orders( builder_fee: int | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> PlaceBulkOrdersResult: try: @@ -1446,6 +1499,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1464,6 +1518,7 @@ def cancel_bulk_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1477,6 +1532,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1489,6 +1545,7 @@ def cancel_client_order( market_name: str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: market_addr = get_market_addr(market_name, self._config.deployment.perp_engine_global) @@ -1502,6 +1559,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, client_order_id, market_addr], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1513,6 +1571,7 @@ def delegate_trading_to_for_subaccount( subaccount_addr: str, account_to_delegate_to: str, expiration_timestamp_secs: int | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1528,6 +1587,7 @@ def _send(addr: str) -> dict[str, Any]: expiration_timestamp_secs, ], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1538,6 +1598,7 @@ def revoke_delegation( *, account_to_revoke: str, subaccount_addr: str | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1549,6 +1610,7 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, account_to_revoke], ), + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1567,6 +1629,7 @@ def place_tp_sl_order_for_position( subaccount_addr: str | None = None, account_override: Account | None = None, tick_size: int | float | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: final_tp_trigger = ( @@ -1611,6 +1674,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1626,6 +1690,7 @@ def update_tp_order_for_position( tp_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1645,6 +1710,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1660,6 +1726,7 @@ def update_sl_order_for_position( sl_size: float | None = None, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1679,6 +1746,7 @@ def _send(addr: str) -> dict[str, Any]: ], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1691,6 +1759,7 @@ def cancel_tp_sl_order_for_position( order_id: int | str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1703,6 +1772,7 @@ def _send(addr: str) -> dict[str, Any]: function_arguments=[addr, market_addr, int(order_id)], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1715,6 +1785,7 @@ def cancel_twap_order( market_addr: str, subaccount_addr: str | None = None, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1724,9 +1795,10 @@ def _send(addr: str) -> dict[str, Any]: InputEntryFunctionData( function=f"{pkg}::dex_accounts_entry::cancel_twap_orders_to_subaccount", type_arguments=[], - function_arguments=[addr, market_addr, order_id], + function_arguments=[addr, market_addr, int(order_id)], ), account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, ) @@ -1755,6 +1827,7 @@ def deactivate_subaccount( subaccount_addr: str, revoke_all_delegations: bool = True, account_override: Account | None = None, + txn_submit_timeout: float | None = None, txn_confirm_timeout: float | None = None, ) -> dict[str, Any]: pkg = self._config.deployment.package @@ -1766,6 +1839,8 @@ def _send(addr: str) -> dict[str, Any]: type_arguments=[], function_arguments=[addr, revoke_all_delegations], ), + account_override, + txn_submit_timeout=txn_submit_timeout, txn_confirm_timeout=txn_confirm_timeout, )