diff --git a/Cargo.lock b/Cargo.lock index 768d742ec6..fe7640778f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5617,7 +5617,7 @@ dependencies = [ [[package]] name = "hydra-dx-math" -version = "13.2.2" +version = "13.2.3" dependencies = [ "approx", "criterion", @@ -5639,7 +5639,7 @@ dependencies = [ [[package]] name = "hydradx" -version = "15.2.0" +version = "15.3.0" dependencies = [ "async-trait", "clap", @@ -5773,7 +5773,7 @@ dependencies = [ "pallet-referrals", "pallet-route-executor", "pallet-stableswap", - "pallet-staking 5.1.0", + "pallet-staking 5.2.0", "pallet-timestamp", "pallet-transaction-multi-payment", "pallet-uniques", @@ -5795,7 +5795,7 @@ dependencies = [ [[package]] name = "hydradx-runtime" -version = "439.0.0" +version = "440.0.0" dependencies = [ "alloy-primitives 0.7.7", "alloy-sol-types 0.7.7", @@ -5896,7 +5896,7 @@ dependencies = [ "pallet-omnipool-liquidity-mining", "pallet-otc", "pallet-otc-settlements", - "pallet-parameters 1.2.0", + "pallet-parameters 1.3.0", "pallet-preimage", "pallet-proxy", "pallet-referenda", @@ -5907,7 +5907,7 @@ dependencies = [ "pallet-session", "pallet-signet", "pallet-stableswap", - "pallet-staking 5.1.0", + "pallet-staking 5.2.0", "pallet-state-trie-migration", "pallet-timestamp", "pallet-tips", @@ -5963,7 +5963,7 @@ dependencies = [ [[package]] name = "hydradx-traits" -version = "4.11.0" +version = "4.12.0" dependencies = [ "frame-support", "frame-system", @@ -9161,7 +9161,7 @@ dependencies = [ [[package]] name = "pallet-dca" -version = "1.19.0" +version = "1.20.0" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -9277,7 +9277,7 @@ dependencies = [ [[package]] name = "pallet-dispenser" -version = "0.4.0" +version = "0.4.1" dependencies = [ "alloy-primitives 0.7.7", "alloy-sol-types 0.7.7", @@ -9354,7 +9354,7 @@ dependencies = [ "pallet-balances", "pallet-currencies", "pallet-evm", - "pallet-parameters 1.2.0", + "pallet-parameters 1.3.0", "pallet-transaction-payment", "parity-scale-codec", "primitives", @@ -9441,7 +9441,7 @@ dependencies = [ [[package]] name = "pallet-ema-oracle" -version = "1.12.0" +version = "1.13.0" dependencies = [ "frame-benchmarking", "frame-support", @@ -9740,7 +9740,7 @@ dependencies = [ [[package]] name = "pallet-gigahdx" -version = "1.2.0" +version = "1.3.0" dependencies = [ "frame-benchmarking", "frame-support", @@ -9763,7 +9763,7 @@ dependencies = [ [[package]] name = "pallet-gigahdx-rewards" -version = "1.1.1" +version = "1.2.0" dependencies = [ "frame-benchmarking", "frame-support", @@ -9895,7 +9895,7 @@ dependencies = [ [[package]] name = "pallet-lbp" -version = "4.13.0" +version = "4.14.0" dependencies = [ "frame-benchmarking", "frame-support", @@ -10320,7 +10320,7 @@ dependencies = [ [[package]] name = "pallet-parameters" -version = "1.2.0" +version = "1.3.0" dependencies = [ "frame-support", "frame-system", @@ -10685,7 +10685,7 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "5.1.0" +version = "5.2.0" dependencies = [ "frame-benchmarking", "frame-support", @@ -13014,7 +13014,7 @@ dependencies = [ [[package]] name = "primitives" -version = "6.4.0" +version = "6.4.1" dependencies = [ "frame-support", "hex-literal", @@ -13978,7 +13978,7 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "runtime-integration-tests" -version = "1.107.1" +version = "1.108.0" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -14062,7 +14062,7 @@ dependencies = [ "pallet-scheduler", "pallet-session", "pallet-stableswap", - "pallet-staking 5.1.0", + "pallet-staking 5.2.0", "pallet-timestamp", "pallet-transaction-multi-payment", "pallet-transaction-pause", @@ -14130,7 +14130,7 @@ dependencies = [ "pallet-asset-registry", "pallet-omnipool", "pallet-stableswap", - "pallet-staking 5.1.0", + "pallet-staking 5.2.0", "primitives", "scraper", "serde", diff --git a/Makefile b/Makefile index 7791addf71..e2bb4cd9ce 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ format: .PHONY: try-runtime try-runtime: $(cargo) build --release --features try-runtime - try-runtime --runtime ./target/release/wbuild/hydradx-runtime/hydradx_runtime.wasm on-runtime-upgrade --blocktime 6000 --checks all live --uri wss://archive.rpc.hydration.cloud + try-runtime --runtime ./target/release/wbuild/hydradx-runtime/hydradx_runtime.wasm on-runtime-upgrade --blocktime 2000 --checks all live --uri wss://archive.rpc.hydration.cloud .PHONY: build-docs build-docs: diff --git a/README.md b/README.md index 83791f0c72..78f858f313 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,12 @@ Grab `zombienet` utility used to start network from [releases](https://github.co Start local testnet with 4 relay chain validators and HydraDX as a parachain with 2 collators. -``` +```bash cd launch-configs/zombienet/ zombienet spawn local.json + +# Enable 2s block time +npm exec --yes --package=@polkadot/api --package=@polkadot/util-crypto -- node scripts/assign_cores.js ``` ## Interaction with the node diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index 7dd45af5fe..42d1ed94fe 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "runtime-integration-tests" -version = "1.107.1" +version = "1.108.0" description = "Integration tests" authors = ["GalacticCouncil"] edition = "2021" diff --git a/integration-tests/src/aave_router.rs b/integration-tests/src/aave_router.rs index 20124ece10..81d1750efc 100644 --- a/integration-tests/src/aave_router.rs +++ b/integration-tests/src/aave_router.rs @@ -1385,133 +1385,142 @@ fn check_atoken_transfer_with_rounding_error() { } use sp_runtime::codec::Encode; -#[test] -fn evm_permit_set_currency_dispatch_should_pay_evm_fee_in_atoken() { - let user_evm_address = alith_evm_address(); - let user_secret_key = alith_secret_key(); - let user_acc = MockAccount::new(alith_truncated_account()); - let treasury_acc = MockAccount::new(Treasury::account_id()); - with_atoken(|| { - // ALICE has ADOT from with_atoken setup - let fee_currency = ADOT; +/// Sets ADOT up as an accepted fee currency backed by the omnipool, then accrues +/// yield so the aToken liquidity index departs from 1:1 and transfer amounts round +/// against observed balance deltas. +fn setup_adot_as_fee_currency() { + // ALICE has ADOT from with_atoken setup - // Initialize omnipool and oracle + // Transfer some ADOT from ALICE to the EVM user (alith) + let adot_transfer_amount = BAG / 3; + assert_ok!(Currencies::transfer( + RuntimeOrigin::signed(ALICE.into()), + alith_evm_account(), + ADOT, + adot_transfer_amount + )); - // Transfer some ADOT from ALICE to the EVM user (alith) - let adot_transfer_amount = BAG / 3; // Transfer 1 BAG of ADOT - assert_ok!(Currencies::transfer( - RuntimeOrigin::signed(ALICE.into()), - alith_evm_account(), - ADOT, - adot_transfer_amount - )); + // Send adot to protocol account so we can add it to ominpool + assert_ok!(MultiTransactionPayment::add_currency( + RuntimeOrigin::root(), + ADOT, + FixedU128::from_rational(1, 2) + )); - // Send adot to protocol account so we can add it to ominpool - assert_ok!(MultiTransactionPayment::add_currency( - RuntimeOrigin::root(), - ADOT, - FixedU128::from_rational(1, 2) - )); + set_ed(ADOT, 1); - set_ed(ADOT, 1); + assert_ok!(EVMAccounts::bind_evm_address(hydradx_runtime::RuntimeOrigin::signed( + hydradx_runtime::Omnipool::protocol_account() + ))); - assert_ok!(EVMAccounts::bind_evm_address(hydradx_runtime::RuntimeOrigin::signed( - hydradx_runtime::Omnipool::protocol_account() - ))); + assert_ok!(Currencies::transfer( + RuntimeOrigin::signed(ALICE.into()), + hydradx_runtime::Omnipool::protocol_account(), + ADOT, + adot_transfer_amount + )); - assert_ok!(Currencies::transfer( - RuntimeOrigin::signed(ALICE.into()), - hydradx_runtime::Omnipool::protocol_account(), - ADOT, - adot_transfer_amount - )); + // Add ADOT to omnipool so fee payment can work + assert_ok!(Omnipool::add_token( + RuntimeOrigin::root(), + ADOT, + FixedU128::from_rational(1, 2), + Permill::from_percent(100), + AccountId::from(ALICE), + )); - // // Add ADOT to omnipool so fee payment can work - assert_ok!(Omnipool::add_token( - RuntimeOrigin::root(), - ADOT, - FixedU128::from_rational(1, 2), - Permill::from_percent(100), - AccountId::from(ALICE), - )); + hydradx_run_to_next_block(); - hydradx_run_to_next_block(); + pallet_transaction_payment::pallet::NextFeeMultiplier::::put(hydradx_runtime::MinimumMultiplier::get()); - pallet_transaction_payment::pallet::NextFeeMultiplier::::put(hydradx_runtime::MinimumMultiplier::get()); + //Let's mutate timestamp to accrue some yield on ADOT holdings + let current_timestamp = hydradx_runtime::Timestamp::get(); + let new_timestamp = current_timestamp + primitives::constants::time::MILLISECS_PER_BLOCK; + hydradx_runtime::Timestamp::set_timestamp(new_timestamp); +} - //Let's mutate timestamp to accrue some yield on ADOT holdings - let current_timestamp = hydradx_runtime::Timestamp::get(); - let new_timestamp = current_timestamp + 1000; // milliseconds - hydradx_runtime::Timestamp::set_timestamp(new_timestamp); +/// Builds, validates and dispatches a `set_currency(ADOT)` permit whose EVM fee is +/// charged in ADOT. +fn dispatch_set_currency_permit(user_evm_address: EvmAddress, user_secret_key: [u8; 32]) { + let set_currency_call = + RuntimeCall::MultiTransactionPayment(pallet_transaction_multi_payment::Call::set_currency { currency: ADOT }); + + let gas_limit = 1000000; + let deadline = U256::from(1000000000000u128); + + // Generate permit + let permit = pallet_evm_precompile_call_permit::CallPermitPrecompile::::generate_permit( + CALLPERMIT, + user_evm_address, + DISPATCH_ADDR, + U256::from(0), + set_currency_call.encode(), + gas_limit, + U256::zero(), + deadline, + ); + let secret_key = SecretKey::parse(&user_secret_key).unwrap(); + let message = Message::parse(&permit); + let (rs, v) = sign(&message, &secret_key); + + // Validate unsigned first + let call: pallet_transaction_multi_payment::Call = + pallet_transaction_multi_payment::Call::dispatch_permit { + from: user_evm_address, + to: DISPATCH_ADDR, + value: U256::from(0), + data: set_currency_call.encode(), + gas_limit, + deadline, + v: v.serialize(), + r: H256::from(rs.r.b32()), + s: H256::from(rs.s.b32()), + }; + + let tag: Vec = ("EVMPermit", (U256::zero(), user_evm_address)).encode(); + assert_eq!( + MultiTransactionPayment::validate_unsigned(TransactionSource::External, &call), + Ok(ValidTransaction { + priority: 0, + requires: vec![], + provides: vec![tag], + longevity: 64, + propagate: true, + }) + ); + + // Dispatch the permit + assert_ok!(MultiTransactionPayment::dispatch_permit( + RuntimeOrigin::none(), + user_evm_address, + DISPATCH_ADDR, + U256::from(0), + set_currency_call.encode(), + gas_limit, + deadline, + v.serialize(), + H256::from(rs.r.b32()), + H256::from(rs.s.b32()), + )); +} + +#[test] +fn evm_permit_set_currency_dispatch_should_pay_evm_fee_in_atoken() { + let user_evm_address = alith_evm_address(); + let user_secret_key = alith_secret_key(); + let user_acc = MockAccount::new(alith_truncated_account()); + let treasury_acc = MockAccount::new(Treasury::account_id()); + + with_atoken(|| { + let fee_currency = ADOT; + setup_adot_as_fee_currency(); let initial_user_fee_currency_balance = user_acc.balance(fee_currency); let initial_treasury_fee_balance = treasury_acc.balance(fee_currency); let initial_fee_currency_issuance = Currencies::total_issuance(fee_currency); - // Create the set_currency call to set ADOT as fee payment currency - let set_currency_call = - RuntimeCall::MultiTransactionPayment(pallet_transaction_multi_payment::Call::set_currency { - currency: fee_currency, - }); - - let gas_limit = 1000000; - let deadline = U256::from(1000000000000u128); - - // Generate permit - let permit = pallet_evm_precompile_call_permit::CallPermitPrecompile::::generate_permit( - CALLPERMIT, - user_evm_address, - DISPATCH_ADDR, - U256::from(0), - set_currency_call.encode(), - gas_limit, - U256::zero(), - deadline, - ); - let secret_key = SecretKey::parse(&user_secret_key).unwrap(); - let message = Message::parse(&permit); - let (rs, v) = sign(&message, &secret_key); - - // Validate unsigned first - let call: pallet_transaction_multi_payment::Call = - pallet_transaction_multi_payment::Call::dispatch_permit { - from: user_evm_address, - to: DISPATCH_ADDR, - value: U256::from(0), - data: set_currency_call.encode(), - gas_limit, - deadline, - v: v.serialize(), - r: H256::from(rs.r.b32()), - s: H256::from(rs.s.b32()), - }; - - let tag: Vec = ("EVMPermit", (U256::zero(), user_evm_address)).encode(); - assert_eq!( - MultiTransactionPayment::validate_unsigned(TransactionSource::External, &call), - Ok(ValidTransaction { - priority: 0, - requires: vec![], - provides: vec![tag], - longevity: 64, - propagate: true, - }) - ); - - // Dispatch the permit - assert_ok!(MultiTransactionPayment::dispatch_permit( - RuntimeOrigin::none(), - user_evm_address, - DISPATCH_ADDR, - U256::from(0), - set_currency_call.encode(), - gas_limit, - deadline, - v.serialize(), - H256::from(rs.r.b32()), - H256::from(rs.s.b32()), - )); + dispatch_set_currency_permit(user_evm_address, user_secret_key); // Verify the currency was set to ADOT let currency = pallet_transaction_multi_payment::Pallet::::account_currency(&user_acc.address()); @@ -1529,10 +1538,53 @@ fn evm_permit_set_currency_dispatch_should_pay_evm_fee_in_atoken() { let final_treasury_fee_balance = treasury_acc.balance(fee_currency); assert!(final_treasury_fee_balance > initial_treasury_fee_balance); - // Verify the fee amount matches what treasury received + // aToken balances rebase per account: the payer's observed loss and the + // treasury's observed gain round independently against the scaled transfer + // amounts, so they legitimately differ by a wei. No value is lost — total + // issuance is asserted unchanged above. let fee_amount = initial_user_fee_currency_balance - user_fee_currency_balance; let treasury_received = final_treasury_fee_balance - initial_treasury_fee_balance; - assert_eq!(fee_amount, treasury_received); + assert_eq!(fee_amount, 69833741); + assert_eq!(treasury_received, 69833740); + }) +} + +#[test] +fn atoken_evm_fee_should_reach_treasury_when_holding_pot_is_short() { + let user_evm_address = alith_evm_address(); + let user_secret_key = alith_secret_key(); + let user_acc = MockAccount::new(alith_truncated_account()); + let treasury_acc = MockAccount::new(Treasury::account_id()); + + with_atoken(|| { + setup_adot_as_fee_currency(); + + let holding_acc = EVMAccounts::account_id(hydradx_runtime::evm::HOLDING_ADDRESS); + let initial_pot_balance = Currencies::free_balance(ADOT, &holding_acc); + let initial_user_balance = user_acc.balance(ADOT); + let initial_treasury_balance = treasury_acc.balance(ADOT); + let initial_issuance = Currencies::total_issuance(ADOT); + + dispatch_set_currency_permit(user_evm_address, user_secret_key); + + let fee_paid = initial_user_balance - user_acc.balance(ADOT); + let treasury_received = treasury_acc.balance(ADOT) - initial_treasury_balance; + let final_pot_balance = Currencies::free_balance(ADOT, &holding_acc); + + // The fee escrow round-trips through the ERC-20 holding pot (payer → pot, + // then pot → payer refund and pot → treasury settlement), with payouts + // computed from the payer's observed deltas while the pot's own aToken + // balance rounds independently. With yield accrued the pot comes up a wei + // short of the computed settlement; the pot → treasury transfer then used + // to revert (Panic 0x11) and the whole fee stranded on the pot, treasury + // receiving nothing. DepositEvmFeeToTreasury settles what the pot actually + // holds, so the fee must reach treasury and the pot must not accumulate + // more than rounding dust. + assert_eq!(initial_pot_balance, 0); + assert_eq!(fee_paid, 69833741); + assert_eq!(treasury_received, 69833740); + assert_eq!(final_pot_balance, 0); + assert_eq!(Currencies::total_issuance(ADOT), initial_issuance); }) } diff --git a/integration-tests/src/circuit_breaker.rs b/integration-tests/src/circuit_breaker.rs index 7321215968..daa9af4783 100644 --- a/integration-tests/src/circuit_breaker.rs +++ b/integration-tests/src/circuit_breaker.rs @@ -118,7 +118,7 @@ fn sell_lrna_in_omnipool_should_fail_when_min_trade_limit_per_block_exceeded() { )); let min_limit = 0; - let sell_amount = 300000 * UNITS; + let sell_amount = 50000 * UNITS; //We need to split in multiple sells to avoid max in ratio error for _ in 1..=3 { @@ -235,7 +235,7 @@ fn buy_in_omnipool_should_fail_when_max_trade_limit_per_block_exceeded() { hydradx_runtime::RuntimeOrigin::signed(ALICE.into()), CORE_ASSET_ID, DAI, - 100000 * UNITS, + 100000 * UNITS / 3, Balance::MAX )); @@ -323,7 +323,7 @@ fn add_token_with_minimum_liquidity_to_omnipool_can_disable_adding_liquidity() { let ed = as hydradx_traits::registry::Inspect >::existential_deposit(DOT); - let minimum_initial_liquidity = 20 * ed.unwrap(); + let minimum_initial_liquidity = 60 * ed.unwrap(); assert_ok!(Tokens::set_balance( RawOrigin::Root.into(), @@ -370,7 +370,7 @@ fn add_token_with_minimum_liquidity_to_omnipool_can_disable_adding_liquidity() { let ed = as hydradx_traits::registry::Inspect >::existential_deposit(BTC); - let minimum_initial_liquidity = 20 * ed.unwrap(); + let minimum_initial_liquidity = 60 * ed.unwrap(); assert_ok!(Tokens::set_balance( RawOrigin::Root.into(), diff --git a/integration-tests/src/dca.rs b/integration-tests/src/dca.rs index aedcd234e2..8abc7fce73 100644 --- a/integration-tests/src/dca.rs +++ b/integration-tests/src/dca.rs @@ -287,7 +287,7 @@ mod omnipool { ] ); - run_to_block(13, 17); + run_to_block(13, 12 + hydradx_runtime::MinimalPeriod::get()); let swapped_events = get_last_swapped_events(); let last_two_swapped_events = &swapped_events[swapped_events.len() - 2..]; @@ -299,17 +299,17 @@ mod omnipool { filler: Omnipool::protocol_account(), filler_type: pallet_broadcast::types::Filler::Omnipool, operation: pallet_broadcast::types::TradeOperation::ExactOut, - inputs: vec![Asset::new(HDX, 140421107721220)], - outputs: vec![Asset::new(LRNA, 70210548452699)], + inputs: vec![Asset::new(HDX, 140421134429889)], + outputs: vec![Asset::new(LRNA, 70210554484824)], fees: vec![Fee::new( LRNA, - 35105274226, + 35105277242, Destination::Account(Omnipool::protocol_account()) )], operation_stack: vec![ - ExecutionType::DCA(schedule_id, 3), - ExecutionType::Router(4), - ExecutionType::Omnipool(5) + ExecutionType::DCA(schedule_id, 9), + ExecutionType::Router(10), + ExecutionType::Omnipool(11) ], }, pallet_broadcast::Event::Swapped3 { @@ -317,16 +317,16 @@ mod omnipool { filler: Omnipool::protocol_account(), filler_type: pallet_broadcast::types::Filler::Omnipool, operation: pallet_broadcast::types::TradeOperation::ExactOut, - inputs: vec![Asset::new(LRNA, 70175443178473)], + inputs: vec![Asset::new(LRNA, 70175449207582)], outputs: vec![Asset::new(DAI, amount_out)], fees: vec![ Fee::new(DAI, 137844611530, Destination::Account(Omnipool::protocol_account())), Fee::new(DAI, 112781954887, Destination::Account(FeeProcessor::pot_account_id())), ], operation_stack: vec![ - ExecutionType::DCA(schedule_id, 3), - ExecutionType::Router(4), - ExecutionType::Omnipool(5) + ExecutionType::DCA(schedule_id, 9), + ExecutionType::Router(10), + ExecutionType::Omnipool(11) ], } ] @@ -383,7 +383,7 @@ mod omnipool { let amount_out = 100 * UNITS; let schedule1 = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -408,6 +408,9 @@ mod omnipool { //Act and assert let schedule_id = 0; + let retry_1 = retry_block(12, 0); + let retry_2 = retry_block(retry_1, 1); + let retry_3 = retry_block(retry_2, 2); go_to_block(12); let fee = Currencies::free_balance(HDX, &Treasury::account_id()) - TREASURY_ACCOUNT_INIT_BALANCE; @@ -416,20 +419,20 @@ mod omnipool { assert_reserved_balance!(&ALICE.into(), HDX, dca_budget - fee); assert_eq!(DCA::retries_on_error(schedule_id), 1); - go_to_block(32); + go_to_block(retry_1); assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE); assert_balance!(ALICE.into(), HDX, ALICE_INITIAL_NATIVE_BALANCE - dca_budget); assert_reserved_balance!(&ALICE.into(), HDX, dca_budget - 2 * fee); assert_eq!(DCA::retries_on_error(schedule_id), 2); - go_to_block(72); + go_to_block(retry_2); assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE); assert_balance!(ALICE.into(), HDX, ALICE_INITIAL_NATIVE_BALANCE - dca_budget); assert_reserved_balance!(&ALICE.into(), HDX, dca_budget - 3 * fee); assert_eq!(DCA::retries_on_error(schedule_id), 3); //After this retry we terminate - go_to_block(152); + go_to_block(retry_3); assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE); assert_balance!(ALICE.into(), HDX, ALICE_INITIAL_NATIVE_BALANCE - 4 * fee); assert_reserved_balance!(&ALICE.into(), HDX, 0); @@ -662,7 +665,7 @@ mod omnipool { assert_reserved_balance!(&ALICE.into(), HDX, dca_budget); //Act - run_to_block(11, 50); + run_to_block(11, 12 + 7 * hydradx_runtime::MinimalPeriod::get()); //Assert assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE + 700 * UNITS); @@ -701,7 +704,7 @@ mod omnipool { let dai_balance = Currencies::free_balance(DAI, &ALICE.into()); //Act - run_to_block(11, 150); + run_to_block(11, 12 + 32 * hydradx_runtime::MinimalPeriod::get()); //Assert assert!(Balances::free_balance(&ALICE.into()) > reserved); @@ -762,7 +765,7 @@ mod omnipool { let dai_balance = Currencies::free_balance(DAI, &ALICE.into()); //Act - run until user runs out of funds - run_to_block(11, 100); + run_to_block(11, 12 + 12 * hydradx_runtime::MinimalPeriod::get()); //Assert assert!(DCA::schedules(0).is_none()); @@ -882,7 +885,7 @@ mod omnipool { ] ); - run_to_block(13, 17); + run_to_block(13, 12 + hydradx_runtime::MinimalPeriod::get()); let swapped_events = get_last_swapped_events(); let last_two_swapped_events = &swapped_events[swapped_events.len() - 2..]; @@ -895,10 +898,10 @@ mod omnipool { filler_type: pallet_broadcast::types::Filler::Omnipool, operation: pallet_broadcast::types::TradeOperation::ExactIn, inputs: vec![Asset::new(HDX, amount_to_sell)], - outputs: vec![Asset::new(LRNA, 49999997360994)], + outputs: vec![Asset::new(LRNA, 49999997760919)], fees: vec![Fee::new( LRNA, - 24999998680, + 24999998880, Destination::Account(Omnipool::protocol_account()) )], operation_stack: vec![ @@ -912,11 +915,11 @@ mod omnipool { filler: Omnipool::protocol_account(), filler_type: pallet_broadcast::types::Filler::Omnipool, operation: pallet_broadcast::types::TradeOperation::ExactIn, - inputs: vec![Asset::new(LRNA, 49974997362314)], - outputs: vec![Asset::new(DAI, 71214367824533)], + inputs: vec![Asset::new(LRNA, 49974997762039)], + outputs: vec![Asset::new(DAI, 71214367987201)], fees: vec![ - Fee::new(DAI, 98165168682, Destination::Account(Omnipool::protocol_account())), - Fee::new(DAI, 80316956192, Destination::Account(FeeProcessor::pot_account_id())), + Fee::new(DAI, 98165168906, Destination::Account(Omnipool::protocol_account())), + Fee::new(DAI, 80316956376, Destination::Account(FeeProcessor::pot_account_id())), ], operation_stack: vec![ ExecutionType::DCA(schedule_id, 3), @@ -1604,7 +1607,7 @@ mod omnipool { let amount_to_sell = 100 * UNITS; let schedule1 = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -1629,6 +1632,9 @@ mod omnipool { //Act and Assert let schedule_id = 0; + let retry_1 = retry_block(12, 0); + let retry_2 = retry_block(retry_1, 1); + let retry_3 = retry_block(retry_2, 2); go_to_block(12); let fee = Currencies::free_balance(HDX, &Treasury::account_id()) - TREASURY_ACCOUNT_INIT_BALANCE; @@ -1639,20 +1645,20 @@ mod omnipool { assert_eq!(DCA::retries_on_error(schedule_id), 1); - go_to_block(32); + go_to_block(retry_1); assert_balance!(ALICE.into(), HDX, alice_init_hdx_balance - dca_budget); assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE); assert_reserved_balance!(&ALICE.into(), HDX, dca_budget - 2 * fee); assert_eq!(DCA::retries_on_error(schedule_id), 2); - go_to_block(72); + go_to_block(retry_2); assert_balance!(ALICE.into(), HDX, alice_init_hdx_balance - dca_budget); assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE); assert_reserved_balance!(&ALICE.into(), HDX, dca_budget - 3 * fee); assert_eq!(DCA::retries_on_error(schedule_id), 3); //At this point, the schedule will be terminated as retries max number of times - go_to_block(152); + go_to_block(retry_3); assert_balance!(ALICE.into(), DAI, ALICE_INITIAL_DAI_BALANCE); assert_balance!(ALICE.into(), HDX, alice_init_hdx_balance - 4 * fee); assert_reserved_balance!(&ALICE.into(), HDX, 0); @@ -1902,7 +1908,7 @@ mod omnipool { assert_reserved_balance!(&ALICE.into(), HDX, dca_budget); //Act - run_to_block(11, 100); + run_to_block(11, 12 + 16 * hydradx_runtime::MinimalPeriod::get()); //Assert let new_dai_balance = Currencies::free_balance(DAI, &ALICE.into()); @@ -1958,7 +1964,7 @@ mod omnipool { assert_reserved_balance!(&BOB.into(), HDX, dca_budget_for_bob); //Act - run_to_block(11, 100); + run_to_block(11, 12 + 16 * hydradx_runtime::MinimalPeriod::get()); //Assert check_if_no_failed_events(); @@ -2019,7 +2025,7 @@ mod omnipool { assert_reserved_balance!(&ALICE.into(), HDX, budget_for_all_trades); //Act - run_to_block(11, 100); + run_to_block(11, 12 + 16 * hydradx_runtime::MinimalPeriod::get()); //Assert assert_reserved_balance!(&ALICE.into(), HDX, 0); @@ -2130,7 +2136,7 @@ mod omnipool { assert_balance!(&Treasury::account_id(), HDX, TREASURY_ACCOUNT_INIT_BALANCE); //Act - run_to_block(11, 17); + run_to_block(11, 12 + hydradx_runtime::MinimalPeriod::get()); //Assert check_if_no_failed_events(); @@ -2159,7 +2165,7 @@ mod omnipool { // This means last_block_slippage_min_limit will be used as the effective limit let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -2577,7 +2583,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -2854,7 +2860,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -3161,7 +3167,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -3342,7 +3348,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -3458,7 +3464,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -3580,7 +3586,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -3711,7 +3717,7 @@ mod stableswap { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -3898,8 +3904,7 @@ mod stableswap { )); crate::deposit_limiter::update_deposit_limit(pool_id, 1_000_000 * UNITS).unwrap(); - // Act - retry is scheduled at block 12 + 20 = 32 - go_to_block(32); + go_to_block(retry_block(12, 0)); // Assert assert_eq!( @@ -4135,7 +4140,7 @@ mod all_pools { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -4281,7 +4286,7 @@ mod with_onchain_route { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -4395,7 +4400,7 @@ mod with_onchain_route { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -4479,7 +4484,7 @@ mod with_onchain_route { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -4626,7 +4631,7 @@ mod with_onchain_route { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -4746,7 +4751,7 @@ mod with_onchain_route { let schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: dca_budget, max_retries: None, stability_threshold: None, @@ -4789,7 +4794,7 @@ mod with_onchain_route { let fee = Currencies::free_balance(DOT, &Treasury::account_id()); assert!(fee > 0, "The treasury did not receive the fee"); - assert_balance!(ALICE.into(), HDX, 5268049466638368); + assert_balance!(ALICE.into(), HDX, 5264995050009313); assert_reserved_balance!(&ALICE.into(), DOT, dca_budget - amount_to_sell - fee); }); } @@ -5348,7 +5353,7 @@ fn schedule_fake_with_buy_order_with_route( ) -> Schedule { Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: budget, max_retries: None, stability_threshold: None, @@ -5395,7 +5400,7 @@ fn schedule_fake_with_sell_order_with_route( ) -> Schedule { Schedule { owner: AccountId::from(owner), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount, max_retries: None, stability_threshold: None, @@ -5515,6 +5520,10 @@ pub fn run_to_block(from: BlockNumber, to: BlockNumber) { } } +fn retry_block(current_block: BlockNumber, retries_before: u32) -> BlockNumber { + current_block + hydradx_traits::oracle::OraclePeriod::Short.as_period() as BlockNumber * 2u32.pow(retries_before) +} + pub fn check_if_no_failed_events() { let failed_events = count_failed_trade_events(); assert_eq!(0, failed_events); @@ -5812,7 +5821,8 @@ mod extra_gas_erc20 { let alice_hdx_balance = Currencies::free_balance(HDX, &ALICE.into()); assert_eq!(alice_init_hdx_balance, alice_hdx_balance); - hydradx_run_to_block(33); + let retry_1 = retry_block(13, 0); + hydradx_run_to_block(retry_1); assert_eq!(Dispatcher::extra_gas(), 0); //Assert that trade finally succeeded @@ -5824,7 +5834,7 @@ mod extra_gas_erc20 { let alice_hdx_balance_after_retry = Currencies::free_balance(HDX, &ALICE.into()); assert!(alice_hdx_balance_after_retry > alice_hdx_balance); - hydradx_run_to_block(38); + hydradx_run_to_block(retry_1 + hydradx_runtime::MinimalPeriod::get()); assert_eq!(Dispatcher::extra_gas(), 0); //Assert that trade succeeded in the next run too @@ -5906,7 +5916,7 @@ mod extra_gas_erc20 { let alice_balance_before_retry = Currencies::free_balance(erc20, &ALICE.into()); - hydradx_run_to_block(33); + hydradx_run_to_block(retry_block(13, 0)); let fee_with_extra = DCA::get_transaction_fee(&schedule.order, Some(schedule_id)).unwrap(); @@ -5975,7 +5985,8 @@ mod extra_gas_erc20 { let alice_hdx_balance = Currencies::free_balance(HDX, &ALICE.into()); assert_eq!(alice_init_hdx_balance, alice_hdx_balance); - hydradx_run_to_block(33); + let retry_1 = retry_block(13, 0); + hydradx_run_to_block(retry_1); //It fails again as the gas increased was still not enough assert_eq!(DCA::retries_on_error(schedule_id), 2); @@ -5985,7 +5996,7 @@ mod extra_gas_erc20 { let alice_hdx_balance_after_retry = Currencies::free_balance(HDX, &ALICE.into()); assert_eq!(alice_hdx_balance_after_retry, alice_init_hdx_balance); - hydradx_run_to_block(73); + hydradx_run_to_block(retry_block(retry_1, 1)); //Assert that trade succeeded in the next run assert_eq!(DCA::retries_on_error(schedule_id), 0); @@ -6051,7 +6062,8 @@ mod extra_gas_erc20 { let alice_hdx_balance = Currencies::free_balance(HDX, &ALICE.into()); assert_eq!(alice_init_hdx_balance, alice_hdx_balance); - hydradx_run_to_block(33); + let retry_1 = retry_block(13, 0); + hydradx_run_to_block(retry_1); //Assert that trade finally succeeded assert_eq!(DCA::retries_on_error(schedule_id), 0); @@ -6062,7 +6074,7 @@ mod extra_gas_erc20 { let alice_hdx_balance_after_retry = Currencies::free_balance(HDX, &ALICE.into()); assert!(alice_hdx_balance_after_retry > alice_hdx_balance); - hydradx_run_to_block(38); + hydradx_run_to_block(retry_1 + hydradx_runtime::MinimalPeriod::get()); //Assert that trade succeeded in the next run too assert_eq!(DCA::retries_on_error(schedule_id), 0); @@ -6072,7 +6084,7 @@ mod extra_gas_erc20 { let alice_hdx_balance_after_2nd_run = Currencies::free_balance(HDX, &ALICE.into()); assert!(alice_hdx_balance_after_2nd_run > alice_hdx_balance_after_retry); - hydradx_run_to_block(43); + hydradx_run_to_block(retry_1 + 2 * hydradx_runtime::MinimalPeriod::get()); //Assert that trade succeeded in the next run too assert_eq!(DCA::retries_on_error(schedule_id), 0); @@ -6167,7 +6179,8 @@ mod extra_gas_erc20 { assert_eq!(count_trade_executed_events(), 0); // Retry with extra gas - should succeed - hydradx_run_to_block(33); + let retry_1 = retry_block(13, 0); + hydradx_run_to_block(retry_1); //Assert assert_eq!( @@ -6194,7 +6207,7 @@ mod extra_gas_erc20 { ); // Act - Next scheduled trade - should execute successfully without retries - hydradx_run_to_block(38); + hydradx_run_to_block(retry_1 + hydradx_runtime::MinimalPeriod::get()); //Assert assert_eq!( @@ -6266,7 +6279,7 @@ mod extra_gas_erc20 { assert_eq!(alice_init_hdx_balance, alice_hdx_balance); // Retry with extra gas - should succeed - hydradx_run_to_block(33); + hydradx_run_to_block(retry_block(13, 0)); // Assert: trade finally succeeded assert_eq!(DCA::retries_on_error(schedule_id), 0); @@ -6293,7 +6306,7 @@ mod extra_gas_erc20 { let schedule = Schedule { owner: ALICE.into(), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount, max_retries, stability_threshold: None, @@ -6417,7 +6430,7 @@ fn rolling_buy_dca_completes_prematurely_when_price_increases() { // Use high max_retries so DCA survives oracle instability after the price move let rolling_buy_schedule = Schedule { owner: AccountId::from(ALICE), - period: 5u32, + period: hydradx_runtime::MinimalPeriod::get(), total_amount: 0, // rolling max_retries: Some(100), stability_threshold: Some(Permill::from_percent(5)), @@ -6438,6 +6451,17 @@ fn rolling_buy_dca_completes_prematurely_when_price_increases() { insert_schedule_into_storage(ALICE, rolling_buy_schedule, None); let schedule_id = 0; + assert_ok!(hydradx_runtime::CircuitBreaker::set_trade_volume_limit( + RuntimeOrigin::root(), + HDX, + (10_000, 10_000), + )); + assert_ok!(hydradx_runtime::CircuitBreaker::set_trade_volume_limit( + RuntimeOrigin::root(), + DAI, + (10_000, 10_000), + )); + go_to_block(11); // Now move the price AFTER DCA creation: BOB sells a massive amount of HDX for DAI, // making DAI much more expensive in HDX terms (~3x price increase). @@ -6458,8 +6482,8 @@ fn rolling_buy_dca_completes_prematurely_when_price_increases() { )); //Act - run enough blocks for oracle to stabilize and DCA to execute - // Retry delays grow exponentially (20, 40, 80, 160 blocks), so we need many blocks - run_to_block(11, 200); + // Retry delays grow exponentially, so we need many blocks + run_to_block(12, 600); //Assert // Rolling DCA should NOT be terminated just because the price moved diff --git a/integration-tests/src/deposit_limiter.rs b/integration-tests/src/deposit_limiter.rs index dd9e4ab483..6165773867 100644 --- a/integration-tests/src/deposit_limiter.rs +++ b/integration-tests/src/deposit_limiter.rs @@ -663,9 +663,9 @@ fn remove_liquidity_cannot_burn_more_lrna_when_asset_locked_down() { go_to_block(init_block); let mut positions = vec![]; - let amount = 2000000000 * UNITS; + let amount = 800000000 * UNITS; - for i in 0..100u32 { + for i in 0..250u32 { let position_id = Omnipool::next_position_id(); assert_ok!(Omnipool::add_liquidity( @@ -677,18 +677,18 @@ fn remove_liquidity_cannot_burn_more_lrna_when_asset_locked_down() { go_to_block(init_block + (i + 1u32)); } - for (i, &position_id) in positions.iter().enumerate().take(37) { + for (i, &position_id) in positions.iter().enumerate().take(93) { assert_ok!(Omnipool::remove_liquidity( RuntimeOrigin::signed(ALICE.into()), position_id, amount )); - go_to_block(init_block + (i as u32) + 100); + go_to_block(init_block + (i as u32) + 250); } assert_noop!( - Omnipool::remove_liquidity(RuntimeOrigin::signed(ALICE.into()), positions[37], amount), + Omnipool::remove_liquidity(RuntimeOrigin::signed(ALICE.into()), positions[93], amount), orml_tokens::Error::::BalanceTooLow ); }); diff --git a/integration-tests/src/dynamic_fees.rs b/integration-tests/src/dynamic_fees.rs index 257e957296..c8019a25c7 100644 --- a/integration-tests/src/dynamic_fees.rs +++ b/integration-tests/src/dynamic_fees.rs @@ -6,6 +6,7 @@ use hydradx_traits::fee::GetDynamicFee; use orml_traits::MultiCurrency; use pallet_dynamic_fees::types::FeeEntry; use pallet_dynamic_fees::UpdateAndRetrieveFees; +use primitives::constants::time::{MILLISECS_PER_BLOCK, SLOT_DURATION}; use primitives::AssetId; use sp_runtime::{FixedU128, Permill}; use test_utils::assert_eq_approx; @@ -15,6 +16,12 @@ const DOT_UNITS: u128 = 10_000_000_000; const BTC_UNITS: u128 = 1_000_000; const ETH_UNITS: u128 = 1_000_000_000_000_000_000; +fn hydradx_run_to_next_fee_block() { + let blocks_per_slot = (SLOT_DURATION / MILLISECS_PER_BLOCK) as u32; + let current_block = hydradx_runtime::System::block_number(); + hydradx_run_to_block(current_block + blocks_per_slot); +} + #[test] fn fees_should_work_when_oracle_not_initialized() { TestNet::reset(); @@ -52,7 +59,7 @@ fn fees_should_change_when_buys_happen_in_different_blocks() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); set_balance(DAVE.into(), HDX, 1_000 * UNITS as i128); @@ -67,7 +74,7 @@ fn fees_should_change_when_buys_happen_in_different_blocks() { let old_fees = hydradx_runtime::DynamicFees::current_fees(HDX).unwrap(); //Act - hydradx_run_to_block(13); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), DOT, @@ -84,7 +91,7 @@ fn fees_should_change_when_buys_happen_in_different_blocks() { FeeEntry { asset_fee: Permill::from_float(0.05), protocol_fee: Permill::from_float(0.0005), - timestamp: 13_u32 + timestamp: hydradx_runtime::System::block_number() } ); }); @@ -98,7 +105,7 @@ fn fees_should_change_when_sells_happen_in_different_blocks() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -111,7 +118,7 @@ fn fees_should_change_when_sells_happen_in_different_blocks() { let old_fees = hydradx_runtime::DynamicFees::current_fees(HDX).unwrap(); //Act - hydradx_run_to_block(13); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), DOT, @@ -128,7 +135,7 @@ fn fees_should_change_when_sells_happen_in_different_blocks() { FeeEntry { asset_fee: Permill::from_float(0.05), protocol_fee: Permill::from_float(0.0005), - timestamp: 13_u32 + timestamp: hydradx_runtime::System::block_number() } ); }); @@ -142,7 +149,7 @@ fn fees_should_change_when_trades_happen_in_different_blocks() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -155,7 +162,7 @@ fn fees_should_change_when_trades_happen_in_different_blocks() { let old_fees = hydradx_runtime::DynamicFees::current_fees(HDX).unwrap(); //Act - hydradx_run_to_block(13); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), DOT, @@ -172,7 +179,7 @@ fn fees_should_change_when_trades_happen_in_different_blocks() { FeeEntry { asset_fee: Permill::from_float(0.05), protocol_fee: Permill::from_float(0.0005), - timestamp: 13_u32 + timestamp: hydradx_runtime::System::block_number() } ); }); @@ -186,7 +193,7 @@ fn fees_should_change_only_one_when_trades_happen_in_the_same_block() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -200,7 +207,7 @@ fn fees_should_change_only_one_when_trades_happen_in_the_same_block() { set_balance(DAVE.into(), HDX, 1_000 * UNITS as i128); //Act & assert - hydradx_run_to_block(13); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), DOT, @@ -216,7 +223,7 @@ fn fees_should_change_only_one_when_trades_happen_in_the_same_block() { FeeEntry { asset_fee: Permill::from_float(0.05), protocol_fee: Permill::from_float(0.0005), - timestamp: 13_u32 + timestamp: hydradx_runtime::System::block_number() } ); @@ -316,7 +323,7 @@ fn init_oracle() { set_balance(trader.into(), ETH, 1_000 * ETH_UNITS as i128); set_balance(trader.into(), BTC, 1_000 * BTC_UNITS as i128); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -325,7 +332,7 @@ fn init_oracle() { 20 * DOT_UNITS, 0, )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -334,7 +341,7 @@ fn init_oracle() { 20 * DOT_UNITS, 0, )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -343,7 +350,7 @@ fn init_oracle() { 20 * DOT_UNITS, u128::MAX )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -352,7 +359,7 @@ fn init_oracle() { 2 * ETH_UNITS, 0, )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -361,7 +368,7 @@ fn init_oracle() { ETH_UNITS, u128::MAX )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -370,7 +377,7 @@ fn init_oracle() { 2 * BTC_UNITS, 0, )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), @@ -379,7 +386,7 @@ fn init_oracle() { BTC_UNITS, u128::MAX )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); } #[test] @@ -390,8 +397,8 @@ fn test_fees_update_in_multi_blocks() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_next_block(); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); + hydradx_run_to_next_fee_block(); let hdx_state = hydradx_runtime::Omnipool::load_asset_state(HDX).unwrap(); let dai_state = hydradx_runtime::Omnipool::load_asset_state(DAI).unwrap(); @@ -405,7 +412,7 @@ fn test_fees_update_in_multi_blocks() { let eth_fee = hydradx_runtime::DynamicFees::current_fees(ETH).unwrap(); let btc_fee = hydradx_runtime::DynamicFees::current_fees(BTC).unwrap(); - assert_eq!(hdx_fee.asset_fee, Permill::from_float(0.044638)); + assert_eq!(hdx_fee.asset_fee, Permill::from_float(0.043174)); assert_eq!(dai_fee.asset_fee, Permill::from_float(0.0025)); assert_eq!(dot_fee.asset_fee, Permill::from_float(0.0025)); assert_eq!(eth_fee.asset_fee, Permill::from_float(0.0025)); @@ -413,9 +420,9 @@ fn test_fees_update_in_multi_blocks() { assert_eq!(hdx_fee.protocol_fee, Permill::from_float(0.0005)); assert_eq!(dai_fee.protocol_fee, Permill::from_float(0.0005)); - assert_eq!(dot_fee.protocol_fee, Permill::from_float(0.00108)); + assert_eq!(dot_fee.protocol_fee, Permill::from_float(0.001058)); assert_eq!(eth_fee.protocol_fee, Permill::from_float(0.0025)); - assert_eq!(btc_fee.protocol_fee, Permill::from_float(0.000665)); + assert_eq!(btc_fee.protocol_fee, Permill::from_float(0.000658)); //ACT let hdx_final_fees = UpdateAndRetrieveFees::::get((HDX, hdx_state.reserve)); @@ -428,21 +435,21 @@ fn test_fees_update_in_multi_blocks() { assert_eq!(hdx_final_fees, (Permill::from_float(0.05), Permill::from_float(0.0005))); assert_eq!( dai_final_fees, - (Permill::from_float(0.003886), Permill::from_float(0.0005)) + (Permill::from_float(0.003885), Permill::from_float(0.0005)) ); assert_eq!( dot_final_fees, - (Permill::from_float(0.0025), Permill::from_float(0.001524)) + (Permill::from_float(0.0025), Permill::from_float(0.001502)) ); assert_eq!( eth_final_fees, (Permill::from_float(0.0025), Permill::from_float(0.0025)) ); - assert_eq!(btc_final_fees, (Permill::from_float(0.0025), Permill::from_parts(778))); + assert_eq!(btc_final_fees, (Permill::from_float(0.0025), Permill::from_parts(767))); let dai_state = hydradx_runtime::Omnipool::load_asset_state(DAI).unwrap(); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); let dai_final_fees = UpdateAndRetrieveFees::::get((DAI, dai_state.reserve)); assert_eq!( @@ -450,31 +457,31 @@ fn test_fees_update_in_multi_blocks() { (Permill::from_float(0.003908), Permill::from_float(0.0005)) ); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); let dai_final_fees = UpdateAndRetrieveFees::::get((DAI, dai_state.reserve)); assert_eq!( dai_final_fees, - (Permill::from_float(0.003916), Permill::from_float(0.0005)) + (Permill::from_parts(3_919), Permill::from_float(0.0005)) ); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); let dai_final_fees = UpdateAndRetrieveFees::::get((DAI, dai_state.reserve)); assert_eq_approx!( dai_final_fees.0, - Permill::from_float(0.003912), - Permill::from_float(0.000001), + Permill::from_parts(3_918), + Permill::from_parts(1), "Final fee is not correct" ); assert_eq!(dai_final_fees.1, Permill::from_float(0.0005)); - hydradx_run_to_next_block(); - hydradx_run_to_next_block(); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); + hydradx_run_to_next_fee_block(); + hydradx_run_to_next_fee_block(); let dai_final_fees = UpdateAndRetrieveFees::::get((DAI, dai_state.reserve)); assert_eq!( dai_final_fees, - (Permill::from_float(0.003852), Permill::from_float(0.0005)) + (Permill::from_parts(3_866), Permill::from_float(0.0005)) ); }); } @@ -487,8 +494,8 @@ fn test_fees_update_after_selling_lrna_in_multi_blocks() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_next_block(); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); + hydradx_run_to_next_fee_block(); let hdx_fee = hydradx_runtime::DynamicFees::current_fees(HDX).unwrap(); let dai_fee = hydradx_runtime::DynamicFees::current_fees(DAI).unwrap(); @@ -496,7 +503,7 @@ fn test_fees_update_after_selling_lrna_in_multi_blocks() { let eth_fee = hydradx_runtime::DynamicFees::current_fees(ETH).unwrap(); let btc_fee = hydradx_runtime::DynamicFees::current_fees(BTC).unwrap(); - assert_eq!(hdx_fee.asset_fee, Permill::from_float(0.044638)); + assert_eq!(hdx_fee.asset_fee, Permill::from_float(0.043174)); assert_eq!(dai_fee.asset_fee, Permill::from_float(0.0025)); assert_eq!(dot_fee.asset_fee, Permill::from_float(0.0025)); assert_eq!(eth_fee.asset_fee, Permill::from_float(0.0025)); @@ -504,9 +511,9 @@ fn test_fees_update_after_selling_lrna_in_multi_blocks() { assert_eq!(hdx_fee.protocol_fee, Permill::from_float(0.0005)); assert_eq!(dai_fee.protocol_fee, Permill::from_float(0.0005)); - assert_eq!(dot_fee.protocol_fee, Permill::from_float(0.00108)); + assert_eq!(dot_fee.protocol_fee, Permill::from_float(0.001058)); assert_eq!(eth_fee.protocol_fee, Permill::from_float(0.0025)); - assert_eq!(btc_fee.protocol_fee, Permill::from_float(0.000665)); + assert_eq!(btc_fee.protocol_fee, Permill::from_float(0.000658)); //ACT assert_ok!(hydradx_runtime::Omnipool::sell( @@ -517,13 +524,13 @@ fn test_fees_update_after_selling_lrna_in_multi_blocks() { 0, )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); let dai_state = hydradx_runtime::Omnipool::load_asset_state(DAI).unwrap(); let dai_fee = UpdateAndRetrieveFees::::get_and_store((DAI, dai_state.reserve)); //ASSERT assert_eq!( (dai_fee.0, dai_fee.1), - (Permill::from_float(0.004196), Permill::from_float(0.0005)) + (Permill::from_float(0.004183), Permill::from_float(0.0005)) ); }); } @@ -536,8 +543,8 @@ fn test_fees_update_after_buying_with_lrna_in_multi_blocks() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_next_block(); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); + hydradx_run_to_next_fee_block(); let hdx_fee = hydradx_runtime::DynamicFees::current_fees(HDX).unwrap(); let dai_fee = hydradx_runtime::DynamicFees::current_fees(DAI).unwrap(); @@ -545,7 +552,7 @@ fn test_fees_update_after_buying_with_lrna_in_multi_blocks() { let eth_fee = hydradx_runtime::DynamicFees::current_fees(ETH).unwrap(); let btc_fee = hydradx_runtime::DynamicFees::current_fees(BTC).unwrap(); - assert_eq!(hdx_fee.asset_fee, Permill::from_float(0.044638)); + assert_eq!(hdx_fee.asset_fee, Permill::from_float(0.043174)); assert_eq!(dai_fee.asset_fee, Permill::from_float(0.0025)); assert_eq!(dot_fee.asset_fee, Permill::from_float(0.0025)); assert_eq!(eth_fee.asset_fee, Permill::from_float(0.0025)); @@ -553,9 +560,9 @@ fn test_fees_update_after_buying_with_lrna_in_multi_blocks() { assert_eq!(hdx_fee.protocol_fee, Permill::from_float(0.0005)); assert_eq!(dai_fee.protocol_fee, Permill::from_float(0.0005)); - assert_eq!(dot_fee.protocol_fee, Permill::from_float(0.00108)); + assert_eq!(dot_fee.protocol_fee, Permill::from_float(0.001058)); assert_eq!(eth_fee.protocol_fee, Permill::from_float(0.0025)); - assert_eq!(btc_fee.protocol_fee, Permill::from_float(0.000665)); + assert_eq!(btc_fee.protocol_fee, Permill::from_float(0.000658)); //ACT assert_ok!(hydradx_runtime::Omnipool::buy( @@ -566,13 +573,13 @@ fn test_fees_update_after_buying_with_lrna_in_multi_blocks() { u128::MAX, )); - hydradx_run_to_next_block(); + hydradx_run_to_next_fee_block(); let dai_state = hydradx_runtime::Omnipool::load_asset_state(DAI).unwrap(); let dai_fee = UpdateAndRetrieveFees::::get_and_store((DAI, dai_state.reserve)); //ASSERT assert_eq!( (dai_fee.0, dai_fee.1), - (Permill::from_float(0.004028), Permill::from_float(0.0005)) + (Permill::from_float(0.004021), Permill::from_float(0.0005)) ); }); } @@ -585,7 +592,7 @@ fn fees_should_work_when_min_equals_max_in_dynamic_config() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); let fixed_asset_fee = Permill::from_float(0.003); let fixed_protocol_fee = Permill::from_float(0.001); @@ -628,7 +635,7 @@ fn fees_should_work_when_min_equals_max_in_dynamic_config() { assert_eq!(current_fee.protocol_fee, fixed_protocol_fee); //Act - Execute a buy trade in next block - hydradx_run_to_block(13); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::buy( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), DOT, @@ -641,7 +648,7 @@ fn fees_should_work_when_min_equals_max_in_dynamic_config() { let updated_fee = hydradx_runtime::DynamicFees::current_fees(DOT).unwrap(); assert_eq!(updated_fee.asset_fee, fixed_asset_fee); assert_eq!(updated_fee.protocol_fee, fixed_protocol_fee); - assert_eq!(updated_fee.timestamp, 13_u32); + assert_eq!(updated_fee.timestamp, hydradx_runtime::System::block_number()); //Act - Execute multiple trades in the same block assert_ok!(hydradx_runtime::Omnipool::sell( @@ -658,7 +665,7 @@ fn fees_should_work_when_min_equals_max_in_dynamic_config() { assert_eq!(final_fee.protocol_fee, fixed_protocol_fee); //Act - Trade in another block to ensure continued stability - hydradx_run_to_block(14); + hydradx_run_to_next_fee_block(); assert_ok!(hydradx_runtime::Omnipool::sell( hydradx_runtime::RuntimeOrigin::signed(DAVE.into()), HDX, @@ -683,7 +690,7 @@ fn fees_should_be_applied_correctly_when_min_equals_max_in_dynamic_config() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); // Set dynamic fee config with min = max = 0 for DOT (asset out - asset fee applies) assert_ok!(hydradx_runtime::DynamicFees::set_asset_fee( @@ -754,7 +761,7 @@ fn fees_should_be_applied_correctly_when_min_equals_max_in_dynamic_config() { //Arrange init_omnipool(); init_oracle(); - hydradx_run_to_block(12); + hydradx_run_to_next_fee_block(); let fixed_asset_fee = Permill::from_percent(1); // 1% asset fee (applies to DOT being sold) let fixed_protocol_fee = Permill::from_rational(5u32, 1000u32); // 0.5% protocol fee (applies to HDX being received) diff --git a/integration-tests/src/evm_permit.rs b/integration-tests/src/evm_permit.rs index 06459c6699..f07dfaa0ba 100644 --- a/integration-tests/src/evm_permit.rs +++ b/integration-tests/src/evm_permit.rs @@ -165,7 +165,7 @@ fn compare_fee_in_hdx_between_evm_and_native_omnipool_calls_when_permit_is_dispa let fee_difference = evm_fee - native_fee; assert!(fee_difference > 0); let relative_fee_difference = FixedU128::from_rational(fee_difference, native_fee); - let tolerated_fee_difference = FixedU128::from_rational(30, 100); + let tolerated_fee_difference = FixedU128::from_rational(32, 100); // EVM fees should be not higher than 20% assert!( relative_fee_difference < tolerated_fee_difference, @@ -926,7 +926,7 @@ fn evm_permit_set_currency_dispatch_should_work_when_wrapped_in_dispatch_with_ex RuntimeOrigin::signed(alith_evm_account()), asset, 0, - erc20_balance / 10, + erc20_balance / 30, Balance::MIN )); hydradx_run_to_next_block(); @@ -3374,7 +3374,7 @@ mod sponsored_paymaster { let fee_difference = evm_fee.saturating_sub(native_fee); let relative_fee_difference = FixedU128::from_rational(fee_difference, native_fee); - let tolerated_fee_difference = FixedU128::from_rational(30, 100); + let tolerated_fee_difference = FixedU128::from_rational(32, 100); assert!( relative_fee_difference < tolerated_fee_difference, "unsigned dispatch_permit fee drifted outside native tolerance! \ diff --git a/integration-tests/src/exchange_asset.rs b/integration-tests/src/exchange_asset.rs index d7209af747..4f24986afb 100644 --- a/integration-tests/src/exchange_asset.rs +++ b/integration-tests/src/exchange_asset.rs @@ -1147,7 +1147,7 @@ mod circuit_breaker { Hydra::execute_with(|| { let trapped_event = last_hydra_events(10)[3].clone(); //We need to explicitly assert it, so we can be flexible with amount assertion. If it changes, debug and see at which index is the PolkadotXcm TrappedAsset event - assert_trapped_acala_token(&trapped_event, 489124324725094u128); + assert_trapped_acala_token(&trapped_event, 489649470230544u128); //Assert that nothing was reserved on TempAccountForXcmAssetExchange assert_reserved_balance!(TempAccountForXcmAssetExchange::get(), ACA, 0u128); @@ -1355,7 +1355,7 @@ mod circuit_breaker { let trapped_event = &last_hydra_events(10)[3].clone(); let trapped_amount = get_trapped_amount(trapped_event); - assert_trapped_acala_token(trapped_event, 89124324725094u128); + assert_trapped_acala_token(trapped_event, 89649470230544u128); let fee = hydradx_runtime::Tokens::free_balance(ACA, &hydradx_runtime::Treasury::account_id()); diff --git a/integration-tests/src/fee_processor.rs b/integration-tests/src/fee_processor.rs index 267c9e267c..8daf6b9e93 100644 --- a/integration-tests/src/fee_processor.rs +++ b/integration-tests/src/fee_processor.rs @@ -131,7 +131,7 @@ fn hdx_fee_distributes_to_hdx_receivers() { // unlinked, so referrals consumes none of its offered slice and the referrals pot stays // empty — the un-taken slice remains with the Omnipool trade fee. assert_eq!( - staking_increase, 188932, + staking_increase, 439317, "Staking pot should receive its HDX-path convert slice" ); assert_eq!( @@ -175,10 +175,13 @@ fn hdx_fee_generates_referral_shares() { // Tier0 split is referrer 60% : trader 40% (≈3:2, ±wei from independent flooring). assert_eq!( - referrer_increase, 113359, + referrer_increase, 263590, "Referrer shares should accrue from HDX fee trade" ); - assert_eq!(trader_increase, 75572, "Trader shares should accrue from HDX fee trade"); + assert_eq!( + trader_increase, 175726, + "Trader shares should accrue from HDX fee trade" + ); }); } @@ -542,10 +545,10 @@ fn multiple_hdx_trades_accumulate_in_all_hdx_receivers() { let staking_total = Currencies::free_balance(HDX, &staking_pot()).saturating_sub(staking_initial); let referrals_total = Currencies::free_balance(HDX, &referrals_pot()).saturating_sub(referrals_initial); - // Staking accumulates its HDX slice across the 3 trades (3 × 188932). The trader is + // Staking accumulates its HDX slice across the 3 trades (3 × 439317). The trader is // unlinked, so referrals consumes nothing across all trades. assert_eq!( - staking_total, 566796, + staking_total, 1317951, "Staking pot should accumulate from multiple HDX trades" ); assert_eq!( @@ -1838,7 +1841,7 @@ fn gigapot_eventually_receives_all_buffered_hdx_fees_when_starting_below_ed() { // The four sub-ED slices are all buffered (none delivered), and the buffer is below ED. let buffered = held(); - assert_eq!(buffered, 2_371_450, "four sub-ED slices accrued into the buffer"); + assert_eq!(buffered, 5_574_489, "four sub-ED slices accrued into the buffer"); assert!(buffered < ed, "buffer is still below ED"); assert_eq!(delivered(), 0, "nothing delivered before the buffer crosses ED"); @@ -1856,7 +1859,7 @@ fn gigapot_eventually_receives_all_buffered_hdx_fees_when_starting_below_ed() { assert_eq!(held(), 0, "buffer fully flushed once the gigapot crosses ED"); assert_eq!( delivered(), - 3_140_987_039_253, + 7_548_316_318_180, "gigapot receives all buffered fees plus the flushing slice" ); assert!(delivered() > buffered, "delivery includes the previously buffered fees"); diff --git a/integration-tests/src/oracle.rs b/integration-tests/src/oracle.rs index 57d20d1781..b39e07dccd 100644 --- a/integration-tests/src/oracle.rs +++ b/integration-tests/src/oracle.rs @@ -182,34 +182,34 @@ fn oracle_updated_event_is_emitted_on_omnipool_trade() { .collect(); let hdx_lrna_short = Price::new( - 275912930932827880927603180629154300849u128, + 275912746950421681618028996553894221202u128, 331509049407129600017073813722130790u128, ); let hdx_lrna_ten_minutes = Price::new( - 275912708696654056019008621647156976919u128, + 275912669934530714465183989266576048327u128, 331509049407129600017073813722130790u128, ); let hdx_lrna_day = Price::new( - 275912650768799219879113001497259577106u128, + 275912650496045005035012610173288959428u128, 331509049407129600017073813722130790u128, ); let hdx_lrna_last_block = Price::new(936334588000000000u128, 1124993995517813u128); let lrna_dot_short = Price::new( - 264175141935748117028484731384223050162u128, + 264175053930100714611906866464576509350u128, 10299220574157342235602475141589164734u128, ); let lrna_dot_ten_minutes = Price::new( - 264175035631896799257964934154550990963u128, + 264175017090527383367757992777282608545u128, 10299220574157342235602475141589164734u128, ); let lrna_dot_day = Price::new( - 264175007922843130479332291362322569866u128, + 264175007792374615826418943184267843357u128, 10299220574157342235602475141589164734u128, ); diff --git a/integration-tests/src/referrals.rs b/integration-tests/src/referrals.rs index bc8e8efa2f..dc1a21ea4c 100644 --- a/integration-tests/src/referrals.rs +++ b/integration-tests/src/referrals.rs @@ -54,11 +54,11 @@ fn trading_in_omnipool_should_transfer_portion_of_fee_to_reward_pot() { // Non-HDX fee path: the referrals receiver takes a fixed 5% slice of the trade fee in the // raw asset (DAI) into its pot at trade time. let ref_pot_dai = Currencies::free_balance(DAI, &Referrals::pot_account_id()); - assert_eq!(ref_pot_dai - ref_pot_dai_before, 7627218441026); + assert_eq!(ref_pot_dai - ref_pot_dai_before, 17117798695388); // Referrals self-converts its raw asset into the HDX reward asset. assert_ok!(Referrals::convert(RuntimeOrigin::signed(ALICE.into()), DAI)); let ref_pot_hdx_after = Currencies::free_balance(HDX, &Referrals::pot_account_id()); - assert_eq!(ref_pot_hdx_after - ref_pot_hdx_before, 282133376); + assert_eq!(ref_pot_hdx_after - ref_pot_hdx_before, 624620568); }); } @@ -84,10 +84,10 @@ fn buying_in_omnipool_should_transfer_portion_of_asset_out_fee_to_reward_pot() { )); // The asset-out (DAI) fee feeds the referrals pot a fixed 5% raw slice at trade time. let ref_pot_dai = Currencies::free_balance(DAI, &Referrals::pot_account_id()); - assert_eq!(ref_pot_dai - ref_pot_dai_before, 286937264028545); + assert_eq!(ref_pot_dai - ref_pot_dai_before, 648606049064316); assert_ok!(Referrals::convert(RuntimeOrigin::signed(ALICE.into()), DAI)); let ref_pot_hdx_after = Currencies::free_balance(HDX, &Referrals::pot_account_id()); - assert_eq!(ref_pot_hdx_after - ref_pot_hdx_before, 10615145018); + assert_eq!(ref_pot_hdx_after - ref_pot_hdx_before, 23670135681); }); } @@ -133,7 +133,7 @@ fn trading_in_omnipool_should_increase_referrer_shares() { 0 )); let referrer_shares = Referrals::referrer_shares::(ALICE.into()); - assert_eq!(referrer_shares, 171246068); + assert_eq!(referrer_shares, 384328276); }); } #[test] @@ -155,7 +155,7 @@ fn trading_in_omnipool_should_increase_trader_shares() { 0 )); let trader_shares = Referrals::trader_shares::(BOB.into()); - assert_eq!(trader_shares, 114164045); + assert_eq!(trader_shares, 256218851); }); } @@ -178,7 +178,7 @@ fn trading_in_omnipool_should_increase_total_shares_correctly() { 0 )); let total_shares = Referrals::total_shares(); - assert_eq!(total_shares, 285410113); + assert_eq!(total_shares, 640547127); }); } @@ -207,13 +207,13 @@ fn claiming_rewards_should_convert_all_assets_to_reward_asset() { // The referrals pot holds its raw DAI slice; converting it to the reward asset (HDX) is // what funds the claimable pool. let referrals_dai = Currencies::free_balance(DAI, &Referrals::pot_account_id()); - assert_eq!(referrals_dai, 8057636306083); + assert_eq!(referrals_dai, 13083633736560); assert_ok!(Referrals::convert(RuntimeOrigin::signed(ALICE.into()), DAI)); assert_eq!(Currencies::free_balance(DAI, &Referrals::pot_account_id()), 0); assert_ok!(Referrals::claim_rewards(RuntimeOrigin::signed(ALICE.into()))); let new_balance = Currencies::free_balance(HDX, &ALICE.into()); - assert_eq!(new_balance - old_balance, 600178825715); + assert_eq!(new_balance - old_balance, 600288280153); assert_eq!(Referrals::referrer_shares::(ALICE.into()), 0); }); } @@ -249,7 +249,7 @@ fn claiming_rewards_should_pay_trader_their_rebate() { let new_balance = Currencies::free_balance(HDX, &BOB.into()); // Trader rebate is the trader-share fraction of the converted 5% slice held in the pot. - assert_eq!(new_balance - old_balance, 400119214931); + assert_eq!(new_balance - old_balance, 400192185406); assert_eq!(Referrals::trader_shares::(BOB.into()), 0); }); } @@ -295,7 +295,7 @@ fn claim_should_work_when_trade_happens_via_router() { //Assert that user receives claim amounts let new_balance = Currencies::free_balance(HDX, &ALICE.into()); let claimed_amount = new_balance - old_balance; - assert_eq!(claimed_amount, 600178825715); + assert_eq!(claimed_amount, 600288280153); }); //We check if the same happens with normal omni trade @@ -334,7 +334,7 @@ fn claim_should_work_when_trade_happens_via_router() { //Assert that user receives claim amounts let new_balance = Currencies::free_balance(HDX, &ALICE.into()); let claimed_amount = new_balance - old_balance; - assert_eq!(claimed_amount, 600178825715); + assert_eq!(claimed_amount, 600288280153); }); } @@ -406,9 +406,9 @@ fn trading_in_omnipool_should_use_global_rewards_when_not_set() { )); // Tier0 split is referrer 60 : trader 40 (≈3:2, ±1 wei from independent flooring). let referrer_shares = Referrals::referrer_shares::(ALICE.into()); - assert_eq!(referrer_shares, 171246068); + assert_eq!(referrer_shares, 384328276); let trader_shares = Referrals::trader_shares::(BOB.into()); - assert_eq!(trader_shares, 114164045); + assert_eq!(trader_shares, 256218851); // Staking pot no longer receives external referral shares. assert_eq!(Referrals::trader_shares::(Staking::pot_account_id()), 0); let total_shares = Referrals::total_shares(); @@ -447,9 +447,9 @@ fn trading_in_omnipool_should_use_asset_rewards_when_set() { )); // Override split is referrer 2 : trader 1 = 2:1. let referrer_shares = Referrals::referrer_shares::(ALICE.into()); - assert_eq!(referrer_shares, 5708202); + assert_eq!(referrer_shares, 12810942); let trader_shares = Referrals::trader_shares::(BOB.into()); - assert_eq!(trader_shares, 2854101); + assert_eq!(trader_shares, 6405471); assert_eq!(referrer_shares, trader_shares * 2, "referrer:trader must be 2:1"); let total_shares = Referrals::total_shares(); assert_eq!(total_shares, referrer_shares + trader_shares); @@ -478,12 +478,12 @@ fn buying_hdx_in_omnipool_should_transfer_correct_fee() { who: BOB.into(), asset_in: DAI, asset_out: HDX, - amount_in: 27034239573270507, + amount_in: 27405249578655076, amount_out: 1_000_000_000_000, - hub_amount_in: 1218703821, - hub_amount_out: 1224869032, - asset_fee_amount: 10215297085, - protocol_fee_amount: 609351, + hub_amount_in: 1235428947, + hub_amount_out: 1250780015, + asset_fee_amount: 24079173610, + protocol_fee_amount: 617714, } .into(), pallet_broadcast::Event::Swapped3 { @@ -491,11 +491,11 @@ fn buying_hdx_in_omnipool_should_transfer_correct_fee() { filler: Omnipool::protocol_account(), filler_type: Filler::Omnipool, operation: TradeOperation::ExactOut, - inputs: vec![Asset::new(DAI, 27034239573270507)], - outputs: vec![Asset::new(LRNA, 1218703821)], + inputs: vec![Asset::new(DAI, 27405249578655076)], + outputs: vec![Asset::new(LRNA, 1235428947)], fees: vec![Fee::new( LRNA, - 609351, + 617714, Destination::Account(Omnipool::protocol_account()), )], operation_stack: vec![ExecutionType::Omnipool(0)], @@ -506,11 +506,11 @@ fn buying_hdx_in_omnipool_should_transfer_correct_fee() { filler: Omnipool::protocol_account(), filler_type: Filler::Omnipool, operation: TradeOperation::ExactOut, - inputs: vec![Asset::new(LRNA, 1218094470)], + inputs: vec![Asset::new(LRNA, 1234811233)], outputs: vec![Asset::new(HDX, 1_000_000_000_000)], fees: vec![ - Fee::new(HDX, 5618413398, Destination::Account(Omnipool::protocol_account())), - Fee::new(HDX, 4596883687, Destination::Account(FeeProcessor::pot_account_id())), + Fee::new(HDX, 13243545486, Destination::Account(Omnipool::protocol_account())), + Fee::new(HDX, 10835628124, Destination::Account(FeeProcessor::pot_account_id())), ], operation_stack: vec![ExecutionType::Omnipool(0)], } @@ -522,7 +522,7 @@ fn buying_hdx_in_omnipool_should_transfer_correct_fee() { let ref_dai_balance = Currencies::free_balance(DAI, &ref_account); let staking_balance = Currencies::free_balance(HDX, &staking_acc); assert_eq!(ref_dai_balance.abs_diff(orig_balance), 0); - assert_eq!(staking_balance.abs_diff(stak_orig_balance), 510764854); + assert_eq!(staking_balance.abs_diff(stak_orig_balance), 1203958680); }); } @@ -544,19 +544,19 @@ fn buying_with_hdx_in_omnipool_should_transfer_correct_fee() { u128::MAX, )); - let expected_taken_fee = 2582435376256921; + let expected_taken_fee = 5837454441578858; expect_hydra_last_events(vec![ pallet_omnipool::Event::BuyExecuted { who: BOB.into(), asset_in: HDX, asset_out: DAI, - amount_in: 37622382587443, + amount_in: 37892983048346, amount_out: 1_000_000_000_000_000_000, - hub_amount_in: 45362332344, - hub_amount_out: 45481943470, - asset_fee_amount: 5738745280570938, - protocol_fee_amount: 22681166, + hub_amount_in: 45688589482, + hub_amount_out: 45987389254, + asset_fee_amount: 12972120981286354, + protocol_fee_amount: 22844294, } .into(), pallet_broadcast::Event::Swapped3 { @@ -564,11 +564,11 @@ fn buying_with_hdx_in_omnipool_should_transfer_correct_fee() { filler: Omnipool::protocol_account(), filler_type: pallet_broadcast::types::Filler::Omnipool, operation: pallet_broadcast::types::TradeOperation::ExactOut, - inputs: vec![Asset::new(HDX, 37622382587443)], - outputs: vec![Asset::new(LRNA, 45362332344)], + inputs: vec![Asset::new(HDX, 37892983048346)], + outputs: vec![Asset::new(LRNA, 45688589482)], fees: vec![Fee::new( LRNA, - 22681166, + 22844294, Destination::Account(Omnipool::protocol_account()), )], operation_stack: vec![ExecutionType::Omnipool(0)], @@ -579,12 +579,12 @@ fn buying_with_hdx_in_omnipool_should_transfer_correct_fee() { filler: Omnipool::protocol_account(), filler_type: pallet_broadcast::types::Filler::Omnipool, operation: pallet_broadcast::types::TradeOperation::ExactOut, - inputs: vec![Asset::new(LRNA, 45339651178)], + inputs: vec![Asset::new(LRNA, 45665745188)], outputs: vec![Asset::new(DAI, 1_000_000_000_000_000_000)], fees: vec![ Fee::new( DAI, - 3156309904314017, + 7134666539707496, Destination::Account(Omnipool::protocol_account()), ), Fee::new( diff --git a/integration-tests/src/staking.rs b/integration-tests/src/staking.rs index bd043ceb63..179d00b95d 100644 --- a/integration-tests/src/staking.rs +++ b/integration-tests/src/staking.rs @@ -588,7 +588,7 @@ fn staking_should_claim_and_unreserve_rewards_when_unstaked() { )); let alice_balance_after_claim = Currencies::free_balance(HDX, &AccountId32::from(ALICE)); assert!(alice_balance_after_claim > alice_balance); - assert_eq!(alice_balance_after_claim, 999901068954521407); + assert_eq!(alice_balance_after_claim, 999985851148447579); let stake_position_id = pallet_staking::Pallet::::get_user_position_id( &sp_runtime::AccountId32::from(ALICE), diff --git a/launch-configs/zombienet/local.json b/launch-configs/zombienet/local.json index ca9d056662..fde828e233 100644 --- a/launch-configs/zombienet/local.json +++ b/launch-configs/zombienet/local.json @@ -14,8 +14,11 @@ "patch": { "configuration": { "config": { + "scheduler_params": { + "num_cores": 3 + }, "async_backing_params": { - "max_candidate_depth": 3, + "max_candidate_depth": 6, "allowed_ancestry_len": 2 } } @@ -31,6 +34,7 @@ "--pruning=archive" ], "ws_port": 9944, + "rpc_port": 9945, "invulnerable": true }, { diff --git a/math/Cargo.toml b/math/Cargo.toml index 77e4c70e10..f37c626995 100644 --- a/math/Cargo.toml +++ b/math/Cargo.toml @@ -6,7 +6,7 @@ license = 'Apache-2.0' name = "hydra-dx-math" description = "A collection of utilities to make performing liquidity pool calculations more convenient." repository = 'https://github.com/galacticcouncil/hydradx-math' -version = "13.2.2" +version = "13.2.3" [dependencies] primitive-types = { workspace = true } diff --git a/math/src/staking/math.rs b/math/src/staking/math.rs index 7b9d63435c..c04490fa12 100644 --- a/math/src/staking/math.rs +++ b/math/src/staking/math.rs @@ -50,22 +50,40 @@ pub fn calculate_slashed_points( /// Function calculates period number from block number and period size. /// /// Parameters: -/// - `period_length`: length of the one period in blocks +/// - `period_length`: length of one period based on 12s blocks (this was the initial default) /// - `block_number`: block number to calculate period for -/// - `six_sec_block_since`: block number when staking switched to 6 sec. blocks and period -/// - `period_length` should be doubled +/// - `six_sec_blocks_since`: block number when staking switched to 6s blocks +/// - `two_sec_blocks_since`: block number when staking switched to 2s blocks pub fn calculate_period_number( period_length: NonZeroU128, block_number: u128, - six_sec_block_since: NonZeroU128, + six_sec_blocks_since: NonZeroU128, + two_sec_blocks_since: NonZeroU128, ) -> Period { - if block_number.le(&Into::::into(six_sec_block_since)) { - return block_number.saturating_div(period_length.get()); + let period_length = period_length.get(); + let six_sec_blocks_since = six_sec_blocks_since.get(); + let two_sec_blocks_since = two_sec_blocks_since.get(); + + if block_number.le(&six_sec_blocks_since) { + return block_number.saturating_div(period_length); + } + + if block_number.le(&two_sec_blocks_since) || two_sec_blocks_since <= six_sec_blocks_since { + return six_sec_blocks_since + .saturating_add(block_number) + .saturating_div(period_length.saturating_mul(2)); } - Into::::into(six_sec_block_since) - .saturating_add(block_number) - .saturating_div(period_length.get().saturating_mul(2)) + let normalized_blocks = six_sec_blocks_since + .saturating_mul(6) + .saturating_add( + two_sec_blocks_since + .saturating_sub(six_sec_blocks_since) + .saturating_mul(3), + ) + .saturating_add(block_number.saturating_sub(two_sec_blocks_since)); + + normalized_blocks.saturating_div(period_length.saturating_mul(6)) } /// Function calculates total amount of `Points` user have accumulated until now. diff --git a/math/src/staking/tests.rs b/math/src/staking/tests.rs index 79b7df2a7a..37d88567bc 100644 --- a/math/src/staking/tests.rs +++ b/math/src/staking/tests.rs @@ -88,7 +88,8 @@ fn calculate_period_number_should_work_when_period_length_is_not_zero() { calculate_period_number( NonZeroU128::try_from(1_u128).unwrap(), 12_341_u128, - NonZeroU128::try_from(12_341_u128).unwrap() + NonZeroU128::try_from(12_341_u128).unwrap(), + NonZeroU128::try_from(u32::MAX as u128).unwrap() ), 12_341_u128 ); @@ -97,7 +98,8 @@ fn calculate_period_number_should_work_when_period_length_is_not_zero() { calculate_period_number( NonZeroU128::try_from(1_000_u128).unwrap(), 12_341_u128, - NonZeroU128::try_from(12_342_u128).unwrap() + NonZeroU128::try_from(12_342_u128).unwrap(), + NonZeroU128::try_from(u32::MAX as u128).unwrap() ), 12_u128 ); @@ -106,7 +108,8 @@ fn calculate_period_number_should_work_when_period_length_is_not_zero() { calculate_period_number( NonZeroU128::try_from(1_000_u128).unwrap(), 1_u128, - NonZeroU128::try_from(1).unwrap() + NonZeroU128::try_from(1).unwrap(), + NonZeroU128::try_from(u32::MAX as u128).unwrap() ), 0_u128 ); @@ -115,7 +118,8 @@ fn calculate_period_number_should_work_when_period_length_is_not_zero() { calculate_period_number( NonZeroU128::try_from(82_u128).unwrap(), 12_341_u128, - NonZeroU128::try_from(12_341_u128).unwrap() + NonZeroU128::try_from(12_341_u128).unwrap(), + NonZeroU128::try_from(u32::MAX as u128).unwrap() ), 150_u128 ); @@ -126,7 +130,8 @@ fn calculate_period_number_should_work_when_period_length_is_not_zero() { calculate_period_number( NonZeroU128::try_from(41_u128).unwrap(), 12_341_u128, - NonZeroU128::try_from(5_001_u128).unwrap() + NonZeroU128::try_from(5_001_u128).unwrap(), + NonZeroU128::try_from(u32::MAX as u128).unwrap() ), 211_u128 ); @@ -138,12 +143,69 @@ fn calculate_period_number_should_work_when_period_length_is_not_zero() { calculate_period_number( NonZeroU128::try_from(2_617_u128).unwrap(), 678_789_789_u128, - NonZeroU128::try_from(89_789_124_u128).unwrap() + NonZeroU128::try_from(89_789_124_u128).unwrap(), + NonZeroU128::try_from(u32::MAX as u128).unwrap() ), 146_843_u128 ); } +#[test] +fn calculate_period_number_should_work_after_two_sec_transition() { + assert_eq!( + calculate_period_number( + NonZeroU128::try_from(10_u128).unwrap(), + 100_u128, + NonZeroU128::try_from(100_u128).unwrap(), + NonZeroU128::try_from(200_u128).unwrap() + ), + 10_u128 + ); + + assert_eq!( + calculate_period_number( + NonZeroU128::try_from(10_u128).unwrap(), + 200_u128, + NonZeroU128::try_from(100_u128).unwrap(), + NonZeroU128::try_from(200_u128).unwrap() + ), + 15_u128 + ); + + assert_eq!( + calculate_period_number( + NonZeroU128::try_from(10_u128).unwrap(), + 259_u128, + NonZeroU128::try_from(100_u128).unwrap(), + NonZeroU128::try_from(200_u128).unwrap() + ), + 15_u128 + ); + + assert_eq!( + calculate_period_number( + NonZeroU128::try_from(10_u128).unwrap(), + 260_u128, + NonZeroU128::try_from(100_u128).unwrap(), + NonZeroU128::try_from(200_u128).unwrap() + ), + 16_u128 + ); +} + +#[test] +fn calculate_period_number_should_fall_back_when_two_sec_transition_is_invalid() { + assert_eq!( + calculate_period_number( + NonZeroU128::try_from(10_u128).unwrap(), + 200_u128, + NonZeroU128::try_from(100_u128).unwrap(), + NonZeroU128::try_from(50_u128).unwrap() + ), + 15_u128 + ); +} + #[test] fn calculate_points_should_work() { let time_points_per_period = 2_u8; diff --git a/node/Cargo.toml b/node/Cargo.toml index 11c95ae998..f2ef6dd9de 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hydradx" -version = "15.2.0" +version = "15.3.0" description = "Hydration node" authors = ["GalacticCouncil"] edition = "2021" diff --git a/node/src/service.rs b/node/src/service.rs index 6cbcb1fdc8..ae0a98e8e2 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -666,7 +666,7 @@ fn start_consensus( para_id, proposer, collator_service, - authoring_duration: Duration::from_millis(1500), + authoring_duration: Duration::from_millis(2000), reinitialize: false, slot_offset: Duration::from_secs(1), block_import_handle, diff --git a/node/src/service/evm.rs b/node/src/service/evm.rs index a033af63ad..4ec79f44ff 100644 --- a/node/src/service/evm.rs +++ b/node/src/service/evm.rs @@ -50,7 +50,7 @@ pub struct EthereumConfig { pub max_past_logs: u32, /// Maximum fee history cache size. - #[clap(long, default_value = "2048")] + #[clap(long, default_value = "6144")] pub fee_history_limit: u64, #[clap(long)] @@ -162,7 +162,7 @@ pub fn spawn_frontier_tasks( None, SyntheticMappingSyncWorker::new( client.import_notification_stream(), - Duration::new(6, 0), + Duration::new(2, 0), client.clone(), backend, overrides.clone(), @@ -177,8 +177,8 @@ pub fn spawn_frontier_tasks( ); // Spawn Frontier EthFilterApi maintenance task. - // Each filter is allowed to stay in the pool for 100 blocks. - const FILTER_RETAIN_THRESHOLD: u64 = 100; + // Each filter is allowed to stay in the pool for about 10 minutes with 2s blocks. + const FILTER_RETAIN_THRESHOLD: u64 = 300; task_manager.spawn_essential_handle().spawn( "frontier-filter-pool", None, diff --git a/pallets/dca/Cargo.toml b/pallets/dca/Cargo.toml index 45aedea4e8..612e8d236b 100644 --- a/pallets/dca/Cargo.toml +++ b/pallets/dca/Cargo.toml @@ -1,6 +1,6 @@ [package] name = 'pallet-dca' -version = "1.19.0" +version = "1.20.0" description = 'A pallet to manage DCA scheduling' authors = ['GalacticCouncil'] edition = '2021' diff --git a/pallets/dca/src/lib.rs b/pallets/dca/src/lib.rs index 652aa4a4f2..4e849307b4 100644 --- a/pallets/dca/src/lib.rs +++ b/pallets/dca/src/lib.rs @@ -130,7 +130,7 @@ pub mod pallet { use super::*; - const STORAGE_VERSION: StorageVersion = StorageVersion::new(2); + const STORAGE_VERSION: StorageVersion = StorageVersion::new(3); #[pallet::pallet] #[pallet::storage_version(STORAGE_VERSION)] diff --git a/pallets/dca/src/migrations.rs b/pallets/dca/src/migrations.rs index a4a4b969a7..3979e66e71 100644 --- a/pallets/dca/src/migrations.rs +++ b/pallets/dca/src/migrations.rs @@ -2,12 +2,23 @@ use crate::pallet; use frame_support::traits::{Get, GetStorageVersion, OnRuntimeUpgrade, StorageVersion}; use sp_runtime::Saturating; -// This migration multiplies the periods of schedules by 2 to account for 2x faster block times -// -// The migration does not use a StorageVersion, make sure it is removed from the Runtime Executive -// after it has been run. -pub struct MultiplySchedulesPeriodBy2(sp_std::marker::PhantomData); -impl OnRuntimeUpgrade for MultiplySchedulesPeriodBy2 { +const MAX_SCHEDULES: u64 = 150; + +// This migration multiplies the periods of schedules by 3 to account for 3x faster block times +// when moving from 6s to 2s blocks. +pub struct MultiplySchedulesPeriodBy3(sp_std::marker::PhantomData); +impl OnRuntimeUpgrade for MultiplySchedulesPeriodBy3 { + #[cfg(feature = "try-runtime")] + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + assert_eq!( + StorageVersion::get::>(), + StorageVersion::new(2), + "DCA storage version must be v2 before multiplying schedule periods" + ); + + Ok(sp_std::vec::Vec::new()) + } + fn on_runtime_upgrade() -> frame_support::weights::Weight { let mut reads = 0u64; let mut writes = 0u64; @@ -16,31 +27,53 @@ impl OnRuntimeUpgrade for MultiplySchedulesPeriodBy2 { let in_code_version = crate::Pallet::::in_code_storage_version(); reads.saturating_inc(); - if on_chain_version == in_code_version { + if on_chain_version >= in_code_version { // Already migrated return T::DbWeight::get().reads(reads); } - for (key, mut schedule) in crate::Schedules::::iter() { - schedule.period = schedule.period.saturating_mul(2u32.into()); + if on_chain_version != StorageVersion::new(2) { + log::warn!("DCA schedule period migration skipped: expected storage version 2, got {on_chain_version:?}"); + return T::DbWeight::get().reads(reads); + } + + let schedules: sp_std::vec::Vec<_> = crate::Schedules::::iter().collect(); + let schedules_len = schedules.len() as u64; + reads.saturating_accrue(schedules_len); + + log::info!("MultiplySchedulesPeriodBy3 found schedules: {schedules_len:?}, processing cap: {MAX_SCHEDULES:?}",); + + if schedules_len > MAX_SCHEDULES { + log::error!( + "MultiplySchedulesPeriodBy3 skipped because Schedules has {schedules_len:?} entries, cap: {MAX_SCHEDULES:?}", + ); + return T::DbWeight::get().reads(reads); + } + + for (key, mut schedule) in schedules { + schedule.period = schedule.period.saturating_mul(3u32.into()); crate::Schedules::::insert(key, schedule); - reads.saturating_inc(); writes.saturating_inc(); - - // At the time before the migration there are ~60 schedules. - // Setting a safe limit which can be executed in 1 block - if writes == 150 { - log::info!("Hit limit of 150 schedules, exiting loop"); - break; - } } // Increase on-chain StorageVersion - StorageVersion::new(2).put::>(); + StorageVersion::new(3).put::>(); + writes.saturating_inc(); - log::info!("MultiplySchedulesPeriodBy2 processed schedules: {writes:?}"); + log::info!("MultiplySchedulesPeriodBy3 processed schedules: {schedules_len:?}"); T::DbWeight::get().reads_writes(reads, writes) } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(_: sp_std::vec::Vec) -> Result<(), sp_runtime::TryRuntimeError> { + assert_eq!( + StorageVersion::get::>(), + StorageVersion::new(3), + "DCA storage version must be v3 after multiplying schedule periods" + ); + + Ok(()) + } } #[cfg(test)] @@ -55,7 +88,7 @@ mod test { use frame_support::assert_ok; #[test] - fn multiply_schedules_period_by_2_works() { + fn multiply_schedules_period_by_3_works() { ExtBuilder::default() .with_endowed_accounts(vec![(ALICE, HDX, 10000 * ONE)]) .build() @@ -71,17 +104,18 @@ mod test { let stored_schedule = DCA::schedules(0).unwrap(); assert_eq!(stored_schedule.period, 100); + StorageVersion::new(2).put::(); // Act - MultiplySchedulesPeriodBy2::::on_runtime_upgrade(); + MultiplySchedulesPeriodBy3::::on_runtime_upgrade(); let updated_schedule = DCA::schedules(0).unwrap(); // Assert - assert_eq!(updated_schedule.period, 200); + assert_eq!(updated_schedule.period, 300); // Storage version has been updated let on_chain_version = StorageVersion::get::(); - assert_eq!(on_chain_version, StorageVersion::new(2)); + assert_eq!(on_chain_version, StorageVersion::new(3)); }); } } diff --git a/pallets/dca/src/tests/on_initialize.rs b/pallets/dca/src/tests/on_initialize.rs index 01ac4d3b76..064d6239a2 100644 --- a/pallets/dca/src/tests/on_initialize.rs +++ b/pallets/dca/src/tests/on_initialize.rs @@ -26,6 +26,7 @@ use frame_support::assert_ok; use frame_support::traits::OnInitialize; use hydradx_traits::router::PoolType; use hydradx_traits::router::PoolType::Omnipool; +use hydradx_traits::OraclePeriod; use orml_traits::MultiCurrency; use orml_traits::MultiReservableCurrency; use orml_traits::NamedMultiReservableCurrency; @@ -34,6 +35,10 @@ use sp_runtime::DispatchError; use std::borrow::Borrow; use std::ops::RangeInclusive; +fn retry_block(current_block: u64, retries_before: u32) -> u64 { + current_block + OraclePeriod::Short.as_period() * 2_u64.pow(retries_before) +} + #[test] fn successful_sell_dca_execution_should_emit_trade_executed_event() { ExtBuilder::default() @@ -1124,7 +1129,7 @@ fn buy_dca_schedule_should_be_retried_when_trade_limit_error_happens() { let schedule_id = 0; - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(1, retries); expect_dca_events(vec![ @@ -1137,7 +1142,7 @@ fn buy_dca_schedule_should_be_retried_when_trade_limit_error_happens() { DcaEvent::ExecutionPlanned { id: schedule_id, who: ALICE, - block: 522, + block: retry_block(502, 0), } .into(), ]); @@ -1177,7 +1182,7 @@ fn sell_dca_schedule_should_be_retried_when_trade_limit_error_happens() { assert_number_of_executed_sell_trades!(0); let schedule_id = 0; - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(1, retries); expect_dca_events(vec![ @@ -1190,7 +1195,7 @@ fn sell_dca_schedule_should_be_retried_when_trade_limit_error_happens() { DcaEvent::ExecutionPlanned { id: schedule_id, who: ALICE, - block: 522, + block: retry_block(502, 0), } .into(), ]); @@ -1263,20 +1268,24 @@ fn dca_schedule_should_retry_when_error_is_configured_to_retry_on() { //Act and assert let schedule_id = 0; + let retry_1 = retry_block(502, 0); + let retry_2 = retry_block(retry_1, 1); + let retry_3 = retry_block(retry_2, 2); + set_to_blocknumber(502); assert!(DCA::schedules(schedule_id).is_some()); assert_eq!(DCA::retries_on_error(schedule_id), 1); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_1, vec![schedule_id]); - set_to_blocknumber(522); + set_to_blocknumber(retry_1); assert_eq!(DCA::retries_on_error(schedule_id), 2); - assert_scheduled_ids!(562, vec![schedule_id]); + assert_scheduled_ids!(retry_2, vec![schedule_id]); - set_to_blocknumber(562); + set_to_blocknumber(retry_2); assert_eq!(DCA::retries_on_error(schedule_id), 3); - assert_scheduled_ids!(642, vec![schedule_id]); + assert_scheduled_ids!(retry_3, vec![schedule_id]); - set_to_blocknumber(642); + set_to_blocknumber(retry_3); assert_number_of_executed_sell_trades!(0); assert_that_dca_is_terminated(ALICE, schedule_id, Error::::MaxRetryReached.into()); }); @@ -1311,7 +1320,7 @@ fn buy_dca_schedule_should_continue_on_slippage_error() { //Act and assert let schedule_id = 0; set_to_blocknumber(502); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(1, retries); }); @@ -1351,7 +1360,7 @@ fn sell_dca_schedule_continue_on_slippage_error() { //Act and assert let schedule_id = 0; set_to_blocknumber(502); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(1, retries); }); @@ -1390,16 +1399,19 @@ fn dca_schedule_retry_should_be_reset_when_successful_trade_after_failed_ones() //Act and assert let schedule_id = 0; + let retry_1 = retry_block(502, 0); + let retry_2 = retry_block(retry_1, 1); + set_to_blocknumber(502); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_1, vec![schedule_id]); - set_to_blocknumber(522); - assert_scheduled_ids!(562, vec![schedule_id]); + set_to_blocknumber(retry_1); + assert_scheduled_ids!(retry_2, vec![schedule_id]); set_max_price_diff(Permill::from_percent(10)); - set_to_blocknumber(562); - assert_scheduled_ids!(562 + ONE_HUNDRED_BLOCKS, vec![schedule_id]); + set_to_blocknumber(retry_2); + assert_scheduled_ids!(retry_2 + ONE_HUNDRED_BLOCKS, vec![schedule_id]); assert_number_of_executed_sell_trades!(1); let retries = DCA::retries_on_error(schedule_id); @@ -1681,7 +1693,7 @@ fn one_sell_dca_execution_should_be_rescheduled_when_price_diff_is_more_than_max assert_eq!(total_amount - fee_in_native, Currencies::reserved_balance(HDX, &ALICE)); let schedule_id = 0; - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); expect_dca_events(vec![ DcaEvent::TradeFailed { id: schedule_id, @@ -1692,7 +1704,7 @@ fn one_sell_dca_execution_should_be_rescheduled_when_price_diff_is_more_than_max DcaEvent::ExecutionPlanned { id: schedule_id, who: ALICE, - block: 522, + block: retry_block(502, 0), } .into(), ]); @@ -1744,7 +1756,7 @@ fn one_sell_dca_execution_should_be_rescheduled_when_price_diff_is_more_than_use ); let schedule_id = 0; - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); expect_dca_events(vec![ DcaEvent::TradeFailed { id: schedule_id, @@ -1755,7 +1767,7 @@ fn one_sell_dca_execution_should_be_rescheduled_when_price_diff_is_more_than_use DcaEvent::ExecutionPlanned { id: schedule_id, who: ALICE, - block: 522, + block: retry_block(502, 0), } .into(), ]); @@ -1856,8 +1868,8 @@ fn dca_should_be_terminated_when_price_change_is_big_but_no_free_blocks_to_repla assert_ok!(DCA::schedule( RuntimeOrigin::signed(ALICE), schedule, - Option::Some(1015) - )); //995 + 20 because 20 is the retry delay + Option::Some(retry_block(995, 0)) + )); } //Act @@ -2448,7 +2460,7 @@ fn dca_trade_unallocation_should_be_rolled_back_when_trade_fails() { set_to_blocknumber(502); assert_number_of_executed_sell_trades!(0); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); let fee_in_native = DCA::get_transaction_fee(&schedule.order, None).unwrap(); assert_eq!(Currencies::reserved_balance(HDX, &ALICE), total_amount - fee_in_native); @@ -2487,16 +2499,19 @@ fn dca_schedule_should_continue_on_multiple_failures_then_terminated() { //Act and assert let schedule_id = 0; + let retry_1 = retry_block(502, 0); + let retry_2 = retry_block(retry_1, 1); + let retry_3 = retry_block(retry_2, 2); set_to_blocknumber(502); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_1, vec![schedule_id]); - set_to_blocknumber(522); - assert_scheduled_ids!(562, vec![schedule_id]); + set_to_blocknumber(retry_1); + assert_scheduled_ids!(retry_2, vec![schedule_id]); - set_to_blocknumber(562); - assert_scheduled_ids!(642, vec![schedule_id]); + set_to_blocknumber(retry_2); + assert_scheduled_ids!(retry_3, vec![schedule_id]); - set_to_blocknumber(642); + set_to_blocknumber(retry_3); assert!(DCA::schedules(schedule_id).is_none()); assert_number_of_executed_sell_trades!(0); }); @@ -2532,26 +2547,31 @@ fn dca_schedule_should_use_specified_max_retry_count() { //Act and assert let schedule_id = 0; + let retry_1 = retry_block(502, 0); + let retry_2 = retry_block(retry_1, 1); + let retry_3 = retry_block(retry_2, 2); + let retry_4 = retry_block(retry_3, 3); + let retry_5 = retry_block(retry_4, 4); set_to_blocknumber(502); - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_1, vec![schedule_id]); - set_to_blocknumber(522); - assert_scheduled_ids!(562, vec![schedule_id]); + set_to_blocknumber(retry_1); + assert_scheduled_ids!(retry_2, vec![schedule_id]); - set_to_blocknumber(562); - assert_scheduled_ids!(642, vec![schedule_id]); + set_to_blocknumber(retry_2); + assert_scheduled_ids!(retry_3, vec![schedule_id]); - set_to_blocknumber(642); - assert_scheduled_ids!(802, vec![schedule_id]); + set_to_blocknumber(retry_3); + assert_scheduled_ids!(retry_4, vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(4, retries); - set_to_blocknumber(802); - assert_scheduled_ids!(1122, vec![schedule_id]); + set_to_blocknumber(retry_4); + assert_scheduled_ids!(retry_5, vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(5, retries); - set_to_blocknumber(1122); + set_to_blocknumber(retry_5); assert!(DCA::schedules(schedule_id).is_none()); assert_number_of_executed_sell_trades!(0); }); @@ -2693,7 +2713,7 @@ fn one_buy_dca_execution_should_be_rescheduled_when_price_diff_is_more_than_max_ ); let schedule_id = 0; - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); }); } @@ -2745,7 +2765,7 @@ fn specified_slippage_should_be_used_in_circuit_breaker_price_check() { assert_eq!(total_amount - fee_in_native, Currencies::reserved_balance(HDX, &ALICE)); let schedule_id = 0; - assert_scheduled_ids!(522, vec![schedule_id]); + assert_scheduled_ids!(retry_block(502, 0), vec![schedule_id]); let retries = DCA::retries_on_error(schedule_id); assert_eq!(1, retries); diff --git a/pallets/dispenser/Cargo.toml b/pallets/dispenser/Cargo.toml index 8671ddfca2..e9aefcedd9 100644 --- a/pallets/dispenser/Cargo.toml +++ b/pallets/dispenser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-dispenser" -version = "0.4.0" +version = "0.4.1" edition = "2021" [package.metadata.docs.rs] diff --git a/pallets/dispenser/src/benchmarking.rs b/pallets/dispenser/src/benchmarking.rs index 6c525977ac..bcb313a42f 100644 --- a/pallets/dispenser/src/benchmarking.rs +++ b/pallets/dispenser/src/benchmarking.rs @@ -78,7 +78,7 @@ mod benches { assert_ok!(T::BenchmarkHelper::register_asset(fee_asset, 1)); assert_ok!(T::BenchmarkHelper::register_asset(faucet_asset, 1)); - let large_balance: Balance = 340_266_920_938_463_463_374_607_431_768_211_455; + let large_balance: Balance = 1_000_000_000_000_000; assert_ok!(T::BenchmarkHelper::mint(fee_asset, &signet_admin, large_balance)); assert_ok!(T::BenchmarkHelper::mint(faucet_asset, &signet_admin, large_balance)); assert_ok!(T::BenchmarkHelper::mint(fee_asset, &pallet_account, large_balance)); diff --git a/pallets/dispenser/src/tests/mod.rs b/pallets/dispenser/src/tests/mod.rs index 9a9cde652a..75f3dcdf67 100644 --- a/pallets/dispenser/src/tests/mod.rs +++ b/pallets/dispenser/src/tests/mod.rs @@ -160,6 +160,20 @@ parameter_types! { pub const SigEthFaucetFaucetAssetId: AssetId = 20; } +#[cfg(feature = "runtime-benchmarks")] +pub struct MockDispenserBenchmarkHelper; + +#[cfg(feature = "runtime-benchmarks")] +impl pallet_dispenser::BenchmarkHelper for MockDispenserBenchmarkHelper { + fn register_asset(_asset_id: AssetId, _min_balance: Balance) -> sp_runtime::DispatchResult { + Ok(()) + } + + fn mint(asset_id: AssetId, who: &AccountId32, amount: Balance) -> sp_runtime::DispatchResult { + Currencies::deposit(asset_id, who, amount) + } +} + impl pallet_dispenser::Config for Test { type UpdateOrigin = frame_system::EnsureRoot; type PalletId = DispenserPalletId; @@ -169,7 +183,7 @@ impl pallet_dispenser::Config for Test { type FeeDestination = TreasuryAccount; type WeightInfo = crate::weights::WeightInfo; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); + type BenchmarkHelper = MockDispenserBenchmarkHelper; } pub fn new_test_ext() -> sp_io::TestExternalities { diff --git a/pallets/ema-oracle/Cargo.toml b/pallets/ema-oracle/Cargo.toml index 10d44afe5a..5f19cf413b 100644 --- a/pallets/ema-oracle/Cargo.toml +++ b/pallets/ema-oracle/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-ema-oracle" -version = "1.12.0" +version = "1.13.0" description = "Exponential moving average oracle for AMM pools" authors = ["GalacticCouncil"] edition = "2021" diff --git a/pallets/ema-oracle/src/lib.rs b/pallets/ema-oracle/src/lib.rs index 08a5abe05f..ca1d69db03 100644 --- a/pallets/ema-oracle/src/lib.rs +++ b/pallets/ema-oracle/src/lib.rs @@ -42,7 +42,7 @@ //! - *Smoothing Factor*: A factor applied to each value aggregated into the averaging oracle. //! Implicitly determines the oracle period. //! - *Period*: The window over which an oracle is averaged. Certain smoothing factors correspond to -//! an oracle period. E.g. ten minutes oracle period ≈ 0.0198 +//! an oracle period. E.g. ten minutes oracle period ≈ 0.0066 //! - *Source*: The source of the data. E.g. xyk pallet. //! //! ### Implementation diff --git a/pallets/ema-oracle/src/tests/mod.rs b/pallets/ema-oracle/src/tests/mod.rs index 34fc8c220d..b01dc35131 100644 --- a/pallets/ema-oracle/src/tests/mod.rs +++ b/pallets/ema-oracle/src/tests/mod.rs @@ -658,13 +658,11 @@ fn calculate_new_by_integrating_incoming_with_works() { let next_oracle = start_oracle .calculate_new_by_integrating_incoming(TenMinutes, &next_value) .unwrap(); - // ten minutes corresponds to 100 blocks which corresponds to a smoothing factor of - // `2 / 101 ≈ 1 / 50` which means that for an update from 50 to 151 we expect an update of - // about 2 + // Ten minutes corresponds to 300 blocks, so the smoothing factor is `2 / 301`. let expected_oracle = OracleEntry { - price: Price::new(52, 1), - volume: Volume::from_a_in_b_out(1, 52), - liquidity: Liquidity::new(52, 1), + price: Price::new(15_252, 301), + volume: Volume::from_a_in_b_out(1, 51), + liquidity: Liquidity::new(51, 1), shares_issuance: Some(10_u128), updated_at: 6, }; @@ -712,7 +710,7 @@ fn calculate_current_from_outdated_should_incorporate_longer_time_deltas() { volume: Volume::from_a_in_b_out(1, 8_000), liquidity: Liquidity::new(8_000, 1), shares_issuance: Some(10_u128), - updated_at: 1_000, + updated_at: 3_000, }; let next_oracle = start_oracle .calculate_current_from_outdated(period, &next_value) @@ -794,7 +792,7 @@ fn get_entry_works() { let expected_ten_min = AggregatedEntry { price: Price::new(2_000, 1_000), - volume: Volume::from_a_in_b_out(141, 70), // volume oracle gets updated towards zero + volume: Volume::from_a_in_b_out(520, 260), // volume oracle gets updated towards zero liquidity: Liquidity::new(2_000, 1_000), shares_issuance: Some(1_000_u128), oracle_age: 98, @@ -803,7 +801,7 @@ fn get_entry_works() { let expected_day = AggregatedEntry { price: Price::new(2_000, 1_000), - volume: Volume::from_a_in_b_out(986, 493), + volume: Volume::from_a_in_b_out(995, 498), liquidity: Liquidity::new(2_000, 1_000), shares_issuance: Some(1_000_u128), oracle_age: 98, @@ -812,7 +810,7 @@ fn get_entry_works() { let expected_week = AggregatedEntry { price: Price::new(2_000, 1_000), - volume: Volume::from_a_in_b_out(998, 499), + volume: Volume::from_a_in_b_out(999, 500), liquidity: Liquidity::new(2_000, 1_000), shares_issuance: Some(1_000_u128), oracle_age: 98, @@ -872,13 +870,13 @@ fn get_price_returns_updated_price() { ); assert_price_approx_eq!( EmaOracle::get_price(HDX, DOT, Day, SOURCE).unwrap().0, - Price::new(6_246_761_041_102_896_u128, 10_000_000_000), + Price::new(8_147_079_718_630_222_u128, 10_000_000_000), tolerance, "Day Oracle should converge somewhat." ); assert_price_approx_eq!( EmaOracle::get_price(HDX, DOT, Week, SOURCE).unwrap().0, - Price::new(9_100_156_788_246_781_u128, 10_000_000_000), + Price::new(9_680_010_466_208_035_u128, 10_000_000_000), tolerance, "Week Oracle should converge a little." ); @@ -936,8 +934,8 @@ fn ema_update_should_return_none_if_new_entry_is_older() { fn check_period_smoothing_factors() { use hydra_dx_math::ema::smoothing_from_period; - // We assume a 6 second block time. - let secs_per_block = 6; + // We assume a 2 second block time. + let secs_per_block = 2; let minutes = 60 / secs_per_block; let hours = 60 * minutes; let days = 24 * hours; @@ -946,7 +944,7 @@ fn check_period_smoothing_factors() { println!("Last Block: {} (bits: {})", last_block, last_block.to_bits()); assert_eq!(into_smoothing(LastBlock), last_block); - let short = smoothing_from_period(20); + let short = smoothing_from_period(2 * minutes); println!("Short: {} (bits: {})", short, short.to_bits()); assert_eq!(into_smoothing(Short), short); diff --git a/pallets/ema-oracle/src/types.rs b/pallets/ema-oracle/src/types.rs index d0fe176a99..9eaa6301de 100644 --- a/pallets/ema-oracle/src/types.rs +++ b/pallets/ema-oracle/src/types.rs @@ -235,11 +235,11 @@ where pub fn into_smoothing(period: OraclePeriod) -> Fraction { match period { OraclePeriod::LastBlock => Fraction::from_bits(170141183460469231731687303715884105728), - OraclePeriod::Short => Fraction::from_bits(16203922234330403022065457496750867212), - OraclePeriod::TenMinutes => Fraction::from_bits(3369132345751865974884897103284833777), - OraclePeriod::Hour => Fraction::from_bits(566193622164623067326746434994622648), - OraclePeriod::Day => Fraction::from_bits(23629079016800115510268356880200556), - OraclePeriod::Week => Fraction::from_bits(3375783642235081630771268215908257), + OraclePeriod::Short => Fraction::from_bits(5578399457720302679727452580848659204), + OraclePeriod::TenMinutes => Fraction::from_bits(1130506202395144396888287732331455852), + OraclePeriod::Hour => Fraction::from_bits(188940792293691539957453974143125048), + OraclePeriod::Day => Fraction::from_bits(7876724310107137877905016259618254), + OraclePeriod::Week => Fraction::from_bits(1125268656257546977236763791891456), } } diff --git a/pallets/gigahdx-rewards/Cargo.toml b/pallets/gigahdx-rewards/Cargo.toml index 0c7edd22e8..0654430c9f 100644 --- a/pallets/gigahdx-rewards/Cargo.toml +++ b/pallets/gigahdx-rewards/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-gigahdx-rewards" -version = "1.1.1" +version = "1.2.0" description = "Conviction-voting reward distribution for gigahdx stakers." authors = ["GalacticCouncil"] edition = "2021" diff --git a/pallets/gigahdx-rewards/src/tests/mock.rs b/pallets/gigahdx-rewards/src/tests/mock.rs index cd69ac96ac..59432d703b 100644 --- a/pallets/gigahdx-rewards/src/tests/mock.rs +++ b/pallets/gigahdx-rewards/src/tests/mock.rs @@ -226,6 +226,7 @@ parameter_types! { pub const GigaHdxLockId: LockIdentifier = GIGAHDX_LOCK_ID; pub const GigaHdxMinStake: Balance = ONE; // 1 HDX pub const GigaHdxCooldownPeriod: u64 = 100; + pub const TwoSecBlocksSince: u64 = u32::MAX as u64; pub const GigaHdxMaxPendingUnstakes: u32 = 10; } @@ -239,6 +240,7 @@ impl pallet_gigahdx::Config for Test { type LockId = GigaHdxLockId; type MinStake = GigaHdxMinStake; type CooldownPeriod = GigaHdxCooldownPeriod; + type TwoSecBlocksSince = TwoSecBlocksSince; type MaxPendingUnstakes = GigaHdxMaxPendingUnstakes; type ExternalClaims = TestExternalClaims; type LegacyStaking = (); diff --git a/pallets/gigahdx/Cargo.toml b/pallets/gigahdx/Cargo.toml index 6d6a8250d7..889b2be91e 100644 --- a/pallets/gigahdx/Cargo.toml +++ b/pallets/gigahdx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-gigahdx" -version = "1.2.0" +version = "1.3.0" description = "Liquid-staking primitive on top of an EVM money market." authors = ["GalacticCouncil"] edition = "2021" diff --git a/pallets/gigahdx/src/lib.rs b/pallets/gigahdx/src/lib.rs index 5beea1b955..c914f64f8e 100644 --- a/pallets/gigahdx/src/lib.rs +++ b/pallets/gigahdx/src/lib.rs @@ -80,7 +80,7 @@ pub mod pallet { use codec::{Decode, DecodeWithMemTracking, Encode, MaxEncodedLen}; use frame_support::pallet_prelude::*; use frame_support::sp_runtime::helpers_128bit::multiply_by_rational_with_rounding; - use frame_support::sp_runtime::traits::{AccountIdConversion, CheckedAdd}; + use frame_support::sp_runtime::traits::{AccountIdConversion, CheckedAdd, SaturatedConversion}; use frame_support::sp_runtime::{ArithmeticError, Rounding}; use frame_support::traits::fungibles::Mutate as FungiblesMutate; use frame_support::traits::tokens::{Fortitude, Precision, Preservation}; @@ -184,6 +184,9 @@ pub mod pallet { #[pallet::constant] type CooldownPeriod: Get>; + /// Block at which the runtime switched from 6-second to 2-second blocks. + type TwoSecBlocksSince: Get>; + /// Maximum number of concurrent pending-unstake positions per account. #[pallet::constant] type MaxPendingUnstakes: Get; @@ -472,9 +475,7 @@ pub mod pallet { let who = ensure_signed(origin)?; let entry = PendingUnstakes::::get(&who, position_id).ok_or(Error::::PendingUnstakeNotFound)?; - let expires_at = position_id - .checked_add(&T::CooldownPeriod::get()) - .ok_or(Error::::Overflow)?; + let expires_at = Self::cooldown_expires_at(position_id)?; ensure!( frame_system::Pallet::::block_number() >= expires_at, Error::::CooldownNotElapsed, @@ -739,7 +740,7 @@ pub mod pallet { }; let principal_consumed = stake.hdx.saturating_sub(new_hdx); - let expires_at = now.checked_add(&T::CooldownPeriod::get()).ok_or(Error::::Overflow)?; + let expires_at = Self::cooldown_expires_at(now)?; PendingUnstakes::::mutate(who, now, |maybe| { let entry = maybe.get_or_insert(PendingUnstake { amount: 0 }); @@ -771,6 +772,37 @@ pub mod pallet { } impl Pallet { + /// Expiry block for a pending unstake position keyed by its originating block. + /// Positions created before the 2s switch preserve their remaining wall-clock cooldown. + pub fn cooldown_expires_at(unstaked_at: BlockNumberFor) -> Result, Error> { + let switch_block = T::TwoSecBlocksSince::get(); + let cooldown = T::CooldownPeriod::get(); + + if switch_block == u32::MAX.into() || unstaked_at >= switch_block { + return unstaked_at.checked_add(&cooldown).ok_or(Error::::Overflow); + } + + let created_at: u128 = unstaked_at.saturated_into(); + let switch: u128 = switch_block.saturated_into(); + // Runtime cooldown is now expressed in 2s blocks; pre-switch positions were created with 6s blocks. + let old_cooldown: u128 = cooldown.saturated_into::() / 3; + let old_expires_at = created_at.checked_add(old_cooldown).ok_or(Error::::Overflow)?; + + let expires_at = if old_expires_at <= switch { + old_expires_at + } else { + let remaining_at_switch = old_expires_at.checked_sub(switch).ok_or(Error::::Overflow)?; + switch + .checked_add(remaining_at_switch.checked_mul(3).ok_or(Error::::Overflow)?) + .ok_or(Error::::Overflow)? + }; + + let converted: BlockNumberFor = expires_at.saturated_into(); + let roundtrip: u128 = converted.saturated_into(); + ensure!(roundtrip == expires_at, Error::::Overflow); + Ok(converted) + } + /// Admission gate shared by `giga_stake` and `migrate`. /// /// Enforces the `MinStake` floor, the strict no-overlapping-lock policy diff --git a/pallets/gigahdx/src/tests/mock.rs b/pallets/gigahdx/src/tests/mock.rs index 6359c3bb8f..73894c1c1f 100644 --- a/pallets/gigahdx/src/tests/mock.rs +++ b/pallets/gigahdx/src/tests/mock.rs @@ -273,6 +273,7 @@ parameter_types! { pub const GigaHdxLockId: LockIdentifier = GIGAHDX_LOCK_ID; pub const GigaHdxMinStake: Balance = ONE; // 1 HDX pub const GigaHdxCooldownPeriod: u64 = 100; // 100 blocks + pub static TwoSecBlocksSince: u64 = u32::MAX as u64; pub const GigaHdxMaxPendingUnstakes: u32 = 10; } @@ -286,6 +287,7 @@ impl pallet_gigahdx::Config for Test { type LockId = GigaHdxLockId; type MinStake = GigaHdxMinStake; type CooldownPeriod = GigaHdxCooldownPeriod; + type TwoSecBlocksSince = TwoSecBlocksSince; type MaxPendingUnstakes = GigaHdxMaxPendingUnstakes; type ExternalClaims = TestExternalClaims; type LegacyStaking = TestLegacyStaking; @@ -317,7 +319,7 @@ pub fn only_pending(who: AccountId) -> PendingView { PendingView { id, amount: p.amount, - expires_at: id + GigaHdxCooldownPeriod::get(), + expires_at: GigaHdx::cooldown_expires_at(id).expect("cooldown expiry should fit"), } } @@ -372,6 +374,7 @@ impl ExtBuilder { TestExternalClaims::set(0); TestVotingCommitment::set(0); TestLegacyStaking::reset(); + TwoSecBlocksSince::set(u32::MAX as u64); System::set_block_number(1); }); ext diff --git a/pallets/gigahdx/src/tests/mod.rs b/pallets/gigahdx/src/tests/mod.rs index 50348bd3d0..b05a028632 100644 --- a/pallets/gigahdx/src/tests/mod.rs +++ b/pallets/gigahdx/src/tests/mod.rs @@ -5,7 +5,7 @@ mod do_stake; mod freeze; mod invariants; mod migrate; -mod mock; +pub(crate) mod mock; mod multi_positions; mod realize_yield; mod seize; diff --git a/pallets/gigahdx/src/tests/unlock.rs b/pallets/gigahdx/src/tests/unlock.rs index da660a8869..5c3a0873e0 100644 --- a/pallets/gigahdx/src/tests/unlock.rs +++ b/pallets/gigahdx/src/tests/unlock.rs @@ -125,6 +125,71 @@ fn unlock_should_fail_when_cooldown_not_elapsed() { }); } +#[test] +fn unlock_should_preserve_remaining_cooldown_when_position_was_created_before_2s_switch() { + ExtBuilder::default().build().execute_with(|| { + System::set_block_number(10); + stake_alice_100(); + assert_ok!(GigaHdx::giga_unstake(RawOrigin::Signed(ALICE).into(), 100 * ONE)); + TwoSecBlocksSince::set(20); + + // Mock cooldown is 100 new blocks, so the old 6s cooldown is 33 blocks. + // At the switch block 23 old blocks remain, which become 69 blocks at 2s. + assert_eq!(GigaHdx::cooldown_expires_at(10).unwrap(), 89); + + System::set_block_number(88); + assert_noop!( + GigaHdx::unlock(RawOrigin::Signed(ALICE).into(), 10), + Error::::CooldownNotElapsed + ); + + System::set_block_number(89); + assert_ok!(GigaHdx::unlock(RawOrigin::Signed(ALICE).into(), 10)); + assert_eq!(lock_amount(ALICE, GIGAHDX_LOCK_ID), 0); + }); +} + +#[test] +fn unlock_should_use_old_deadline_when_pre_switch_position_already_matured_at_switch() { + ExtBuilder::default().build().execute_with(|| { + System::set_block_number(10); + stake_alice_100(); + assert_ok!(GigaHdx::giga_unstake(RawOrigin::Signed(ALICE).into(), 100 * ONE)); + TwoSecBlocksSince::set(50); + + assert_eq!(GigaHdx::cooldown_expires_at(10).unwrap(), 43); + + System::set_block_number(49); + assert_ok!(GigaHdx::unlock(RawOrigin::Signed(ALICE).into(), 10)); + assert_eq!(lock_amount(ALICE, GIGAHDX_LOCK_ID), 0); + }); +} + +#[test] +fn unlock_should_use_new_cooldown_when_position_was_created_after_2s_switch() { + ExtBuilder::default().build().execute_with(|| { + TwoSecBlocksSince::set(20); + System::set_block_number(30); + stake_alice_100(); + assert_ok!(GigaHdx::giga_unstake(RawOrigin::Signed(ALICE).into(), 100 * ONE)); + + assert_eq!( + GigaHdx::cooldown_expires_at(30).unwrap(), + 30 + GigaHdxCooldownPeriod::get() + ); + + System::set_block_number(30 + GigaHdxCooldownPeriod::get() - 1); + assert_noop!( + GigaHdx::unlock(RawOrigin::Signed(ALICE).into(), 30), + Error::::CooldownNotElapsed + ); + + System::set_block_number(30 + GigaHdxCooldownPeriod::get()); + assert_ok!(GigaHdx::unlock(RawOrigin::Signed(ALICE).into(), 30)); + assert_eq!(lock_amount(ALICE, GIGAHDX_LOCK_ID), 0); + }); +} + #[test] fn unlock_should_release_lock_when_cooldown_elapsed() { ExtBuilder::default().build().execute_with(|| { diff --git a/pallets/lbp/Cargo.toml b/pallets/lbp/Cargo.toml index ac26e80037..499f92ed1d 100644 --- a/pallets/lbp/Cargo.toml +++ b/pallets/lbp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-lbp" -version = "4.13.0" +version = "4.14.0" description = "HydraDX Liquidity Bootstrapping Pool Pallet" authors = ["GalacticCouncil"] edition = "2021" diff --git a/pallets/lbp/src/lib.rs b/pallets/lbp/src/lib.rs index 5dc5a340e2..697bff68f0 100644 --- a/pallets/lbp/src/lib.rs +++ b/pallets/lbp/src/lib.rs @@ -86,7 +86,7 @@ pub enum WeightCurveType { /// Max weight corresponds to 100% pub const MAX_WEIGHT: LBPWeight = 100_000_000; -/// Max sale duration is 14 days, assuming 6 sec blocks +/// Max sale duration is 14 days, assuming 6 sec blocks (relay chain) pub const MAX_SALE_DURATION: u32 = (60 * 60 * 24 / 6) * 14; /// Lock Identifier for the collected fees diff --git a/pallets/parameters/Cargo.toml b/pallets/parameters/Cargo.toml index 542cd3db38..db6e74a4bf 100644 --- a/pallets/parameters/Cargo.toml +++ b/pallets/parameters/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-parameters" -version = "1.2.0" +version = "1.3.0" authors = ['GalacticCouncil'] edition = "2021" license = "Apache-2.0" @@ -30,6 +30,8 @@ sp-io = { workspace = true } default = ['std'] std = [ 'codec/std', + 'frame-support/std', + 'frame-system/std', 'scale-info/std', 'sp-runtime/std', 'sp-core/std', diff --git a/pallets/parameters/src/lib.rs b/pallets/parameters/src/lib.rs index 2d69d9490a..ac934f4114 100644 --- a/pallets/parameters/src/lib.rs +++ b/pallets/parameters/src/lib.rs @@ -41,6 +41,7 @@ use frame_support::pallet_prelude::*; #[frame_support::pallet] pub mod pallet { use super::*; + use frame_system::pallet_prelude::BlockNumberFor; #[pallet::config] pub trait Config: frame_system::Config {} @@ -56,6 +57,16 @@ pub mod pallet { #[pallet::getter(fn relay_parent_offset_override)] pub type RelayParentOffsetOverride = StorageValue<_, bool, ValueQuery>; + #[pallet::type_value] + pub fn DefaultTwoSecBlocksSince() -> BlockNumberFor { + u32::MAX.into() + } + + #[pallet::storage] + #[pallet::getter(fn two_sec_blocks_since)] + /// Block number at which the runtime switched from 6-second to 2-second blocks. + pub type TwoSecBlocksSince = StorageValue<_, BlockNumberFor, ValueQuery, DefaultTwoSecBlocksSince>; + #[pallet::genesis_config] pub struct GenesisConfig { pub is_testnet: bool, diff --git a/pallets/staking/Cargo.toml b/pallets/staking/Cargo.toml index 4cbca65a17..c7729f81d1 100644 --- a/pallets/staking/Cargo.toml +++ b/pallets/staking/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-staking" -version = "5.1.0" +version = "5.2.0" authors = ['GalacticCouncil'] edition = "2021" license = "Apache-2.0" diff --git a/pallets/staking/src/lib.rs b/pallets/staking/src/lib.rs index 4499a1601e..55f1957ae3 100644 --- a/pallets/staking/src/lib.rs +++ b/pallets/staking/src/lib.rs @@ -99,6 +99,9 @@ pub mod pallet { #[pallet::constant] type PeriodLength: Get>; + /// Block at which the runtime switched from 6-second to 2-second blocks. + type TwoSecBlocksSince: Get>; + /// Pallet id. #[pallet::constant] type PalletId: Get; @@ -1085,6 +1088,7 @@ impl Pallet { NonZeroU128::try_from(T::PeriodLength::get().saturated_into::()).ok()?, block.saturated_into(), NonZeroU128::try_from(Self::six_sec_blocks_since().saturated_into::()).ok()?, + NonZeroU128::try_from(T::TwoSecBlocksSince::get().saturated_into::()).ok()?, )) } diff --git a/pallets/staking/src/migrations.rs b/pallets/staking/src/migrations.rs index 086064a49a..53f61764db 100644 --- a/pallets/staking/src/migrations.rs +++ b/pallets/staking/src/migrations.rs @@ -22,11 +22,12 @@ impl OnRuntimeUpgrade for SetSixSecBlocksSince { } } -#[cfg(all(feature = "try-runtime", test))] +#[cfg(test)] mod test { use super::*; use crate::migrations::SetSixSecBlocksSince; use crate::tests::mock::{set_block_number, ExtBuilder, Staking, Test}; + use crate::SixSecBlocksSince; use frame_system::pallet_prelude::BlockNumberFor; #[test] @@ -34,6 +35,7 @@ mod test { ExtBuilder::default().build().execute_with(|| { // Arrange set_block_number(500); + SixSecBlocksSince::::put(u32::MAX as BlockNumberFor); // Act SetSixSecBlocksSince::::on_runtime_upgrade(); @@ -48,6 +50,7 @@ mod test { ExtBuilder::default().build().execute_with(|| { // Arrange set_block_number(500); + SixSecBlocksSince::::put(u32::MAX as BlockNumberFor); SetSixSecBlocksSince::::on_runtime_upgrade(); // Act diff --git a/pallets/staking/src/tests/mock.rs b/pallets/staking/src/tests/mock.rs index 7c103afec7..c92d116061 100644 --- a/pallets/staking/src/tests/mock.rs +++ b/pallets/staking/src/tests/mock.rs @@ -195,6 +195,7 @@ parameter_types! { pub const StakingPalletId: PalletId = PalletId(*b"test_stk"); pub const MinStake: Balance = 10 * ONE; pub const PeriodLength: BlockNumber = 10_000; + pub static TwoSecBlocksSince: BlockNumber = u32::MAX as BlockNumber; pub const TimePointsW:Permill = Permill::from_percent(80); pub const ActionPointsW: Perbill = Perbill::from_percent(20); pub const TimePointsPerPeriod: u8 = 2; @@ -209,6 +210,7 @@ impl pallet_staking::Config for Test { type AssetId = AssetId; type Currency = Tokens; type PeriodLength = PeriodLength; + type TwoSecBlocksSince = TwoSecBlocksSince; type PalletId = StakingPalletId; type NativeAssetId = ConstU32; type MinStake = MinStake; @@ -367,6 +369,7 @@ impl ExtBuilder { let mut r: sp_io::TestExternalities = t.into(); r.execute_with(|| { TestExternalClaims::reset(); + TwoSecBlocksSince::set(u32::MAX as BlockNumber); pallet_staking::SixSecBlocksSince::::put(1_000_000_000); if self.initial_block_number.is_zero() { diff --git a/pallets/staking/src/tests/tests.rs b/pallets/staking/src/tests/tests.rs index 46c478d8e1..c9fd9eea50 100644 --- a/pallets/staking/src/tests/tests.rs +++ b/pallets/staking/src/tests/tests.rs @@ -13,6 +13,20 @@ use pallet_conviction_voting::VotingHooks; use pretty_assertions::assert_eq; //NOTE: Referendums with even indexes are finished. +#[test] +fn staking_period_number_should_account_for_two_sec_transition() { + ExtBuilder::default().build().execute_with(|| { + SixSecBlocksSince::::put(100); + TwoSecBlocksSince::set(200); + + assert_eq!(Staking::get_period_number(100), Some(0)); + assert_eq!(Staking::get_period_number(200), Some(0)); + assert_eq!(Staking::get_period_number(59_299), Some(0)); + assert_eq!(Staking::get_period_number(59_300), Some(1)); + assert_eq!(Staking::get_period_number(119_300), Some(2)); + }); +} + #[test] fn process_votes_should_work_when_referendum_is_finished() { ExtBuilder::default() diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index 3cbd796b03..4b5aa3d67f 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "primitives" -version = "6.4.0" +version = "6.4.1" authors = ["GalacticCouncil"] edition = "2021" repository = "https://github.com/galacticcouncil/HydraDX-node" diff --git a/primitives/src/constants.rs b/primitives/src/constants.rs index 6fea78d802..cf67a36dbf 100644 --- a/primitives/src/constants.rs +++ b/primitives/src/constants.rs @@ -44,8 +44,12 @@ pub mod time { /// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked /// up by `pallet_aura` to implement `fn slot_duration()`. /// Change this to adjust the block time. - pub const MILLISECS_PER_BLOCK: u64 = 6_000; - pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; + pub const MILLISECS_PER_BLOCK: u64 = 2_000; + + // The slot duration determines the length of each author's turn and is decoupled from the block + // production interval. During their slot, authors are allowed to produce multiple blocks. The slot + // duration is required to be at least 6s, the same as on the relay chain. + pub const SLOT_DURATION: u64 = 6_000; // Time is measured by number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); @@ -73,9 +77,9 @@ pub mod chain { pub const CORE_ASSET_ID: AssetId = 0; pub const HOLLAR_ASSET_ID: AssetId = 222; - /// We allow for 2 seconds of compute with a 6 seconds average block. + /// We allow for 1.5 seconds of compute with a 2 seconds average block. pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( - WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2), + WEIGHT_REF_TIME_PER_SECOND.saturating_mul(3).saturating_div(2), polkadot_primitives::v8::MAX_POV_SIZE as u64, ); @@ -91,7 +95,7 @@ pub mod chain { pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = (3 + DEFAULT_RELAY_PARENT_OFFSET) * BLOCK_PROCESSING_VELOCITY; /// How many parachain blocks are processed by the relay chain per parent. Limits the number of /// blocks authored per slot. - pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; + pub const BLOCK_PROCESSING_VELOCITY: u32 = 3; /// Relay chain slot duration, in milliseconds. pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; } @@ -107,10 +111,10 @@ mod tests { assert_eq!(DAYS / 24, HOURS); // 60 minuts in an hour assert_eq!(HOURS / 60, MINUTES); - // 1 minute = 60s = 10 blocks 6s each - assert_eq!(MINUTES, 10); - // 6s per block - assert_eq!(SECS_PER_BLOCK, 6); + // 1 minute = 60s = 30 blocks 2s each + assert_eq!(MINUTES, 30); + // 2s per block + assert_eq!(SECS_PER_BLOCK, 2); // 1s = 1000ms assert_eq!(MILLISECS_PER_BLOCK / 1000, SECS_PER_BLOCK); // Extra check for epoch time because changing it bricks the block production and requires regenesis diff --git a/runtime/hydradx/Cargo.toml b/runtime/hydradx/Cargo.toml index cccc62b83a..0027744f77 100644 --- a/runtime/hydradx/Cargo.toml +++ b/runtime/hydradx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hydradx-runtime" -version = "439.0.0" +version = "440.0.0" authors = ["GalacticCouncil"] edition = "2021" license = "Apache 2.0" diff --git a/runtime/hydradx/src/assets.rs b/runtime/hydradx/src/assets.rs index dc61bc3f9d..796db85cea 100644 --- a/runtime/hydradx/src/assets.rs +++ b/runtime/hydradx/src/assets.rs @@ -620,8 +620,8 @@ impl Get for InTradeContext { } parameter_types! { - pub const DefaultMaxNetTradeVolumeLimitPerBlock: (u32, u32) = (5_000, 10_000); // 50% - pub const DefaultMaxLiquidityLimitPerBlock: Option<(u32, u32)> = Some((500, 10_000)); // 5% + pub const DefaultMaxNetTradeVolumeLimitPerBlock: (u32, u32) = (1_670, 10_000); // 17% + pub const DefaultMaxLiquidityLimitPerBlock: Option<(u32, u32)> = Some((167, 10_000)); // 1.7% } impl pallet_circuit_breaker::Config for Runtime { @@ -672,7 +672,7 @@ where impl pallet_ema_oracle::Config for Runtime { type AuthorityOrigin = EitherOf, EconomicParameters>; - /// The definition of the oracle time periods currently assumes a 6 second block time. + /// The definition of the oracle time periods currently assumes a 2 second block time. /// We use the parachain blocks anyway, because we want certain guarantees over how many blocks correspond /// to which smoothing factor. type BlockNumberProvider = System; @@ -925,7 +925,7 @@ parameter_types! { pub MaxSchedulesPerBlock: u32 = 6; pub MaxPriceDifference: Permill = Permill::from_rational(15u32, 1000u32); pub MaxConfigurablePriceDifference: Permill = Permill::from_percent(5); - pub MinimalPeriod: u32 = 5; + pub MinimalPeriod: u32 = 15; pub BumpChance: Percent = Percent::from_percent(17); pub NamedReserveId: NamedReserveIdentifier = *b"dcaorder"; pub MaxNumberOfRetriesOnError: u8 = 3; @@ -1377,14 +1377,14 @@ parameter_types! { pub AssetFeeParams: FeeParams = FeeParams{ min_fee: Permill::from_rational(25u32,10000u32), // 0.25% max_fee: Permill::from_rational(5u32,100u32), // 5% - decay: FixedU128::from_rational(1,20000), // 0.005% + decay: FixedU128::from_rational(1,60000), // 0.00167% amplification: FixedU128::from(2), // 2 }; pub ProtocolFeeParams: FeeParams = FeeParams{ min_fee: Permill::from_rational(5u32,10000u32), // 0.05% max_fee: Permill::from_rational(25u32,10000u32), // 0.25% - decay: FixedU128::from_rational(5,200000), // 0.0025% + decay: FixedU128::from_rational(5,600000), // 0.00083% amplification: FixedU128::one(), // 1 }; @@ -1622,7 +1622,7 @@ impl pallet_bonds::Config for Runtime { parameter_types! { pub const StakingPalletId: PalletId = PalletId(*b"staking#"); pub const MinStake: Balance = 1_000 * UNITS; - pub const PeriodLength: BlockNumber = 7_200; // 1d based on 12s blocks, pallet accounts for migration to 6s blocks + pub const PeriodLength: BlockNumber = 7_200; // 1d based on 12s blocks, pallet accounts for migrations to 6s / 2s blocks pub const TimePointsW:Permill = Permill::from_percent(100); pub const ActionPointsW: Perbill = Perbill::from_percent(20); pub const TimePointsPerPeriod: u8 = 1; @@ -1633,6 +1633,14 @@ parameter_types! { pub struct PointsPerAction; +pub struct TwoSecBlocksSinceProvider; + +impl Get for TwoSecBlocksSinceProvider { + fn get() -> BlockNumber { + pallet_parameters::TwoSecBlocksSince::::get() + } +} + impl GetByKey for PointsPerAction { fn get(k: &Action) -> u32 { match k { @@ -1654,6 +1662,7 @@ impl pallet_staking::Config for Runtime { type AssetId = AssetId; type Currency = Currencies; type PeriodLength = PeriodLength; + type TwoSecBlocksSince = TwoSecBlocksSinceProvider; type PalletId = StakingPalletId; type NativeAssetId = NativeAssetId; type MinStake = MinStake; @@ -1926,6 +1935,7 @@ impl pallet_gigahdx::Config for Runtime { type LockId = GigaHdxLockId; type MinStake = GigaHdxMinStake; type CooldownPeriod = GigaHdxCooldownPeriod; + type TwoSecBlocksSince = TwoSecBlocksSinceProvider; type MaxPendingUnstakes = GigaHdxMaxPendingUnstakes; type ExternalClaims = crate::gigahdx::HdxExternalClaims; type LegacyStaking = crate::gigahdx::LegacyStakingMigrator; diff --git a/runtime/hydradx/src/benchmarking/dca.rs b/runtime/hydradx/src/benchmarking/dca.rs index 0f563650e5..b6ea1b9eec 100644 --- a/runtime/hydradx/src/benchmarking/dca.rs +++ b/runtime/hydradx/src/benchmarking/dca.rs @@ -17,7 +17,8 @@ #![allow(unused_assignments)] // At test `on_initialize_with_empty_block` it does not recognize the assignment in the Act block use crate::{ - AccountId, AssetId, Balance, BlockNumber, Currencies, MaxSchedulesPerBlock, NamedReserveId, Runtime, DCA, XYK, + AccountId, AssetId, Balance, BlockNumber, Currencies, MaxSchedulesPerBlock, MinimalPeriod, NamedReserveId, Runtime, + DCA, XYK, }; use pallet_dca::ScheduleExtraGas; @@ -56,6 +57,10 @@ pub const DELAY_AFTER_LAST_RADIUS: u32 = 1854; pub const RETRY_TO_SEARCH_FOR_FREE_BLOCK: u32 = 10; +fn minimum_schedule_period() -> BlockNumber { + MinimalPeriod::get() +} + fn schedule_fake( owner: AccountId, asset_in: AssetId, @@ -64,7 +69,7 @@ fn schedule_fake( ) -> Schedule { let schedule1: Schedule = Schedule { owner, - period: 5u32, + period: minimum_schedule_period(), total_amount: 1100 * ONE, max_retries: None, stability_threshold: None, @@ -96,7 +101,7 @@ fn schedule_buy_fake( ) -> Schedule { let schedule1: Schedule = Schedule { owner, - period: 5u32, + period: minimum_schedule_period(), total_amount: 2000 * ONE, max_retries: None, stability_threshold: None, @@ -124,7 +129,7 @@ fn schedule_sell_fake( ) -> Schedule { let schedule1: Schedule = Schedule { owner, - period: 5u32, + period: minimum_schedule_period(), total_amount: 2000 * ONE, max_retries: None, stability_threshold: None, @@ -232,7 +237,7 @@ runtime_benchmarks! { //Make sure that we have other schedules planned in the block where the benchmark schedule is planned, leading to worst case //We leave only one slot - let schedule_period = 5; + let schedule_period = minimum_schedule_period(); let next_block_to_replan = execution_block + schedule_period; let number_of_all_schedules = MaxSchedulesPerBlock::get() + MaxSchedulesPerBlock::get() * RETRY_TO_SEARCH_FOR_FREE_BLOCK - 1; for i in 0..number_of_all_schedules { @@ -277,7 +282,7 @@ runtime_benchmarks! { //Make sure that we have other schedules planned in the block where the benchmark schedule is planned, leading to worst case //We leave only one slot - let schedule_period = 5; + let schedule_period = minimum_schedule_period(); let next_block_to_replan = execution_block + schedule_period; let number_of_all_schedules = MaxSchedulesPerBlock::get() + MaxSchedulesPerBlock::get() * RETRY_TO_SEARCH_FOR_FREE_BLOCK - 1; for i in 0..number_of_all_schedules { @@ -321,7 +326,7 @@ runtime_benchmarks! { //Make sure that we have other schedules planned in the block where the benchmark schedule is planned, leading to worst case //We leave only one slot - let schedule_period = 5; + let schedule_period = minimum_schedule_period(); let next_block_to_replan = execution_block + schedule_period; let number_of_all_schedules = MaxSchedulesPerBlock::get() + MaxSchedulesPerBlock::get() * RETRY_TO_SEARCH_FOR_FREE_BLOCK - 1; for i in 0..number_of_all_schedules { @@ -363,7 +368,7 @@ runtime_benchmarks! { //Make sure that we have other schedules planned in the block where the benchmark schedule is planned, leading to worst case //We leave only one slot - let schedule_period = 5; + let schedule_period = minimum_schedule_period(); let next_block_to_replan = execution_block + schedule_period; let number_of_all_schedules = MaxSchedulesPerBlock::get() + MaxSchedulesPerBlock::get() * RETRY_TO_SEARCH_FOR_FREE_BLOCK - 1; for i in 0..number_of_all_schedules { @@ -419,7 +424,7 @@ runtime_benchmarks! { create_xyk_pool(asset_8, asset_9); create_xyk_pool(asset_9, HDX); - set_period(10); + set_period(minimum_schedule_period()); let route = vec![ Trade { @@ -477,7 +482,7 @@ runtime_benchmarks! { let schedule1: Schedule = Schedule { owner:caller.clone() , - period: 5u32, + period: minimum_schedule_period(), total_amount: 1100 * ONE, max_retries: None, stability_threshold: None, diff --git a/runtime/hydradx/src/benchmarking/dynamic_evm_fee.rs b/runtime/hydradx/src/benchmarking/dynamic_evm_fee.rs index 786fd21638..0a6e7dcc9b 100644 --- a/runtime/hydradx/src/benchmarking/dynamic_evm_fee.rs +++ b/runtime/hydradx/src/benchmarking/dynamic_evm_fee.rs @@ -66,7 +66,7 @@ runtime_benchmarks! { Omnipool::add_token(RawOrigin::Root.into(), token_id, token_price, Permill::from_percent(100), owner)?; let seller: AccountId = account("seller", 3, 1); update_balance(0, &seller, 500_000_000_000_000_u128); - Omnipool::sell(RawOrigin::Signed(seller).into(), 0, token_id, 10000000000000, 0)?; + Omnipool::sell(RawOrigin::Signed(seller).into(), 0, token_id, 10_000_000_000_000 / 3, 0)?; set_period(10); let base_fee_per_gas = >::get(); diff --git a/runtime/hydradx/src/benchmarking/fee_processor.rs b/runtime/hydradx/src/benchmarking/fee_processor.rs index bf2bda9f4c..6ffad43f09 100644 --- a/runtime/hydradx/src/benchmarking/fee_processor.rs +++ b/runtime/hydradx/src/benchmarking/fee_processor.rs @@ -78,9 +78,10 @@ runtime_benchmarks! { // fee-processor pot (the non-HDX path), which is what `convert` consumes. let trader: AccountId = account("trader", 0, 0); fund(trader.clone(), HDX, 100_000 * ONE)?; - Omnipool::sell(RawOrigin::Signed(trader.clone()).into(), HDX, DAI, 100 * ONE, 0)?; + let oracle_trade_amount = 100 * ONE / 3; + Omnipool::sell(RawOrigin::Signed(trader.clone()).into(), HDX, DAI, oracle_trade_amount, 0)?; set_period(24); - Omnipool::sell(RawOrigin::Signed(trader.clone()).into(), HDX, DAI, 100 * ONE, 0)?; + Omnipool::sell(RawOrigin::Signed(trader.clone()).into(), HDX, DAI, oracle_trade_amount, 0)?; let caller: AccountId = account("caller", 1, 0); fund(caller.clone(), HDX, seed)?; diff --git a/runtime/hydradx/src/benchmarking/omnipool.rs b/runtime/hydradx/src/benchmarking/omnipool.rs index 0ea115be54..3edf0e7d94 100644 --- a/runtime/hydradx/src/benchmarking/omnipool.rs +++ b/runtime/hydradx/src/benchmarking/omnipool.rs @@ -211,11 +211,9 @@ runtime_benchmarks! { // Add the token to the pool Omnipool::add_token(RawOrigin::Root.into(), token_id, token_price, Permill::from_percent(100), owner)?; - // LP balance must stay within the circuit-breaker's per-block add-liquidity limit - // (5% of pool reserve). Pool reserve = token_amount = 200_000_000_000_000, - // 5% = 10_000_000_000_000. We use 5_000_000_000_000 (~2.5% of pool). let lp_provider: AccountId = account("provider", 1, 1); - let lp_total = 5_000_000_000_000u128; + // Preserve the previous half-limit fixture after the per-block limit was divided by three. + let lp_total = 5_000_000_000_000u128 / 3; update_balance(token_id, &lp_provider, lp_total); let current_position_id = Omnipool::next_position_id(); diff --git a/runtime/hydradx/src/evm/evm_fee.rs b/runtime/hydradx/src/evm/evm_fee.rs index 64e56bfb12..3ea1dc4039 100644 --- a/runtime/hydradx/src/evm/evm_fee.rs +++ b/runtime/hydradx/src/evm/evm_fee.rs @@ -292,8 +292,18 @@ where let refund_imbalance = if let Ok(amount) = result { // Ensure that we minted all amount, in case of partial refund for some reason, - // refund the difference back to treasury - debug_assert_eq!(amount, refund_amount); + // refund the difference back to treasury. + // Bound ERC-20s (aTokens) rebase: the observed balance delta can be a wei or + // two off the requested transfer amount, so only exactness of other assets is + // asserted. Gated so the registry read is compiled out of production builds. + #[cfg(debug_assertions)] + if ::contract_address(paid.asset_id) + .is_some() + { + debug_assert!(refund_amount.abs_diff(amount) <= 2); + } else { + debug_assert_eq!(amount, refund_amount); + } refund_amount.saturating_sub(amount) } else { // If error, we refund the whole amount back to treasury @@ -338,11 +348,27 @@ impl OnUnbalanced> for DepositEvmFeeToTreasury { // this is called from pallet_evm for Ethereum-based transactions // (technically, it calls on_unbalanced, which calls this when non-zero) fn on_nonzero_unbalanced(payment_info: EvmPaymentInfo) { - let result = DepositAll::::deposit_fee( - &TreasuryAccount::get(), - payment_info.asset_id, - payment_info.amount, - ); + let treasury = TreasuryAccount::get(); + let mut result = + DepositAll::::deposit_fee(&treasury, payment_info.asset_id, payment_info.amount); + if result.is_err() { + // Bound ERC-20 (aToken) settlements draw on the holding pot, and rebasing + // rounding can leave the pot a wei or two short of the computed amount. + // Deliver what the pot actually holds instead of stranding the whole fee on it. + if let Some(contract) = + ::contract_address(payment_info.asset_id) + { + let pot = as hydradx_traits::evm::ERC20>::balance_of( + hydradx_traits::evm::CallContext::new_view(contract), + crate::evm::HOLDING_ADDRESS, + ); + result = DepositAll::::deposit_fee( + &treasury, + payment_info.asset_id, + payment_info.amount.min(pot), + ); + } + } debug_assert_eq!(result, Ok(())); } } diff --git a/runtime/hydradx/src/lib.rs b/runtime/hydradx/src/lib.rs index ea1678ccc6..2fe06e0707 100644 --- a/runtime/hydradx/src/lib.rs +++ b/runtime/hydradx/src/lib.rs @@ -129,7 +129,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("hydradx"), impl_name: Cow::Borrowed("hydradx"), authoring_version: 1, - spec_version: 439, + spec_version: 440, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/runtime/hydradx/src/migrations/circuit_breaker.rs b/runtime/hydradx/src/migrations/circuit_breaker.rs new file mode 100644 index 0000000000..234bcf93c2 --- /dev/null +++ b/runtime/hydradx/src/migrations/circuit_breaker.rs @@ -0,0 +1,206 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::Encode; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_circuit_breaker::{ + pallet, types::LockdownStatus, AssetLockdownState, LiquidityAddLimitPerAsset, LiquidityRemoveLimitPerAsset, + TradeVolumeLimitPerAsset, +}; +use sp_core::Get; +use sp_runtime::Saturating; +use sp_std::{marker::PhantomData, vec::Vec}; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationCircuitBreaker2sMigrationDone"; +// 30% above the largest map's 3 entries observed on mainnet, rounded up. +const MAX_LIMIT_ENTRIES_PER_MAP: u64 = 4; +// A defensive bound for the per-asset deposit-fuse state checked by try-runtime before release. +const MAX_LOCKDOWN_STATE_ENTRIES: u64 = 100; + +/// Preserves circuit-breaker wall-clock limits and deposit-fuse windows across the 6s to 2s transition. +pub struct MigrateCircuitBreakerTo2sBlocks(PhantomData); + +impl MigrateCircuitBreakerTo2sBlocks { + fn is_done() -> bool { + sp_io::storage::get(MIGRATION_DONE_KEY).is_some() + } + + fn mark_done() { + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + } + + fn scale_limit((numerator, denominator): (u32, u32)) -> (u32, u32) { + (numerator.saturating_div(3).max(1), denominator) + } + + fn scale_future_block( + block: frame_system::pallet_prelude::BlockNumberFor, + current_block: frame_system::pallet_prelude::BlockNumberFor, + ) -> frame_system::pallet_prelude::BlockNumberFor { + if block <= current_block { + block + } else { + current_block.saturating_add(block.saturating_sub(current_block).saturating_mul(3u32.into())) + } + } + + fn scale_past_block( + block: frame_system::pallet_prelude::BlockNumberFor, + current_block: frame_system::pallet_prelude::BlockNumberFor, + ) -> frame_system::pallet_prelude::BlockNumberFor { + if block >= current_block { + block + } else { + // The configured period becomes 3x longer, so the elapsed age must also become 3x longer. + current_block.saturating_sub(current_block.saturating_sub(block).saturating_mul(3u32.into())) + } + } + + fn is_within_limit(len: u64, map: &str) -> bool { + if len <= MAX_LIMIT_ENTRIES_PER_MAP { + true + } else { + log::error!( + "MigrateCircuitBreakerTo2sBlocks skipped because {map:?} has {len:?} entries, cap: {MAX_LIMIT_ENTRIES_PER_MAP:?}", + ); + false + } + } +} + +impl OnRuntimeUpgrade for MigrateCircuitBreakerTo2sBlocks { + fn on_runtime_upgrade() -> Weight { + if Self::is_done() { + log::warn!("MigrateCircuitBreakerTo2sBlocks already executed"); + return T::DbWeight::get().reads(1); + } + + let trade_limits: Vec<_> = TradeVolumeLimitPerAsset::::iter().collect(); + let add_limits: Vec<_> = LiquidityAddLimitPerAsset::::iter().collect(); + let remove_limits: Vec<_> = LiquidityRemoveLimitPerAsset::::iter().collect(); + let lockdown_states: Vec<_> = AssetLockdownState::::iter().collect(); + let trade_limits_len = trade_limits.len(); + let add_limits_len = add_limits.len(); + let remove_limits_len = remove_limits.len(); + let lockdown_states_len = lockdown_states.len(); + + let reads = 1u64 + .saturating_add(trade_limits_len as u64) + .saturating_add(add_limits_len as u64) + .saturating_add(remove_limits_len as u64) + .saturating_add(lockdown_states_len as u64); + + log::info!( + "MigrateCircuitBreakerTo2sBlocks found entries - trade: {trade_limits_len:?}, add liquidity: {add_limits_len:?}, remove liquidity: {remove_limits_len:?}, lockdown states: {lockdown_states_len:?}", + ); + + if !Self::is_within_limit(trade_limits_len as u64, "TradeVolumeLimitPerAsset") + || !Self::is_within_limit(add_limits_len as u64, "LiquidityAddLimitPerAsset") + || !Self::is_within_limit(remove_limits_len as u64, "LiquidityRemoveLimitPerAsset") + || lockdown_states_len as u64 > MAX_LOCKDOWN_STATE_ENTRIES + { + if lockdown_states_len as u64 > MAX_LOCKDOWN_STATE_ENTRIES { + log::error!( + "MigrateCircuitBreakerTo2sBlocks skipped because AssetLockdownState has {lockdown_states_len:?} entries, cap: {MAX_LOCKDOWN_STATE_ENTRIES:?}", + ); + } + return T::DbWeight::get().reads(reads); + } + + let mut writes = 0u64; + let current_block = frame_system::Pallet::::block_number(); + + for (asset, limit) in trade_limits { + TradeVolumeLimitPerAsset::::insert(asset, Self::scale_limit(limit)); + writes.saturating_inc(); + } + + for (asset, limit) in add_limits { + LiquidityAddLimitPerAsset::::insert(asset, limit.map(Self::scale_limit)); + writes.saturating_inc(); + } + + for (asset, limit) in remove_limits { + LiquidityRemoveLimitPerAsset::::insert(asset, limit.map(Self::scale_limit)); + writes.saturating_inc(); + } + + for (asset, state) in lockdown_states { + let state = match state { + LockdownStatus::Locked(until) => LockdownStatus::Locked(Self::scale_future_block(until, current_block)), + LockdownStatus::Unlocked((last_reset_at, issuance)) => { + LockdownStatus::Unlocked((Self::scale_past_block(last_reset_at, current_block), issuance)) + } + }; + AssetLockdownState::::insert(asset, state); + writes.saturating_inc(); + } + + Self::mark_done(); + writes.saturating_inc(); + + log::info!( + "MigrateCircuitBreakerTo2sBlocks migrated trade: {trade_limits_len:?}, add liquidity: {add_limits_len:?}, remove liquidity: {remove_limits_len:?}, lockdown states: {lockdown_states_len:?}", + ); + + T::DbWeight::get().reads_writes(reads, writes) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{AssetId, Balance, Runtime, System}; + + #[test] + fn migration_should_scale_limits_and_lockdown_state_when_moving_to_2s_blocks() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + let limits_asset: AssetId = 1; + let locked_asset: AssetId = 2; + let unlocked_asset: AssetId = 3; + let expired_asset: AssetId = 4; + System::set_block_number(100); + + TradeVolumeLimitPerAsset::::insert(limits_asset, (5_000, 10_000)); + LiquidityAddLimitPerAsset::::insert(limits_asset, Some((500, 10_000))); + LiquidityRemoveLimitPerAsset::::insert(limits_asset, None::<(u32, u32)>); + AssetLockdownState::::insert(locked_asset, LockdownStatus::Locked(110)); + AssetLockdownState::::insert(unlocked_asset, LockdownStatus::Unlocked((90, 1_000 as Balance))); + AssetLockdownState::::insert(expired_asset, LockdownStatus::Locked(90)); + + MigrateCircuitBreakerTo2sBlocks::::on_runtime_upgrade(); + + assert_eq!(TradeVolumeLimitPerAsset::::get(limits_asset), (1_666, 10_000)); + assert_eq!( + LiquidityAddLimitPerAsset::::get(limits_asset), + Some((166, 10_000)) + ); + assert_eq!( + LiquidityRemoveLimitPerAsset::::get(limits_asset), + None::<(u32, u32)> + ); + assert_eq!( + AssetLockdownState::::get(locked_asset), + Some(LockdownStatus::Locked(130)) + ); + assert_eq!( + AssetLockdownState::::get(unlocked_asset), + Some(LockdownStatus::Unlocked((70, 1_000))) + ); + assert_eq!( + AssetLockdownState::::get(expired_asset), + Some(LockdownStatus::Locked(90)) + ); + + MigrateCircuitBreakerTo2sBlocks::::on_runtime_upgrade(); + + assert_eq!(TradeVolumeLimitPerAsset::::get(limits_asset), (1_666, 10_000)); + assert_eq!( + AssetLockdownState::::get(locked_asset), + Some(LockdownStatus::Locked(130)) + ); + }); + } +} diff --git a/runtime/hydradx/src/migrations/conviction_voting.rs b/runtime/hydradx/src/migrations/conviction_voting.rs new file mode 100644 index 0000000000..864dcbce6e --- /dev/null +++ b/runtime/hydradx/src/migrations/conviction_voting.rs @@ -0,0 +1,132 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::Encode; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_conviction_voting::{pallet, BlockNumberFor, PriorLock, VotingFor}; +use sp_core::Get; +use sp_runtime::traits::{BlockNumberProvider, Saturating}; +use sp_std::marker::PhantomData; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationConvictionVoting2sBlockMigrationDone"; +// 30% above the 8,966 voting records observed on mainnet, rounded up. +const MAX_VOTING_FOR_RECORDS: u64 = 11_656; + +// This migration preserves existing conviction-voting prior-lock wall-clock unlock times when +// moving from 6s to 2s blocks. Only `VotingFor` stores block numbers; `ClassLocksFor` stores +// classes and balances only. +// +// The migration uses a raw storage marker to prevent accidental double execution. Make sure it is +// removed from the Runtime Executive after it has been run. +pub struct MigrateConvictionVotingTo2sBlocks, I: 'static = ()>(PhantomData<(T, I)>); + +impl, I: 'static> MigrateConvictionVotingTo2sBlocks { + fn is_done() -> bool { + sp_io::storage::get(MIGRATION_DONE_KEY).is_some() + } + + fn mark_done() { + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + } + + fn scale_future_block(block: BlockNumberFor, current_block: BlockNumberFor) -> BlockNumberFor { + if block <= current_block { + block + } else { + current_block.saturating_add(block.saturating_sub(current_block).saturating_mul(3u32.into())) + } + } +} + +impl, I: 'static> OnRuntimeUpgrade for MigrateConvictionVotingTo2sBlocks { + fn on_runtime_upgrade() -> Weight { + if Self::is_done() { + log::warn!("MigrateConvictionVotingTo2sBlocks already executed"); + return T::DbWeight::get().reads(1); + } + + let current_block = >::BlockNumberProvider::current_block_number(); + let voting_for_records = VotingFor::::iter().count() as u64; + let mut reads = 1u64.saturating_add(voting_for_records); + let mut writes = 0u64; + let mut migrated = 0u64; + + log::info!( + "MigrateConvictionVotingTo2sBlocks found VotingFor records: {voting_for_records:?}, cap: {MAX_VOTING_FOR_RECORDS:?}", + ); + + if voting_for_records > MAX_VOTING_FOR_RECORDS { + log::error!( + "MigrateConvictionVotingTo2sBlocks skipped because VotingFor has {voting_for_records:?} records, cap: {MAX_VOTING_FOR_RECORDS:?}", + ); + return T::DbWeight::get().reads(reads); + } + + for (who, class, mut voting) in VotingFor::::iter() { + reads.saturating_inc(); + let prior: &mut PriorLock, _> = voting.as_mut(); + let old_until = prior.0; + let new_until = Self::scale_future_block(old_until, current_block); + + if old_until != new_until { + prior.0 = new_until; + VotingFor::::insert(who, class, voting); + writes.saturating_inc(); + migrated.saturating_inc(); + } + } + + Self::mark_done(); + writes.saturating_inc(); + + log::info!("MigrateConvictionVotingTo2sBlocks migrated prior locks: {migrated:?}"); + T::DbWeight::get().reads_writes(reads, writes) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{AccountId, Runtime, System}; + use pallet_conviction_voting::{Casting, Voting}; + + fn prior_until(who: AccountId) -> BlockNumberFor { + match VotingFor::::get(who, 0u16) { + Voting::Casting(Casting { prior, .. }) => prior.0, + Voting::Delegating(delegating) => delegating.prior.0, + } + } + + #[test] + fn migrate_conviction_voting_to_2s_blocks_works() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + let who = AccountId::new([1; 32]); + System::set_block_number(100); + VotingFor::::insert( + who.clone(), + 0u16, + Voting::Casting(Casting { + votes: Default::default(), + delegations: Default::default(), + prior: PriorLock(200, 1_000), + }), + ); + + MigrateConvictionVotingTo2sBlocks::::on_runtime_upgrade(); + + let voting = VotingFor::::get(who.clone(), 0u16); + match voting { + Voting::Casting(Casting { prior, .. }) => { + assert_eq!(prior.0, 400); + assert_eq!(prior.1, 1_000); + } + Voting::Delegating(_) => panic!("expected casting voting state"), + } + + MigrateConvictionVotingTo2sBlocks::::on_runtime_upgrade(); + assert_eq!(prior_until(who), 400); + }) + } +} diff --git a/runtime/hydradx/src/migrations/dynamic_fees.rs b/runtime/hydradx/src/migrations/dynamic_fees.rs new file mode 100644 index 0000000000..137247854a --- /dev/null +++ b/runtime/hydradx/src/migrations/dynamic_fees.rs @@ -0,0 +1,152 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::Encode; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_dynamic_fees::{pallet, types::AssetFeeConfig, AssetFeeConfiguration}; +use sp_core::Get; +use sp_runtime::{FixedU128, Saturating}; +use sp_std::{marker::PhantomData, vec::Vec}; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationDynamicFees2sMigrationDone"; +// A defensive bound for custom fee configurations checked by try-runtime before release. +const MAX_ASSET_FEE_CONFIGURATIONS: u64 = 100; + +/// Scales custom per-block fee decay to preserve wall-clock behavior across the 6s to 2s transition. +/// +/// Fee timestamps remain unchanged because migrating them independently from EMA timestamps would break their pairing. +pub struct MigrateDynamicFeeDecayTo2sBlocks(PhantomData); + +impl MigrateDynamicFeeDecayTo2sBlocks { + fn is_done() -> bool { + sp_io::storage::get(MIGRATION_DONE_KEY).is_some() + } + + fn mark_done() { + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + } + + fn scale_decay(decay: FixedU128) -> FixedU128 { + let inner = decay.into_inner(); + // A configured non-zero decay must not become permanently non-decaying due to integer truncation. + FixedU128::from_inner(if inner == 0 { 0 } else { (inner / 3).max(1) }) + } +} + +impl OnRuntimeUpgrade for MigrateDynamicFeeDecayTo2sBlocks { + fn on_runtime_upgrade() -> Weight { + if Self::is_done() { + log::warn!("MigrateDynamicFeeDecayTo2sBlocks already executed"); + return T::DbWeight::get().reads(1); + } + + let configurations: Vec<_> = AssetFeeConfiguration::::iter().collect(); + let configurations_len = configurations.len() as u64; + let reads = 1u64.saturating_add(configurations_len); + + log::info!( + "MigrateDynamicFeeDecayTo2sBlocks found asset fee configurations: {configurations_len:?}, cap: {MAX_ASSET_FEE_CONFIGURATIONS:?}", + ); + + if configurations_len > MAX_ASSET_FEE_CONFIGURATIONS { + log::error!( + "MigrateDynamicFeeDecayTo2sBlocks skipped because AssetFeeConfiguration has {configurations_len:?} entries, cap: {MAX_ASSET_FEE_CONFIGURATIONS:?}", + ); + return T::DbWeight::get().reads(reads); + } + + let mut migrated = 0u64; + let mut writes = 0u64; + + for (asset, configuration) in configurations { + let AssetFeeConfig::Dynamic { + mut asset_fee_params, + mut protocol_fee_params, + } = configuration + else { + continue; + }; + + asset_fee_params.decay = Self::scale_decay(asset_fee_params.decay); + protocol_fee_params.decay = Self::scale_decay(protocol_fee_params.decay); + AssetFeeConfiguration::::insert( + asset, + AssetFeeConfig::Dynamic { + asset_fee_params, + protocol_fee_params, + }, + ); + writes.saturating_inc(); + migrated.saturating_inc(); + } + + Self::mark_done(); + writes.saturating_inc(); + + log::info!( + "MigrateDynamicFeeDecayTo2sBlocks checked configurations: {configurations_len:?}, migrated dynamic configurations: {migrated:?}", + ); + + T::DbWeight::get().reads_writes(reads, writes) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{AssetId, Runtime}; + use pallet_dynamic_fees::types::FeeParams; + use sp_runtime::Permill; + + fn fee_params(decay: FixedU128) -> FeeParams { + FeeParams { + min_fee: Permill::from_perthousand(1), + max_fee: Permill::from_percent(1), + decay, + amplification: FixedU128::from(2), + } + } + + #[test] + fn migration_should_scale_only_dynamic_decay_when_moving_to_2s_blocks() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + let dynamic_asset: AssetId = 1; + let fixed_asset: AssetId = 2; + let dynamic_config = AssetFeeConfig::Dynamic { + asset_fee_params: fee_params(FixedU128::from_rational(3, 10_000)), + protocol_fee_params: fee_params(FixedU128::from_rational(3, 20_000)), + }; + let fixed_config = AssetFeeConfig::Fixed { + asset_fee: Permill::from_percent(1), + protocol_fee: Permill::from_perthousand(1), + }; + + AssetFeeConfiguration::::insert(dynamic_asset, dynamic_config); + AssetFeeConfiguration::::insert(fixed_asset, fixed_config); + + MigrateDynamicFeeDecayTo2sBlocks::::on_runtime_upgrade(); + + let Some(AssetFeeConfig::Dynamic { + asset_fee_params, + protocol_fee_params, + }) = AssetFeeConfiguration::::get(dynamic_asset) + else { + panic!("dynamic configuration must remain dynamic"); + }; + assert_eq!(asset_fee_params.decay, FixedU128::from_rational(1, 10_000)); + assert_eq!(protocol_fee_params.decay, FixedU128::from_rational(1, 20_000)); + assert_eq!(AssetFeeConfiguration::::get(fixed_asset), Some(fixed_config)); + + MigrateDynamicFeeDecayTo2sBlocks::::on_runtime_upgrade(); + + let Some(AssetFeeConfig::Dynamic { asset_fee_params, .. }) = + AssetFeeConfiguration::::get(dynamic_asset) + else { + panic!("dynamic configuration must remain dynamic"); + }; + assert_eq!(asset_fee_params.decay, FixedU128::from_rational(1, 10_000)); + }); + } +} diff --git a/runtime/hydradx/src/migrations/mod.rs b/runtime/hydradx/src/migrations/mod.rs index 9169ea765f..9be9f4011c 100644 --- a/runtime/hydradx/src/migrations/mod.rs +++ b/runtime/hydradx/src/migrations/mod.rs @@ -15,8 +15,25 @@ use crate::Runtime; +pub mod circuit_breaker; +pub mod conviction_voting; +pub mod dynamic_fees; +pub mod parameters; +pub mod referenda; +pub mod scheduler; +pub mod stableswap; + // New migrations which need to be cleaned up after every Runtime upgrade -pub type UnreleasedSingleBlockMigrations = pallet_stableswap::migrations::v2::MigrateV1ToV2; +pub type UnreleasedSingleBlockMigrations = ( + parameters::SetTwoSecBlocksSince, + pallet_dca::migrations::MultiplySchedulesPeriodBy3, + circuit_breaker::MigrateCircuitBreakerTo2sBlocks, + dynamic_fees::MigrateDynamicFeeDecayTo2sBlocks, + stableswap::MigrateStableswapMaxPegUpdateTo2sBlocks, + scheduler::MigrateSchedulerTo2sBlocks, + referenda::MigrateReferendaTo2sBlocks, + conviction_voting::MigrateConvictionVotingTo2sBlocks, +); // These migrations can run on every runtime upgrade pub type PermanentSingleBlockMigrations = pallet_xcm::migration::MigrateToLatestXcmVersion; diff --git a/runtime/hydradx/src/migrations/parameters.rs b/runtime/hydradx/src/migrations/parameters.rs new file mode 100644 index 0000000000..a21f0ec175 --- /dev/null +++ b/runtime/hydradx/src/migrations/parameters.rs @@ -0,0 +1,71 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::Encode; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_parameters::{pallet, TwoSecBlocksSince}; +use sp_core::Get; +use sp_std::marker::PhantomData; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationTwoSecBlocksSinceMigrationDone"; + +/// Records the 2-second block transition once for all runtime consumers. +pub struct SetTwoSecBlocksSince(PhantomData); + +impl OnRuntimeUpgrade for SetTwoSecBlocksSince { + fn on_runtime_upgrade() -> Weight { + if sp_io::storage::get(MIGRATION_DONE_KEY).is_some() { + log::warn!("SetTwoSecBlocksSince already executed"); + return T::DbWeight::get().reads(1); + } + + let current_block = frame_system::Pallet::::block_number(); + let transition_block = TwoSecBlocksSince::::get(); + let mut writes = 1u64; + if transition_block == u32::MAX.into() { + TwoSecBlocksSince::::put(current_block); + writes = writes.saturating_add(1); + log::info!("SetTwoSecBlocksSince set transition block to: {current_block:?}"); + } else { + log::warn!("SetTwoSecBlocksSince preserved existing transition block: {transition_block:?}"); + } + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + + T::DbWeight::get().reads_writes(2, writes) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{Runtime, System}; + + #[test] + fn migration_should_set_shared_transition_block_only_once() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + System::set_block_number(500); + SetTwoSecBlocksSince::::on_runtime_upgrade(); + assert_eq!(TwoSecBlocksSince::::get(), 500); + + System::set_block_number(1_000); + SetTwoSecBlocksSince::::on_runtime_upgrade(); + assert_eq!(TwoSecBlocksSince::::get(), 500); + }); + } + + #[test] + fn migration_should_preserve_existing_shared_transition_block() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + System::set_block_number(500); + TwoSecBlocksSince::::put(123); + + SetTwoSecBlocksSince::::on_runtime_upgrade(); + + assert_eq!(TwoSecBlocksSince::::get(), 123); + }); + } +} diff --git a/runtime/hydradx/src/migrations/referenda.rs b/runtime/hydradx/src/migrations/referenda.rs new file mode 100644 index 0000000000..70639e585e --- /dev/null +++ b/runtime/hydradx/src/migrations/referenda.rs @@ -0,0 +1,139 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::Encode; +use frame_support::{ + traits::{schedule::DispatchTime, OnRuntimeUpgrade}, + weights::Weight, +}; +use pallet_referenda::{pallet, BlockNumberFor, ReferendumInfo, ReferendumInfoFor, ScheduleAddressOf}; +use sp_core::Get; +use sp_runtime::traits::{BlockNumberProvider, Saturating}; +use sp_std::{marker::PhantomData, vec::Vec}; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationReferenda2sBlockMigrationDone"; +const MAX_REFERENDA_RECORDS: u64 = 500; +const MAX_ACTIVE_REFERENDA: u64 = 10; + +// Minimal OpenGov active-state migration for the 6s -> 2s block-time change. +// +// `TrackQueue` does not store block numbers in this SDK version; it stores referendum indices and +// votes only. This migration updates only ongoing `ReferendumInfoFor` statuses and keeps their +// wall-clock lifecycle timing roughly unchanged. +pub struct MigrateReferendaTo2sBlocks, I: 'static = ()>(PhantomData<(T, I)>); + +impl, I: 'static> MigrateReferendaTo2sBlocks { + fn is_done() -> bool { + sp_io::storage::get(MIGRATION_DONE_KEY).is_some() + } + + fn mark_done() { + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + } + + fn scale_future_block(block: BlockNumberFor, current_block: BlockNumberFor) -> BlockNumberFor { + if block <= current_block { + block + } else { + current_block.saturating_add(block.saturating_sub(current_block).saturating_mul(3u32.into())) + } + } + + fn scale_anchor_block(block: BlockNumberFor, current_block: BlockNumberFor) -> BlockNumberFor { + if block <= current_block { + current_block.saturating_sub(current_block.saturating_sub(block).saturating_mul(3u32.into())) + } else { + Self::scale_future_block(block, current_block) + } + } + + fn scale_dispatch_time( + dispatch_time: DispatchTime>, + current_block: BlockNumberFor, + ) -> DispatchTime> { + match dispatch_time { + DispatchTime::At(block) => DispatchTime::At(Self::scale_future_block(block, current_block)), + DispatchTime::After(blocks) => DispatchTime::After(blocks.saturating_mul(3u32.into())), + } + } +} + +impl OnRuntimeUpgrade for MigrateReferendaTo2sBlocks +where + T: pallet::Config, + I: 'static, + ScheduleAddressOf: Into<(BlockNumberFor, u32)>, + (BlockNumberFor, u32): Into>, +{ + fn on_runtime_upgrade() -> Weight { + if Self::is_done() { + log::warn!("MigrateReferendaTo2sBlocks already executed"); + return T::DbWeight::get().reads(1); + } + + let mut reads = 1u64; + let mut ongoing_referenda = Vec::new(); + let mut ongoing_count = 0u64; + + for (index, info) in ReferendumInfoFor::::iter() { + reads.saturating_inc(); + + if let ReferendumInfo::Ongoing(status) = info { + ongoing_count.saturating_inc(); + + if ongoing_count <= MAX_ACTIVE_REFERENDA { + ongoing_referenda.push((index, status)); + } + } + } + + let current_block = >::BlockNumberProvider::current_block_number(); + let checked = reads.saturating_sub(1); + log::info!( + "MigrateReferendaTo2sBlocks found ReferendumInfoFor records: {checked:?}, records cap: {MAX_REFERENDA_RECORDS:?}, ongoing: {ongoing_count:?}, ongoing cap: {MAX_ACTIVE_REFERENDA:?}", + ); + + if checked > MAX_REFERENDA_RECORDS || ongoing_count > MAX_ACTIVE_REFERENDA { + log::error!( + "MigrateReferendaTo2sBlocks skipped because ReferendumInfoFor has {checked:?} records, cap: {MAX_REFERENDA_RECORDS:?}, or {ongoing_count:?} ongoing referenda, cap: {MAX_ACTIVE_REFERENDA:?}", + ); + return T::DbWeight::get().reads(reads); + } + + let ongoing_len = ongoing_referenda.len(); + let mut migrated = 0u64; + let mut writes = 0u64; + + for (index, mut status) in ongoing_referenda { + status.enactment = Self::scale_dispatch_time(status.enactment, current_block); + status.submitted = Self::scale_anchor_block(status.submitted, current_block); + + if let Some(deciding) = status.deciding.as_mut() { + deciding.since = Self::scale_anchor_block(deciding.since, current_block); + if let Some(confirming) = deciding.confirming.as_mut() { + *confirming = Self::scale_future_block(*confirming, current_block); + } + } + + if let Some((alarm_at, address)) = status.alarm.as_mut() { + *alarm_at = Self::scale_future_block(*alarm_at, current_block); + + let (address_block, address_index) = address.clone().into(); + *address = (Self::scale_future_block(address_block, current_block), address_index).into(); + } + + ReferendumInfoFor::::insert(index, ReferendumInfo::Ongoing(status)); + writes.saturating_inc(); + migrated.saturating_inc(); + } + + Self::mark_done(); + writes.saturating_inc(); + + log::info!( + "MigrateReferendaTo2sBlocks checked referenda records: {checked:?}, ongoing: {ongoing_len:?}, migrated ongoing: {migrated:?}", + ); + + T::DbWeight::get().reads_writes(reads, writes) + } +} diff --git a/runtime/hydradx/src/migrations/scheduler.rs b/runtime/hydradx/src/migrations/scheduler.rs new file mode 100644 index 0000000000..5164c7883d --- /dev/null +++ b/runtime/hydradx/src/migrations/scheduler.rs @@ -0,0 +1,305 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::{Decode, Encode}; +use frame_support::{ + pallet_prelude::OptionQuery, storage_alias, traits::OnRuntimeUpgrade, weights::Weight, Blake2_128Concat, BoundedVec, +}; +use pallet_scheduler::{pallet, BlockNumberFor, TaskAddress}; +use sp_core::Get; +use sp_runtime::{traits::BlockNumberProvider, Saturating}; +use sp_std::{collections::btree_map::BTreeMap, marker::PhantomData, vec::Vec}; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationScheduler2sBlockMigrationDone"; +// 30% above the 470 agenda entries observed on mainnet. +const MAX_AGENDA_ENTRIES: u64 = 611; + +type MigratedAgenda = BTreeMap< + BlockNumberFor, + BoundedVec>, ::MaxScheduledPerBlock>, +>; + +mod scheduler_storage { + use super::*; + + // Mirrors pallet-scheduler's private fields so retry periods can be scaled in place. + #[derive(Decode, Encode)] + pub struct RetryConfig { + pub total_retries: u8, + pub remaining: u8, + pub period: BlockNumber, + } + + #[storage_alias] + pub type Retries = StorageMap< + pallet_scheduler::Pallet, + Blake2_128Concat, + TaskAddress>, + RetryConfig>, + OptionQuery, + >; +} + +// This migration migrates the Scheduler to 2s block times by multiplying by 3 the spread between +// stored scheduler block numbers and the current block, multiplying periodic and retry intervals by 3, +// and updating task addresses in Lookup and Retries. +// +// The migration uses a raw storage marker to prevent accidental double execution. Make sure it is +// removed from the Runtime Executive after it has been run. +pub struct MigrateSchedulerTo2sBlocks(PhantomData); + +impl MigrateSchedulerTo2sBlocks { + fn is_done() -> bool { + sp_io::storage::get(MIGRATION_DONE_KEY).is_some() + } + + fn mark_done() { + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + } + + fn scale_block(block: BlockNumberFor, current_block: BlockNumberFor) -> BlockNumberFor { + let old_spread = block.saturating_sub(current_block); + let new_spread = old_spread.saturating_mul(3u32.into()); + current_block.saturating_add(new_spread) + } +} + +impl OnRuntimeUpgrade for MigrateSchedulerTo2sBlocks { + fn on_runtime_upgrade() -> Weight { + if Self::is_done() { + log::warn!("MigrateSchedulerTo2sBlocks already executed"); + return T::DbWeight::get().reads(1); + } + + let current_block = T::BlockNumberProvider::current_block_number(); + let mut agenda_len = 0u64; + let mut destination_lengths = BTreeMap::new(); + + for (old_block, schedules) in pallet_scheduler::Agenda::::iter() { + agenda_len = agenda_len.saturating_add(1); + let new_block = Self::scale_block(old_block, current_block); + let destination_len = destination_lengths.entry(new_block).or_insert(0usize); + *destination_len = destination_len.saturating_add(schedules.len()); + } + + log::info!("MigrateSchedulerTo2sBlocks found Agenda entries: {agenda_len:?}, cap: {MAX_AGENDA_ENTRIES:?}",); + + if agenda_len > MAX_AGENDA_ENTRIES { + log::error!( + "MigrateSchedulerTo2sBlocks skipped because Agenda has {agenda_len:?} entries, cap: {MAX_AGENDA_ENTRIES:?}", + ); + return T::DbWeight::get().reads(agenda_len.saturating_add(1)); + } + + if destination_lengths + .values() + .any(|len| *len > T::MaxScheduledPerBlock::get() as usize) + { + log::error!("MigrateSchedulerTo2sBlocks skipped because merged Agenda exceeds MaxScheduledPerBlock"); + return T::DbWeight::get().reads(agenda_len.saturating_add(1)); + } + + // Remove every old key before inserting scaled keys, as a destination may still be an original key. + let agenda = pallet_scheduler::Agenda::::drain().collect::>(); + let mut migrated_agenda: MigratedAgenda = BTreeMap::new(); + let mut migrated_addresses: BTreeMap>, TaskAddress>> = + BTreeMap::new(); + + for (old_block, mut schedules) in agenda { + for scheduled in schedules.iter_mut().flatten() { + if let Some((period, _remaining)) = scheduled.maybe_periodic.as_mut() { + *period = period.saturating_mul(3u32.into()); + } + } + + let new_block = Self::scale_block(old_block, current_block); + let destination = migrated_agenda.entry(new_block).or_default(); + let destination_offset = destination.len() as u32; + + for old_index in 0..schedules.len() as u32 { + migrated_addresses.insert( + (old_block, old_index), + (new_block, destination_offset.saturating_add(old_index)), + ); + } + + if destination.try_extend(schedules.into_iter()).is_err() { + unreachable!("merged Agenda capacity was checked before draining storage") + } + } + + for (new_block, schedules) in migrated_agenda { + pallet_scheduler::Agenda::::insert(new_block, schedules); + } + + let lookup = pallet_scheduler::Lookup::::drain().collect::>(); + let lookup_len = lookup.len() as u64; + for (name, old_address) in lookup { + let new_address = migrated_addresses + .get(&old_address) + .copied() + .unwrap_or_else(|| (Self::scale_block(old_address.0, current_block), old_address.1)); + pallet_scheduler::Lookup::::insert(name, new_address); + } + + let retries = scheduler_storage::Retries::::drain().collect::>(); + let retries_len = retries.len() as u64; + for (old_address, mut retry) in retries { + retry.period = retry.period.saturating_mul(3u32.into()); + let new_address = migrated_addresses + .get(&old_address) + .copied() + .unwrap_or_else(|| (Self::scale_block(old_address.0, current_block), old_address.1)); + scheduler_storage::Retries::::insert(new_address, retry); + } + + Self::mark_done(); + + log::info!("MigrateSchedulerTo2sBlocks processed agenda items: {agenda_len:?}",); + T::DbWeight::get().reads_writes( + agenda_len + .saturating_mul(2) + .saturating_add(lookup_len) + .saturating_add(retries_len) + .saturating_add(1), + agenda_len + .saturating_mul(2) + .saturating_add(lookup_len.saturating_mul(2)) + .saturating_add(retries_len.saturating_mul(2)) + .saturating_add(1), + ) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{Runtime, RuntimeCall, RuntimeOrigin, Scheduler, System}; + use frame_support::assert_ok; + + #[test] + fn migration_should_preserve_agenda_when_scaled_key_matches_original_key() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + System::set_block_number(0); + + let periodic_call = Box::new(RuntimeCall::System(frame_system::Call::remark_with_event { + remark: vec![1], + })); + assert_ok!(Scheduler::schedule( + RuntimeOrigin::root(), + 200, + Some((10, 3)), + 3, + periodic_call + )); + let colliding_call = Box::new(RuntimeCall::System(frame_system::Call::remark_with_event { + remark: vec![2], + })); + assert_ok!(Scheduler::schedule(RuntimeOrigin::root(), 400, None, 3, colliding_call)); + assert!(pallet_scheduler::Agenda::::contains_key(200)); + assert!(pallet_scheduler::Agenda::::contains_key(400)); + + System::set_block_number(100); + MigrateSchedulerTo2sBlocks::::on_runtime_upgrade(); + + assert!(!pallet_scheduler::Agenda::::contains_key(200)); + assert!(pallet_scheduler::Agenda::::contains_key(400)); + assert!(pallet_scheduler::Agenda::::contains_key(1000)); + let migrated_agenda = pallet_scheduler::Agenda::::get(400); + let migrated_schedule = migrated_agenda.first().and_then(Option::as_ref).unwrap(); + assert_eq!(migrated_schedule.maybe_periodic, Some((30, 2))); + + MigrateSchedulerTo2sBlocks::::on_runtime_upgrade(); + assert!(pallet_scheduler::Agenda::::contains_key(400)); + assert!(pallet_scheduler::Agenda::::contains_key(1000)); + }) + } + + #[test] + fn migration_should_merge_agendas_when_multiple_keys_scale_to_same_block() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + System::set_block_number(0); + + let first_call = Box::new(RuntimeCall::System(frame_system::Call::remark_with_event { + remark: vec![1], + })); + assert_ok!(Scheduler::schedule(RuntimeOrigin::root(), 10, None, 3, first_call)); + + let anonymous_call = Box::new(RuntimeCall::System(frame_system::Call::remark_with_event { + remark: vec![2], + })); + assert_ok!(Scheduler::schedule(RuntimeOrigin::root(), 20, None, 3, anonymous_call,)); + + System::set_block_number(100); + MigrateSchedulerTo2sBlocks::::on_runtime_upgrade(); + + assert!(!pallet_scheduler::Agenda::::contains_key(10)); + assert!(!pallet_scheduler::Agenda::::contains_key(20)); + let merged_agenda = pallet_scheduler::Agenda::::get(100); + assert_eq!(merged_agenda.iter().flatten().count(), 2); + }) + } + + #[test] + fn migration_should_remap_lookup_when_named_schedule_is_migrated() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + System::set_block_number(0); + let task_name = [1u8; 32]; + let call = Box::new(RuntimeCall::System(frame_system::Call::remark_with_event { + remark: vec![1], + })); + assert_ok!(Scheduler::schedule_named( + RuntimeOrigin::root(), + task_name, + 10, + None, + 3, + call, + )); + + System::set_block_number(5); + MigrateSchedulerTo2sBlocks::::on_runtime_upgrade(); + + assert!(!pallet_scheduler::Agenda::::contains_key(10)); + let migrated_address = pallet_scheduler::Lookup::::get(task_name).unwrap(); + assert_eq!(migrated_address.0, 20); + let migrated_schedule = pallet_scheduler::Agenda::::get(migrated_address.0) + .get(migrated_address.1 as usize) + .cloned() + .flatten() + .unwrap(); + assert_eq!(migrated_schedule.maybe_id, Some(task_name)); + }) + } + + #[test] + fn migration_should_remap_retry_and_scale_period_when_schedule_is_migrated() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + System::set_block_number(0); + let call = Box::new(RuntimeCall::System(frame_system::Call::remark_with_event { + remark: vec![1], + })); + assert_ok!(Scheduler::schedule(RuntimeOrigin::root(), 10, None, 3, call)); + assert_ok!(Scheduler::set_retry(RuntimeOrigin::root(), (10, 0), 2, 5)); + + System::set_block_number(5); + MigrateSchedulerTo2sBlocks::::on_runtime_upgrade(); + + assert!(!pallet_scheduler::Agenda::::contains_key(10)); + assert!(pallet_scheduler::Agenda::::contains_key(20)); + assert!(!scheduler_storage::Retries::::contains_key((10, 0))); + let migrated_retry = scheduler_storage::Retries::::get((20, 0)).unwrap(); + assert_eq!(migrated_retry.total_retries, 2); + assert_eq!(migrated_retry.remaining, 2); + assert_eq!(migrated_retry.period, 15); + }) + } +} diff --git a/runtime/hydradx/src/migrations/stableswap.rs b/runtime/hydradx/src/migrations/stableswap.rs new file mode 100644 index 0000000000..460361b272 --- /dev/null +++ b/runtime/hydradx/src/migrations/stableswap.rs @@ -0,0 +1,132 @@ +// Copyright (C) 2020-2026 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +use codec::Encode; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_stableswap::{pallet, PoolPegs}; +use sp_core::Get; +use sp_runtime::{Perbill, Saturating}; +use sp_std::{marker::PhantomData, vec::Vec}; + +const MIGRATION_DONE_KEY: &[u8] = b"HydrationStableswapPegUpdate2sMigrationDone"; +const MAX_POOL_PEG_ENTRIES: u64 = 22; + +// `max_peg_update` is a per-block movement cap. Divide configured non-zero caps by 3 +// to preserve roughly the same wall-clock peg movement when moving from 6s to 2s blocks. +pub struct MigrateStableswapMaxPegUpdateTo2sBlocks(PhantomData); + +impl MigrateStableswapMaxPegUpdateTo2sBlocks { + fn is_done() -> bool { + sp_io::storage::get(MIGRATION_DONE_KEY).is_some() + } + + fn mark_done() { + sp_io::storage::set(MIGRATION_DONE_KEY, &true.encode()); + } + + fn scale_max_peg_update(max_peg_update: Perbill) -> Perbill { + let parts = max_peg_update.deconstruct(); + + if parts == 0 { + Perbill::zero() + } else { + Perbill::from_parts((parts / 3).max(1)) + } + } +} + +impl OnRuntimeUpgrade for MigrateStableswapMaxPegUpdateTo2sBlocks { + fn on_runtime_upgrade() -> Weight { + if Self::is_done() { + log::warn!("MigrateStableswapMaxPegUpdateTo2sBlocks already executed"); + return T::DbWeight::get().reads(1); + } + + let pool_pegs: Vec<_> = PoolPegs::::iter().collect(); + let reads = 1u64.saturating_add(pool_pegs.len() as u64); + let pool_pegs_len = pool_pegs.len(); + + log::info!( + "MigrateStableswapMaxPegUpdateTo2sBlocks found PoolPegs entries: {pool_pegs_len:?}, cap: {MAX_POOL_PEG_ENTRIES:?}", + ); + + if pool_pegs.len() as u64 > MAX_POOL_PEG_ENTRIES { + log::error!( + "MigrateStableswapMaxPegUpdateTo2sBlocks skipped because PoolPegs has {pool_pegs_len:?} entries, cap: {MAX_POOL_PEG_ENTRIES:?}", + ); + return T::DbWeight::get().reads(reads); + } + + let mut migrated = 0u64; + let mut writes = 0u64; + + for (pool_id, mut peg_info) in pool_pegs { + let old_max_peg_update = peg_info.max_peg_update; + let new_max_peg_update = Self::scale_max_peg_update(old_max_peg_update); + + if old_max_peg_update != new_max_peg_update { + peg_info.max_peg_update = new_max_peg_update; + PoolPegs::::insert(pool_id, peg_info); + writes.saturating_inc(); + migrated.saturating_inc(); + } + } + + Self::mark_done(); + writes.saturating_inc(); + + log::info!("MigrateStableswapMaxPegUpdateTo2sBlocks checked pools: {pool_pegs_len:?}, migrated: {migrated:?}",); + + T::DbWeight::get().reads_writes(reads, writes) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{AssetId, Runtime}; + use frame_support::BoundedVec; + use pallet_stableswap::types::{PegSource, PoolPegInfo}; + + fn peg_info(max_peg_update: Perbill) -> PoolPegInfo, AssetId> { + PoolPegInfo { + source: BoundedVec::truncate_from(vec![PegSource::Value((1, 1))]), + updated_at: 1, + max_peg_update, + current: BoundedVec::truncate_from(vec![(1, 1)]), + } + } + + type BlockNumberFor = frame_system::pallet_prelude::BlockNumberFor; + + #[test] + fn migrate_stableswap_max_peg_update_to_2s_blocks_works() { + let mut ext = sp_io::TestExternalities::new_empty(); + + ext.execute_with(|| { + let non_zero_pool: AssetId = 690; + let zero_pool: AssetId = 143; + + PoolPegs::::insert(non_zero_pool, peg_info(Perbill::from_percent(6))); + PoolPegs::::insert(zero_pool, peg_info(Perbill::zero())); + + MigrateStableswapMaxPegUpdateTo2sBlocks::::on_runtime_upgrade(); + + assert_eq!( + PoolPegs::::get(non_zero_pool).unwrap().max_peg_update, + Perbill::from_percent(2) + ); + assert_eq!( + PoolPegs::::get(zero_pool).unwrap().max_peg_update, + Perbill::zero() + ); + + MigrateStableswapMaxPegUpdateTo2sBlocks::::on_runtime_upgrade(); + + assert_eq!( + PoolPegs::::get(non_zero_pool).unwrap().max_peg_update, + Perbill::from_percent(2) + ); + }); + } +} diff --git a/runtime/hydradx/src/system.rs b/runtime/hydradx/src/system.rs index 169f02609f..eba4aec9fe 100644 --- a/runtime/hydradx/src/system.rs +++ b/runtime/hydradx/src/system.rs @@ -158,7 +158,8 @@ parameter_types! { .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) .build_or_panic(); pub ExtrinsicBaseWeight: Weight = get_extrinsic_base_weight(); - pub const BlockHashCount: BlockNumber = 2400; + /// Keep about 4 hours of block hashes with 2s blocks. + pub const BlockHashCount: BlockNumber = 7200; /// Maximum length of block. Up to 5MB. pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); @@ -270,7 +271,7 @@ impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = u64; type OnTimestampSet = (); - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type MinimumPeriod = ConstU64<0>; type WeightInfo = weights::pallet_timestamp::HydraWeight; } @@ -661,7 +662,7 @@ parameter_types! { pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(25); /// The adjustment variable of the runtime. Higher values will cause `TargetBlockFullness` to /// change the fees more rapidly. - pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(10, 113); + pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(10, 339); /// Minimum amount of the multiplier. This value cannot be too low. A test case should ensure /// that combined with `AdjustmentVariable`, we can recover from the minimum. pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 1000u128); diff --git a/runtime/hydradx/src/weights/cumulus_pallet_parachain_system.rs b/runtime/hydradx/src/weights/cumulus_pallet_parachain_system.rs index fc068437e2..33122fdccd 100644 --- a/runtime/hydradx/src/weights/cumulus_pallet_parachain_system.rs +++ b/runtime/hydradx/src/weights/cumulus_pallet_parachain_system.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `cumulus_pallet_parachain_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -73,12 +73,12 @@ impl cumulus_pallet_parachain_system::WeightInfo for Hy /// The range of component `n` is `[0, 1000]`. fn enqueue_inbound_downward_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `185` + // Measured: `218` // Estimated: `3517` - // Minimum execution time: 3_887_000 picoseconds. - Weight::from_parts(52_808_485, 3517) - // Standard Error: 47_380 - .saturating_add(Weight::from_parts(299_831_283, 0).saturating_mul(n.into())) + // Minimum execution time: 3_855_000 picoseconds. + Weight::from_parts(3_925_000, 3517) + // Standard Error: 17_737 + .saturating_add(Weight::from_parts(300_588_554, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) diff --git a/runtime/hydradx/src/weights/cumulus_pallet_weight_reclaim.rs b/runtime/hydradx/src/weights/cumulus_pallet_weight_reclaim.rs index 8f00b77251..a2542b34ae 100644 --- a/runtime/hydradx/src/weights/cumulus_pallet_weight_reclaim.rs +++ b/runtime/hydradx/src/weights/cumulus_pallet_weight_reclaim.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `cumulus_pallet_weight_reclaim` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -64,7 +64,7 @@ impl cumulus_pallet_weight_reclaim::WeightInfo for Hydr // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_727_000 picoseconds. - Weight::from_parts(7_932_000, 0) + // Minimum execution time: 8_200_000 picoseconds. + Weight::from_parts(8_472_000, 0) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/cumulus_pallet_xcmp_queue.rs b/runtime/hydradx/src/weights/cumulus_pallet_xcmp_queue.rs index ef1817a0e4..cadb19f2f0 100644 --- a/runtime/hydradx/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/runtime/hydradx/src/weights/cumulus_pallet_xcmp_queue.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `109` // Estimated: `1497` - // Minimum execution time: 7_359_000 picoseconds. - Weight::from_parts(7_587_000, 1497) + // Minimum execution time: 7_660_000 picoseconds. + Weight::from_parts(7_897_000, 1497) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -86,10 +86,10 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `185` // Estimated: `5487` - // Minimum execution time: 18_187_000 picoseconds. - Weight::from_parts(17_730_992, 5487) + // Minimum execution time: 21_951_000 picoseconds. + Weight::from_parts(21_978_297, 5487) // Standard Error: 4 - .saturating_add(Weight::from_parts(979, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(975, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -108,10 +108,10 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `185` // Estimated: `5487` - // Minimum execution time: 15_062_000 picoseconds. - Weight::from_parts(20_702_588, 5487) - // Standard Error: 151 - .saturating_add(Weight::from_parts(136_140, 0).saturating_mul(n.into())) + // Minimum execution time: 18_902_000 picoseconds. + Weight::from_parts(25_026_731, 5487) + // Standard Error: 199 + .saturating_add(Weight::from_parts(141_103, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -128,10 +128,10 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `368 + n * (1 ±0)` // Estimated: `3831 + n * (1 ±0)` - // Minimum execution time: 27_501_000 picoseconds. - Weight::from_parts(26_394_200, 3831) + // Minimum execution time: 30_175_000 picoseconds. + Weight::from_parts(28_867_593, 3831) // Standard Error: 12 - .saturating_add(Weight::from_parts(2_226, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(2_229, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -151,10 +151,10 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `220` // Estimated: `5487` - // Minimum execution time: 16_990_000 picoseconds. - Weight::from_parts(965_284, 5487) - // Standard Error: 33_094 - .saturating_add(Weight::from_parts(128_760_440, 0).saturating_mul(n.into())) + // Minimum execution time: 20_752_000 picoseconds. + Weight::from_parts(877_080, 5487) + // Standard Error: 29_786 + .saturating_add(Weight::from_parts(128_866_202, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -171,8 +171,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `67437` // Estimated: `70902` - // Minimum execution time: 330_538_000 picoseconds. - Weight::from_parts(331_714_000, 70902) + // Minimum execution time: 341_684_000 picoseconds. + Weight::from_parts(342_688_000, 70902) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -182,8 +182,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `109` // Estimated: `2767` - // Minimum execution time: 4_084_000 picoseconds. - Weight::from_parts(4_282_000, 2767) + // Minimum execution time: 4_214_000 picoseconds. + Weight::from_parts(4_463_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -193,8 +193,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `144` // Estimated: `2767` - // Minimum execution time: 5_501_000 picoseconds. - Weight::from_parts(5_711_000, 2767) + // Minimum execution time: 5_618_000 picoseconds. + Weight::from_parts(5_787_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -202,8 +202,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_644_000 picoseconds. - Weight::from_parts(8_733_000, 0) + // Minimum execution time: 8_378_000 picoseconds. + Weight::from_parts(8_518_000, 0) } /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) @@ -223,8 +223,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `134422` // Estimated: `137887` - // Minimum execution time: 265_279_000 picoseconds. - Weight::from_parts(266_306_000, 137887) + // Minimum execution time: 265_969_000 picoseconds. + Weight::from_parts(267_026_000, 137887) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -246,8 +246,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for HydraWei // Proof Size summary in bytes: // Measured: `65819` // Estimated: `69284` - // Minimum execution time: 139_835_000 picoseconds. - Weight::from_parts(141_116_000, 69284) + // Minimum execution time: 140_548_000 picoseconds. + Weight::from_parts(141_308_000, 69284) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } diff --git a/runtime/hydradx/src/weights/frame_system.rs b/runtime/hydradx/src/weights/frame_system.rs index 30c812f1aa..2e020e1c76 100644 --- a/runtime/hydradx/src/weights/frame_system.rs +++ b/runtime/hydradx/src/weights/frame_system.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -65,8 +65,8 @@ impl frame_system::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_996_000 picoseconds. - Weight::from_parts(27_288_508, 0) + // Minimum execution time: 3_860_000 picoseconds. + Weight::from_parts(27_849_196, 0) // Standard Error: 3 .saturating_add(Weight::from_parts(524, 0).saturating_mul(b.into())) } @@ -75,10 +75,10 @@ impl frame_system::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_129_000 picoseconds. - Weight::from_parts(11_479_816, 0) + // Minimum execution time: 9_322_000 picoseconds. + Weight::from_parts(11_616_311, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_655, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_658, 0).saturating_mul(b.into())) } /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) @@ -86,8 +86,8 @@ impl frame_system::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_167_000 picoseconds. - Weight::from_parts(6_357_000, 0) + // Minimum execution time: 6_347_000 picoseconds. + Weight::from_parts(6_467_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) @@ -106,10 +106,10 @@ impl frame_system::WeightInfo for HydraWeight { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `340` + // Measured: `373` // Estimated: `67035` - // Minimum execution time: 124_757_731_000 picoseconds. - Weight::from_parts(127_639_625_000, 67035) + // Minimum execution time: 115_370_511_000 picoseconds. + Weight::from_parts(120_145_106_000, 67035) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -120,10 +120,10 @@ impl frame_system::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_766_000 picoseconds. - Weight::from_parts(3_889_000, 0) - // Standard Error: 2_743 - .saturating_add(Weight::from_parts(838_655, 0).saturating_mul(i.into())) + // Minimum execution time: 3_991_000 picoseconds. + Weight::from_parts(4_075_000, 0) + // Standard Error: 2_549 + .saturating_add(Weight::from_parts(853_869, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -133,10 +133,10 @@ impl frame_system::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_908_000 picoseconds. - Weight::from_parts(3_991_000, 0) - // Standard Error: 890 - .saturating_add(Weight::from_parts(587_774, 0).saturating_mul(i.into())) + // Minimum execution time: 4_019_000 picoseconds. + Weight::from_parts(4_095_000, 0) + // Standard Error: 874 + .saturating_add(Weight::from_parts(592_118, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -144,12 +144,12 @@ impl frame_system::WeightInfo for HydraWeight { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `190 + p * (69 ±0)` - // Estimated: `146 + p * (70 ±0)` - // Minimum execution time: 7_141_000 picoseconds. - Weight::from_parts(7_253_000, 146) - // Standard Error: 970 - .saturating_add(Weight::from_parts(1_181_575, 0).saturating_mul(p.into())) + // Measured: `197 + p * (69 ±0)` + // Estimated: `153 + p * (70 ±0)` + // Minimum execution time: 7_397_000 picoseconds. + Weight::from_parts(7_501_000, 153) + // Standard Error: 950 + .saturating_add(Weight::from_parts(1_166_230, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -160,8 +160,8 @@ impl frame_system::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_482_000 picoseconds. - Weight::from_parts(11_668_000, 0) + // Minimum execution time: 11_495_000 picoseconds. + Weight::from_parts(11_928_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `System::AuthorizedUpgrade` (r:1 w:1) @@ -182,10 +182,10 @@ impl frame_system::WeightInfo for HydraWeight { /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn apply_authorized_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `362` + // Measured: `395` // Estimated: `67035` - // Minimum execution time: 126_546_960_000 picoseconds. - Weight::from_parts(130_682_314_000, 67035) + // Minimum execution time: 116_829_834_000 picoseconds. + Weight::from_parts(118_499_974_000, 67035) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } diff --git a/runtime/hydradx/src/weights/frame_system_extensions.rs b/runtime/hydradx/src/weights/frame_system_extensions.rs index dda75c5201..8563729d11 100644 --- a/runtime/hydradx/src/weights/frame_system_extensions.rs +++ b/runtime/hydradx/src/weights/frame_system_extensions.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `frame_system_extensions` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -64,29 +64,29 @@ impl frame_system::ExtensionsWeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `30` // Estimated: `0` - // Minimum execution time: 4_820_000 picoseconds. - Weight::from_parts(5_016_000, 0) + // Minimum execution time: 4_726_000 picoseconds. + Weight::from_parts(4_834_000, 0) } fn check_mortality_mortal_transaction() -> Weight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `0` - // Minimum execution time: 8_857_000 picoseconds. - Weight::from_parts(9_144_000, 0) + // Minimum execution time: 8_740_000 picoseconds. + Weight::from_parts(8_974_000, 0) } fn check_mortality_immortal_transaction() -> Weight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `0` - // Minimum execution time: 8_730_000 picoseconds. - Weight::from_parts(8_974_000, 0) + // Minimum execution time: 8_823_000 picoseconds. + Weight::from_parts(8_987_000, 0) } fn check_non_zero_sender() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 790_000 picoseconds. - Weight::from_parts(851_000, 0) + // Minimum execution time: 714_000 picoseconds. + Weight::from_parts(765_000, 0) } /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) @@ -94,8 +94,8 @@ impl frame_system::ExtensionsWeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `101` // Estimated: `3593` - // Minimum execution time: 11_061_000 picoseconds. - Weight::from_parts(11_259_000, 3593) + // Minimum execution time: 11_043_000 picoseconds. + Weight::from_parts(11_321_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -103,28 +103,28 @@ impl frame_system::ExtensionsWeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 604_000 picoseconds. - Weight::from_parts(642_000, 0) + // Minimum execution time: 557_000 picoseconds. + Weight::from_parts(623_000, 0) } fn check_tx_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 605_000 picoseconds. - Weight::from_parts(628_000, 0) + // Minimum execution time: 577_000 picoseconds. + Weight::from_parts(616_000, 0) } fn check_weight() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_301_000 picoseconds. - Weight::from_parts(6_481_000, 0) + // Minimum execution time: 6_272_000 picoseconds. + Weight::from_parts(6_532_000, 0) } fn weight_reclaim() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_722_000 picoseconds. - Weight::from_parts(3_877_000, 0) + // Minimum execution time: 3_825_000 picoseconds. + Weight::from_parts(3_896_000, 0) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/orml_tokens.rs b/runtime/hydradx/src/weights/orml_tokens.rs index b8c0f479aa..1a6f3130b6 100644 --- a/runtime/hydradx/src/weights/orml_tokens.rs +++ b/runtime/hydradx/src/weights/orml_tokens.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `orml_tokens` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -86,10 +86,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -102,10 +102,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `4582` + // Measured: `4648` // Estimated: `16488` - // Minimum execution time: 443_381_000 picoseconds. - Weight::from_parts(446_128_000, 16488) + // Minimum execution time: 452_767_000 picoseconds. + Weight::from_parts(455_310_000, 16488) .saturating_add(T::DbWeight::get().reads(41_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) } @@ -135,10 +135,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -151,10 +151,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn transfer_all() -> Weight { // Proof Size summary in bytes: - // Measured: `4634` + // Measured: `4700` // Estimated: `16488` - // Minimum execution time: 450_460_000 picoseconds. - Weight::from_parts(452_405_000, 16488) + // Minimum execution time: 454_932_000 picoseconds. + Weight::from_parts(457_202_000, 16488) .saturating_add(T::DbWeight::get().reads(41_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) } @@ -184,10 +184,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -200,11 +200,11 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: - // Measured: `4609` + // Measured: `4675` // Estimated: `16488` - // Minimum execution time: 356_690_000 picoseconds. - Weight::from_parts(359_233_000, 16488) - .saturating_add(T::DbWeight::get().reads(38_u64)) + // Minimum execution time: 362_683_000 picoseconds. + Weight::from_parts(364_451_000, 16488) + .saturating_add(T::DbWeight::get().reads(39_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } /// Storage: `EVMAccounts::AccountExtension` (r:1 w:0) @@ -233,10 +233,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -249,10 +249,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `4634` + // Measured: `4700` // Estimated: `16488` - // Minimum execution time: 447_920_000 picoseconds. - Weight::from_parts(450_162_000, 16488) + // Minimum execution time: 453_347_000 picoseconds. + Weight::from_parts(455_837_000, 16488) .saturating_add(T::DbWeight::get().reads(41_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) } @@ -270,10 +270,10 @@ impl orml_tokens::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn set_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `2341` + // Measured: `2374` // Estimated: `3593` - // Minimum execution time: 68_807_000 picoseconds. - Weight::from_parts(69_494_000, 3593) + // Minimum execution time: 69_981_000 picoseconds. + Weight::from_parts(70_919_000, 3593) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/hydradx/src/weights/orml_vesting.rs b/runtime/hydradx/src/weights/orml_vesting.rs index 9fd73e2aaf..6624eee103 100644 --- a/runtime/hydradx/src/weights/orml_vesting.rs +++ b/runtime/hydradx/src/weights/orml_vesting.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `orml_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -72,8 +72,8 @@ impl orml_vesting::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1951` // Estimated: `6315` - // Minimum execution time: 108_485_000 picoseconds. - Weight::from_parts(109_377_000, 6315) + // Minimum execution time: 107_217_000 picoseconds. + Weight::from_parts(107_901_000, 6315) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -88,10 +88,10 @@ impl orml_vesting::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2070 + i * (18 ±0)` // Estimated: `6315` - // Minimum execution time: 64_032_000 picoseconds. - Weight::from_parts(65_540_542, 6315) - // Standard Error: 592 - .saturating_add(Weight::from_parts(128_320, 0).saturating_mul(i.into())) + // Minimum execution time: 63_210_000 picoseconds. + Weight::from_parts(65_073_238, 6315) + // Standard Error: 530 + .saturating_add(Weight::from_parts(118_466, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -108,10 +108,10 @@ impl orml_vesting::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1652` // Estimated: `4764` - // Minimum execution time: 55_998_000 picoseconds. - Weight::from_parts(56_755_277, 4764) - // Standard Error: 353 - .saturating_add(Weight::from_parts(114_601, 0).saturating_mul(i.into())) + // Minimum execution time: 54_945_000 picoseconds. + Weight::from_parts(55_736_040, 4764) + // Standard Error: 364 + .saturating_add(Weight::from_parts(114_873, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_asset_registry.rs b/runtime/hydradx/src/weights/pallet_asset_registry.rs index 87c14e3f4c..bd6d139be7 100644 --- a/runtime/hydradx/src/weights/pallet_asset_registry.rs +++ b/runtime/hydradx/src/weights/pallet_asset_registry.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_asset_registry` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -76,8 +76,8 @@ impl pallet_asset_registry::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `454` // Estimated: `4087` - // Minimum execution time: 45_763_000 picoseconds. - Weight::from_parts(46_546_000, 4087) + // Minimum execution time: 45_517_000 picoseconds. + Weight::from_parts(45_941_000, 4087) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -93,8 +93,8 @@ impl pallet_asset_registry::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `683` // Estimated: `4087` - // Minimum execution time: 46_483_000 picoseconds. - Weight::from_parts(47_306_000, 4087) + // Minimum execution time: 46_282_000 picoseconds. + Weight::from_parts(47_025_000, 4087) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -114,8 +114,8 @@ impl pallet_asset_registry::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `367` // Estimated: `4087` - // Minimum execution time: 32_405_000 picoseconds. - Weight::from_parts(32_874_000, 4087) + // Minimum execution time: 31_729_000 picoseconds. + Weight::from_parts(32_342_000, 4087) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -127,8 +127,8 @@ impl pallet_asset_registry::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `493` // Estimated: `3590` - // Minimum execution time: 22_893_000 picoseconds. - Weight::from_parts(23_045_000, 3590) + // Minimum execution time: 22_593_000 picoseconds. + Weight::from_parts(23_098_000, 3590) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -138,8 +138,8 @@ impl pallet_asset_registry::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `386` // Estimated: `3485` - // Minimum execution time: 17_447_000 picoseconds. - Weight::from_parts(17_723_000, 3485) + // Minimum execution time: 17_336_000 picoseconds. + Weight::from_parts(17_639_000, 3485) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_balances.rs b/runtime/hydradx/src/weights/pallet_balances.rs index 89e5e16002..ca873b6fce 100644 --- a/runtime/hydradx/src/weights/pallet_balances.rs +++ b/runtime/hydradx/src/weights/pallet_balances.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 78_429_000 picoseconds. - Weight::from_parts(79_142_000, 6196) + // Minimum execution time: 79_973_000 picoseconds. + Weight::from_parts(80_408_000, 6196) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -77,8 +77,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 49_949_000 picoseconds. - Weight::from_parts(50_530_000, 3593) + // Minimum execution time: 49_985_000 picoseconds. + Weight::from_parts(50_288_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -88,8 +88,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `39` // Estimated: `3593` - // Minimum execution time: 29_778_000 picoseconds. - Weight::from_parts(30_122_000, 3593) + // Minimum execution time: 29_774_000 picoseconds. + Weight::from_parts(30_133_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -99,8 +99,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 30_131_000 picoseconds. - Weight::from_parts(30_400_000, 3593) + // Minimum execution time: 29_553_000 picoseconds. + Weight::from_parts(30_587_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -110,8 +110,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `206` // Estimated: `8799` - // Minimum execution time: 80_664_000 picoseconds. - Weight::from_parts(81_331_000, 8799) + // Minimum execution time: 81_862_000 picoseconds. + Weight::from_parts(82_473_000, 8799) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -121,8 +121,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 61_456_000 picoseconds. - Weight::from_parts(62_131_000, 3593) + // Minimum execution time: 60_766_000 picoseconds. + Weight::from_parts(61_500_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -132,8 +132,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 24_583_000 picoseconds. - Weight::from_parts(24_806_000, 3593) + // Minimum execution time: 24_325_000 picoseconds. + Weight::from_parts(24_691_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -144,10 +144,10 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0 + u * (136 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 23_399_000 picoseconds. - Weight::from_parts(23_647_000, 990) - // Standard Error: 6_446 - .saturating_add(Weight::from_parts(16_059_412, 0).saturating_mul(u.into())) + // Minimum execution time: 23_082_000 picoseconds. + Weight::from_parts(23_423_000, 990) + // Standard Error: 5_087 + .saturating_add(Weight::from_parts(15_885_772, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) @@ -156,8 +156,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_709_000 picoseconds. - Weight::from_parts(9_885_000, 0) + // Minimum execution time: 9_943_000 picoseconds. + Weight::from_parts(10_079_000, 0) } /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) @@ -165,8 +165,8 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 57_154_000 picoseconds. - Weight::from_parts(57_887_000, 3593) + // Minimum execution time: 57_956_000 picoseconds. + Weight::from_parts(58_605_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -174,7 +174,7 @@ impl pallet_balances::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 28_365_000 picoseconds. - Weight::from_parts(28_789_000, 0) + // Minimum execution time: 27_780_000 picoseconds. + Weight::from_parts(28_226_000, 0) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_bonds.rs b/runtime/hydradx/src/weights/pallet_bonds.rs index 5dd807bf5f..71de90e96d 100644 --- a/runtime/hydradx/src/weights/pallet_bonds.rs +++ b/runtime/hydradx/src/weights/pallet_bonds.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_bonds` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -70,12 +70,12 @@ impl pallet_bonds::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::AssetIds` (r:1 w:1) /// Proof: `AssetRegistry::AssetIds` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:3 w:3) + /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::BannedAssets` (r:1 w:0) /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:1 w:1) @@ -100,12 +100,12 @@ impl pallet_bonds::WeightInfo for HydraWeight { /// Proof: `Bonds::Bonds` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `MaxEncodedLen`) fn issue() -> Weight { // Proof Size summary in bytes: - // Measured: `1283` - // Estimated: `8799` - // Minimum execution time: 300_203_000 picoseconds. - Weight::from_parts(301_801_000, 8799) + // Measured: `1176` + // Estimated: `6196` + // Minimum execution time: 209_451_000 picoseconds. + Weight::from_parts(210_293_000, 6196) .saturating_add(T::DbWeight::get().reads(19_u64)) - .saturating_add(T::DbWeight::get().writes(14_u64)) + .saturating_add(T::DbWeight::get().writes(13_u64)) } /// Storage: `Bonds::Bonds` (r:1 w:0) /// Proof: `Bonds::Bonds` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `MaxEncodedLen`) @@ -117,7 +117,7 @@ impl pallet_bonds::WeightInfo for HydraWeight { /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Tokens::TotalIssuance` (r:1 w:1) /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:3 w:3) + /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) @@ -133,11 +133,11 @@ impl pallet_bonds::WeightInfo for HydraWeight { /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn redeem() -> Weight { // Proof Size summary in bytes: - // Measured: `1722` - // Estimated: `8799` - // Minimum execution time: 219_316_000 picoseconds. - Weight::from_parts(220_579_000, 8799) - .saturating_add(T::DbWeight::get().reads(17_u64)) - .saturating_add(T::DbWeight::get().writes(7_u64)) + // Measured: `1615` + // Estimated: `6196` + // Minimum execution time: 172_399_000 picoseconds. + Weight::from_parts(173_409_000, 6196) + .saturating_add(T::DbWeight::get().reads(16_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_circuit_breaker.rs b/runtime/hydradx/src/weights/pallet_circuit_breaker.rs index 0e795b1190..aba7dac8e2 100644 --- a/runtime/hydradx/src/weights/pallet_circuit_breaker.rs +++ b/runtime/hydradx/src/weights/pallet_circuit_breaker.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_circuit_breaker` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `1493` - // Minimum execution time: 1_262_000 picoseconds. - Weight::from_parts(1_341_000, 1493) + // Minimum execution time: 1_294_000 picoseconds. + Weight::from_parts(1_351_000, 1493) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `CircuitBreaker::WithdrawLockdownUntil` (r:1 w:1) @@ -78,8 +78,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `56` // Estimated: `1493` - // Minimum execution time: 9_759_000 picoseconds. - Weight::from_parts(10_003_000, 1493) + // Minimum execution time: 9_824_000 picoseconds. + Weight::from_parts(10_135_000, 1493) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -89,33 +89,33 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0 + m * (113 ±0) + n * (56 ±0)` // Estimated: `0` - // Minimum execution time: 393_721_000 picoseconds. - Weight::from_parts(395_546_000, 0) - // Standard Error: 12_048 - .saturating_add(Weight::from_parts(348_096, 0).saturating_mul(n.into())) - // Standard Error: 12_048 - .saturating_add(Weight::from_parts(1_283_493, 0).saturating_mul(m.into())) + // Minimum execution time: 389_418_000 picoseconds. + Weight::from_parts(395_344_000, 0) + // Standard Error: 12_047 + .saturating_add(Weight::from_parts(347_250, 0).saturating_mul(n.into())) + // Standard Error: 12_047 + .saturating_add(Weight::from_parts(1_266_808, 0).saturating_mul(m.into())) } fn on_finalize_single_liquidity_limit_entry() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_717_000 picoseconds. - Weight::from_parts(9_870_000, 0) + // Minimum execution time: 10_257_000 picoseconds. + Weight::from_parts(10_513_000, 0) } fn on_finalize_single_trade_limit_entry() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_546_000 picoseconds. - Weight::from_parts(9_794_000, 0) + // Minimum execution time: 10_215_000 picoseconds. + Weight::from_parts(10_476_000, 0) } fn on_finalize_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_612_000 picoseconds. - Weight::from_parts(9_836_000, 0) + // Minimum execution time: 10_263_000 picoseconds. + Weight::from_parts(10_524_000, 0) } /// Storage: `CircuitBreaker::TradeVolumeLimitPerAsset` (r:0 w:1) /// Proof: `CircuitBreaker::TradeVolumeLimitPerAsset` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) @@ -123,8 +123,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_678_000 picoseconds. - Weight::from_parts(10_913_000, 0) + // Minimum execution time: 10_984_000 picoseconds. + Weight::from_parts(11_216_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `CircuitBreaker::LiquidityAddLimitPerAsset` (r:0 w:1) @@ -133,8 +133,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_798_000 picoseconds. - Weight::from_parts(11_025_000, 0) + // Minimum execution time: 11_089_000 picoseconds. + Weight::from_parts(11_491_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `CircuitBreaker::LiquidityRemoveLimitPerAsset` (r:0 w:1) @@ -143,8 +143,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_698_000 picoseconds. - Weight::from_parts(10_923_000, 0) + // Minimum execution time: 11_118_000 picoseconds. + Weight::from_parts(11_372_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `CircuitBreaker::GlobalWithdrawLimitConfig` (r:0 w:1) @@ -153,8 +153,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_798_000 picoseconds. - Weight::from_parts(9_004_000, 0) + // Minimum execution time: 9_022_000 picoseconds. + Weight::from_parts(9_242_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Timestamp::Now` (r:1 w:0) @@ -167,8 +167,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 11_447_000 picoseconds. - Weight::from_parts(11_844_000, 1493) + // Minimum execution time: 11_706_000 picoseconds. + Weight::from_parts(12_020_000, 1493) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -178,8 +178,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_580_000 picoseconds. - Weight::from_parts(8_739_000, 0) + // Minimum execution time: 8_828_000 picoseconds. + Weight::from_parts(9_073_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `CircuitBreaker::EgressAccounts` (r:0 w:100) @@ -189,10 +189,10 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_213_000 picoseconds. - Weight::from_parts(10_076_501, 0) - // Standard Error: 1_071 - .saturating_add(Weight::from_parts(1_521_828, 0).saturating_mul(n.into())) + // Minimum execution time: 8_378_000 picoseconds. + Weight::from_parts(10_569_755, 0) + // Standard Error: 1_049 + .saturating_add(Weight::from_parts(1_554_115, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } /// Storage: `CircuitBreaker::EgressAccounts` (r:0 w:100) @@ -202,10 +202,10 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_033_000 picoseconds. - Weight::from_parts(10_403_153, 0) - // Standard Error: 1_390 - .saturating_add(Weight::from_parts(1_505_643, 0).saturating_mul(n.into())) + // Minimum execution time: 8_396_000 picoseconds. + Weight::from_parts(10_900_005, 0) + // Standard Error: 1_276 + .saturating_add(Weight::from_parts(1_492_657, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:0 w:1) @@ -214,8 +214,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_627_000 picoseconds. - Weight::from_parts(10_821_000, 0) + // Minimum execution time: 10_885_000 picoseconds. + Weight::from_parts(11_219_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `CircuitBreaker::LiquidityAddLimitPerAsset` (r:1 w:0) @@ -230,8 +230,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `16` // Estimated: `3517` - // Minimum execution time: 19_296_000 picoseconds. - Weight::from_parts(19_544_000, 3517) + // Minimum execution time: 21_880_000 picoseconds. + Weight::from_parts(22_261_000, 3517) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -247,8 +247,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `3517` - // Minimum execution time: 17_462_000 picoseconds. - Weight::from_parts(17_683_000, 3517) + // Minimum execution time: 19_590_000 picoseconds. + Weight::from_parts(19_933_000, 3517) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -260,8 +260,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `6076` - // Minimum execution time: 17_831_000 picoseconds. - Weight::from_parts(18_069_000, 6076) + // Minimum execution time: 19_749_000 picoseconds. + Weight::from_parts(20_011_000, 6076) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -271,8 +271,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_937_000 picoseconds. - Weight::from_parts(10_209_000, 0) + // Minimum execution time: 10_463_000 picoseconds. + Weight::from_parts(10_642_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `CircuitBreaker::AssetLockdownState` (r:1 w:1) @@ -285,8 +285,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `743` // Estimated: `3590` - // Minimum execution time: 33_072_000 picoseconds. - Weight::from_parts(33_818_000, 3590) + // Minimum execution time: 34_455_000 picoseconds. + Weight::from_parts(34_848_000, 3590) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -302,8 +302,8 @@ impl pallet_circuit_breaker::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `922` // Estimated: `4726` - // Minimum execution time: 46_365_000 picoseconds. - Weight::from_parts(47_703_000, 4726) + // Minimum execution time: 49_697_000 picoseconds. + Weight::from_parts(50_150_000, 4726) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_claims.rs b/runtime/hydradx/src/weights/pallet_claims.rs index 6b37a789d9..720859d1a0 100644 --- a/runtime/hydradx/src/weights/pallet_claims.rs +++ b/runtime/hydradx/src/weights/pallet_claims.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_claims` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -68,8 +68,8 @@ impl pallet_claims::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `415` // Estimated: `3593` - // Minimum execution time: 79_425_000 picoseconds. - Weight::from_parts(79_820_000, 3593) + // Minimum execution time: 79_687_000 picoseconds. + Weight::from_parts(80_006_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -79,8 +79,8 @@ impl pallet_claims::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `261` // Estimated: `3517` - // Minimum execution time: 49_650_000 picoseconds. - Weight::from_parts(49_902_000, 3517) + // Minimum execution time: 49_808_000 picoseconds. + Weight::from_parts(50_101_000, 3517) .saturating_add(T::DbWeight::get().reads(1_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_collective_technical_committee.rs b/runtime/hydradx/src/weights/pallet_collective_technical_committee.rs index b644a5ea11..5284f63454 100644 --- a/runtime/hydradx/src/weights/pallet_collective_technical_committee.rs +++ b/runtime/hydradx/src/weights/pallet_collective_technical_committee.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_collective_technical_committee` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -75,12 +75,12 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `0 + m * (672 ±0) + p * (310 ±0)` // Estimated: `4256 + m * (398 ±4) + p * (2601 ±2)` - // Minimum execution time: 11_684_000 picoseconds. - Weight::from_parts(11_941_000, 4256) - // Standard Error: 92_602 - .saturating_add(Weight::from_parts(3_315_612, 0).saturating_mul(m.into())) - // Standard Error: 46_828 - .saturating_add(Weight::from_parts(4_459_389, 0).saturating_mul(p.into())) + // Minimum execution time: 11_715_000 picoseconds. + Weight::from_parts(12_062_000, 4256) + // Standard Error: 91_733 + .saturating_add(Weight::from_parts(3_135_224, 0).saturating_mul(m.into())) + // Standard Error: 46_389 + .saturating_add(Weight::from_parts(4_380_381, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -96,12 +96,12 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `1516 + m * (32 ±0)` - // Minimum execution time: 18_234_000 picoseconds. - Weight::from_parts(18_318_534, 1516) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_239, 0).saturating_mul(b.into())) - // Standard Error: 1_520 - .saturating_add(Weight::from_parts(22_056, 0).saturating_mul(m.into())) + // Minimum execution time: 17_992_000 picoseconds. + Weight::from_parts(18_138_472, 1516) + // Standard Error: 12 + .saturating_add(Weight::from_parts(1_361, 0).saturating_mul(b.into())) + // Standard Error: 1_360 + .saturating_add(Weight::from_parts(23_520, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -115,12 +115,12 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `3496 + m * (32 ±0)` - // Minimum execution time: 22_216_000 picoseconds. - Weight::from_parts(22_281_897, 3496) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_315, 0).saturating_mul(b.into())) - // Standard Error: 1_769 - .saturating_add(Weight::from_parts(38_850, 0).saturating_mul(m.into())) + // Minimum execution time: 22_044_000 picoseconds. + Weight::from_parts(22_096_059, 3496) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_267, 0).saturating_mul(b.into())) + // Standard Error: 1_503 + .saturating_add(Weight::from_parts(28_738, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,14 +141,14 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `139 + m * (32 ±0) + p * (50 ±0)` // Estimated: `3565 + m * (32 ±0) + p * (51 ±0)` - // Minimum execution time: 28_139_000 picoseconds. - Weight::from_parts(30_369_679, 3565) - // Standard Error: 94 - .saturating_add(Weight::from_parts(2_285, 0).saturating_mul(b.into())) - // Standard Error: 11_205 - .saturating_add(Weight::from_parts(32_877, 0).saturating_mul(m.into())) - // Standard Error: 4_935 - .saturating_add(Weight::from_parts(333_870, 0).saturating_mul(p.into())) + // Minimum execution time: 30_038_000 picoseconds. + Weight::from_parts(32_055_792, 3565) + // Standard Error: 93 + .saturating_add(Weight::from_parts(2_346, 0).saturating_mul(b.into())) + // Standard Error: 11_047 + .saturating_add(Weight::from_parts(30_583, 0).saturating_mul(m.into())) + // Standard Error: 4_866 + .saturating_add(Weight::from_parts(318_790, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) @@ -163,10 +163,10 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `500 + m * (64 ±0)` // Estimated: `3965 + m * (64 ±0)` - // Minimum execution time: 25_596_000 picoseconds. - Weight::from_parts(25_914_540, 3965) - // Standard Error: 3_747 - .saturating_add(Weight::from_parts(74_413, 0).saturating_mul(m.into())) + // Minimum execution time: 25_513_000 picoseconds. + Weight::from_parts(25_754_649, 3965) + // Standard Error: 3_464 + .saturating_add(Weight::from_parts(70_817, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -185,12 +185,12 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `100 + m * (64 ±0) + p * (53 ±0)` // Estimated: `3569 + m * (72 ±0) + p * (51 ±0)` - // Minimum execution time: 31_364_000 picoseconds. - Weight::from_parts(32_218_726, 3569) - // Standard Error: 6_829 - .saturating_add(Weight::from_parts(43_854, 0).saturating_mul(m.into())) - // Standard Error: 2_301 - .saturating_add(Weight::from_parts(258_517, 0).saturating_mul(p.into())) + // Minimum execution time: 31_018_000 picoseconds. + Weight::from_parts(31_933_041, 3569) + // Standard Error: 7_033 + .saturating_add(Weight::from_parts(18_421, 0).saturating_mul(m.into())) + // Standard Error: 2_369 + .saturating_add(Weight::from_parts(247_700, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 72).saturating_mul(m.into())) @@ -211,14 +211,14 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `316 + b * (1 ±0) + m * (64 ±0) + p * (65 ±0)` // Estimated: `3682 + b * (1 ±0) + m * (69 ±1) + p * (67 ±0)` - // Minimum execution time: 43_177_000 picoseconds. - Weight::from_parts(44_753_313, 3682) + // Minimum execution time: 44_868_000 picoseconds. + Weight::from_parts(46_453_180, 3682) // Standard Error: 74 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(b.into())) - // Standard Error: 11_514 - .saturating_add(Weight::from_parts(44_426, 0).saturating_mul(m.into())) - // Standard Error: 3_888 - .saturating_add(Weight::from_parts(309_829, 0).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(966, 0).saturating_mul(b.into())) + // Standard Error: 11_427 + .saturating_add(Weight::from_parts(6_662, 0).saturating_mul(m.into())) + // Standard Error: 3_859 + .saturating_add(Weight::from_parts(309_925, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -241,12 +241,12 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `120 + m * (64 ±0) + p * (53 ±0)` // Estimated: `3589 + m * (72 ±0) + p * (51 ±0)` - // Minimum execution time: 33_814_000 picoseconds. - Weight::from_parts(34_420_798, 3589) - // Standard Error: 6_936 - .saturating_add(Weight::from_parts(80_568, 0).saturating_mul(m.into())) - // Standard Error: 2_336 - .saturating_add(Weight::from_parts(252_398, 0).saturating_mul(p.into())) + // Minimum execution time: 34_996_000 picoseconds. + Weight::from_parts(35_798_059, 3589) + // Standard Error: 7_576 + .saturating_add(Weight::from_parts(64_015, 0).saturating_mul(m.into())) + // Standard Error: 2_552 + .saturating_add(Weight::from_parts(246_919, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 72).saturating_mul(m.into())) @@ -269,14 +269,14 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `336 + b * (1 ±0) + m * (64 ±0) + p * (65 ±0)` // Estimated: `3702 + b * (1 ±0) + m * (69 ±1) + p * (67 ±0)` - // Minimum execution time: 46_164_000 picoseconds. - Weight::from_parts(47_722_787, 3702) - // Standard Error: 74 + // Minimum execution time: 47_561_000 picoseconds. + Weight::from_parts(49_034_966, 3702) + // Standard Error: 75 .saturating_add(Weight::from_parts(1_030, 0).saturating_mul(b.into())) - // Standard Error: 11_503 - .saturating_add(Weight::from_parts(18_209, 0).saturating_mul(m.into())) - // Standard Error: 3_884 - .saturating_add(Weight::from_parts(309_959, 0).saturating_mul(p.into())) + // Standard Error: 11_666 + .saturating_add(Weight::from_parts(2_628, 0).saturating_mul(m.into())) + // Standard Error: 3_939 + .saturating_add(Weight::from_parts(310_973, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -294,10 +294,10 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `188 + p * (32 ±0)` // Estimated: `1673 + p * (32 ±0)` - // Minimum execution time: 18_545_000 picoseconds. - Weight::from_parts(19_157_894, 1673) - // Standard Error: 1_140 - .saturating_add(Weight::from_parts(176_327, 0).saturating_mul(p.into())) + // Minimum execution time: 18_529_000 picoseconds. + Weight::from_parts(18_883_180, 1673) + // Standard Error: 1_096 + .saturating_add(Weight::from_parts(196_820, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) @@ -316,12 +316,12 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `1292 + p * (48 ±0)` // Estimated: `4749 + d * (8 ±2) + p * (49 ±0)` - // Minimum execution time: 27_681_000 picoseconds. - Weight::from_parts(28_977_727, 4749) - // Standard Error: 37_445 - .saturating_add(Weight::from_parts(166_152, 0).saturating_mul(d.into())) - // Standard Error: 2_936 - .saturating_add(Weight::from_parts(251_134, 0).saturating_mul(p.into())) + // Minimum execution time: 27_699_000 picoseconds. + Weight::from_parts(28_870_003, 4749) + // Standard Error: 36_592 + .saturating_add(Weight::from_parts(117_460, 0).saturating_mul(d.into())) + // Standard Error: 2_869 + .saturating_add(Weight::from_parts(253_367, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(d.into())) @@ -335,8 +335,8 @@ impl pallet_collective_technical_committee::WeightInfo // Proof Size summary in bytes: // Measured: `604` // Estimated: `4069` - // Minimum execution time: 14_694_000 picoseconds. - Weight::from_parts(14_955_000, 4069) + // Minimum execution time: 16_600_000 picoseconds. + Weight::from_parts(16_824_000, 4069) .saturating_add(T::DbWeight::get().reads(2_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_conviction_voting.rs b/runtime/hydradx/src/weights/pallet_conviction_voting.rs index d2dbaef27f..dc6e6b0102 100644 --- a/runtime/hydradx/src/weights/pallet_conviction_voting.rs +++ b/runtime/hydradx/src/weights/pallet_conviction_voting.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_conviction_voting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-06-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -96,8 +96,8 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `6536` // Estimated: `42428` - // Minimum execution time: 174_624_000 picoseconds. - Weight::from_parts(176_824_000, 42428) + // Minimum execution time: 175_770_000 picoseconds. + Weight::from_parts(178_370_000, 42428) .saturating_add(T::DbWeight::get().reads(17_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) } @@ -137,8 +137,8 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `6995` // Estimated: `83866` - // Minimum execution time: 191_547_000 picoseconds. - Weight::from_parts(192_955_000, 83866) + // Minimum execution time: 193_976_000 picoseconds. + Weight::from_parts(195_478_000, 83866) .saturating_add(T::DbWeight::get().reads(17_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) } @@ -170,8 +170,8 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `5068` // Estimated: `83866` - // Minimum execution time: 147_881_000 picoseconds. - Weight::from_parts(150_079_000, 83866) + // Minimum execution time: 150_114_000 picoseconds. + Weight::from_parts(151_486_000, 83866) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -185,10 +185,10 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig /// Proof: `Staking::VotesRewarded` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Staking::Votes` (r:1 w:1) /// Proof: `Staking::Votes` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) - /// Storage: `Staking::Positions` (r:1 w:1) - /// Proof: `Staking::Positions` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) /// Storage: `GigaHdxRewards::UserVoteRecords` (r:1 w:1) /// Proof: `GigaHdxRewards::UserVoteRecords` (`max_values`: None, `max_size`: Some(101), added: 2576, mode: `MaxEncodedLen`) + /// Storage: `Staking::Positions` (r:1 w:1) + /// Proof: `Staking::Positions` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) /// Storage: `GigaHdxRewards::UserVoteCount` (r:1 w:1) /// Proof: `GigaHdxRewards::UserVoteCount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `GigaHdxRewards::ReferendaRewardPool` (r:1 w:1) @@ -203,8 +203,8 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `4967` // Estimated: `6164` - // Minimum execution time: 146_616_000 picoseconds. - Weight::from_parts(147_562_000, 6164) + // Minimum execution time: 149_090_000 picoseconds. + Weight::from_parts(150_860_000, 6164) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -229,10 +229,10 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `298 + r * (1028 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 60_714_000 picoseconds. - Weight::from_parts(66_568_369, 83866) - // Standard Error: 292_923 - .saturating_add(Weight::from_parts(36_062_021, 0).saturating_mul(r.into())) + // Minimum execution time: 61_974_000 picoseconds. + Weight::from_parts(67_203_211, 83866) + // Standard Error: 283_599 + .saturating_add(Weight::from_parts(36_138_510, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -252,10 +252,10 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `477 + r * (890 ±0)` // Estimated: `83866 + r * (3411 ±0)` - // Minimum execution time: 30_077_000 picoseconds. - Weight::from_parts(33_792_415, 83866) - // Standard Error: 218_615 - .saturating_add(Weight::from_parts(33_089_257, 0).saturating_mul(r.into())) + // Minimum execution time: 30_569_000 picoseconds. + Weight::from_parts(34_381_917, 83866) + // Standard Error: 220_021 + .saturating_add(Weight::from_parts(33_493_757, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -276,8 +276,8 @@ impl pallet_conviction_voting::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `1501` // Estimated: `4894` - // Minimum execution time: 64_789_000 picoseconds. - Weight::from_parts(65_440_000, 4894) + // Minimum execution time: 65_489_000 picoseconds. + Weight::from_parts(66_103_000, 4894) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_currencies.rs b/runtime/hydradx/src/weights/pallet_currencies.rs index d0be1199ca..016ef6e978 100644 --- a/runtime/hydradx/src/weights/pallet_currencies.rs +++ b/runtime/hydradx/src/weights/pallet_currencies.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_currencies` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -74,23 +74,19 @@ impl pallet_currencies::WeightInfo for HydraWeight { /// Proof: `EVM::AccountCodesMetadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `EVM::AccountCodes` (r:1 w:0) /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) - /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) - /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `EVM::AccountStorages` (r:2 w:2) /// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn transfer_non_native_currency() -> Weight { // Proof Size summary in bytes: - // Measured: `7003` - // Estimated: `12943` - // Minimum execution time: 202_508_000 picoseconds. - Weight::from_parts(203_225_000, 12943) - .saturating_add(T::DbWeight::get().reads(15_u64)) + // Measured: `6971` + // Estimated: `12911` + // Minimum execution time: 194_803_000 picoseconds. + Weight::from_parts(195_872_000, 12911) + .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `System::Account` (r:1 w:1) @@ -99,8 +95,8 @@ impl pallet_currencies::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1705` // Estimated: `3593` - // Minimum execution time: 81_701_000 picoseconds. - Weight::from_parts(82_601_000, 3593) + // Minimum execution time: 81_886_000 picoseconds. + Weight::from_parts(82_318_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -120,10 +116,10 @@ impl pallet_currencies::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn update_balance_non_native_currency() -> Weight { // Proof Size summary in bytes: - // Measured: `2341` + // Measured: `2374` // Estimated: `3593` - // Minimum execution time: 81_725_000 picoseconds. - Weight::from_parts(82_847_000, 3593) + // Minimum execution time: 82_479_000 picoseconds. + Weight::from_parts(83_543_000, 3593) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -133,8 +129,8 @@ impl pallet_currencies::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1565` // Estimated: `3593` - // Minimum execution time: 48_682_000 picoseconds. - Weight::from_parts(49_437_000, 3593) + // Minimum execution time: 49_064_000 picoseconds. + Weight::from_parts(49_948_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -144,8 +140,8 @@ impl pallet_currencies::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1653` // Estimated: `3593` - // Minimum execution time: 50_963_000 picoseconds. - Weight::from_parts(51_494_000, 3593) + // Minimum execution time: 51_241_000 picoseconds. + Weight::from_parts(51_644_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_dca.rs b/runtime/hydradx/src/weights/pallet_dca.rs index 48c515f46d..a5bdd48115 100644 --- a/runtime/hydradx/src/weights/pallet_dca.rs +++ b/runtime/hydradx/src/weights/pallet_dca.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_dca` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -61,7 +61,7 @@ pub struct WeightInfo(PhantomData); pub struct HydraWeight(PhantomData); impl pallet_dca::WeightInfo for HydraWeight { /// Storage: `DCA::ScheduleIdsPerBlock` (r:12 w:2) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) /// Storage: `DCA::Schedules` (r:1 w:0) /// Proof: `DCA::Schedules` (`max_values`: None, `max_size`: Some(243), added: 2718, mode: `MaxEncodedLen`) /// Storage: `DCA::ScheduleExtraGas` (r:1 w:0) @@ -72,12 +72,12 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `Balances::Reserves` (`max_values`: None, `max_size`: Some(1249), added: 3724, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::Assets` (r:1 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Broadcast::IncrementalId` (r:1 w:1) /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `DCA::RetriesOnError` (r:0 w:1) @@ -86,15 +86,15 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `DCA::ScheduleExecutionBlock` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn on_initialize_with_buy_trade() -> Weight { // Proof Size summary in bytes: - // Measured: `20540` - // Estimated: `31230` - // Minimum execution time: 262_786_000 picoseconds. - Weight::from_parts(265_045_000, 31230) - .saturating_add(T::DbWeight::get().reads(22_u64)) + // Measured: `10201` + // Estimated: `31038` + // Minimum execution time: 252_723_000 picoseconds. + Weight::from_parts(253_612_000, 31038) + .saturating_add(T::DbWeight::get().reads(23_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } /// Storage: `DCA::ScheduleIdsPerBlock` (r:12 w:2) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) /// Storage: `DCA::Schedules` (r:1 w:0) /// Proof: `DCA::Schedules` (`max_values`: None, `max_size`: Some(243), added: 2718, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) @@ -129,10 +129,10 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -145,15 +145,15 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `DCA::ScheduleExecutionBlock` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn on_initialize_with_buy_trade_with_insufficient_fee_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `26451` - // Estimated: `31230` - // Minimum execution time: 461_361_000 picoseconds. - Weight::from_parts(464_644_000, 31230) - .saturating_add(T::DbWeight::get().reads(45_u64)) + // Measured: `15951` + // Estimated: `31038` + // Minimum execution time: 457_828_000 picoseconds. + Weight::from_parts(461_892_000, 31038) + .saturating_add(T::DbWeight::get().reads(46_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) } /// Storage: `DCA::ScheduleIdsPerBlock` (r:12 w:2) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) /// Storage: `DCA::Schedules` (r:1 w:0) /// Proof: `DCA::Schedules` (`max_values`: None, `max_size`: Some(243), added: 2718, mode: `MaxEncodedLen`) /// Storage: `DCA::ScheduleExtraGas` (r:1 w:0) @@ -164,12 +164,12 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `Balances::Reserves` (`max_values`: None, `max_size`: Some(1249), added: 3724, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::Assets` (r:1 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Broadcast::IncrementalId` (r:1 w:1) /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `DCA::RetriesOnError` (r:0 w:1) @@ -178,15 +178,15 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `DCA::ScheduleExecutionBlock` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn on_initialize_with_sell_trade() -> Weight { // Proof Size summary in bytes: - // Measured: `20288` - // Estimated: `31230` - // Minimum execution time: 265_929_000 picoseconds. - Weight::from_parts(267_841_000, 31230) - .saturating_add(T::DbWeight::get().reads(22_u64)) + // Measured: `9949` + // Estimated: `31038` + // Minimum execution time: 255_844_000 picoseconds. + Weight::from_parts(257_585_000, 31038) + .saturating_add(T::DbWeight::get().reads(23_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } /// Storage: `DCA::ScheduleIdsPerBlock` (r:12 w:2) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) /// Storage: `DCA::Schedules` (r:1 w:0) /// Proof: `DCA::Schedules` (`max_values`: None, `max_size`: Some(243), added: 2718, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) @@ -221,10 +221,10 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -237,21 +237,21 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `DCA::ScheduleExecutionBlock` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn on_initialize_with_sell_trade_with_insufficient_fee_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `26711` - // Estimated: `31230` - // Minimum execution time: 463_924_000 picoseconds. - Weight::from_parts(465_827_000, 31230) - .saturating_add(T::DbWeight::get().reads(45_u64)) + // Measured: `16035` + // Estimated: `31038` + // Minimum execution time: 462_082_000 picoseconds. + Weight::from_parts(464_054_000, 31038) + .saturating_add(T::DbWeight::get().reads(46_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) } /// Storage: `DCA::ScheduleIdsPerBlock` (r:1 w:0) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) fn on_initialize_with_empty_block() -> Weight { // Proof Size summary in bytes: // Measured: `1113` - // Estimated: `3510` - // Minimum execution time: 19_910_000 picoseconds. - Weight::from_parts(20_166_000, 3510) + // Estimated: `3494` + // Minimum execution time: 19_935_000 picoseconds. + Weight::from_parts(20_279_000, 3494) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) @@ -273,7 +273,7 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Storage: `Tokens::Reserves` (r:1 w:1) /// Proof: `Tokens::Reserves` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) /// Storage: `DCA::ScheduleIdsPerBlock` (r:11 w:1) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) /// Storage: `DCA::RetriesOnError` (r:0 w:1) /// Proof: `DCA::RetriesOnError` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `DCA::Schedules` (r:0 w:1) @@ -286,10 +286,10 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `DCA::RemainingAmounts` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn schedule() -> Weight { // Proof Size summary in bytes: - // Measured: `19272` - // Estimated: `28710` - // Minimum execution time: 230_732_000 picoseconds. - Weight::from_parts(232_227_000, 28710) + // Measured: `9397` + // Estimated: `28534` + // Minimum execution time: 222_856_000 picoseconds. + Weight::from_parts(225_660_000, 28534) .saturating_add(T::DbWeight::get().reads(24_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -304,7 +304,7 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Storage: `DCA::ScheduleExecutionBlock` (r:1 w:1) /// Proof: `DCA::ScheduleExecutionBlock` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) /// Storage: `DCA::ScheduleIdsPerBlock` (r:1 w:1) - /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Proof: `DCA::ScheduleIdsPerBlock` (`max_values`: None, `max_size`: Some(29), added: 2504, mode: `MaxEncodedLen`) /// Storage: `DCA::RetriesOnError` (r:0 w:1) /// Proof: `DCA::RetriesOnError` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `DCA::ScheduleExtraGas` (r:0 w:1) @@ -313,10 +313,10 @@ impl pallet_dca::WeightInfo for HydraWeight { /// Proof: `DCA::ScheduleOwnership` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `MaxEncodedLen`) fn terminate() -> Weight { // Proof Size summary in bytes: - // Measured: `4072` + // Measured: `2972` // Estimated: `4714` - // Minimum execution time: 98_858_000 picoseconds. - Weight::from_parts(99_809_000, 4714) + // Minimum execution time: 98_202_000 picoseconds. + Weight::from_parts(99_541_000, 4714) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -330,8 +330,8 @@ impl pallet_dca::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1992` // Estimated: `4714` - // Minimum execution time: 59_845_000 picoseconds. - Weight::from_parts(60_613_000, 4714) + // Minimum execution time: 60_918_000 picoseconds. + Weight::from_parts(61_643_000, 4714) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_democracy.rs b/runtime/hydradx/src/weights/pallet_democracy.rs index a4e8cc5f81..2ba109fb23 100644 --- a/runtime/hydradx/src/weights/pallet_democracy.rs +++ b/runtime/hydradx/src/weights/pallet_democracy.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -72,8 +72,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4650` // Estimated: `18187` - // Minimum execution time: 49_285_000 picoseconds. - Weight::from_parts(49_856_000, 18187) + // Minimum execution time: 51_576_000 picoseconds. + Weight::from_parts(52_241_000, 18187) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -83,8 +83,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3405` // Estimated: `6695` - // Minimum execution time: 45_660_000 picoseconds. - Weight::from_parts(47_074_000, 6695) + // Minimum execution time: 46_343_000 picoseconds. + Weight::from_parts(48_041_000, 6695) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -100,8 +100,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4428` // Estimated: `7260` - // Minimum execution time: 60_970_000 picoseconds. - Weight::from_parts(62_956_000, 7260) + // Minimum execution time: 63_408_000 picoseconds. + Weight::from_parts(65_890_000, 7260) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -117,8 +117,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4450` // Estimated: `7260` - // Minimum execution time: 59_604_000 picoseconds. - Weight::from_parts(61_234_000, 7260) + // Minimum execution time: 62_191_000 picoseconds. + Weight::from_parts(64_661_000, 7260) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -132,8 +132,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3666` - // Minimum execution time: 32_889_000 picoseconds. - Weight::from_parts(33_372_000, 3666) + // Minimum execution time: 33_392_000 picoseconds. + Weight::from_parts(33_864_000, 3666) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -155,8 +155,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `6153` // Estimated: `18187` - // Minimum execution time: 118_828_000 picoseconds. - Weight::from_parts(120_109_000, 18187) + // Minimum execution time: 120_145_000 picoseconds. + Weight::from_parts(121_012_000, 18187) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -168,8 +168,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3238` // Estimated: `6703` - // Minimum execution time: 14_919_000 picoseconds. - Weight::from_parts(15_262_000, 6703) + // Minimum execution time: 15_358_000 picoseconds. + Weight::from_parts(15_720_000, 6703) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -179,8 +179,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_986_000 picoseconds. - Weight::from_parts(5_108_000, 0) + // Minimum execution time: 5_141_000 picoseconds. + Weight::from_parts(5_286_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Democracy::NextExternal` (r:0 w:1) @@ -190,7 +190,7 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Measured: `0` // Estimated: `0` // Minimum execution time: 5_078_000 picoseconds. - Weight::from_parts(5_213_000, 0) + Weight::from_parts(5_244_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Democracy::NextExternal` (r:1 w:1) @@ -205,8 +205,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3518` - // Minimum execution time: 28_407_000 picoseconds. - Weight::from_parts(28_792_000, 3518) + // Minimum execution time: 29_048_000 picoseconds. + Weight::from_parts(29_492_000, 3518) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -220,8 +220,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3339` // Estimated: `6703` - // Minimum execution time: 32_034_000 picoseconds. - Weight::from_parts(32_399_000, 6703) + // Minimum execution time: 34_619_000 picoseconds. + Weight::from_parts(34_996_000, 6703) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -237,8 +237,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `6038` // Estimated: `18187` - // Minimum execution time: 96_050_000 picoseconds. - Weight::from_parts(96_916_000, 18187) + // Minimum execution time: 97_827_000 picoseconds. + Weight::from_parts(98_770_000, 18187) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -250,8 +250,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `143` // Estimated: `3518` - // Minimum execution time: 22_344_000 picoseconds. - Weight::from_parts(22_747_000, 3518) + // Minimum execution time: 22_682_000 picoseconds. + Weight::from_parts(23_059_000, 3518) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -266,10 +266,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `89 + r * (86 ±0)` // Estimated: `1489 + r * (2676 ±0)` - // Minimum execution time: 4_609_000 picoseconds. - Weight::from_parts(8_878_758, 1489) - // Standard Error: 7_124 - .saturating_add(Weight::from_parts(3_752_128, 0).saturating_mul(r.into())) + // Minimum execution time: 4_757_000 picoseconds. + Weight::from_parts(9_082_596, 1489) + // Standard Error: 7_756 + .saturating_add(Weight::from_parts(3_855_350, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -292,10 +292,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `89 + r * (86 ±0)` // Estimated: `18187 + r * (2676 ±0)` - // Minimum execution time: 7_968_000 picoseconds. - Weight::from_parts(12_253_449, 18187) - // Standard Error: 7_743 - .saturating_add(Weight::from_parts(3_767_555, 0).saturating_mul(r.into())) + // Minimum execution time: 9_785_000 picoseconds. + Weight::from_parts(13_038_205, 18187) + // Standard Error: 7_689 + .saturating_add(Weight::from_parts(3_848_915, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -314,10 +314,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `639 + r * (108 ±0)` // Estimated: `19800 + r * (2676 ±0)` - // Minimum execution time: 53_041_000 picoseconds. - Weight::from_parts(54_711_841, 19800) - // Standard Error: 7_983 - .saturating_add(Weight::from_parts(4_833_495, 0).saturating_mul(r.into())) + // Minimum execution time: 53_379_000 picoseconds. + Weight::from_parts(55_944_418, 19800) + // Standard Error: 9_126 + .saturating_add(Weight::from_parts(4_851_001, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -333,10 +333,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `336 + r * (108 ±0)` // Estimated: `13530 + r * (2676 ±0)` - // Minimum execution time: 24_912_000 picoseconds. - Weight::from_parts(23_395_938, 13530) - // Standard Error: 7_804 - .saturating_add(Weight::from_parts(4_798_689, 0).saturating_mul(r.into())) + // Minimum execution time: 25_048_000 picoseconds. + Weight::from_parts(24_261_020, 13530) + // Standard Error: 7_740 + .saturating_add(Weight::from_parts(4_814_128, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -349,8 +349,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_930_000 picoseconds. - Weight::from_parts(4_974_000, 0) + // Minimum execution time: 4_908_000 picoseconds. + Weight::from_parts(5_015_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Democracy::VotingOf` (r:1 w:1) @@ -366,10 +366,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `394` // Estimated: `7260` - // Minimum execution time: 28_558_000 picoseconds. - Weight::from_parts(42_553_131, 7260) - // Standard Error: 3_184 - .saturating_add(Weight::from_parts(51_684, 0).saturating_mul(r.into())) + // Minimum execution time: 32_268_000 picoseconds. + Weight::from_parts(44_820_793, 7260) + // Standard Error: 2_820 + .saturating_add(Weight::from_parts(50_292, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -386,10 +386,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `395 + r * (22 ±0)` // Estimated: `7260` - // Minimum execution time: 42_291_000 picoseconds. - Weight::from_parts(43_999_089, 7260) - // Standard Error: 580 - .saturating_add(Weight::from_parts(68_048, 0).saturating_mul(r.into())) + // Minimum execution time: 44_883_000 picoseconds. + Weight::from_parts(46_250_155, 7260) + // Standard Error: 630 + .saturating_add(Weight::from_parts(70_305, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -410,10 +410,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1169 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 47_137_000 picoseconds. - Weight::from_parts(49_915_463, 7260) - // Standard Error: 1_188 - .saturating_add(Weight::from_parts(90_983, 0).saturating_mul(r.into())) + // Minimum execution time: 49_772_000 picoseconds. + Weight::from_parts(52_721_737, 7260) + // Standard Error: 1_133 + .saturating_add(Weight::from_parts(92_592, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -434,10 +434,10 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1169 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 47_121_000 picoseconds. - Weight::from_parts(49_760_806, 7260) - // Standard Error: 1_031 - .saturating_add(Weight::from_parts(91_261, 0).saturating_mul(r.into())) + // Minimum execution time: 49_720_000 picoseconds. + Weight::from_parts(52_888_276, 7260) + // Standard Error: 1_207 + .saturating_add(Weight::from_parts(93_901, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -453,8 +453,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `144` // Estimated: `3556` - // Minimum execution time: 22_312_000 picoseconds. - Weight::from_parts(22_794_000, 3556) + // Minimum execution time: 22_993_000 picoseconds. + Weight::from_parts(23_310_000, 3556) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -466,8 +466,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3518` - // Minimum execution time: 17_924_000 picoseconds. - Weight::from_parts(18_164_000, 3518) + // Minimum execution time: 18_259_000 picoseconds. + Weight::from_parts(18_497_000, 3518) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -483,8 +483,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4699` // Estimated: `18187` - // Minimum execution time: 47_380_000 picoseconds. - Weight::from_parts(47_894_000, 18187) + // Minimum execution time: 47_822_000 picoseconds. + Weight::from_parts(48_448_000, 18187) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -496,8 +496,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4668` // Estimated: `18187` - // Minimum execution time: 42_334_000 picoseconds. - Weight::from_parts(42_966_000, 18187) + // Minimum execution time: 42_677_000 picoseconds. + Weight::from_parts(43_074_000, 18187) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -511,8 +511,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 19_904_000 picoseconds. - Weight::from_parts(20_076_000, 3556) + // Minimum execution time: 20_124_000 picoseconds. + Weight::from_parts(20_381_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -524,8 +524,8 @@ impl pallet_democracy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `121` // Estimated: `3666` - // Minimum execution time: 20_607_000 picoseconds. - Weight::from_parts(20_969_000, 3666) + // Minimum execution time: 20_862_000 picoseconds. + Weight::from_parts(21_220_000, 3666) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_dispatcher.rs b/runtime/hydradx/src/weights/pallet_dispatcher.rs index 4e25e7e2da..1e8f5e345b 100644 --- a/runtime/hydradx/src/weights/pallet_dispatcher.rs +++ b/runtime/hydradx/src/weights/pallet_dispatcher.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_dispatcher` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -65,10 +65,10 @@ impl pallet_dispatcher::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_942_000 picoseconds. - Weight::from_parts(13_334_558, 0) + // Minimum execution time: 13_054_000 picoseconds. + Weight::from_parts(13_441_399, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_198, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_226, 0).saturating_mul(n.into())) } /// Storage: `Dispatcher::AaveManagerAccount` (r:1 w:0) /// Proof: `Dispatcher::AaveManagerAccount` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) @@ -77,10 +77,10 @@ impl pallet_dispatcher::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1517` - // Minimum execution time: 14_016_000 picoseconds. - Weight::from_parts(14_255_827, 1517) + // Minimum execution time: 14_043_000 picoseconds. + Weight::from_parts(14_386_581, 1517) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_193, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_219, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Dispatcher::AaveManagerAccount` (r:0 w:1) @@ -89,8 +89,8 @@ impl pallet_dispatcher::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_617_000 picoseconds. - Weight::from_parts(4_778_000, 0) + // Minimum execution time: 4_786_000 picoseconds. + Weight::from_parts(4_960_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// The range of component `n` is `[1, 10000]`. @@ -98,39 +98,39 @@ impl pallet_dispatcher::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_965_000 picoseconds. - Weight::from_parts(13_281_547, 0) + // Minimum execution time: 12_984_000 picoseconds. + Weight::from_parts(13_307_298, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_215, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_212, 0).saturating_mul(n.into())) } /// The range of component `n` is `[1, 10000]`. fn dispatch_with_extra_gas(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_016_000 picoseconds. - Weight::from_parts(7_289_848, 0) + // Minimum execution time: 7_387_000 picoseconds. + Weight::from_parts(7_525_096, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(348, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(302, 0).saturating_mul(n.into())) } /// The range of component `n` is `[1, 10000]`. fn dispatch_evm_call(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_050_000 picoseconds. - Weight::from_parts(7_323_987, 0) + // Minimum execution time: 7_195_000 picoseconds. + Weight::from_parts(7_359_058, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(315, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(310, 0).saturating_mul(n.into())) } /// The range of component `n` is `[1, 10000]`. - fn dispatch_with_fee_payer(n: u32) -> Weight { + fn dispatch_with_fee_payer(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(13_334_558, 0) + // Minimum execution time: 6_488_000 picoseconds. + Weight::from_parts(6_734_215, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_198, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_dispenser.rs b/runtime/hydradx/src/weights/pallet_dispenser.rs index 2901dcc422..c4a464cbf4 100644 --- a/runtime/hydradx/src/weights/pallet_dispenser.rs +++ b/runtime/hydradx/src/weights/pallet_dispenser.rs @@ -18,14 +18,14 @@ //! Autogenerated weights for `pallet_dispenser` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 48.0.0 -//! DATE: 2026-03-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `Yashs-MacBook-Pro.local`, CPU: `` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: -// ./target/release/hydradx +// ./bin/hydradx // benchmark // pallet // --wasm-execution=compiled @@ -64,10 +64,10 @@ impl pallet_dispenser::WeightInfo for HydraWeight { /// Proof: `EthDispenser::DispenserConfig` (`max_values`: Some(1), `max_size`: Some(101), added: 596, mode: `MaxEncodedLen`) fn set_config() -> Weight { // Proof Size summary in bytes: - // Measured: `232` - // Estimated: `1501` - // Minimum execution time: 12_496_000 picoseconds. - Weight::from_parts(12_645_000, 1501) + // Measured: `208` + // Estimated: `1586` + // Minimum execution time: 13_401_000 picoseconds. + Weight::from_parts(13_637_000, 1586) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -75,10 +75,10 @@ impl pallet_dispenser::WeightInfo for HydraWeight { /// Proof: `EthDispenser::DispenserConfig` (`max_values`: Some(1), `max_size`: Some(101), added: 596, mode: `MaxEncodedLen`) fn pause() -> Weight { // Proof Size summary in bytes: - // Measured: `232` - // Estimated: `1486` - // Minimum execution time: 12_981_000 picoseconds. - Weight::from_parts(13_290_000, 1486) + // Measured: `336` + // Estimated: `1586` + // Minimum execution time: 17_046_000 picoseconds. + Weight::from_parts(17_239_000, 1586) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -86,10 +86,10 @@ impl pallet_dispenser::WeightInfo for HydraWeight { /// Proof: `EthDispenser::DispenserConfig` (`max_values`: Some(1), `max_size`: Some(101), added: 596, mode: `MaxEncodedLen`) fn unpause() -> Weight { // Proof Size summary in bytes: - // Measured: `232` - // Estimated: `1486` - // Minimum execution time: 12_933_000 picoseconds. - Weight::from_parts(13_220_000, 1486) + // Measured: `336` + // Estimated: `1586` + // Minimum execution time: 16_808_000 picoseconds. + Weight::from_parts(17_331_000, 1586) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -105,6 +105,10 @@ impl pallet_dispenser::WeightInfo for HydraWeight { /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:3) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `EVMAccounts::AccountExtension` (r:1 w:0) /// Proof: `EVMAccounts::AccountExtension` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `HSM::FlashMinter` (r:1 w:0) @@ -119,11 +123,11 @@ impl pallet_dispenser::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn request_fund() -> Weight { // Proof Size summary in bytes: - // Measured: `1792` + // Measured: `1806` // Estimated: `8799` - // Minimum execution time: 470_146_000 picoseconds. - Weight::from_parts(471_759_000, 8799) - .saturating_add(T::DbWeight::get().reads(22_u64)) - .saturating_add(T::DbWeight::get().writes(9_u64)) + // Minimum execution time: 235_577_000 picoseconds. + Weight::from_parts(238_017_000, 8799) + .saturating_add(T::DbWeight::get().reads(20_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_duster.rs b/runtime/hydradx/src/weights/pallet_duster.rs index 4d4179d4ed..48068fd6b3 100644 --- a/runtime/hydradx/src/weights/pallet_duster.rs +++ b/runtime/hydradx/src/weights/pallet_duster.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_duster` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -76,25 +76,23 @@ impl pallet_duster::WeightInfo for HydraWeight { /// Proof: `EVM::AccountCodesMetadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `EVM::AccountCodes` (r:1 w:0) /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) - /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::LocationAssets` (r:2 w:0) - /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `EVM::AccountStorages` (r:2 w:2) /// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `DynamicEvmFee::BaseFeePerGas` (r:1 w:0) /// Proof: `DynamicEvmFee::BaseFeePerGas` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn dust_account() -> Weight { // Proof Size summary in bytes: - // Measured: `7437` - // Estimated: `13377` - // Minimum execution time: 389_519_000 picoseconds. - Weight::from_parts(392_047_000, 13377) - .saturating_add(T::DbWeight::get().reads(21_u64)) + // Measured: `7470` + // Estimated: `13410` + // Minimum execution time: 379_793_000 picoseconds. + Weight::from_parts(381_880_000, 13410) + .saturating_add(T::DbWeight::get().reads(19_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `Duster::AccountWhitelist` (r:0 w:1) @@ -103,18 +101,18 @@ impl pallet_duster::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 21_793_000 picoseconds. - Weight::from_parts(22_347_000, 0) + // Minimum execution time: 22_144_000 picoseconds. + Weight::from_parts(22_550_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Duster::AccountWhitelist` (r:1 w:1) /// Proof: `Duster::AccountWhitelist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn remove_from_whitelist() -> Weight { // Proof Size summary in bytes: - // Measured: `1332` + // Measured: `1365` // Estimated: `3513` - // Minimum execution time: 27_440_000 picoseconds. - Weight::from_parts(27_915_000, 3513) + // Minimum execution time: 27_927_000 picoseconds. + Weight::from_parts(28_373_000, 3513) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_dynamic_evm_fee.rs b/runtime/hydradx/src/weights/pallet_dynamic_evm_fee.rs index 852c2302ca..5f50aa2825 100644 --- a/runtime/hydradx/src/weights/pallet_dynamic_evm_fee.rs +++ b/runtime/hydradx/src/weights/pallet_dynamic_evm_fee.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_dynamic_evm_fee` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -62,10 +62,6 @@ pub struct HydraWeight(PhantomData); impl pallet_dynamic_evm_fee::WeightInfo for HydraWeight { /// Storage: `DynamicEvmFee::BaseFeePerGas` (r:1 w:1) /// Proof: `DynamicEvmFee::BaseFeePerGas` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) - /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) - /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Router::Routes` (r:1 w:0) @@ -76,11 +72,11 @@ impl pallet_dynamic_evm_fee::WeightInfo for HydraWeight /// Proof: `Parameters::IsTestnet` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) fn on_initialize() -> Weight { // Proof Size summary in bytes: - // Measured: `3044` + // Measured: `2990` // Estimated: `11666` - // Minimum execution time: 92_444_000 picoseconds. - Weight::from_parts(93_651_000, 11666) - .saturating_add(T::DbWeight::get().reads(10_u64)) + // Minimum execution time: 88_114_000 picoseconds. + Weight::from_parts(89_031_000, 11666) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_dynamic_fees.rs b/runtime/hydradx/src/weights/pallet_dynamic_fees.rs index 69d5e732bf..bb86e0a558 100644 --- a/runtime/hydradx/src/weights/pallet_dynamic_fees.rs +++ b/runtime/hydradx/src/weights/pallet_dynamic_fees.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_dynamic_fees` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl pallet_dynamic_fees::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_286_000 picoseconds. - Weight::from_parts(11_467_000, 0) + // Minimum execution time: 11_229_000 picoseconds. + Weight::from_parts(11_407_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `DynamicFees::AssetFeeConfiguration` (r:0 w:1) @@ -76,8 +76,8 @@ impl pallet_dynamic_fees::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_996_000 picoseconds. - Weight::from_parts(10_233_000, 0) + // Minimum execution time: 10_263_000 picoseconds. + Weight::from_parts(10_487_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_ema_oracle.rs b/runtime/hydradx/src/weights/pallet_ema_oracle.rs index 40fbca9d66..915788eacd 100644 --- a/runtime/hydradx/src/weights/pallet_ema_oracle.rs +++ b/runtime/hydradx/src/weights/pallet_ema_oracle.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_ema_oracle` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-04-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,45 +66,45 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1872` // Estimated: `2126` - // Minimum execution time: 29_065_000 picoseconds. - Weight::from_parts(29_773_000, 2126) + // Minimum execution time: 29_840_000 picoseconds. + Weight::from_parts(30_515_000, 2126) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:1) /// Proof: `EmaOracle::WhitelistedAssets` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `EmaOracle::Oracles` (r:0 w:6) + /// Storage: `EmaOracle::Oracles` (r:0 w:4) /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn remove_oracle() -> Weight { // Proof Size summary in bytes: // Measured: `1888` // Estimated: `2126` - // Minimum execution time: 60_395_000 picoseconds. - Weight::from_parts(61_331_000, 2126) + // Minimum execution time: 52_651_000 picoseconds. + Weight::from_parts(53_600_000, 2126) .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } fn on_finalize_no_entry() -> Weight { // Proof Size summary in bytes: // Measured: `742` // Estimated: `0` - // Minimum execution time: 4_467_000 picoseconds. - Weight::from_parts(4_602_000, 0) + // Minimum execution time: 4_302_000 picoseconds. + Weight::from_parts(4_407_000, 0) } - /// Storage: `EmaOracle::Oracles` (r:60 w:60) + /// Storage: `EmaOracle::Oracles` (r:40 w:40) /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) /// The range of component `b` is `[1, 10]`. fn on_finalize_multiple_tokens(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1207 + b * (1499 ±0)` - // Estimated: `990 + b * (16014 ±0)` - // Minimum execution time: 118_492_000 picoseconds. - Weight::from_parts(35_743_380, 990) - // Standard Error: 59_590 - .saturating_add(Weight::from_parts(85_128_613, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(b.into()))) - .saturating_add(Weight::from_parts(0, 16014).saturating_mul(b.into())) + // Measured: `1206 + b * (1095 ±0)` + // Estimated: `990 + b * (10676 ±0)` + // Minimum execution time: 89_176_000 picoseconds. + Weight::from_parts(33_495_323, 990) + // Standard Error: 22_272 + .saturating_add(Weight::from_parts(58_095_035, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_parts(0, 10676).saturating_mul(b.into())) } /// Storage: `AssetRegistry::Assets` (r:2 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) @@ -113,10 +113,10 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3719 + b * (172 ±0)` // Estimated: `6190` - // Minimum execution time: 42_907_000 picoseconds. - Weight::from_parts(43_789_032, 6190) - // Standard Error: 4_156 - .saturating_add(Weight::from_parts(505_237, 0).saturating_mul(b.into())) + // Minimum execution time: 42_956_000 picoseconds. + Weight::from_parts(43_687_609, 6190) + // Standard Error: 4_249 + .saturating_add(Weight::from_parts(576_170, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `AssetRegistry::Assets` (r:2 w:0) @@ -126,20 +126,20 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3719 + b * (172 ±0)` // Estimated: `6190` - // Minimum execution time: 42_750_000 picoseconds. - Weight::from_parts(44_019_580, 6190) - // Standard Error: 4_272 - .saturating_add(Weight::from_parts(498_764, 0).saturating_mul(b.into())) + // Minimum execution time: 42_903_000 picoseconds. + Weight::from_parts(43_630_425, 6190) + // Standard Error: 4_172 + .saturating_add(Weight::from_parts(581_373, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `EmaOracle::Oracles` (r:2 w:0) /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn get_entry() -> Weight { // Proof Size summary in bytes: - // Measured: `1649` + // Measured: `1583` // Estimated: `6328` - // Minimum execution time: 34_313_000 picoseconds. - Weight::from_parts(35_256_000, 6328) + // Minimum execution time: 33_910_000 picoseconds. + Weight::from_parts(34_424_000, 6328) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) @@ -156,8 +156,8 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2055` // Estimated: `6190` - // Minimum execution time: 62_661_000 picoseconds. - Weight::from_parts(63_314_000, 6190) + // Minimum execution time: 60_279_000 picoseconds. + Weight::from_parts(61_053_000, 6190) .saturating_add(T::DbWeight::get().reads(6_u64)) } /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) @@ -174,8 +174,8 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2055` // Estimated: `6190` - // Minimum execution time: 62_685_000 picoseconds. - Weight::from_parts(63_029_000, 6190) + // Minimum execution time: 60_245_000 picoseconds. + Weight::from_parts(60_931_000, 6190) .saturating_add(T::DbWeight::get().reads(6_u64)) } /// Storage: `EmaOracle::ExternalSources` (r:1 w:0) @@ -190,8 +190,8 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2351` // Estimated: `3590` - // Minimum execution time: 43_937_000 picoseconds. - Weight::from_parts(44_978_000, 3590) + // Minimum execution time: 43_323_000 picoseconds. + Weight::from_parts(44_070_000, 3590) .saturating_add(T::DbWeight::get().reads(4_u64)) } /// Storage: `EmaOracle::ExternalSources` (r:1 w:1) @@ -200,8 +200,8 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1220` // Estimated: `3481` - // Minimum execution time: 26_969_000 picoseconds. - Weight::from_parts(27_566_000, 3481) + // Minimum execution time: 26_462_000 picoseconds. + Weight::from_parts(26_953_000, 3481) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -209,22 +209,22 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { /// Proof: `EmaOracle::ExternalSources` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::AuthorizedAccounts` (r:40 w:40) /// Proof: `EmaOracle::AuthorizedAccounts` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) - /// Storage: `EmaOracle::Oracles` (r:240 w:240) + /// Storage: `EmaOracle::Oracles` (r:160 w:160) /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 40]`. fn remove_external_source(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1331 + n * (351 ±0)` - // Estimated: `3481 + n * (16014 ±0)` - // Minimum execution time: 38_803_000 picoseconds. - Weight::from_parts(46_026_253, 3481) - // Standard Error: 11_593 - .saturating_add(Weight::from_parts(8_253_987, 0).saturating_mul(n.into())) + // Measured: `1331 + n * (263 ±0)` + // Estimated: `3481 + n * (10676 ±0)` + // Minimum execution time: 38_763_000 picoseconds. + Weight::from_parts(46_893_734, 3481) + // Standard Error: 9_571 + .saturating_add(Weight::from_parts(6_233_017, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 16014).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 10676).saturating_mul(n.into())) } /// Storage: `EmaOracle::ExternalSources` (r:1 w:0) /// Proof: `EmaOracle::ExternalSources` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) @@ -234,8 +234,8 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1261` // Estimated: `3481` - // Minimum execution time: 31_183_000 picoseconds. - Weight::from_parts(31_599_000, 3481) + // Minimum execution time: 30_485_000 picoseconds. + Weight::from_parts(31_200_000, 3481) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -247,8 +247,8 @@ impl pallet_ema_oracle::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1295` // Estimated: `3481` - // Minimum execution time: 31_404_000 picoseconds. - Weight::from_parts(31_955_000, 3481) + // Minimum execution time: 30_922_000 picoseconds. + Weight::from_parts(31_414_000, 3481) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_evm_accounts.rs b/runtime/hydradx/src/weights/pallet_evm_accounts.rs index 1cc7a4545c..949c9e148d 100644 --- a/runtime/hydradx/src/weights/pallet_evm_accounts.rs +++ b/runtime/hydradx/src/weights/pallet_evm_accounts.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_evm_accounts` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -64,10 +64,6 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight /// Proof: `EVMAccounts::AccountExtension` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) - /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) - /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:1 w:0) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::Assets` (r:1 w:0) @@ -76,9 +72,9 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `2022` // Estimated: `6196` - // Minimum execution time: 62_716_000 picoseconds. - Weight::from_parts(63_705_000, 6196) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Minimum execution time: 55_989_000 picoseconds. + Weight::from_parts(57_008_000, 6196) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `EVMAccounts::ContractDeployer` (r:0 w:1) @@ -87,8 +83,8 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 22_775_000 picoseconds. - Weight::from_parts(23_210_000, 0) + // Minimum execution time: 21_821_000 picoseconds. + Weight::from_parts(22_322_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `EVMAccounts::ContractDeployer` (r:0 w:1) @@ -97,8 +93,8 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 22_730_000 picoseconds. - Weight::from_parts(23_245_000, 0) + // Minimum execution time: 21_872_000 picoseconds. + Weight::from_parts(22_235_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `EVMAccounts::ContractDeployer` (r:0 w:1) @@ -107,8 +103,8 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 24_325_000 picoseconds. - Weight::from_parts(24_861_000, 0) + // Minimum execution time: 23_079_000 picoseconds. + Weight::from_parts(23_722_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `EVMAccounts::ApprovedContract` (r:0 w:1) @@ -117,8 +113,8 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 22_951_000 picoseconds. - Weight::from_parts(23_288_000, 0) + // Minimum execution time: 22_036_000 picoseconds. + Weight::from_parts(22_531_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `EVMAccounts::ApprovedContract` (r:0 w:1) @@ -127,8 +123,8 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 22_902_000 picoseconds. - Weight::from_parts(23_356_000, 0) + // Minimum execution time: 21_473_000 picoseconds. + Weight::from_parts(22_070_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) @@ -145,10 +141,6 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight /// Proof: `EVM::AccountCodesMetadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `EVM::AccountCodes` (r:1 w:0) /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) - /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) - /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `EVM::AccountStorages` (r:1 w:0) /// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `Tokens::Accounts` (r:1 w:0) @@ -157,25 +149,31 @@ impl pallet_evm_accounts::WeightInfo for HydraWeight /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn claim_account() -> Weight { // Proof Size summary in bytes: - // Measured: `7276` - // Estimated: `10741` - // Minimum execution time: 230_046_000 picoseconds. - Weight::from_parts(230_624_000, 10741) - .saturating_add(T::DbWeight::get().reads(16_u64)) + // Measured: `7277` + // Estimated: `10742` + // Minimum execution time: 215_991_000 picoseconds. + Weight::from_parts(217_605_000, 10742) + .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `EVMAccounts::NttMinters` (r:0 w:1) - /// Proof: `EVMAccounts::NttMinters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Proof: `EVMAccounts::NttMinters` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) fn set_ntt_minter() -> Weight { - // Values copied from `approve_contract` (same shape: single map write). - Weight::from_parts(23_297_000, 0) + // Proof Size summary in bytes: + // Measured: `1012` + // Estimated: `0` + // Minimum execution time: 21_751_000 picoseconds. + Weight::from_parts(22_321_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `EVMAccounts::NttMinters` (r:0 w:1) - /// Proof: `EVMAccounts::NttMinters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Proof: `EVMAccounts::NttMinters` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) fn clear_ntt_minter() -> Weight { - // Values copied from `disapprove_contract` (same shape: single map write). - Weight::from_parts(23_245_000, 0) + // Proof Size summary in bytes: + // Measured: `1012` + // Estimated: `0` + // Minimum execution time: 20_944_000 picoseconds. + Weight::from_parts(21_426_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_fee_processor.rs b/runtime/hydradx/src/weights/pallet_fee_processor.rs index a7a6ddf7d7..aa811d8dfe 100644 --- a/runtime/hydradx/src/weights/pallet_fee_processor.rs +++ b/runtime/hydradx/src/weights/pallet_fee_processor.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_fee_processor` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-06-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -84,6 +84,8 @@ impl pallet_fee_processor::WeightInfo for HydraWeight pallet_fee_processor::WeightInfo for HydraWeight pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1073` // Estimated: `4764` - // Minimum execution time: 123_604_000 picoseconds. - Weight::from_parts(125_250_000, 4764) + // Minimum execution time: 123_813_000 picoseconds. + Weight::from_parts(124_752_000, 4764) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -111,6 +111,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) + /// Storage: `GigaHdx::TwoSecBlocksSince` (r:1 w:0) + /// Proof: `GigaHdx::TwoSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) @@ -119,13 +121,15 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1665` // Estimated: `4764` - // Minimum execution time: 171_915_000 picoseconds. - Weight::from_parts(172_925_000, 4764) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Minimum execution time: 171_298_000 picoseconds. + Weight::from_parts(172_143_000, 4764) + .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `GigaHdx::PendingUnstakes` (r:1 w:1) /// Proof: `GigaHdx::PendingUnstakes` (`max_values`: None, `max_size`: Some(76), added: 2551, mode: `MaxEncodedLen`) + /// Storage: `GigaHdx::TwoSecBlocksSince` (r:1 w:0) + /// Proof: `GigaHdx::TwoSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `GigaHdx::Stakes` (r:1 w:1) /// Proof: `GigaHdx::Stakes` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) @@ -136,9 +140,9 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `621` // Estimated: `4764` - // Minimum execution time: 59_748_000 picoseconds. - Weight::from_parts(60_444_000, 4764) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Minimum execution time: 60_654_000 picoseconds. + Weight::from_parts(61_450_000, 4764) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `AssetRegistry::Assets` (r:1 w:0) @@ -151,8 +155,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `615` // Estimated: `3590` - // Minimum execution time: 25_919_000 picoseconds. - Weight::from_parts(26_559_000, 3590) + // Minimum execution time: 26_214_000 picoseconds. + Weight::from_parts(26_585_000, 3590) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -162,6 +166,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) /// Storage: `Staking::Votes` (r:1 w:1) /// Proof: `Staking::Votes` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `Staking::VotesRewarded` (r:1 w:0) + /// Proof: `Staking::VotesRewarded` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `Staking::Positions` (r:1 w:1) @@ -174,8 +180,6 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) - /// Storage: `Staking::VotesRewarded` (r:1 w:0) - /// Proof: `Staking::VotesRewarded` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `GigaHdx::Stakes` (r:1 w:1) /// Proof: `GigaHdx::Stakes` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::Assets` (r:1 w:0) @@ -202,8 +206,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2181` // Estimated: `6164` - // Minimum execution time: 224_883_000 picoseconds. - Weight::from_parts(227_668_000, 6164) + // Minimum execution time: 229_469_000 picoseconds. + Weight::from_parts(230_847_000, 6164) .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) } @@ -235,8 +239,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1553` // Estimated: `4764` - // Minimum execution time: 128_760_000 picoseconds. - Weight::from_parts(129_963_000, 4764) + // Minimum execution time: 129_470_000 picoseconds. + Weight::from_parts(130_193_000, 4764) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -258,8 +262,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1053` // Estimated: `4764` - // Minimum execution time: 123_544_000 picoseconds. - Weight::from_parts(124_604_000, 4764) + // Minimum execution time: 122_907_000 picoseconds. + Weight::from_parts(123_841_000, 4764) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -281,8 +285,8 @@ impl pallet_gigahdx::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1053` // Estimated: `8538` - // Minimum execution time: 217_647_000 picoseconds. - Weight::from_parts(219_374_000, 8538) + // Minimum execution time: 217_395_000 picoseconds. + Weight::from_parts(218_237_000, 8538) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_gigahdx_rewards.rs b/runtime/hydradx/src/weights/pallet_gigahdx_rewards.rs index f52a9d8264..0edbd00dec 100644 --- a/runtime/hydradx/src/weights/pallet_gigahdx_rewards.rs +++ b/runtime/hydradx/src/weights/pallet_gigahdx_rewards.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_gigahdx_rewards` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-06-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -88,8 +88,8 @@ impl pallet_gigahdx_rewards::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1457` // Estimated: `6196` - // Minimum execution time: 169_169_000 picoseconds. - Weight::from_parts(169_919_000, 6196) + // Minimum execution time: 169_744_000 picoseconds. + Weight::from_parts(171_168_000, 6196) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_hsm.rs b/runtime/hydradx/src/weights/pallet_hsm.rs index f7186d1b11..8e3dbeb051 100644 --- a/runtime/hydradx/src/weights/pallet_hsm.rs +++ b/runtime/hydradx/src/weights/pallet_hsm.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_hsm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,10 +66,10 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `Stableswap::PoolSnapshots` (`max_values`: None, `max_size`: Some(328), added: 2803, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::Assets` (r:6 w:0) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:5 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:1 w:0) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:5 w:0) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:0) @@ -78,11 +78,11 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn add_collateral_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `6046` + // Measured: `5637` // Estimated: `28974` - // Minimum execution time: 244_765_000 picoseconds. - Weight::from_parts(246_755_000, 28974) - .saturating_add(T::DbWeight::get().reads(30_u64)) + // Minimum execution time: 238_674_000 picoseconds. + Weight::from_parts(242_413_000, 28974) + .saturating_add(T::DbWeight::get().reads(29_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `HSM::Collaterals` (r:1 w:1) @@ -95,8 +95,8 @@ impl pallet_hsm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `966` // Estimated: `3590` - // Minimum execution time: 35_933_000 picoseconds. - Weight::from_parts(36_286_000, 3590) + // Minimum execution time: 34_445_000 picoseconds. + Weight::from_parts(34_818_000, 3590) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -106,8 +106,8 @@ impl pallet_hsm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `304` // Estimated: `3534` - // Minimum execution time: 20_974_000 picoseconds. - Weight::from_parts(21_264_000, 3534) + // Minimum execution time: 19_077_000 picoseconds. + Weight::from_parts(19_327_000, 3534) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -117,10 +117,10 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `Stableswap::PoolSnapshots` (`max_values`: None, `max_size`: Some(328), added: 2803, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::Assets` (r:6 w:0) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:5 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:1 w:0) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:10 w:4) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:0) @@ -143,17 +143,17 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn sell() -> Weight { // Proof Size summary in bytes: - // Measured: `4100` + // Measured: `3888` // Estimated: `26820` - // Minimum execution time: 788_290_000 picoseconds. - Weight::from_parts(794_134_000, 26820) - .saturating_add(T::DbWeight::get().reads(43_u64)) + // Minimum execution time: 818_531_000 picoseconds. + Weight::from_parts(822_908_000, 26820) + .saturating_add(T::DbWeight::get().reads(42_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `HSM::Collaterals` (r:1 w:0) @@ -162,10 +162,10 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `Stableswap::PoolSnapshots` (`max_values`: None, `max_size`: Some(328), added: 2803, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::Assets` (r:6 w:0) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:5 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:1 w:0) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:10 w:4) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:0) @@ -188,17 +188,17 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn buy() -> Weight { // Proof Size summary in bytes: - // Measured: `4136` + // Measured: `3924` // Estimated: `26820` - // Minimum execution time: 786_162_000 picoseconds. - Weight::from_parts(789_631_000, 26820) - .saturating_add(T::DbWeight::get().reads(43_u64)) + // Minimum execution time: 794_041_000 picoseconds. + Weight::from_parts(796_661_000, 26820) + .saturating_add(T::DbWeight::get().reads(42_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `HSM::FlashMinter` (r:1 w:0) @@ -209,10 +209,10 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `Stableswap::PoolSnapshots` (`max_values`: None, `max_size`: Some(328), added: 2803, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::Assets` (r:6 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:2 w:1) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:11 w:7) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:1) @@ -225,6 +225,8 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `EVMAccounts::AccountExtension` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::BannedAssets` (r:2 w:0) /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:2 w:1) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:4 w:3) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:3 w:1) @@ -233,24 +235,22 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Duster::AccountWhitelist` (r:3 w:0) /// Proof: `Duster::AccountWhitelist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:4 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Stableswap::AssetTradability` (r:2 w:0) /// Proof: `Stableswap::AssetTradability` (`max_values`: None, `max_size`: Some(41), added: 2516, mode: `MaxEncodedLen`) - /// Storage: `EmaOracle::Accumulator` (r:1 w:1) - /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(6601), added: 7096, mode: `MaxEncodedLen`) /// Storage: `Stableswap::BlockFee` (r:0 w:1) /// Proof: `Stableswap::BlockFee` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn execute_arbitrage() -> Weight { // Proof Size summary in bytes: - // Measured: `4880` + // Measured: `4159` // Estimated: `29403` - // Minimum execution time: 2_806_663_000 picoseconds. - Weight::from_parts(2_819_776_000, 29403) - .saturating_add(T::DbWeight::get().reads(56_u64)) - .saturating_add(T::DbWeight::get().writes(17_u64)) + // Minimum execution time: 3_470_499_000 picoseconds. + Weight::from_parts(3_479_815_000, 29403) + .saturating_add(T::DbWeight::get().reads(57_u64)) + .saturating_add(T::DbWeight::get().writes(16_u64)) } /// Storage: `HSM::HollarAmountReceived` (r:1 w:1) /// Proof: `HSM::HollarAmountReceived` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) @@ -258,8 +258,8 @@ impl pallet_hsm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3501` - // Minimum execution time: 5_136_000 picoseconds. - Weight::from_parts(5_368_000, 3501) + // Minimum execution time: 5_527_000 picoseconds. + Weight::from_parts(5_714_000, 3501) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -269,8 +269,8 @@ impl pallet_hsm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_123_000 picoseconds. - Weight::from_parts(9_274_000, 0) + // Minimum execution time: 9_278_000 picoseconds. + Weight::from_parts(9_474_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `HSM::Collaterals` (r:1 w:0) @@ -279,10 +279,10 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `Stableswap::PoolSnapshots` (`max_values`: None, `max_size`: Some(328), added: 2803, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::Assets` (r:6 w:0) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:5 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:1 w:0) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:5 w:0) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:0) @@ -291,11 +291,11 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn calculate_sell() -> Weight { // Proof Size summary in bytes: - // Measured: `3146` - // Estimated: `16590` - // Minimum execution time: 610_063_000 picoseconds. - Weight::from_parts(614_125_000, 16590) - .saturating_add(T::DbWeight::get().reads(20_u64)) + // Measured: `2901` + // Estimated: `13990` + // Minimum execution time: 603_162_000 picoseconds. + Weight::from_parts(604_675_000, 13990) + .saturating_add(T::DbWeight::get().reads(19_u64)) } /// Storage: `HSM::Collaterals` (r:1 w:0) /// Proof: `HSM::Collaterals` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) @@ -303,10 +303,10 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `Stableswap::PoolSnapshots` (`max_values`: None, `max_size`: Some(328), added: 2803, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::Assets` (r:6 w:0) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:5 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:1 w:0) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:5 w:0) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:0) @@ -315,32 +315,32 @@ impl pallet_hsm::WeightInfo for HydraWeight { /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn calculate_buy() -> Weight { // Proof Size summary in bytes: - // Measured: `3146` - // Estimated: `16590` - // Minimum execution time: 608_081_000 picoseconds. - Weight::from_parts(610_832_000, 16590) - .saturating_add(T::DbWeight::get().reads(20_u64)) + // Measured: `2901` + // Estimated: `13990` + // Minimum execution time: 606_100_000 picoseconds. + Weight::from_parts(610_795_000, 13990) + .saturating_add(T::DbWeight::get().reads(19_u64)) } /// Storage: `HSM::Collaterals` (r:1 w:0) /// Proof: `HSM::Collaterals` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) /// Storage: `Stableswap::Pools` (r:1 w:0) /// Proof: `Stableswap::Pools` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::Assets` (r:6 w:0) + /// Storage: `AssetRegistry::Assets` (r:5 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:5 w:0) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) - /// Storage: `Tokens::TotalIssuance` (r:1 w:0) - /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) + /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) /// Storage: `Stableswap::PoolPegs` (r:1 w:0) /// Proof: `Stableswap::PoolPegs` (`max_values`: None, `max_size`: Some(355), added: 2830, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::Oracles` (r:4 w:0) /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn calculate_spot_price_with_fee() -> Weight { // Proof Size summary in bytes: - // Measured: `3146` - // Estimated: `16590` - // Minimum execution time: 506_906_000 picoseconds. - Weight::from_parts(510_343_000, 16590) - .saturating_add(T::DbWeight::get().reads(19_u64)) + // Measured: `2901` + // Estimated: `13990` + // Minimum execution time: 495_201_000 picoseconds. + Weight::from_parts(496_512_000, 13990) + .saturating_add(T::DbWeight::get().reads(18_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_identity.rs b/runtime/hydradx/src/weights/pallet_identity.rs index 03766628a9..e70b8a1104 100644 --- a/runtime/hydradx/src/weights/pallet_identity.rs +++ b/runtime/hydradx/src/weights/pallet_identity.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_identity` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -67,10 +67,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 13_817_000 picoseconds. - Weight::from_parts(14_196_586, 2626) - // Standard Error: 1_158 - .saturating_add(Weight::from_parts(81_482, 0).saturating_mul(r.into())) + // Minimum execution time: 14_010_000 picoseconds. + Weight::from_parts(14_555_491, 2626) + // Standard Error: 874 + .saturating_add(Weight::from_parts(73_046, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -81,10 +81,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `6977 + r * (5 ±0)` // Estimated: `11003` - // Minimum execution time: 159_159_000 picoseconds. - Weight::from_parts(160_629_515, 11003) - // Standard Error: 4_037 - .saturating_add(Weight::from_parts(80_594, 0).saturating_mul(r.into())) + // Minimum execution time: 161_268_000 picoseconds. + Weight::from_parts(162_441_714, 11003) + // Standard Error: 3_090 + .saturating_add(Weight::from_parts(131_713, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -99,10 +99,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `101` // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 19_886_000 picoseconds. - Weight::from_parts(37_159_239, 11003) - // Standard Error: 4_676 - .saturating_add(Weight::from_parts(4_098_118, 0).saturating_mul(s.into())) + // Minimum execution time: 21_898_000 picoseconds. + Weight::from_parts(40_125_464, 11003) + // Standard Error: 4_720 + .saturating_add(Weight::from_parts(4_030_878, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -120,10 +120,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 19_516_000 picoseconds. - Weight::from_parts(38_402_864, 11003) - // Standard Error: 4_314 - .saturating_add(Weight::from_parts(1_575_014, 0).saturating_mul(p.into())) + // Minimum execution time: 21_539_000 picoseconds. + Weight::from_parts(38_479_670, 11003) + // Standard Error: 3_914 + .saturating_add(Weight::from_parts(1_524_880, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) @@ -140,12 +140,12 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `7069 + r * (5 ±0) + s * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 76_987_000 picoseconds. - Weight::from_parts(79_826_744, 11003) - // Standard Error: 8_469 - .saturating_add(Weight::from_parts(45_398, 0).saturating_mul(r.into())) - // Standard Error: 1_652 - .saturating_add(Weight::from_parts(1_574_055, 0).saturating_mul(s.into())) + // Minimum execution time: 77_248_000 picoseconds. + Weight::from_parts(78_997_341, 11003) + // Standard Error: 5_859 + .saturating_add(Weight::from_parts(107_106, 0).saturating_mul(r.into())) + // Standard Error: 1_143 + .saturating_add(Weight::from_parts(1_518_020, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -159,10 +159,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `6967 + r * (57 ±0)` // Estimated: `11003` - // Minimum execution time: 111_165_000 picoseconds. - Weight::from_parts(112_250_336, 11003) - // Standard Error: 1_943 - .saturating_add(Weight::from_parts(51_491, 0).saturating_mul(r.into())) + // Minimum execution time: 111_861_000 picoseconds. + Weight::from_parts(113_267_032, 11003) + // Standard Error: 3_087 + .saturating_add(Weight::from_parts(66_850, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -173,10 +173,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `6998` // Estimated: `11003` - // Minimum execution time: 108_630_000 picoseconds. - Weight::from_parts(109_929_787, 11003) - // Standard Error: 2_482 - .saturating_add(Weight::from_parts(31_613, 0).saturating_mul(r.into())) + // Minimum execution time: 109_779_000 picoseconds. + Weight::from_parts(111_596_601, 11003) + // Standard Error: 4_284 + .saturating_add(Weight::from_parts(9_464, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -187,10 +187,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 9_869_000 picoseconds. - Weight::from_parts(10_221_934, 2626) - // Standard Error: 922 - .saturating_add(Weight::from_parts(62_394, 0).saturating_mul(r.into())) + // Minimum execution time: 9_897_000 picoseconds. + Weight::from_parts(10_265_606, 2626) + // Standard Error: 797 + .saturating_add(Weight::from_parts(59_312, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -201,10 +201,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 11_548_000 picoseconds. - Weight::from_parts(11_994_915, 2626) - // Standard Error: 891 - .saturating_add(Weight::from_parts(52_477, 0).saturating_mul(r.into())) + // Minimum execution time: 11_497_000 picoseconds. + Weight::from_parts(12_031_526, 2626) + // Standard Error: 833 + .saturating_add(Weight::from_parts(51_851, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -215,10 +215,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 11_339_000 picoseconds. - Weight::from_parts(11_863_196, 2626) - // Standard Error: 933 - .saturating_add(Weight::from_parts(50_006, 0).saturating_mul(r.into())) + // Minimum execution time: 11_451_000 picoseconds. + Weight::from_parts(11_994_765, 2626) + // Standard Error: 808 + .saturating_add(Weight::from_parts(55_928, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -231,10 +231,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `7045 + r * (57 ±0)` // Estimated: `11003` - // Minimum execution time: 135_642_000 picoseconds. - Weight::from_parts(136_831_940, 11003) - // Standard Error: 2_590 - .saturating_add(Weight::from_parts(74_014, 0).saturating_mul(r.into())) + // Minimum execution time: 137_226_000 picoseconds. + Weight::from_parts(138_439_966, 11003) + // Standard Error: 4_211 + .saturating_add(Weight::from_parts(133_209, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -252,12 +252,12 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `7363 + r * (15 ±0) + s * (32 ±0)` // Estimated: `11003` - // Minimum execution time: 97_481_000 picoseconds. - Weight::from_parts(99_231_806, 11003) - // Standard Error: 7_515 - .saturating_add(Weight::from_parts(118_465, 0).saturating_mul(r.into())) - // Standard Error: 1_466 - .saturating_add(Weight::from_parts(1_570_294, 0).saturating_mul(s.into())) + // Minimum execution time: 99_912_000 picoseconds. + Weight::from_parts(101_645_242, 11003) + // Standard Error: 7_101 + .saturating_add(Weight::from_parts(100_587, 0).saturating_mul(r.into())) + // Standard Error: 1_385 + .saturating_add(Weight::from_parts(1_531_342, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -273,10 +273,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` // Estimated: `11003` - // Minimum execution time: 38_442_000 picoseconds. - Weight::from_parts(45_515_962, 11003) - // Standard Error: 1_685 - .saturating_add(Weight::from_parts(69_998, 0).saturating_mul(s.into())) + // Minimum execution time: 40_497_000 picoseconds. + Weight::from_parts(45_731_362, 11003) + // Standard Error: 1_246 + .saturating_add(Weight::from_parts(61_829, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -289,10 +289,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` // Estimated: `11003` - // Minimum execution time: 25_810_000 picoseconds. - Weight::from_parts(28_543_523, 11003) - // Standard Error: 650 - .saturating_add(Weight::from_parts(21_947, 0).saturating_mul(s.into())) + // Minimum execution time: 25_881_000 picoseconds. + Weight::from_parts(28_626_317, 11003) + // Standard Error: 658 + .saturating_add(Weight::from_parts(20_248, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -307,10 +307,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` // Estimated: `11003` - // Minimum execution time: 44_814_000 picoseconds. - Weight::from_parts(47_734_753, 11003) - // Standard Error: 711 - .saturating_add(Weight::from_parts(42_365, 0).saturating_mul(s.into())) + // Minimum execution time: 44_297_000 picoseconds. + Weight::from_parts(47_343_429, 11003) + // Standard Error: 708 + .saturating_add(Weight::from_parts(43_617, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -325,10 +325,10 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 34_632_000 picoseconds. - Weight::from_parts(36_844_452, 6723) - // Standard Error: 862 - .saturating_add(Weight::from_parts(54_369, 0).saturating_mul(s.into())) + // Minimum execution time: 34_144_000 picoseconds. + Weight::from_parts(36_247_638, 6723) + // Standard Error: 723 + .saturating_add(Weight::from_parts(54_020, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -338,8 +338,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_077_000 picoseconds. - Weight::from_parts(11_338_000, 0) + // Minimum execution time: 11_222_000 picoseconds. + Weight::from_parts(11_393_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Identity::AuthorityOf` (r:1 w:1) @@ -348,8 +348,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `79` // Estimated: `3517` - // Minimum execution time: 15_520_000 picoseconds. - Weight::from_parts(15_846_000, 3517) + // Minimum execution time: 15_574_000 picoseconds. + Weight::from_parts(15_859_000, 3517) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -368,8 +368,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `219` // Estimated: `3593` - // Minimum execution time: 69_377_000 picoseconds. - Weight::from_parts(91_573_132, 3593) + // Minimum execution time: 73_043_000 picoseconds. + Weight::from_parts(95_084_373, 3593) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -383,8 +383,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `116` // Estimated: `3567` - // Minimum execution time: 29_428_000 picoseconds. - Weight::from_parts(29_744_000, 3567) + // Minimum execution time: 29_228_000 picoseconds. + Weight::from_parts(29_571_000, 3567) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -399,8 +399,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `347` // Estimated: `3593` - // Minimum execution time: 18_622_000 picoseconds. - Weight::from_parts(47_723_022, 3593) + // Minimum execution time: 19_277_000 picoseconds. + Weight::from_parts(48_243_689, 3593) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -412,8 +412,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `172` // Estimated: `3563` - // Minimum execution time: 19_380_000 picoseconds. - Weight::from_parts(19_835_000, 3563) + // Minimum execution time: 21_264_000 picoseconds. + Weight::from_parts(21_694_000, 3563) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -427,8 +427,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `236` // Estimated: `3563` - // Minimum execution time: 26_747_000 picoseconds. - Weight::from_parts(27_236_000, 3563) + // Minimum execution time: 26_787_000 picoseconds. + Weight::from_parts(27_386_000, 3563) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -444,8 +444,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `297` // Estimated: `3563` - // Minimum execution time: 33_034_000 picoseconds. - Weight::from_parts(33_278_000, 3563) + // Minimum execution time: 34_278_000 picoseconds. + Weight::from_parts(35_000_000, 3563) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -464,8 +464,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `610` // Estimated: `6196` - // Minimum execution time: 29_401_000 picoseconds. - Weight::from_parts(69_771_493, 6196) + // Minimum execution time: 29_615_000 picoseconds. + Weight::from_parts(69_396_571, 6196) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -477,8 +477,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `6087` - // Minimum execution time: 12_141_000 picoseconds. - Weight::from_parts(12_538_000, 6087) + // Minimum execution time: 12_410_000 picoseconds. + Weight::from_parts(12_660_000, 6087) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -490,8 +490,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `159` // Estimated: `6099` - // Minimum execution time: 12_036_000 picoseconds. - Weight::from_parts(12_293_000, 6099) + // Minimum execution time: 12_357_000 picoseconds. + Weight::from_parts(12_565_000, 6099) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -503,8 +503,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `7062` // Estimated: `21016` - // Minimum execution time: 88_309_000 picoseconds. - Weight::from_parts(88_738_000, 21016) + // Minimum execution time: 92_170_000 picoseconds. + Weight::from_parts(92_853_000, 21016) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -514,8 +514,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `201` // Estimated: `6144` - // Minimum execution time: 10_789_000 picoseconds. - Weight::from_parts(11_042_000, 6144) + // Minimum execution time: 12_722_000 picoseconds. + Weight::from_parts(13_024_000, 6144) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -527,8 +527,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `288` // Estimated: `6044` - // Minimum execution time: 17_130_000 picoseconds. - Weight::from_parts(17_729_000, 6044) + // Minimum execution time: 17_870_000 picoseconds. + Weight::from_parts(18_167_000, 6044) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -540,8 +540,8 @@ impl pallet_identity::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `290` // Estimated: `6136` - // Minimum execution time: 14_599_000 picoseconds. - Weight::from_parts(14_775_000, 6136) + // Minimum execution time: 16_488_000 picoseconds. + Weight::from_parts(16_743_000, 6136) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_lbp.rs b/runtime/hydradx/src/weights/pallet_lbp.rs index 7505163525..8597b8b8e6 100644 --- a/runtime/hydradx/src/weights/pallet_lbp.rs +++ b/runtime/hydradx/src/weights/pallet_lbp.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_lbp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -82,17 +82,17 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn create_pool() -> Weight { // Proof Size summary in bytes: - // Measured: `1385` + // Measured: `1418` // Estimated: `11322` - // Minimum execution time: 185_059_000 picoseconds. - Weight::from_parts(186_125_000, 11322) - .saturating_add(T::DbWeight::get().reads(20_u64)) + // Minimum execution time: 184_741_000 picoseconds. + Weight::from_parts(187_580_000, 11322) + .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `LBP::PoolData` (r:1 w:1) @@ -103,8 +103,8 @@ impl pallet_lbp::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `483` // Estimated: `3628` - // Minimum execution time: 30_059_000 picoseconds. - Weight::from_parts(30_453_000, 3628) + // Minimum execution time: 29_628_000 picoseconds. + Weight::from_parts(30_148_000, 3628) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -124,17 +124,17 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn add_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `1645` + // Measured: `1678` // Estimated: `11322` - // Minimum execution time: 149_985_000 picoseconds. - Weight::from_parts(150_952_000, 11322) - .saturating_add(T::DbWeight::get().reads(16_u64)) + // Minimum execution time: 150_369_000 picoseconds. + Weight::from_parts(151_112_000, 11322) + .saturating_add(T::DbWeight::get().reads(17_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: `LBP::PoolData` (r:1 w:1) @@ -155,21 +155,21 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Tokens::Locks` (r:1 w:0) /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) /// Storage: `LBP::FeeCollectorWithAsset` (r:0 w:1) /// Proof: `LBP::FeeCollectorWithAsset` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn remove_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `1761` + // Measured: `1794` // Estimated: `11322` - // Minimum execution time: 184_196_000 picoseconds. - Weight::from_parts(186_054_000, 11322) - .saturating_add(T::DbWeight::get().reads(18_u64)) + // Minimum execution time: 184_798_000 picoseconds. + Weight::from_parts(185_923_000, 11322) + .saturating_add(T::DbWeight::get().reads(19_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `AssetRegistry::Assets` (r:2 w:0) @@ -190,17 +190,17 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn sell() -> Weight { // Proof Size summary in bytes: - // Measured: `2050` + // Measured: `2083` // Estimated: `13905` - // Minimum execution time: 330_774_000 picoseconds. - Weight::from_parts(332_403_000, 13905) - .saturating_add(T::DbWeight::get().reads(22_u64)) + // Minimum execution time: 325_360_000 picoseconds. + Weight::from_parts(327_192_000, 13905) + .saturating_add(T::DbWeight::get().reads(23_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `LBP::PoolData` (r:1 w:0) @@ -221,17 +221,17 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn buy() -> Weight { // Proof Size summary in bytes: - // Measured: `2050` + // Measured: `2083` // Estimated: `13905` - // Minimum execution time: 328_507_000 picoseconds. - Weight::from_parts(331_894_000, 13905) - .saturating_add(T::DbWeight::get().reads(22_u64)) + // Minimum execution time: 323_980_000 picoseconds. + Weight::from_parts(325_315_000, 13905) + .saturating_add(T::DbWeight::get().reads(23_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `LBP::PoolData` (r:1 w:0) @@ -252,24 +252,24 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `c` is `[1, 2]`. /// The range of component `e` is `[0, 1]`. fn router_execution_sell(c: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1118 + e * (932 ±0)` - // Estimated: `6190 + e * (7749 ±10_308_707_831_848_054)` - // Minimum execution time: 115_088_000 picoseconds. - Weight::from_parts(115_901_000, 6190) - // Standard Error: 282_785 - .saturating_add(Weight::from_parts(1_178_877, 0).saturating_mul(c.into())) - // Standard Error: 629_842 - .saturating_add(Weight::from_parts(217_096_440, 0).saturating_mul(e.into())) + // Measured: `1118 + e * (965 ±0)` + // Estimated: `6190 + e * (7749 ±676_442_892_587_435)` + // Minimum execution time: 112_533_000 picoseconds. + Weight::from_parts(113_718_000, 6190) + // Standard Error: 273_704 + .saturating_add(Weight::from_parts(1_387_165, 0).saturating_mul(c.into())) + // Standard Error: 609_618 + .saturating_add(Weight::from_parts(216_466_080, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().reads((17_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().reads((18_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(e.into()))) .saturating_add(Weight::from_parts(0, 7749).saturating_mul(e.into())) } @@ -291,24 +291,24 @@ impl pallet_lbp::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `c` is `[1, 3]`. /// The range of component `e` is `[0, 1]`. fn router_execution_buy(c: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1118 + e * (932 ±0)` - // Estimated: `6190 + e * (7749 ±851_806_049_420_682)` - // Minimum execution time: 203_339_000 picoseconds. - Weight::from_parts(204_470_000, 6190) - // Standard Error: 528_185 - .saturating_add(Weight::from_parts(3_658_984, 0).saturating_mul(c.into())) - // Standard Error: 1_781_211 - .saturating_add(Weight::from_parts(169_423_428, 0).saturating_mul(e.into())) + // Measured: `1118 + e * (965 ±0)` + // Estimated: `6190 + e * (7749 ±3_606_161_244_539_589)` + // Minimum execution time: 196_832_000 picoseconds. + Weight::from_parts(197_985_000, 6190) + // Standard Error: 511_625 + .saturating_add(Weight::from_parts(3_392_478, 0).saturating_mul(c.into())) + // Standard Error: 1_725_364 + .saturating_add(Weight::from_parts(172_313_729, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().reads((17_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().reads((18_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(e.into()))) .saturating_add(Weight::from_parts(0, 7749).saturating_mul(e.into())) } @@ -322,8 +322,8 @@ impl pallet_lbp::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1118` // Estimated: `6190` - // Minimum execution time: 114_841_000 picoseconds. - Weight::from_parts(115_470_000, 6190) + // Minimum execution time: 112_242_000 picoseconds. + Weight::from_parts(116_063_000, 6190) .saturating_add(T::DbWeight::get().reads(5_u64)) } /// Storage: `LBP::PoolData` (r:1 w:0) @@ -338,8 +338,8 @@ impl pallet_lbp::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1118` // Estimated: `6190` - // Minimum execution time: 42_552_000 picoseconds. - Weight::from_parts(43_221_000, 6190) + // Minimum execution time: 43_195_000 picoseconds. + Weight::from_parts(43_755_000, 6190) .saturating_add(T::DbWeight::get().reads(6_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_liquidation.rs b/runtime/hydradx/src/weights/pallet_liquidation.rs index d3db8e20f2..289aa37405 100644 --- a/runtime/hydradx/src/weights/pallet_liquidation.rs +++ b/runtime/hydradx/src/weights/pallet_liquidation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_liquidation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-06-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -82,8 +82,8 @@ impl pallet_liquidation::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `1082` // Estimated: `6190` - // Minimum execution time: 131_813_000 picoseconds. - Weight::from_parts(132_591_000, 6190) + // Minimum execution time: 133_814_000 picoseconds. + Weight::from_parts(134_904_000, 6190) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -93,8 +93,8 @@ impl pallet_liquidation::WeightInfo for HydraWeight // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_497_000 picoseconds. - Weight::from_parts(4_601_000, 0) + // Minimum execution time: 4_596_000 picoseconds. + Weight::from_parts(4_756_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_message_queue.rs b/runtime/hydradx/src/weights/pallet_message_queue.rs index 7e87aa3688..1547f0610d 100644 --- a/runtime/hydradx/src/weights/pallet_message_queue.rs +++ b/runtime/hydradx/src/weights/pallet_message_queue.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -68,8 +68,8 @@ impl pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_message_queue::WeightInfo for HydraWeight pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `138` // Estimated: `67035` - // Minimum execution time: 11_397_000 picoseconds. - Weight::from_parts(11_534_000, 67035) + // Minimum execution time: 11_227_000 picoseconds. + Weight::from_parts(11_652_000, 67035) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -79,8 +79,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `67035` - // Minimum execution time: 3_492_000 picoseconds. - Weight::from_parts(3_692_000, 67035) + // Minimum execution time: 3_418_000 picoseconds. + Weight::from_parts(3_611_000, 67035) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -91,8 +91,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `29` // Estimated: `3494` - // Minimum execution time: 8_862_000 picoseconds. - Weight::from_parts(9_109_000, 3494) + // Minimum execution time: 9_057_000 picoseconds. + Weight::from_parts(9_250_000, 3494) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -104,8 +104,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `192` // Estimated: `3731` - // Minimum execution time: 16_024_000 picoseconds. - Weight::from_parts(16_546_000, 3731) + // Minimum execution time: 17_803_000 picoseconds. + Weight::from_parts(18_119_000, 3731) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -116,8 +116,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `138` // Estimated: `3731` - // Minimum execution time: 15_926_000 picoseconds. - Weight::from_parts(16_234_000, 3731) + // Minimum execution time: 15_735_000 picoseconds. + Weight::from_parts(16_200_000, 3731) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -128,8 +128,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `138` // Estimated: `3731` - // Minimum execution time: 18_039_000 picoseconds. - Weight::from_parts(18_524_000, 3731) + // Minimum execution time: 18_272_000 picoseconds. + Weight::from_parts(18_687_000, 3731) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -143,8 +143,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `138` // Estimated: `3731` - // Minimum execution time: 25_562_000 picoseconds. - Weight::from_parts(25_988_000, 3731) + // Minimum execution time: 25_741_000 picoseconds. + Weight::from_parts(26_752_000, 3731) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -152,8 +152,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 220_000 picoseconds. - Weight::from_parts(244_000, 0) + // Minimum execution time: 231_000 picoseconds. + Weight::from_parts(261_000, 0) } /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) @@ -161,8 +161,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_058_000 picoseconds. - Weight::from_parts(5_212_000, 0) + // Minimum execution time: 4_837_000 picoseconds. + Weight::from_parts(5_019_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) @@ -171,8 +171,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_547_000 picoseconds. - Weight::from_parts(5_688_000, 0) + // Minimum execution time: 5_458_000 picoseconds. + Weight::from_parts(5_552_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) @@ -183,8 +183,8 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `113` // Estimated: `67035` - // Minimum execution time: 9_076_000 picoseconds. - Weight::from_parts(9_472_000, 67035) + // Minimum execution time: 9_142_000 picoseconds. + Weight::from_parts(9_430_000, 67035) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `MultiBlockMigrations::Historic` (r:256 w:256) @@ -194,10 +194,10 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1089 + n * (271 ±0)` // Estimated: `3834 + n * (2740 ±0)` - // Minimum execution time: 18_842_000 picoseconds. - Weight::from_parts(17_744_960, 3834) - // Standard Error: 2_115 - .saturating_add(Weight::from_parts(1_256_000, 0).saturating_mul(n.into())) + // Minimum execution time: 18_892_000 picoseconds. + Weight::from_parts(17_850_187, 3834) + // Standard Error: 2_148 + .saturating_add(Weight::from_parts(1_253_958, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -210,10 +210,10 @@ impl pallet_migrations::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1709 + n * (38 ±0)` // Estimated: `787 + n * (39 ±0)` - // Minimum execution time: 2_907_000 picoseconds. - Weight::from_parts(25_541_114, 787) - // Standard Error: 1_703 - .saturating_add(Weight::from_parts(750_053, 0).saturating_mul(n.into())) + // Minimum execution time: 3_133_000 picoseconds. + Weight::from_parts(25_760_154, 787) + // Standard Error: 1_674 + .saturating_add(Weight::from_parts(728_687, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 39).saturating_mul(n.into())) diff --git a/runtime/hydradx/src/weights/pallet_multisig.rs b/runtime/hydradx/src/weights/pallet_multisig.rs index 65941d765c..39c3e23e64 100644 --- a/runtime/hydradx/src/weights/pallet_multisig.rs +++ b/runtime/hydradx/src/weights/pallet_multisig.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -65,10 +65,10 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 21_923_000 picoseconds. - Weight::from_parts(22_304_569, 0) + // Minimum execution time: 21_951_000 picoseconds. + Weight::from_parts(22_493_710, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_690, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_709, 0).saturating_mul(z.into())) } /// Storage: `Multisig::Multisigs` (r:1 w:1) /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) @@ -78,12 +78,12 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `296 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 52_065_000 picoseconds. - Weight::from_parts(44_805_660, 6811) - // Standard Error: 315 - .saturating_add(Weight::from_parts(81_374, 0).saturating_mul(s.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_690, 0).saturating_mul(z.into())) + // Minimum execution time: 53_176_000 picoseconds. + Weight::from_parts(46_002_985, 6811) + // Standard Error: 275 + .saturating_add(Weight::from_parts(78_621, 0).saturating_mul(s.into())) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_706, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -95,12 +95,12 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `6811` - // Minimum execution time: 34_817_000 picoseconds. - Weight::from_parts(25_924_879, 6811) - // Standard Error: 635 - .saturating_add(Weight::from_parts(92_991, 0).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_738, 0).saturating_mul(z.into())) + // Minimum execution time: 35_123_000 picoseconds. + Weight::from_parts(27_809_066, 6811) + // Standard Error: 251 + .saturating_add(Weight::from_parts(79_836, 0).saturating_mul(s.into())) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_703, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -114,12 +114,12 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `421 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 58_308_000 picoseconds. - Weight::from_parts(48_761_446, 6811) - // Standard Error: 334 - .saturating_add(Weight::from_parts(109_394, 0).saturating_mul(s.into())) + // Minimum execution time: 58_750_000 picoseconds. + Weight::from_parts(49_331_470, 6811) + // Standard Error: 325 + .saturating_add(Weight::from_parts(108_291, 0).saturating_mul(s.into())) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_652, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_716, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -130,10 +130,10 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `296 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 42_142_000 picoseconds. - Weight::from_parts(42_961_096, 6811) - // Standard Error: 524 - .saturating_add(Weight::from_parts(82_680, 0).saturating_mul(s.into())) + // Minimum execution time: 43_446_000 picoseconds. + Weight::from_parts(44_370_328, 6811) + // Standard Error: 447 + .saturating_add(Weight::from_parts(80_276, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -144,10 +144,10 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `6811` - // Minimum execution time: 23_044_000 picoseconds. - Weight::from_parts(24_298_133, 6811) - // Standard Error: 1_014 - .saturating_add(Weight::from_parts(98_536, 0).saturating_mul(s.into())) + // Minimum execution time: 25_537_000 picoseconds. + Weight::from_parts(26_121_925, 6811) + // Standard Error: 401 + .saturating_add(Weight::from_parts(80_532, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -158,10 +158,10 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `487 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 42_250_000 picoseconds. - Weight::from_parts(43_263_722, 6811) - // Standard Error: 448 - .saturating_add(Weight::from_parts(80_437, 0).saturating_mul(s.into())) + // Minimum execution time: 43_546_000 picoseconds. + Weight::from_parts(44_090_397, 6811) + // Standard Error: 381 + .saturating_add(Weight::from_parts(83_722, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -172,10 +172,10 @@ impl pallet_multisig::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `487 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 39_942_000 picoseconds. - Weight::from_parts(40_792_246, 6811) - // Standard Error: 350 - .saturating_add(Weight::from_parts(81_241, 0).saturating_mul(s.into())) + // Minimum execution time: 41_458_000 picoseconds. + Weight::from_parts(42_079_000, 6811) + // Standard Error: 392 + .saturating_add(Weight::from_parts(80_446, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_omnipool.rs b/runtime/hydradx/src/weights/pallet_omnipool.rs index b994095ba6..719ed01732 100644 --- a/runtime/hydradx/src/weights/pallet_omnipool.rs +++ b/runtime/hydradx/src/weights/pallet_omnipool.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_omnipool` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-06-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -100,8 +100,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3391` // Estimated: `6190` - // Minimum execution time: 206_839_000 picoseconds. - Weight::from_parts(208_219_000, 6190) + // Minimum execution time: 204_506_000 picoseconds. + Weight::from_parts(205_719_000, 6190) .saturating_add(T::DbWeight::get().reads(18_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -163,8 +163,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `5577` // Estimated: `8739` - // Minimum execution time: 355_206_000 picoseconds. - Weight::from_parts(356_353_000, 8739) + // Minimum execution time: 349_657_000 picoseconds. + Weight::from_parts(351_610_000, 8739) .saturating_add(T::DbWeight::get().reads(32_u64)) .saturating_add(T::DbWeight::get().writes(15_u64)) } @@ -224,8 +224,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `9117` // Estimated: `11322` - // Minimum execution time: 372_720_000 picoseconds. - Weight::from_parts(374_189_000, 11322) + // Minimum execution time: 368_926_000 picoseconds. + Weight::from_parts(371_337_000, 11322) .saturating_add(T::DbWeight::get().reads(33_u64)) .saturating_add(T::DbWeight::get().writes(14_u64)) } @@ -289,8 +289,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `5577` // Estimated: `8739` - // Minimum execution time: 361_631_000 picoseconds. - Weight::from_parts(363_479_000, 8739) + // Minimum execution time: 356_956_000 picoseconds. + Weight::from_parts(358_780_000, 8739) .saturating_add(T::DbWeight::get().reads(32_u64)) .saturating_add(T::DbWeight::get().writes(17_u64)) } @@ -350,8 +350,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `9117` // Estimated: `11322` - // Minimum execution time: 374_863_000 picoseconds. - Weight::from_parts(376_226_000, 11322) + // Minimum execution time: 372_556_000 picoseconds. + Weight::from_parts(375_570_000, 11322) .saturating_add(T::DbWeight::get().reads(33_u64)) .saturating_add(T::DbWeight::get().writes(14_u64)) } @@ -415,8 +415,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `9759` // Estimated: `19071` - // Minimum execution time: 610_767_000 picoseconds. - Weight::from_parts(614_192_000, 19071) + // Minimum execution time: 597_540_000 picoseconds. + Weight::from_parts(600_244_000, 19071) .saturating_add(T::DbWeight::get().reads(58_u64)) .saturating_add(T::DbWeight::get().writes(28_u64)) } @@ -480,8 +480,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `9759` // Estimated: `19071` - // Minimum execution time: 608_159_000 picoseconds. - Weight::from_parts(611_244_000, 19071) + // Minimum execution time: 596_035_000 picoseconds. + Weight::from_parts(599_171_000, 19071) .saturating_add(T::DbWeight::get().reads(58_u64)) .saturating_add(T::DbWeight::get().writes(28_u64)) } @@ -491,8 +491,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1338` // Estimated: `3550` - // Minimum execution time: 35_242_000 picoseconds. - Weight::from_parts(35_498_000, 3550) + // Minimum execution time: 35_624_000 picoseconds. + Weight::from_parts(36_122_000, 3550) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -524,8 +524,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2958` // Estimated: `6196` - // Minimum execution time: 144_767_000 picoseconds. - Weight::from_parts(145_847_000, 6196) + // Minimum execution time: 143_896_000 picoseconds. + Weight::from_parts(145_178_000, 6196) .saturating_add(T::DbWeight::get().reads(15_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -545,8 +545,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3826` // Estimated: `3655` - // Minimum execution time: 80_097_000 picoseconds. - Weight::from_parts(80_768_000, 3655) + // Minimum execution time: 80_059_000 picoseconds. + Weight::from_parts(81_190_000, 3655) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -556,8 +556,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1338` // Estimated: `3550` - // Minimum execution time: 35_450_000 picoseconds. - Weight::from_parts(35_984_000, 3550) + // Minimum execution time: 35_987_000 picoseconds. + Weight::from_parts(36_246_000, 3550) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -567,8 +567,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 18_732_000 picoseconds. - Weight::from_parts(18_943_000, 0) + // Minimum execution time: 19_203_000 picoseconds. + Weight::from_parts(19_675_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Omnipool::Assets` (r:1 w:1) @@ -601,8 +601,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `5379` // Estimated: `8739` - // Minimum execution time: 196_394_000 picoseconds. - Weight::from_parts(197_340_000, 8739) + // Minimum execution time: 195_477_000 picoseconds. + Weight::from_parts(196_816_000, 8739) .saturating_add(T::DbWeight::get().reads(19_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -636,8 +636,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4603` // Estimated: `11322` - // Minimum execution time: 197_758_000 picoseconds. - Weight::from_parts(199_084_000, 11322) + // Minimum execution time: 197_891_000 picoseconds. + Weight::from_parts(199_536_000, 11322) .saturating_add(T::DbWeight::get().reads(22_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -689,14 +689,16 @@ impl pallet_omnipool::WeightInfo for HydraWeight { /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// The range of component `c` is `[1, 2]`. /// The range of component `e` is `[0, 1]`. - fn router_execution_sell(_c: u32, e: u32, ) -> Weight { + fn router_execution_sell(c: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `2455 + e * (6586 ±0)` // Estimated: `6190 + e * (10332 ±3_165_345_618_907_560)` - // Minimum execution time: 72_624_000 picoseconds. - Weight::from_parts(79_760_189, 6190) - // Standard Error: 184_284 - .saturating_add(Weight::from_parts(474_589_461, 0).saturating_mul(e.into())) + // Minimum execution time: 72_890_000 picoseconds. + Weight::from_parts(74_059_234, 6190) + // Standard Error: 174_553 + .saturating_add(Weight::from_parts(15_608, 0).saturating_mul(c.into())) + // Standard Error: 174_553 + .saturating_add(Weight::from_parts(469_014_048, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads((38_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((21_u64).saturating_mul(e.into()))) @@ -750,16 +752,14 @@ impl pallet_omnipool::WeightInfo for HydraWeight { /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// The range of component `c` is `[1, 2]`. /// The range of component `e` is `[0, 1]`. - fn router_execution_buy(c: u32, e: u32, ) -> Weight { + fn router_execution_buy(c: u32, _e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `9041` // Estimated: `16488` - // Minimum execution time: 524_729_000 picoseconds. - Weight::from_parts(494_475_238, 16488) - // Standard Error: 582_753 - .saturating_add(Weight::from_parts(31_097_085, 0).saturating_mul(c.into())) - // Standard Error: 582_753 - .saturating_add(Weight::from_parts(5_219_089, 0).saturating_mul(e.into())) + // Minimum execution time: 515_547_000 picoseconds. + Weight::from_parts(498_462_704, 16488) + // Standard Error: 239_888 + .saturating_add(Weight::from_parts(22_823_189, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(49_u64)) .saturating_add(T::DbWeight::get().writes(21_u64)) } @@ -777,8 +777,8 @@ impl pallet_omnipool::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2455` // Estimated: `6190` - // Minimum execution time: 73_767_000 picoseconds. - Weight::from_parts(74_429_000, 6190) + // Minimum execution time: 72_254_000 picoseconds. + Weight::from_parts(73_091_000, 6190) .saturating_add(T::DbWeight::get().reads(10_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_omnipool_liquidity_mining.rs b/runtime/hydradx/src/weights/pallet_omnipool_liquidity_mining.rs index ea45309991..c4225d0aed 100644 --- a/runtime/hydradx/src/weights/pallet_omnipool_liquidity_mining.rs +++ b/runtime/hydradx/src/weights/pallet_omnipool_liquidity_mining.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_omnipool_liquidity_mining` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-07-13, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -78,8 +78,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `2470` // Estimated: `6196` - // Minimum execution time: 117_809_000 picoseconds. - Weight::from_parts(119_094_000, 6196) + // Minimum execution time: 118_643_000 picoseconds. + Weight::from_parts(119_194_000, 6196) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -99,8 +99,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `8682` // Estimated: `6328` - // Minimum execution time: 163_474_000 picoseconds. - Weight::from_parts(164_212_000, 6328) + // Minimum execution time: 164_099_000 picoseconds. + Weight::from_parts(165_341_000, 6328) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -120,8 +120,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `8522` // Estimated: `6196` - // Minimum execution time: 136_798_000 picoseconds. - Weight::from_parts(137_572_000, 6196) + // Minimum execution time: 136_869_000 picoseconds. + Weight::from_parts(138_394_000, 6196) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -149,8 +149,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `9178` // Estimated: `6328` - // Minimum execution time: 184_959_000 picoseconds. - Weight::from_parts(186_527_000, 6328) + // Minimum execution time: 185_342_000 picoseconds. + Weight::from_parts(186_459_000, 6328) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -176,8 +176,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `9684` // Estimated: `6328` - // Minimum execution time: 189_724_000 picoseconds. - Weight::from_parts(191_700_000, 6328) + // Minimum execution time: 190_776_000 picoseconds. + Weight::from_parts(191_666_000, 6328) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -201,8 +201,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `9257` // Estimated: `6328` - // Minimum execution time: 182_835_000 picoseconds. - Weight::from_parts(184_545_000, 6328) + // Minimum execution time: 184_032_000 picoseconds. + Weight::from_parts(185_290_000, 6328) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -228,8 +228,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `9801` // Estimated: `6328` - // Minimum execution time: 186_962_000 picoseconds. - Weight::from_parts(188_476_000, 6328) + // Minimum execution time: 188_387_000 picoseconds. + Weight::from_parts(189_276_000, 6328) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -251,8 +251,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `8924` // Estimated: `6196` - // Minimum execution time: 134_629_000 picoseconds. - Weight::from_parts(135_797_000, 6196) + // Minimum execution time: 134_906_000 picoseconds. + Weight::from_parts(136_337_000, 6196) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -294,8 +294,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `12607` // Estimated: `11666` - // Minimum execution time: 280_223_000 picoseconds. - Weight::from_parts(282_139_000, 11666) + // Minimum execution time: 280_679_000 picoseconds. + Weight::from_parts(282_584_000, 11666) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().writes(14_u64)) } @@ -327,8 +327,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `15543` // Estimated: `11666` - // Minimum execution time: 240_302_000 picoseconds. - Weight::from_parts(242_508_000, 11666) + // Minimum execution time: 241_487_000 picoseconds. + Weight::from_parts(243_105_000, 11666) .saturating_add(T::DbWeight::get().reads(18_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -354,8 +354,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `12822` // Estimated: `8799` - // Minimum execution time: 243_130_000 picoseconds. - Weight::from_parts(244_920_000, 8799) + // Minimum execution time: 245_854_000 picoseconds. + Weight::from_parts(247_287_000, 8799) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -391,8 +391,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `11245` // Estimated: `8799` - // Minimum execution time: 334_976_000 picoseconds. - Weight::from_parts(336_401_000, 8799) + // Minimum execution time: 335_525_000 picoseconds. + Weight::from_parts(337_036_000, 8799) .saturating_add(T::DbWeight::get().reads(19_u64)) .saturating_add(T::DbWeight::get().writes(15_u64)) } @@ -435,10 +435,10 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `20799 + c * (530 ±0)` // Estimated: `11666 + c * (2680 ±0)` - // Minimum execution time: 286_041_000 picoseconds. - Weight::from_parts(172_413_412, 11666) - // Standard Error: 77_838 - .saturating_add(Weight::from_parts(118_563_650, 0).saturating_mul(c.into())) + // Minimum execution time: 286_740_000 picoseconds. + Weight::from_parts(171_241_333, 11666) + // Standard Error: 73_150 + .saturating_add(Weight::from_parts(120_292_624, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(16_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(11_u64)) @@ -518,10 +518,10 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `22400 + c * (530 ±0)` // Estimated: `14335 + c * (2680 ±0)` - // Minimum execution time: 634_082_000 picoseconds. - Weight::from_parts(517_897_325, 14335) - // Standard Error: 77_150 - .saturating_add(Weight::from_parts(122_276_989, 0).saturating_mul(c.into())) + // Minimum execution time: 636_611_000 picoseconds. + Weight::from_parts(520_148_071, 14335) + // Standard Error: 102_828 + .saturating_add(Weight::from_parts(122_797_151, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(46_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(25_u64)) @@ -561,10 +561,10 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `13266 + c * (521 ±0)` // Estimated: `6328 + c * (2680 ±0)` - // Minimum execution time: 288_690_000 picoseconds. - Weight::from_parts(107_728_007, 6328) - // Standard Error: 269_196 - .saturating_add(Weight::from_parts(182_523_860, 0).saturating_mul(c.into())) + // Minimum execution time: 292_018_000 picoseconds. + Weight::from_parts(105_689_697, 6328) + // Standard Error: 271_446 + .saturating_add(Weight::from_parts(186_847_753, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -648,12 +648,12 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H /// The range of component `c` is `[1, 5]`. fn add_liquidity_stableswap_omnipool_and_join_farms(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `25161 + c * (530 ±0)` + // Measured: `25889 + c * (530 ±0)` // Estimated: `34569 + c * (2680 ±0)` - // Minimum execution time: 2_800_527_000 picoseconds. - Weight::from_parts(2_704_641_304, 34569) - // Standard Error: 640_868 - .saturating_add(Weight::from_parts(122_657_388, 0).saturating_mul(c.into())) + // Minimum execution time: 2_862_949_000 picoseconds. + Weight::from_parts(2_776_718_548, 34569) + // Standard Error: 539_389 + .saturating_add(Weight::from_parts(122_096_781, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(80_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(37_u64)) @@ -725,12 +725,12 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H /// The range of component `c` is `[0, 1]`. fn remove_liquidity_stableswap_omnipool_and_exit_farms(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `27165 + c * (7239 ±0)` + // Measured: `27893 + c * (7239 ±0)` // Estimated: `34569 + c * (18221 ±0)` - // Minimum execution time: 1_695_593_000 picoseconds. - Weight::from_parts(1_714_757_642, 34569) - // Standard Error: 2_539_598 - .saturating_add(Weight::from_parts(1_016_348_957, 0).saturating_mul(c.into())) + // Minimum execution time: 1_710_761_000 picoseconds. + Weight::from_parts(1_729_104_659, 34569) + // Standard Error: 2_108_437 + .saturating_add(Weight::from_parts(1_032_006_340, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(64_u64)) .saturating_add(T::DbWeight::get().reads((31_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(23_u64)) @@ -747,8 +747,8 @@ impl pallet_omnipool_liquidity_mining::WeightInfo for H // Proof Size summary in bytes: // Measured: `5736` // Estimated: `51701` - // Minimum execution time: 175_502_000 picoseconds. - Weight::from_parts(177_304_000, 51701) + // Minimum execution time: 187_947_000 picoseconds. + Weight::from_parts(189_214_000, 51701) .saturating_add(T::DbWeight::get().reads(21_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_otc.rs b/runtime/hydradx/src/weights/pallet_otc.rs index 37790cc26f..20cc9b5c41 100644 --- a/runtime/hydradx/src/weights/pallet_otc.rs +++ b/runtime/hydradx/src/weights/pallet_otc.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_otc` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -74,8 +74,8 @@ impl pallet_otc::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1029` // Estimated: `6190` - // Minimum execution time: 59_095_000 picoseconds. - Weight::from_parts(60_040_000, 6190) + // Minimum execution time: 61_237_000 picoseconds. + Weight::from_parts(61_693_000, 6190) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -95,10 +95,10 @@ impl pallet_otc::WeightInfo for HydraWeight { /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Tokens::Reserves` (r:1 w:1) /// Proof: `Tokens::Reserves` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) @@ -107,11 +107,11 @@ impl pallet_otc::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn partial_fill_order() -> Weight { // Proof Size summary in bytes: - // Measured: `2270` + // Measured: `2303` // Estimated: `13905` - // Minimum execution time: 243_829_000 picoseconds. - Weight::from_parts(245_439_000, 13905) - .saturating_add(T::DbWeight::get().reads(24_u64)) + // Minimum execution time: 246_684_000 picoseconds. + Weight::from_parts(247_686_000, 13905) + .saturating_add(T::DbWeight::get().reads(25_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `OTC::Orders` (r:1 w:1) @@ -130,10 +130,10 @@ impl pallet_otc::WeightInfo for HydraWeight { /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Tokens::Reserves` (r:1 w:1) /// Proof: `Tokens::Reserves` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) @@ -142,11 +142,11 @@ impl pallet_otc::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn fill_order() -> Weight { // Proof Size summary in bytes: - // Measured: `2270` + // Measured: `2303` // Estimated: `13905` - // Minimum execution time: 240_330_000 picoseconds. - Weight::from_parts(241_837_000, 13905) - .saturating_add(T::DbWeight::get().reads(24_u64)) + // Minimum execution time: 241_244_000 picoseconds. + Weight::from_parts(243_627_000, 13905) + .saturating_add(T::DbWeight::get().reads(25_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `OTC::Orders` (r:1 w:1) @@ -161,8 +161,8 @@ impl pallet_otc::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1263` // Estimated: `4726` - // Minimum execution time: 51_096_000 picoseconds. - Weight::from_parts(51_622_000, 4726) + // Minimum execution time: 53_023_000 picoseconds. + Weight::from_parts(53_471_000, 4726) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_otc_settlements.rs b/runtime/hydradx/src/weights/pallet_otc_settlements.rs index 3dea9a0d96..eadd31584c 100644 --- a/runtime/hydradx/src/weights/pallet_otc_settlements.rs +++ b/runtime/hydradx/src/weights/pallet_otc_settlements.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_otc_settlements` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -68,17 +68,17 @@ impl pallet_otc_settlements::WeightInfo for HydraWeight /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) /// Storage: `Tokens::Accounts` (r:1 w:0) /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn settle_otc_order() -> Weight { // Proof Size summary in bytes: // Measured: `1153` // Estimated: `6196` - // Minimum execution time: 143_444_000 picoseconds. - Weight::from_parts(144_239_000, 6196) - .saturating_add(T::DbWeight::get().reads(8_u64)) + // Minimum execution time: 85_236_000 picoseconds. + Weight::from_parts(85_996_000, 6196) + .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_preimage.rs b/runtime/hydradx/src/weights/pallet_preimage.rs index 3abad23407..a232401098 100644 --- a/runtime/hydradx/src/weights/pallet_preimage.rs +++ b/runtime/hydradx/src/weights/pallet_preimage.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -73,10 +73,10 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3604` - // Minimum execution time: 61_074_000 picoseconds. - Weight::from_parts(61_265_000, 3604) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_438, 0).saturating_mul(s.into())) + // Minimum execution time: 59_788_000 picoseconds. + Weight::from_parts(54_086_134, 3604) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_320, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -91,10 +91,10 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `3556` - // Minimum execution time: 21_721_000 picoseconds. - Weight::from_parts(21_949_000, 3556) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_455, 0).saturating_mul(s.into())) + // Minimum execution time: 23_261_000 picoseconds. + Weight::from_parts(19_163_579, 3556) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_319, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -109,10 +109,10 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `3556` - // Minimum execution time: 21_019_000 picoseconds. - Weight::from_parts(21_259_000, 3556) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_442, 0).saturating_mul(s.into())) + // Minimum execution time: 20_845_000 picoseconds. + Weight::from_parts(14_916_521, 3556) + // Standard Error: 3 + .saturating_add(Weight::from_parts(2_318, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -128,8 +128,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `205` // Estimated: `3604` - // Minimum execution time: 63_921_000 picoseconds. - Weight::from_parts(65_006_000, 3604) + // Minimum execution time: 61_543_000 picoseconds. + Weight::from_parts(63_136_000, 3604) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -143,8 +143,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 28_478_000 picoseconds. - Weight::from_parts(29_594_000, 3556) + // Minimum execution time: 28_090_000 picoseconds. + Weight::from_parts(29_011_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -156,8 +156,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `150` // Estimated: `3556` - // Minimum execution time: 26_235_000 picoseconds. - Weight::from_parts(26_946_000, 3556) + // Minimum execution time: 25_206_000 picoseconds. + Weight::from_parts(26_234_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -169,8 +169,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 16_357_000 picoseconds. - Weight::from_parts(17_469_000, 3556) + // Minimum execution time: 16_396_000 picoseconds. + Weight::from_parts(16_882_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -182,8 +182,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3556` - // Minimum execution time: 17_271_000 picoseconds. - Weight::from_parts(17_775_000, 3556) + // Minimum execution time: 17_044_000 picoseconds. + Weight::from_parts(17_538_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -195,8 +195,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `3556` - // Minimum execution time: 13_176_000 picoseconds. - Weight::from_parts(13_664_000, 3556) + // Minimum execution time: 13_160_000 picoseconds. + Weight::from_parts(13_555_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -210,8 +210,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3556` - // Minimum execution time: 25_859_000 picoseconds. - Weight::from_parts(26_511_000, 3556) + // Minimum execution time: 25_133_000 picoseconds. + Weight::from_parts(25_867_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -223,8 +223,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `3556` - // Minimum execution time: 13_130_000 picoseconds. - Weight::from_parts(13_408_000, 3556) + // Minimum execution time: 13_054_000 picoseconds. + Weight::from_parts(13_439_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -236,8 +236,8 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `68` // Estimated: `3556` - // Minimum execution time: 13_144_000 picoseconds. - Weight::from_parts(13_559_000, 3556) + // Minimum execution time: 13_134_000 picoseconds. + Weight::from_parts(13_565_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -254,10 +254,10 @@ impl pallet_preimage::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0 + n * (227 ±0)` // Estimated: `990 + n * (2614 ±0)` - // Minimum execution time: 69_652_000 picoseconds. - Weight::from_parts(69_874_000, 990) - // Standard Error: 29_278 - .saturating_add(Weight::from_parts(61_283_804, 0).saturating_mul(n.into())) + // Minimum execution time: 68_344_000 picoseconds. + Weight::from_parts(68_649_000, 990) + // Standard Error: 38_285 + .saturating_add(Weight::from_parts(59_657_578, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 2614).saturating_mul(n.into())) diff --git a/runtime/hydradx/src/weights/pallet_proxy.rs b/runtime/hydradx/src/weights/pallet_proxy.rs index 4053a8f4a6..c08486f198 100644 --- a/runtime/hydradx/src/weights/pallet_proxy.rs +++ b/runtime/hydradx/src/weights/pallet_proxy.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -67,10 +67,10 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `293 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_460_000 picoseconds. - Weight::from_parts(23_039_835, 4706) - // Standard Error: 653 - .saturating_add(Weight::from_parts(19_195, 0).saturating_mul(p.into())) + // Minimum execution time: 22_294_000 picoseconds. + Weight::from_parts(22_996_023, 4706) + // Standard Error: 708 + .saturating_add(Weight::from_parts(17_869, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Proxy::Proxies` (r:1 w:0) @@ -85,12 +85,12 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `620 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 49_251_000 picoseconds. - Weight::from_parts(50_061_146, 5698) - // Standard Error: 1_446 - .saturating_add(Weight::from_parts(173_318, 0).saturating_mul(a.into())) - // Standard Error: 1_494 - .saturating_add(Weight::from_parts(17_512, 0).saturating_mul(p.into())) + // Minimum execution time: 49_624_000 picoseconds. + Weight::from_parts(50_291_746, 5698) + // Standard Error: 1_819 + .saturating_add(Weight::from_parts(178_598, 0).saturating_mul(a.into())) + // Standard Error: 1_879 + .saturating_add(Weight::from_parts(18_237, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -100,14 +100,16 @@ impl pallet_proxy::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn remove_announcement(a: u32, _p: u32, ) -> Weight { + fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `535 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 35_139_000 picoseconds. - Weight::from_parts(36_312_868, 5698) - // Standard Error: 1_420 - .saturating_add(Weight::from_parts(180_043, 0).saturating_mul(a.into())) + // Minimum execution time: 35_544_000 picoseconds. + Weight::from_parts(36_612_341, 5698) + // Standard Error: 1_585 + .saturating_add(Weight::from_parts(163_203, 0).saturating_mul(a.into())) + // Standard Error: 1_638 + .saturating_add(Weight::from_parts(2_373, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -117,14 +119,16 @@ impl pallet_proxy::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn reject_announcement(a: u32, _p: u32, ) -> Weight { + fn reject_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `535 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 35_072_000 picoseconds. - Weight::from_parts(36_216_246, 5698) - // Standard Error: 1_403 - .saturating_add(Weight::from_parts(185_173, 0).saturating_mul(a.into())) + // Minimum execution time: 35_285_000 picoseconds. + Weight::from_parts(36_510_536, 5698) + // Standard Error: 1_483 + .saturating_add(Weight::from_parts(166_108, 0).saturating_mul(a.into())) + // Standard Error: 1_532 + .saturating_add(Weight::from_parts(19, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -140,12 +144,12 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `552 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 45_291_000 picoseconds. - Weight::from_parts(45_501_203, 5698) - // Standard Error: 1_649 - .saturating_add(Weight::from_parts(172_220, 0).saturating_mul(a.into())) - // Standard Error: 1_704 - .saturating_add(Weight::from_parts(30_494, 0).saturating_mul(p.into())) + // Minimum execution time: 45_541_000 picoseconds. + Weight::from_parts(45_798_596, 5698) + // Standard Error: 1_587 + .saturating_add(Weight::from_parts(160_616, 0).saturating_mul(a.into())) + // Standard Error: 1_640 + .saturating_add(Weight::from_parts(21_084, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -156,10 +160,10 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `293 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 34_343_000 picoseconds. - Weight::from_parts(35_064_327, 4706) - // Standard Error: 868 - .saturating_add(Weight::from_parts(42_434, 0).saturating_mul(p.into())) + // Minimum execution time: 34_434_000 picoseconds. + Weight::from_parts(35_112_117, 4706) + // Standard Error: 1_162 + .saturating_add(Weight::from_parts(47_630, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -170,10 +174,10 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `293 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 34_509_000 picoseconds. - Weight::from_parts(35_115_821, 4706) - // Standard Error: 831 - .saturating_add(Weight::from_parts(37_141, 0).saturating_mul(p.into())) + // Minimum execution time: 34_359_000 picoseconds. + Weight::from_parts(35_079_669, 4706) + // Standard Error: 876 + .saturating_add(Weight::from_parts(40_778, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -184,10 +188,10 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `293 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 31_465_000 picoseconds. - Weight::from_parts(32_289_939, 4706) - // Standard Error: 780 - .saturating_add(Weight::from_parts(22_839, 0).saturating_mul(p.into())) + // Minimum execution time: 31_394_000 picoseconds. + Weight::from_parts(32_045_061, 4706) + // Standard Error: 788 + .saturating_add(Weight::from_parts(24_881, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -198,10 +202,10 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `305` // Estimated: `4706` - // Minimum execution time: 36_823_000 picoseconds. - Weight::from_parts(37_460_884, 4706) - // Standard Error: 811 - .saturating_add(Weight::from_parts(7_044, 0).saturating_mul(p.into())) + // Minimum execution time: 36_663_000 picoseconds. + Weight::from_parts(37_550_896, 4706) + // Standard Error: 977 + .saturating_add(Weight::from_parts(12_736, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -212,10 +216,10 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `330 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 35_495_000 picoseconds. - Weight::from_parts(36_223_271, 4706) - // Standard Error: 716 - .saturating_add(Weight::from_parts(12_916, 0).saturating_mul(p.into())) + // Minimum execution time: 35_035_000 picoseconds. + Weight::from_parts(35_977_009, 4706) + // Standard Error: 812 + .saturating_add(Weight::from_parts(19_982, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -229,8 +233,8 @@ impl pallet_proxy::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `656` // Estimated: `5698` - // Minimum execution time: 58_586_000 picoseconds. - Weight::from_parts(59_146_000, 5698) + // Minimum execution time: 58_835_000 picoseconds. + Weight::from_parts(59_583_000, 5698) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_referenda.rs b/runtime/hydradx/src/weights/pallet_referenda.rs index f91b6b096e..335596eb0e 100644 --- a/runtime/hydradx/src/weights/pallet_referenda.rs +++ b/runtime/hydradx/src/weights/pallet_referenda.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_referenda` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-05-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -70,8 +70,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `290` // Estimated: `42428` - // Minimum execution time: 48_528_000 picoseconds. - Weight::from_parts(48_961_000, 42428) + // Minimum execution time: 49_680_000 picoseconds. + Weight::from_parts(50_233_000, 42428) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -87,8 +87,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `592` // Estimated: `83866` - // Minimum execution time: 69_442_000 picoseconds. - Weight::from_parts(70_116_000, 83866) + // Minimum execution time: 71_545_000 picoseconds. + Weight::from_parts(72_350_000, 83866) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -106,10 +106,10 @@ impl pallet_referenda::WeightInfo for HydraWeight { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3352` + // Measured: `3385` // Estimated: `42428` - // Minimum execution time: 79_849_000 picoseconds. - Weight::from_parts(80_844_000, 42428) + // Minimum execution time: 81_692_000 picoseconds. + Weight::from_parts(82_657_000, 42428) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -127,10 +127,10 @@ impl pallet_referenda::WeightInfo for HydraWeight { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3372` + // Measured: `3405` // Estimated: `42428` - // Minimum execution time: 78_658_000 picoseconds. - Weight::from_parts(80_117_000, 42428) + // Minimum execution time: 81_021_000 picoseconds. + Weight::from_parts(82_174_000, 42428) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -144,8 +144,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `538` // Estimated: `4401` - // Minimum execution time: 57_780_000 picoseconds. - Weight::from_parts(58_584_000, 4401) + // Minimum execution time: 59_592_000 picoseconds. + Weight::from_parts(60_260_000, 4401) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -163,8 +163,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `592` // Estimated: `83866` - // Minimum execution time: 78_742_000 picoseconds. - Weight::from_parts(79_766_000, 83866) + // Minimum execution time: 81_134_000 picoseconds. + Weight::from_parts(82_108_000, 83866) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -174,8 +174,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `422` // Estimated: `4401` - // Minimum execution time: 38_190_000 picoseconds. - Weight::from_parts(38_782_000, 4401) + // Minimum execution time: 39_302_000 picoseconds. + Weight::from_parts(39_799_000, 4401) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -185,8 +185,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `412` // Estimated: `4401` - // Minimum execution time: 38_815_000 picoseconds. - Weight::from_parts(39_295_000, 4401) + // Minimum execution time: 39_555_000 picoseconds. + Weight::from_parts(40_160_000, 4401) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -200,8 +200,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `451` // Estimated: `42428` - // Minimum execution time: 43_919_000 picoseconds. - Weight::from_parts(44_830_000, 42428) + // Minimum execution time: 45_797_000 picoseconds. + Weight::from_parts(46_228_000, 42428) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -219,8 +219,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `795` // Estimated: `42428` - // Minimum execution time: 111_932_000 picoseconds. - Weight::from_parts(113_197_000, 42428) + // Minimum execution time: 114_758_000 picoseconds. + Weight::from_parts(116_309_000, 42428) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -234,8 +234,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `294` // Estimated: `5477` - // Minimum execution time: 21_262_000 picoseconds. - Weight::from_parts(21_776_000, 5477) + // Minimum execution time: 21_855_000 picoseconds. + Weight::from_parts(22_241_000, 5477) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -249,10 +249,10 @@ impl pallet_referenda::WeightInfo for HydraWeight { /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `3272` + // Measured: `3280` // Estimated: `42428` - // Minimum execution time: 57_449_000 picoseconds. - Weight::from_parts(58_033_000, 42428) + // Minimum execution time: 58_073_000 picoseconds. + Weight::from_parts(58_919_000, 42428) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -266,10 +266,10 @@ impl pallet_referenda::WeightInfo for HydraWeight { /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) fn one_fewer_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `3272` + // Measured: `3308` // Estimated: `42428` - // Minimum execution time: 60_866_000 picoseconds. - Weight::from_parts(61_603_000, 42428) + // Minimum execution time: 63_039_000 picoseconds. + Weight::from_parts(63_924_000, 42428) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -283,8 +283,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3131` // Estimated: `5477` - // Minimum execution time: 31_808_000 picoseconds. - Weight::from_parts(32_409_000, 5477) + // Minimum execution time: 32_714_000 picoseconds. + Weight::from_parts(33_213_000, 5477) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -298,8 +298,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3131` // Estimated: `5477` - // Minimum execution time: 32_076_000 picoseconds. - Weight::from_parts(32_389_000, 5477) + // Minimum execution time: 32_737_000 picoseconds. + Weight::from_parts(33_109_000, 5477) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -315,8 +315,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3135` // Estimated: `5477` - // Minimum execution time: 40_051_000 picoseconds. - Weight::from_parts(40_544_000, 5477) + // Minimum execution time: 40_652_000 picoseconds. + Weight::from_parts(41_424_000, 5477) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -332,8 +332,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `3155` // Estimated: `5477` - // Minimum execution time: 38_752_000 picoseconds. - Weight::from_parts(39_322_000, 5477) + // Minimum execution time: 39_624_000 picoseconds. + Weight::from_parts(40_146_000, 5477) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -347,8 +347,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `452` // Estimated: `42428` - // Minimum execution time: 35_187_000 picoseconds. - Weight::from_parts(36_051_000, 42428) + // Minimum execution time: 36_421_000 picoseconds. + Weight::from_parts(37_144_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -362,8 +362,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `500` // Estimated: `42428` - // Minimum execution time: 35_501_000 picoseconds. - Weight::from_parts(36_349_000, 42428) + // Minimum execution time: 36_663_000 picoseconds. + Weight::from_parts(37_271_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -375,8 +375,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `398` // Estimated: `4401` - // Minimum execution time: 26_158_000 picoseconds. - Weight::from_parts(26_444_000, 4401) + // Minimum execution time: 27_045_000 picoseconds. + Weight::from_parts(27_489_000, 4401) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -392,8 +392,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `500` // Estimated: `42428` - // Minimum execution time: 46_542_000 picoseconds. - Weight::from_parts(47_252_000, 42428) + // Minimum execution time: 48_342_000 picoseconds. + Weight::from_parts(48_843_000, 42428) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -409,8 +409,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `500` // Estimated: `42428` - // Minimum execution time: 48_564_000 picoseconds. - Weight::from_parts(49_249_000, 42428) + // Minimum execution time: 50_141_000 picoseconds. + Weight::from_parts(50_888_000, 42428) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -424,8 +424,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `553` // Estimated: `42428` - // Minimum execution time: 41_896_000 picoseconds. - Weight::from_parts(42_470_000, 42428) + // Minimum execution time: 43_205_000 picoseconds. + Weight::from_parts(43_657_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -439,8 +439,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `536` // Estimated: `42428` - // Minimum execution time: 40_847_000 picoseconds. - Weight::from_parts(41_743_000, 42428) + // Minimum execution time: 42_313_000 picoseconds. + Weight::from_parts(43_100_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -454,8 +454,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `553` // Estimated: `42428` - // Minimum execution time: 39_581_000 picoseconds. - Weight::from_parts(40_078_000, 42428) + // Minimum execution time: 40_881_000 picoseconds. + Weight::from_parts(41_403_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -469,8 +469,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `557` // Estimated: `42428` - // Minimum execution time: 38_843_000 picoseconds. - Weight::from_parts(39_447_000, 42428) + // Minimum execution time: 39_831_000 picoseconds. + Weight::from_parts(40_377_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -486,8 +486,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `536` // Estimated: `42428` - // Minimum execution time: 54_215_000 picoseconds. - Weight::from_parts(54_861_000, 42428) + // Minimum execution time: 56_024_000 picoseconds. + Weight::from_parts(56_850_000, 42428) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -501,8 +501,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `553` // Estimated: `42428` - // Minimum execution time: 40_793_000 picoseconds. - Weight::from_parts(41_335_000, 42428) + // Minimum execution time: 41_898_000 picoseconds. + Weight::from_parts(42_297_000, 42428) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -518,8 +518,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `455` // Estimated: `4401` - // Minimum execution time: 29_428_000 picoseconds. - Weight::from_parts(30_036_000, 4401) + // Minimum execution time: 30_339_000 picoseconds. + Weight::from_parts(30_888_000, 4401) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -531,8 +531,8 @@ impl pallet_referenda::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `426` // Estimated: `4401` - // Minimum execution time: 25_078_000 picoseconds. - Weight::from_parts(25_473_000, 4401) + // Minimum execution time: 26_087_000 picoseconds. + Weight::from_parts(26_564_000, 4401) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_referrals.rs b/runtime/hydradx/src/weights/pallet_referrals.rs index b0afef8997..bd8af480eb 100644 --- a/runtime/hydradx/src/weights/pallet_referrals.rs +++ b/runtime/hydradx/src/weights/pallet_referrals.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_referrals` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-06-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -78,8 +78,8 @@ impl pallet_referrals::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6196` - // Minimum execution time: 83_322_000 picoseconds. - Weight::from_parts(84_422_000, 6196) + // Minimum execution time: 86_316_000 picoseconds. + Weight::from_parts(87_068_000, 6196) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -91,8 +91,8 @@ impl pallet_referrals::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `228` // Estimated: `3545` - // Minimum execution time: 19_848_000 picoseconds. - Weight::from_parts(20_205_000, 3545) + // Minimum execution time: 20_017_000 picoseconds. + Weight::from_parts(20_480_000, 3545) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -122,6 +122,8 @@ impl pallet_referrals::WeightInfo for HydraWeight { /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) + /// Storage: `FeeProcessor::HeldFees` (r:3 w:3) + /// Proof: `FeeProcessor::HeldFees` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EVMAccounts::AccountExtension` (r:1 w:0) /// Proof: `EVMAccounts::AccountExtension` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `HSM::FlashMinter` (r:1 w:0) @@ -144,12 +146,12 @@ impl pallet_referrals::WeightInfo for HydraWeight { /// Proof: `Referrals::CounterForPendingConversions` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn convert() -> Weight { // Proof Size summary in bytes: - // Measured: `2564` + // Measured: `2606` // Estimated: `16608` - // Minimum execution time: 597_223_000 picoseconds. - Weight::from_parts(600_824_000, 16608) - .saturating_add(T::DbWeight::get().reads(46_u64)) - .saturating_add(T::DbWeight::get().writes(18_u64)) + // Minimum execution time: 630_755_000 picoseconds. + Weight::from_parts(634_045_000, 16608) + .saturating_add(T::DbWeight::get().reads(49_u64)) + .saturating_add(T::DbWeight::get().writes(21_u64)) } /// Storage: `Referrals::PendingConversions` (r:1 w:0) /// Proof: `Referrals::PendingConversions` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) @@ -173,8 +175,8 @@ impl pallet_referrals::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1078` // Estimated: `6196` - // Minimum execution time: 103_703_000 picoseconds. - Weight::from_parts(104_628_000, 6196) + // Minimum execution time: 105_272_000 picoseconds. + Weight::from_parts(106_139_000, 6196) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -184,8 +186,8 @@ impl pallet_referrals::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3510` - // Minimum execution time: 14_690_000 picoseconds. - Weight::from_parts(14_973_000, 3510) + // Minimum execution time: 14_589_000 picoseconds. + Weight::from_parts(15_043_000, 3510) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_route_executor.rs b/runtime/hydradx/src/weights/pallet_route_executor.rs index d1f01233bc..8b639bff4a 100644 --- a/runtime/hydradx/src/weights/pallet_route_executor.rs +++ b/runtime/hydradx/src/weights/pallet_route_executor.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_route_executor` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -72,10 +72,10 @@ impl pallet_route_executor::WeightInfo for HydraWeight< /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:4 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `Broadcast::IncrementalId` (r:1 w:1) /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Tokens::Locks` (r:1 w:1) @@ -89,12 +89,12 @@ impl pallet_route_executor::WeightInfo for HydraWeight< /// The range of component `c` is `[0, 1]`. fn calculate_and_execute_sell_in_lbp(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3855` + // Measured: `3921` // Estimated: `19071` - // Minimum execution time: 491_242_000 picoseconds. - Weight::from_parts(497_109_853, 19071) - // Standard Error: 517_425 - .saturating_add(Weight::from_parts(83_812_146, 0).saturating_mul(c.into())) + // Minimum execution time: 494_499_000 picoseconds. + Weight::from_parts(500_076_979, 19071) + // Standard Error: 411_797 + .saturating_add(Weight::from_parts(82_365_420, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(29_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) } @@ -110,10 +110,10 @@ impl pallet_route_executor::WeightInfo for HydraWeight< /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:2 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:4 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `Broadcast::IncrementalId` (r:1 w:1) /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Tokens::Locks` (r:1 w:1) @@ -128,14 +128,14 @@ impl pallet_route_executor::WeightInfo for HydraWeight< /// The range of component `b` is `[0, 1]`. fn calculate_and_execute_buy_in_lbp(c: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2058 + b * (1802 ±0)` + // Measured: `2058 + b * (1868 ±0)` // Estimated: `6190 + b * (12915 ±3_669_546_108_290_640)` - // Minimum execution time: 122_532_000 picoseconds. - Weight::from_parts(123_578_000, 6190) - // Standard Error: 300_206 - .saturating_add(Weight::from_parts(1_433_083, 0).saturating_mul(c.into())) - // Standard Error: 668_645 - .saturating_add(Weight::from_parts(452_038_563, 0).saturating_mul(b.into())) + // Minimum execution time: 122_258_000 picoseconds. + Weight::from_parts(123_240_000, 6190) + // Standard Error: 270_668 + .saturating_add(Weight::from_parts(1_049_771, 0).saturating_mul(c.into())) + // Standard Error: 602_855 + .saturating_add(Weight::from_parts(454_767_874, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((24_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((12_u64).saturating_mul(b.into()))) @@ -157,8 +157,8 @@ impl pallet_route_executor::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `6945` // Estimated: `47484` - // Minimum execution time: 599_462_000 picoseconds. - Weight::from_parts(604_608_000, 47484) + // Minimum execution time: 618_717_000 picoseconds. + Weight::from_parts(623_089_000, 47484) .saturating_add(T::DbWeight::get().reads(42_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -168,8 +168,8 @@ impl pallet_route_executor::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `1012` // Estimated: `0` - // Minimum execution time: 31_483_000 picoseconds. - Weight::from_parts(31_986_000, 0) + // Minimum execution time: 31_187_000 picoseconds. + Weight::from_parts(31_752_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Router::Routes` (r:1 w:0) @@ -178,8 +178,8 @@ impl pallet_route_executor::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `800` // Estimated: `3607` - // Minimum execution time: 9_031_000 picoseconds. - Weight::from_parts(9_274_000, 3607) + // Minimum execution time: 8_722_000 picoseconds. + Weight::from_parts(9_135_000, 3607) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `EmaOracle::Oracles` (r:2 w:0) @@ -188,8 +188,8 @@ impl pallet_route_executor::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `1486` // Estimated: `6328` - // Minimum execution time: 32_074_000 picoseconds. - Weight::from_parts(32_417_000, 6328) + // Minimum execution time: 33_411_000 picoseconds. + Weight::from_parts(33_606_000, 6328) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `EmaOracle::Oracles` (r:4 w:0) @@ -198,8 +198,8 @@ impl pallet_route_executor::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `1908` // Estimated: `11666` - // Minimum execution time: 58_722_000 picoseconds. - Weight::from_parts(59_175_000, 11666) + // Minimum execution time: 61_463_000 picoseconds. + Weight::from_parts(62_068_000, 11666) .saturating_add(T::DbWeight::get().reads(4_u64)) } /// Storage: `LBP::PoolData` (r:1 w:0) @@ -214,8 +214,8 @@ impl pallet_route_executor::WeightInfo for HydraWeight< // Proof Size summary in bytes: // Measured: `2095` // Estimated: `6190` - // Minimum execution time: 55_040_000 picoseconds. - Weight::from_parts(56_051_000, 6190) + // Minimum execution time: 54_500_000 picoseconds. + Weight::from_parts(55_164_000, 6190) .saturating_add(T::DbWeight::get().reads(6_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_scheduler.rs b/runtime/hydradx/src/weights/pallet_scheduler.rs index c1facc53dd..67b6de30a9 100644 --- a/runtime/hydradx/src/weights/pallet_scheduler.rs +++ b/runtime/hydradx/src/weights/pallet_scheduler.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `30` // Estimated: `1489` - // Minimum execution time: 8_470_000 picoseconds. - Weight::from_parts(8_680_000, 1489) + // Minimum execution time: 8_510_000 picoseconds. + Weight::from_parts(8_841_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -78,10 +78,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 5_241_000 picoseconds. - Weight::from_parts(9_681_293, 42428) - // Standard Error: 1_981 - .saturating_add(Weight::from_parts(474_554, 0).saturating_mul(s.into())) + // Minimum execution time: 5_468_000 picoseconds. + Weight::from_parts(9_938_391, 42428) + // Standard Error: 2_098 + .saturating_add(Weight::from_parts(477_297, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -89,8 +89,8 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_378_000 picoseconds. - Weight::from_parts(5_462_000, 0) + // Minimum execution time: 5_650_000 picoseconds. + Weight::from_parts(5_911_000, 0) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) @@ -103,10 +103,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `141 + s * (1 ±0)` // Estimated: `3606 + s * (1 ±0)` - // Minimum execution time: 24_404_000 picoseconds. - Weight::from_parts(24_713_000, 3606) - // Standard Error: 20 - .saturating_add(Weight::from_parts(2_107, 0).saturating_mul(s.into())) + // Minimum execution time: 27_164_000 picoseconds. + Weight::from_parts(65_016_029, 3606) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_523, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -117,30 +117,30 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_143_000 picoseconds. - Weight::from_parts(8_356_000, 0) + // Minimum execution time: 8_200_000 picoseconds. + Weight::from_parts(8_415_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn service_task_periodic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_229_000 picoseconds. - Weight::from_parts(5_459_000, 0) + // Minimum execution time: 5_723_000 picoseconds. + Weight::from_parts(5_864_000, 0) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_269_000 picoseconds. - Weight::from_parts(4_403_000, 0) + // Minimum execution time: 4_428_000 picoseconds. + Weight::from_parts(4_517_000, 0) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_185_000 picoseconds. - Weight::from_parts(4_340_000, 0) + // Minimum execution time: 4_333_000 picoseconds. + Weight::from_parts(4_517_000, 0) } /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) @@ -149,10 +149,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 16_057_000 picoseconds. - Weight::from_parts(20_029_244, 42428) - // Standard Error: 1_779 - .saturating_add(Weight::from_parts(482_780, 0).saturating_mul(s.into())) + // Minimum execution time: 16_625_000 picoseconds. + Weight::from_parts(20_720_248, 42428) + // Standard Error: 1_805 + .saturating_add(Weight::from_parts(487_829, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -167,10 +167,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `77 + s * (177 ±0)` // Estimated: `42428` - // Minimum execution time: 23_729_000 picoseconds. - Weight::from_parts(23_212_667, 42428) - // Standard Error: 653 - .saturating_add(Weight::from_parts(756_642, 0).saturating_mul(s.into())) + // Minimum execution time: 24_056_000 picoseconds. + Weight::from_parts(23_487_279, 42428) + // Standard Error: 760 + .saturating_add(Weight::from_parts(778_444, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -183,10 +183,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `254 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 20_959_000 picoseconds. - Weight::from_parts(27_062_813, 42428) - // Standard Error: 4_875 - .saturating_add(Weight::from_parts(553_849, 0).saturating_mul(s.into())) + // Minimum execution time: 21_727_000 picoseconds. + Weight::from_parts(28_805_997, 42428) + // Standard Error: 3_650 + .saturating_add(Weight::from_parts(533_575, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -201,10 +201,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `280 + s * (185 ±0)` // Estimated: `42428` - // Minimum execution time: 26_597_000 picoseconds. - Weight::from_parts(28_873_248, 42428) - // Standard Error: 1_881 - .saturating_add(Weight::from_parts(800_192, 0).saturating_mul(s.into())) + // Minimum execution time: 29_041_000 picoseconds. + Weight::from_parts(29_525_853, 42428) + // Standard Error: 1_393 + .saturating_add(Weight::from_parts(800_193, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -217,10 +217,10 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `117` // Estimated: `42428` - // Minimum execution time: 14_167_000 picoseconds. - Weight::from_parts(14_526_186, 42428) - // Standard Error: 354 - .saturating_add(Weight::from_parts(18_119, 0).saturating_mul(s.into())) + // Minimum execution time: 14_609_000 picoseconds. + Weight::from_parts(14_968_638, 42428) + // Standard Error: 279 + .saturating_add(Weight::from_parts(18_676, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -232,8 +232,8 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `8927` // Estimated: `42428` - // Minimum execution time: 35_424_000 picoseconds. - Weight::from_parts(36_025_000, 42428) + // Minimum execution time: 35_738_000 picoseconds. + Weight::from_parts(36_241_000, 42428) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -247,8 +247,8 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `9605` // Estimated: `42428` - // Minimum execution time: 44_793_000 picoseconds. - Weight::from_parts(45_571_000, 42428) + // Minimum execution time: 45_551_000 picoseconds. + Weight::from_parts(45_984_000, 42428) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -260,8 +260,8 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `8939` // Estimated: `42428` - // Minimum execution time: 33_917_000 picoseconds. - Weight::from_parts(34_506_000, 42428) + // Minimum execution time: 34_518_000 picoseconds. + Weight::from_parts(35_388_000, 42428) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -275,8 +275,8 @@ impl pallet_scheduler::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `9617` // Estimated: `42428` - // Minimum execution time: 43_414_000 picoseconds. - Weight::from_parts(44_508_000, 42428) + // Minimum execution time: 44_671_000 picoseconds. + Weight::from_parts(45_507_000, 42428) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_signet.rs b/runtime/hydradx/src/weights/pallet_signet.rs index 694556bf0d..57b45e7349 100644 --- a/runtime/hydradx/src/weights/pallet_signet.rs +++ b/runtime/hydradx/src/weights/pallet_signet.rs @@ -19,11 +19,32 @@ //! Autogenerated weights for `pallet_signet` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` +// Executed Command: +// ./bin/hydradx +// benchmark +// pallet +// --wasm-execution=compiled +// --pallet +// pallet_signet +// --extrinsic +// * +// --heap-pages +// 4096 +// --steps +// 50 +// --repeat +// 20 +// --template +// scripts/pallet-weight-template.hbs +// --output +// runtime/hydradx/src/weights/pallet_signet.rs +// --quiet + #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] @@ -39,71 +60,95 @@ pub struct WeightInfo(PhantomData); /// Weights for `pallet_signet` using the HydraDX node and recommended hardware. pub struct HydraWeight(PhantomData); impl pallet_signet::WeightInfo for HydraWeight { + /// Storage: `Signet::SignetConfig` (r:1 w:1) + /// Proof: `Signet::SignetConfig` (`max_values`: Some(1), `max_size`: Some(155), added: 650, mode: `MaxEncodedLen`) fn set_config() -> Weight { // Proof Size summary in bytes: // Measured: `4` - // Estimated: `1517` - // Minimum execution time: 12_621_000 picoseconds. - Weight::from_parts(13_044_000, 1517) + // Estimated: `1640` + // Minimum execution time: 12_116_000 picoseconds. + Weight::from_parts(12_443_000, 1640) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn withdraw_funds() -> Weight { // Proof Size summary in bytes: - // Measured: `299` + // Measured: `174` // Estimated: `3593` - // Minimum execution time: 62_011_000 picoseconds. - Weight::from_parts(62_534_000, 3593) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 58_322_000 picoseconds. + Weight::from_parts(59_280_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `Signet::SignetConfig` (r:1 w:0) + /// Proof: `Signet::SignetConfig` (`max_values`: Some(1), `max_size`: Some(155), added: 650, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn sign() -> Weight { // Proof Size summary in bytes: - // Measured: `167` + // Measured: `106` // Estimated: `3593` - // Minimum execution time: 65_063_000 picoseconds. - Weight::from_parts(65_820_000, 3593) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Minimum execution time: 64_439_000 picoseconds. + Weight::from_parts(65_259_000, 3593) + .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `Signet::SignetConfig` (r:1 w:0) + /// Proof: `Signet::SignetConfig` (`max_values`: Some(1), `max_size`: Some(155), added: 650, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn sign_bidirectional() -> Weight { // Proof Size summary in bytes: - // Measured: `167` + // Measured: `106` // Estimated: `3593` - // Minimum execution time: 162_949_000 picoseconds. - Weight::from_parts(164_844_000, 3593) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Minimum execution time: 171_444_000 picoseconds. + Weight::from_parts(173_267_000, 3593) + .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn respond() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 215_458_000 picoseconds. - Weight::from_parts(216_808_000, 0) + // Minimum execution time: 223_655_000 picoseconds. + Weight::from_parts(226_365_000, 0) } fn respond_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 321_457_000 picoseconds. - Weight::from_parts(323_288_000, 0) + // Minimum execution time: 337_988_000 picoseconds. + Weight::from_parts(342_030_000, 0) } fn respond_bidirectional() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 95_250_000 picoseconds. - Weight::from_parts(95_830_000, 0) + // Minimum execution time: 102_085_000 picoseconds. + Weight::from_parts(102_601_000, 0) } + /// Storage: `Signet::SignetConfig` (r:1 w:1) + /// Proof: `Signet::SignetConfig` (`max_values`: Some(1), `max_size`: Some(155), added: 650, mode: `MaxEncodedLen`) fn pause() -> Weight { - Weight::from_parts(13_044_000, 1517) + // Proof Size summary in bytes: + // Measured: `67` + // Estimated: `1640` + // Minimum execution time: 13_873_000 picoseconds. + Weight::from_parts(14_237_000, 1640) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `Signet::SignetConfig` (r:1 w:1) + /// Proof: `Signet::SignetConfig` (`max_values`: Some(1), `max_size`: Some(155), added: 650, mode: `MaxEncodedLen`) fn unpause() -> Weight { - Weight::from_parts(13_044_000, 1517) + // Proof Size summary in bytes: + // Measured: `67` + // Estimated: `1640` + // Minimum execution time: 13_984_000 picoseconds. + Weight::from_parts(14_220_000, 1640) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } -} +} \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_stableswap.rs b/runtime/hydradx/src/weights/pallet_stableswap.rs index 41244d1ae8..f4290127b5 100644 --- a/runtime/hydradx/src/weights/pallet_stableswap.rs +++ b/runtime/hydradx/src/weights/pallet_stableswap.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_stableswap` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-07-13, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -70,8 +70,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `693` // Estimated: `16590` - // Minimum execution time: 53_416_000 picoseconds. - Weight::from_parts(54_371_000, 16590) + // Minimum execution time: 53_166_000 picoseconds. + Weight::from_parts(53_824_000, 16590) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -89,8 +89,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1664` // Estimated: `16590` - // Minimum execution time: 99_275_000 picoseconds. - Weight::from_parts(100_238_000, 16590) + // Minimum execution time: 99_409_000 picoseconds. + Weight::from_parts(100_084_000, 16590) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -140,8 +140,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4347` // Estimated: `29403` - // Minimum execution time: 2_781_673_000 picoseconds. - Weight::from_parts(2_791_077_000, 29403) + // Minimum execution time: 2_788_898_000 picoseconds. + Weight::from_parts(2_794_812_000, 29403) .saturating_add(T::DbWeight::get().reads(54_u64)) .saturating_add(T::DbWeight::get().writes(18_u64)) } @@ -191,8 +191,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4079` // Estimated: `19071` - // Minimum execution time: 2_116_162_000 picoseconds. - Weight::from_parts(2_122_093_000, 19071) + // Minimum execution time: 2_126_944_000 picoseconds. + Weight::from_parts(2_133_893_000, 19071) .saturating_add(T::DbWeight::get().reads(38_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -238,8 +238,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4221` // Estimated: `19071` - // Minimum execution time: 2_074_357_000 picoseconds. - Weight::from_parts(2_081_157_000, 19071) + // Minimum execution time: 2_062_212_000 picoseconds. + Weight::from_parts(2_066_303_000, 19071) .saturating_add(T::DbWeight::get().reads(35_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -285,8 +285,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4221` // Estimated: `29403` - // Minimum execution time: 1_704_261_000 picoseconds. - Weight::from_parts(1_711_211_000, 29403) + // Minimum execution time: 1_743_909_000 picoseconds. + Weight::from_parts(1_748_913_000, 29403) .saturating_add(T::DbWeight::get().reads(56_u64)) .saturating_add(T::DbWeight::get().writes(14_u64)) } @@ -332,8 +332,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4221` // Estimated: `19071` - // Minimum execution time: 2_614_545_000 picoseconds. - Weight::from_parts(2_631_052_000, 19071) + // Minimum execution time: 2_520_717_000 picoseconds. + Weight::from_parts(2_527_764_000, 19071) .saturating_add(T::DbWeight::get().reads(36_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -369,17 +369,19 @@ impl pallet_stableswap::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:0) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:0 w:1) /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `Stableswap::BlockFee` (r:0 w:1) /// Proof: `Stableswap::BlockFee` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn sell() -> Weight { // Proof Size summary in bytes: - // Measured: `3995` + // Measured: `4202` // Estimated: `19071` - // Minimum execution time: 2_067_856_000 picoseconds. - Weight::from_parts(2_071_658_000, 19071) - .saturating_add(T::DbWeight::get().reads(36_u64)) + // Minimum execution time: 2_046_196_000 picoseconds. + Weight::from_parts(2_051_809_000, 19071) + .saturating_add(T::DbWeight::get().reads(37_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `Stableswap::AssetTradability` (r:2 w:0) @@ -416,15 +418,17 @@ impl pallet_stableswap::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:0) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Stableswap::BlockFee` (r:0 w:1) /// Proof: `Stableswap::BlockFee` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) fn buy() -> Weight { // Proof Size summary in bytes: - // Measured: `3965` + // Measured: `4172` // Estimated: `19071` - // Minimum execution time: 2_018_242_000 picoseconds. - Weight::from_parts(2_022_518_000, 19071) - .saturating_add(T::DbWeight::get().reads(37_u64)) + // Minimum execution time: 2_031_593_000 picoseconds. + Weight::from_parts(2_038_284_000, 19071) + .saturating_add(T::DbWeight::get().reads(38_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `Stableswap::Pools` (r:1 w:0) @@ -435,8 +439,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `224` // Estimated: `3522` - // Minimum execution time: 22_675_000 picoseconds. - Weight::from_parts(23_142_000, 3522) + // Minimum execution time: 22_744_000 picoseconds. + Weight::from_parts(23_053_000, 3522) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -446,8 +450,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `224` // Estimated: `3522` - // Minimum execution time: 21_122_000 picoseconds. - Weight::from_parts(21_422_000, 3522) + // Minimum execution time: 21_164_000 picoseconds. + Weight::from_parts(21_344_000, 3522) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -457,8 +461,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `224` // Estimated: `3522` - // Minimum execution time: 22_047_000 picoseconds. - Weight::from_parts(22_431_000, 3522) + // Minimum execution time: 21_871_000 picoseconds. + Weight::from_parts(22_377_000, 3522) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -470,8 +474,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `494` // Estimated: `3820` - // Minimum execution time: 28_332_000 picoseconds. - Weight::from_parts(28_744_000, 3820) + // Minimum execution time: 27_987_000 picoseconds. + Weight::from_parts(28_488_000, 3820) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -483,8 +487,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `487` // Estimated: `3820` - // Minimum execution time: 25_808_000 picoseconds. - Weight::from_parts(26_081_000, 3820) + // Minimum execution time: 25_779_000 picoseconds. + Weight::from_parts(25_969_000, 3820) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -535,10 +539,10 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2851 + e * (1208 ±0)` // Estimated: `13990 + e * (5166 ±0)` - // Minimum execution time: 1_231_006_000 picoseconds. - Weight::from_parts(1_244_884_048, 13990) - // Standard Error: 1_459_544 - .saturating_add(Weight::from_parts(2_685_764_851, 0).saturating_mul(e.into())) + // Minimum execution time: 1_228_615_000 picoseconds. + Weight::from_parts(1_242_449_532, 13990) + // Standard Error: 2_199_659 + .saturating_add(Weight::from_parts(2_641_971_367, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(18_u64)) .saturating_add(T::DbWeight::get().reads((19_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((10_u64).saturating_mul(e.into()))) @@ -578,22 +582,24 @@ impl pallet_stableswap::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Stableswap::ShareIssuance` (r:1 w:0) /// Proof: `Stableswap::ShareIssuance` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:0) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Stableswap::BlockFee` (r:0 w:1) /// Proof: `Stableswap::BlockFee` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) /// The range of component `c` is `[1, 2]`. /// The range of component `e` is `[0, 1]`. fn router_execution_buy(c: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2826 + e * (1139 ±0)` - // Estimated: `13990 + e * (5632 ±4_288_052_919_802_059)` - // Minimum execution time: 584_998_000 picoseconds. - Weight::from_parts(588_807_000, 13990) - // Standard Error: 1_662_647 - .saturating_add(Weight::from_parts(6_428_183, 0).saturating_mul(c.into())) - // Standard Error: 3_703_183 - .saturating_add(Weight::from_parts(1_452_088_620, 0).saturating_mul(e.into())) + // Measured: `2826 + e * (1346 ±0)` + // Estimated: `13990 + e * (5632 ±3_721_610_289_260_408)` + // Minimum execution time: 585_343_000 picoseconds. + Weight::from_parts(588_386_000, 13990) + // Standard Error: 1_595_497 + .saturating_add(Weight::from_parts(6_880_274, 0).saturating_mul(c.into())) + // Standard Error: 3_553_621 + .saturating_add(Weight::from_parts(1_457_708_795, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(16_u64)) - .saturating_add(T::DbWeight::get().reads((21_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().reads((22_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(e.into()))) .saturating_add(Weight::from_parts(0, 5632).saturating_mul(e.into())) } @@ -613,8 +619,8 @@ impl pallet_stableswap::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2850` // Estimated: `13990` - // Minimum execution time: 493_430_000 picoseconds. - Weight::from_parts(494_340_000, 13990) + // Minimum execution time: 492_052_000 picoseconds. + Weight::from_parts(493_451_000, 13990) .saturating_add(T::DbWeight::get().reads(17_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_staking.rs b/runtime/hydradx/src/weights/pallet_staking.rs index 14a261c121..96d9bdd2c1 100644 --- a/runtime/hydradx/src/weights/pallet_staking.rs +++ b/runtime/hydradx/src/weights/pallet_staking.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-04-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -72,8 +72,8 @@ impl pallet_staking::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `312` // Estimated: `3655` - // Minimum execution time: 41_200_000 picoseconds. - Weight::from_parts(41_779_000, 3655) + // Minimum execution time: 40_875_000 picoseconds. + Weight::from_parts(41_611_000, 3655) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -101,8 +101,8 @@ impl pallet_staking::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1070` // Estimated: `6196` - // Minimum execution time: 101_322_000 picoseconds. - Weight::from_parts(103_130_000, 6196) + // Minimum execution time: 103_523_000 picoseconds. + Weight::from_parts(104_921_000, 6196) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -124,6 +124,8 @@ impl pallet_staking::WeightInfo for HydraWeight { /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`) /// Storage: `Staking::SixSecBlocksSince` (r:1 w:0) /// Proof: `Staking::SixSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::TwoSecBlocksSince` (r:1 w:0) + /// Proof: `Staking::TwoSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) @@ -136,9 +138,9 @@ impl pallet_staking::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2090` // Estimated: `86265` - // Minimum execution time: 204_897_000 picoseconds. - Weight::from_parts(207_900_000, 86265) - .saturating_add(T::DbWeight::get().reads(39_u64)) + // Minimum execution time: 207_018_000 picoseconds. + Weight::from_parts(210_023_000, 86265) + .saturating_add(T::DbWeight::get().reads(40_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } /// Storage: `Staking::Staking` (r:1 w:1) @@ -157,6 +159,8 @@ impl pallet_staking::WeightInfo for HydraWeight { /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`) /// Storage: `Staking::SixSecBlocksSince` (r:1 w:0) /// Proof: `Staking::SixSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::TwoSecBlocksSince` (r:1 w:0) + /// Proof: `Staking::TwoSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) @@ -171,9 +175,9 @@ impl pallet_staking::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `2090` // Estimated: `86265` - // Minimum execution time: 198_935_000 picoseconds. - Weight::from_parts(202_181_000, 86265) - .saturating_add(T::DbWeight::get().reads(39_u64)) + // Minimum execution time: 199_556_000 picoseconds. + Weight::from_parts(200_900_000, 86265) + .saturating_add(T::DbWeight::get().reads(40_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } /// Storage: `Staking::Staking` (r:1 w:1) @@ -190,6 +194,8 @@ impl pallet_staking::WeightInfo for HydraWeight { /// Proof: `Staking::VotesRewarded` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Staking::SixSecBlocksSince` (r:1 w:0) /// Proof: `Staking::SixSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::TwoSecBlocksSince` (r:1 w:0) + /// Proof: `Staking::TwoSecBlocksSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) @@ -210,9 +216,9 @@ impl pallet_staking::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1614` // Estimated: `6196` - // Minimum execution time: 170_227_000 picoseconds. - Weight::from_parts(172_196_000, 6196) - .saturating_add(T::DbWeight::get().reads(15_u64)) + // Minimum execution time: 171_748_000 picoseconds. + Weight::from_parts(172_700_000, 6196) + .saturating_add(T::DbWeight::get().reads(16_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_state_trie_migration.rs b/runtime/hydradx/src/weights/pallet_state_trie_migration.rs index f119a24ee9..d201dab5e3 100644 --- a/runtime/hydradx/src/weights/pallet_state_trie_migration.rs +++ b/runtime/hydradx/src/weights/pallet_state_trie_migration.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_state_trie_migration` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -68,10 +68,10 @@ impl pallet_state_trie_migration::WeightInfo for HydraW /// Proof: `StateTrieMigration::MigrationProcess` (`max_values`: Some(1), `max_size`: Some(1042), added: 1537, mode: `MaxEncodedLen`) fn continue_migrate() -> Weight { // Proof Size summary in bytes: - // Measured: `240` + // Measured: `278` // Estimated: `3604` - // Minimum execution time: 27_718_000 picoseconds. - Weight::from_parts(28_017_000, 3604) + // Minimum execution time: 30_940_000 picoseconds. + Weight::from_parts(31_471_000, 3604) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -79,10 +79,10 @@ impl pallet_state_trie_migration::WeightInfo for HydraW /// Proof: `StateTrieMigration::SignedMigrationMaxLimits` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn continue_migrate_wrong_witness() -> Weight { // Proof Size summary in bytes: - // Measured: `208` + // Measured: `246` // Estimated: `1493` - // Minimum execution time: 7_186_000 picoseconds. - Weight::from_parts(7_412_000, 1493) + // Minimum execution time: 8_018_000 picoseconds. + Weight::from_parts(8_205_000, 1493) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:0) @@ -91,8 +91,8 @@ impl pallet_state_trie_migration::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `0` // Estimated: `3604` - // Minimum execution time: 17_319_000 picoseconds. - Weight::from_parts(17_676_000, 3604) + // Minimum execution time: 17_483_000 picoseconds. + Weight::from_parts(17_819_000, 3604) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:1) @@ -103,8 +103,8 @@ impl pallet_state_trie_migration::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `250` // Estimated: `3715` - // Minimum execution time: 89_034_000 picoseconds. - Weight::from_parts(89_716_000, 3715) + // Minimum execution time: 87_460_000 picoseconds. + Weight::from_parts(88_903_000, 3715) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -114,8 +114,8 @@ impl pallet_state_trie_migration::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `0` // Estimated: `3604` - // Minimum execution time: 17_807_000 picoseconds. - Weight::from_parts(18_147_000, 3604) + // Minimum execution time: 17_877_000 picoseconds. + Weight::from_parts(18_271_000, 3604) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:1) @@ -126,8 +126,8 @@ impl pallet_state_trie_migration::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `106` // Estimated: `3604` - // Minimum execution time: 86_475_000 picoseconds. - Weight::from_parts(87_079_000, 3604) + // Minimum execution time: 86_625_000 picoseconds. + Weight::from_parts(87_695_000, 3604) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -138,10 +138,10 @@ impl pallet_state_trie_migration::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `219 + v * (1 ±0)` // Estimated: `3684 + v * (1 ±0)` - // Minimum execution time: 7_179_000 picoseconds. - Weight::from_parts(7_324_000, 3684) - // Standard Error: 19 - .saturating_add(Weight::from_parts(2_295, 0).saturating_mul(v.into())) + // Minimum execution time: 7_297_000 picoseconds. + Weight::from_parts(7_524_000, 3684) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_905, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(v.into())) diff --git a/runtime/hydradx/src/weights/pallet_timestamp.rs b/runtime/hydradx/src/weights/pallet_timestamp.rs index f63079d110..1bb876e766 100644 --- a/runtime/hydradx/src/weights/pallet_timestamp.rs +++ b/runtime/hydradx/src/weights/pallet_timestamp.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl pallet_timestamp::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `1493` - // Minimum execution time: 7_870_000 picoseconds. - Weight::from_parts(8_061_000, 1493) + // Minimum execution time: 7_796_000 picoseconds. + Weight::from_parts(8_151_000, 1493) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -75,7 +75,7 @@ impl pallet_timestamp::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `56` // Estimated: `0` - // Minimum execution time: 4_718_000 picoseconds. - Weight::from_parts(4_891_000, 0) + // Minimum execution time: 4_930_000 picoseconds. + Weight::from_parts(5_093_000, 0) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_transaction_multi_payment.rs b/runtime/hydradx/src/weights/pallet_transaction_multi_payment.rs index fad9758eed..e35d9b3ff8 100644 --- a/runtime/hydradx/src/weights/pallet_transaction_multi_payment.rs +++ b/runtime/hydradx/src/weights/pallet_transaction_multi_payment.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_transaction_multi_payment` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -64,10 +64,10 @@ impl pallet_transaction_multi_payment::WeightInfo for H /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn add_currency() -> Weight { // Proof Size summary in bytes: - // Measured: `1209` + // Measured: `1242` // Estimated: `3493` - // Minimum execution time: 26_481_000 picoseconds. - Weight::from_parts(27_064_000, 3493) + // Minimum execution time: 26_710_000 picoseconds. + Weight::from_parts(27_155_000, 3493) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -75,10 +75,10 @@ impl pallet_transaction_multi_payment::WeightInfo for H /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn remove_currency() -> Weight { // Proof Size summary in bytes: - // Measured: `1240` + // Measured: `1273` // Estimated: `3493` - // Minimum execution time: 26_318_000 picoseconds. - Weight::from_parts(26_621_000, 3493) + // Minimum execution time: 26_109_000 picoseconds. + Weight::from_parts(26_612_000, 3493) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -88,10 +88,10 @@ impl pallet_transaction_multi_payment::WeightInfo for H /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_currency() -> Weight { // Proof Size summary in bytes: - // Measured: `1305` + // Measured: `1338` // Estimated: `3493` - // Minimum execution time: 37_414_000 picoseconds. - Weight::from_parts(37_837_000, 3493) + // Minimum execution time: 37_244_000 picoseconds. + Weight::from_parts(38_025_000, 3493) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -101,25 +101,20 @@ impl pallet_transaction_multi_payment::WeightInfo for H /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(194), added: 2669, mode: `MaxEncodedLen`) fn get_oracle_price() -> Weight { // Proof Size summary in bytes: - // Measured: `4996` + // Measured: `5330` // Estimated: `49032` - // Minimum execution time: 156_432_000 picoseconds. - Weight::from_parts(157_279_000, 49032) + // Minimum execution time: 161_209_000 picoseconds. + Weight::from_parts(162_450_000, 49032) .saturating_add(T::DbWeight::get().reads(19_u64)) } - /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) - /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) - /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:0 w:1) /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn reset_payment_currency() -> Weight { // Proof Size summary in bytes: - // Measured: `1379` - // Estimated: `4087` - // Minimum execution time: 29_377_000 picoseconds. - Weight::from_parts(30_192_000, 4087) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Measured: `1012` + // Estimated: `0` + // Minimum execution time: 21_508_000 picoseconds. + Weight::from_parts(22_220_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) @@ -152,10 +147,10 @@ impl pallet_transaction_multi_payment::WeightInfo for H /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) @@ -164,10 +159,10 @@ impl pallet_transaction_multi_payment::WeightInfo for H /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn withdraw_fee() -> Weight { // Proof Size summary in bytes: - // Measured: `4330` + // Measured: `4396` // Estimated: `11322` - // Minimum execution time: 318_456_000 picoseconds. - Weight::from_parts(320_214_000, 11322) + // Minimum execution time: 319_326_000 picoseconds. + Weight::from_parts(320_966_000, 11322) .saturating_add(T::DbWeight::get().reads(30_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_transaction_pause.rs b/runtime/hydradx/src/weights/pallet_transaction_pause.rs index e9c6bfbff3..c4e2dc81bb 100644 --- a/runtime/hydradx/src/weights/pallet_transaction_pause.rs +++ b/runtime/hydradx/src/weights/pallet_transaction_pause.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_transaction_pause` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -66,8 +66,8 @@ impl pallet_transaction_pause::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `4` // Estimated: `3555` - // Minimum execution time: 12_894_000 picoseconds. - Weight::from_parts(13_236_000, 3555) + // Minimum execution time: 12_890_000 picoseconds. + Weight::from_parts(13_185_000, 3555) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -77,8 +77,8 @@ impl pallet_transaction_pause::WeightInfo for HydraWeig // Proof Size summary in bytes: // Measured: `55` // Estimated: `3555` - // Minimum execution time: 14_895_000 picoseconds. - Weight::from_parts(15_238_000, 3555) + // Minimum execution time: 15_019_000 picoseconds. + Weight::from_parts(15_366_000, 3555) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_transaction_payment.rs b/runtime/hydradx/src/weights/pallet_transaction_payment.rs index d8401d6a39..bc4e4bd4e9 100644 --- a/runtime/hydradx/src/weights/pallet_transaction_payment.rs +++ b/runtime/hydradx/src/weights/pallet_transaction_payment.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_transaction_payment` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -64,17 +64,19 @@ impl pallet_transaction_payment::WeightInfo for HydraWe /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `AssetRegistry::Assets` (r:1 w:0) /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) fn charge_transaction_payment() -> Weight { // Proof Size summary in bytes: - // Measured: `740` + // Measured: `773` // Estimated: `6196` - // Minimum execution time: 91_399_000 picoseconds. - Weight::from_parts(92_426_000, 6196) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Minimum execution time: 100_247_000 picoseconds. + Weight::from_parts(101_442_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_treasury.rs b/runtime/hydradx/src/weights/pallet_treasury.rs index 6d4970e427..b871bf9f16 100644 --- a/runtime/hydradx/src/weights/pallet_treasury.rs +++ b/runtime/hydradx/src/weights/pallet_treasury.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -70,8 +70,8 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1887` - // Minimum execution time: 17_294_000 picoseconds. - Weight::from_parts(17_584_000, 1887) + // Minimum execution time: 17_462_000 picoseconds. + Weight::from_parts(17_884_000, 1887) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -81,8 +81,8 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `194` // Estimated: `1887` - // Minimum execution time: 9_374_000 picoseconds. - Weight::from_parts(9_529_000, 1887) + // Minimum execution time: 9_643_000 picoseconds. + Weight::from_parts(9_897_000, 1887) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -97,10 +97,10 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `317 + p * (1 ±0)` // Estimated: `3593` - // Minimum execution time: 16_864_000 picoseconds. - Weight::from_parts(21_114_260, 3593) - // Standard Error: 1_203 - .saturating_add(Weight::from_parts(30_802, 0).saturating_mul(p.into())) + // Minimum execution time: 18_934_000 picoseconds. + Weight::from_parts(22_106_576, 3593) + // Standard Error: 739 + .saturating_add(Weight::from_parts(27_757, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -112,8 +112,8 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1489` - // Minimum execution time: 15_253_000 picoseconds. - Weight::from_parts(15_591_000, 1489) + // Minimum execution time: 15_527_000 picoseconds. + Weight::from_parts(15_855_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -125,8 +125,8 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `382` // Estimated: `6196` - // Minimum execution time: 68_094_000 picoseconds. - Weight::from_parts(68_508_000, 6196) + // Minimum execution time: 68_496_000 picoseconds. + Weight::from_parts(69_086_000, 6196) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -136,8 +136,8 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `227` // Estimated: `3534` - // Minimum execution time: 17_333_000 picoseconds. - Weight::from_parts(17_579_000, 3534) + // Minimum execution time: 19_427_000 picoseconds. + Weight::from_parts(19_862_000, 3534) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -147,8 +147,8 @@ impl pallet_treasury::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `227` // Estimated: `3534` - // Minimum execution time: 16_052_000 picoseconds. - Weight::from_parts(16_446_000, 3534) + // Minimum execution time: 18_310_000 picoseconds. + Weight::from_parts(18_584_000, 3534) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_utility.rs b/runtime/hydradx/src/weights/pallet_utility.rs index 0e87f8dddc..963630f5b8 100644 --- a/runtime/hydradx/src/weights/pallet_utility.rs +++ b/runtime/hydradx/src/weights/pallet_utility.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -67,10 +67,10 @@ impl pallet_utility::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1489` - // Minimum execution time: 12_773_000 picoseconds. - Weight::from_parts(12_235_375, 1489) - // Standard Error: 1_863 - .saturating_add(Weight::from_parts(3_648_704, 0).saturating_mul(c.into())) + // Minimum execution time: 12_844_000 picoseconds. + Weight::from_parts(14_330_285, 1489) + // Standard Error: 2_503 + .saturating_add(Weight::from_parts(3_621_672, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -78,8 +78,8 @@ impl pallet_utility::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_581_000 picoseconds. - Weight::from_parts(7_741_000, 0) + // Minimum execution time: 7_813_000 picoseconds. + Weight::from_parts(7_915_000, 0) } /// Storage: `Broadcast::IncrementalId` (r:1 w:1) /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -89,9 +89,9 @@ impl pallet_utility::WeightInfo for HydraWeight { // Measured: `0` // Estimated: `1489` // Minimum execution time: 12_809_000 picoseconds. - Weight::from_parts(9_495_659, 1489) - // Standard Error: 2_251 - .saturating_add(Weight::from_parts(3_964_219, 0).saturating_mul(c.into())) + Weight::from_parts(9_686_293, 1489) + // Standard Error: 2_027 + .saturating_add(Weight::from_parts(3_932_939, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -99,8 +99,8 @@ impl pallet_utility::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_903_000 picoseconds. - Weight::from_parts(11_095_000, 0) + // Minimum execution time: 11_254_000 picoseconds. + Weight::from_parts(11_436_000, 0) } /// Storage: `Broadcast::IncrementalId` (r:1 w:1) /// Proof: `Broadcast::IncrementalId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -109,10 +109,10 @@ impl pallet_utility::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1489` - // Minimum execution time: 12_710_000 picoseconds. - Weight::from_parts(10_411_264, 1489) - // Standard Error: 2_276 - .saturating_add(Weight::from_parts(3_672_171, 0).saturating_mul(c.into())) + // Minimum execution time: 12_844_000 picoseconds. + Weight::from_parts(6_631_097, 1489) + // Standard Error: 2_886 + .saturating_add(Weight::from_parts(3_648_877, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -120,14 +120,14 @@ impl pallet_utility::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_860_000 picoseconds. - Weight::from_parts(11_077_000, 0) + // Minimum execution time: 11_322_000 picoseconds. + Weight::from_parts(11_527_000, 0) } fn if_else() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_250_000 picoseconds. - Weight::from_parts(13_600_000, 0) + // Minimum execution time: 13_670_000 picoseconds. + Weight::from_parts(13_822_000, 0) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_whitelist.rs b/runtime/hydradx/src/weights/pallet_whitelist.rs index 9a717689f4..c6b74dbe58 100644 --- a/runtime/hydradx/src/weights/pallet_whitelist.rs +++ b/runtime/hydradx/src/weights/pallet_whitelist.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_whitelist` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -70,8 +70,8 @@ impl pallet_whitelist::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `113` // Estimated: `3556` - // Minimum execution time: 25_193_000 picoseconds. - Weight::from_parts(25_648_000, 3556) + // Minimum execution time: 25_811_000 picoseconds. + Weight::from_parts(26_238_000, 3556) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -85,8 +85,8 @@ impl pallet_whitelist::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `242` // Estimated: `3556` - // Minimum execution time: 26_041_000 picoseconds. - Weight::from_parts(26_478_000, 3556) + // Minimum execution time: 26_608_000 picoseconds. + Weight::from_parts(27_137_000, 3556) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -103,10 +103,10 @@ impl pallet_whitelist::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `318 + n * (1 ±0)` // Estimated: `3782 + n * (1 ±0)` - // Minimum execution time: 41_258_000 picoseconds. - Weight::from_parts(41_482_000, 3782) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_013, 0).saturating_mul(n.into())) + // Minimum execution time: 43_803_000 picoseconds. + Weight::from_parts(38_170_138, 3782) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_568, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -122,10 +122,10 @@ impl pallet_whitelist::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `242` // Estimated: `3556` - // Minimum execution time: 32_046_000 picoseconds. - Weight::from_parts(32_589_585, 3556) + // Minimum execution time: 32_609_000 picoseconds. + Weight::from_parts(33_218_425, 3556) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_211, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_225, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_xcm.rs b/runtime/hydradx/src/weights/pallet_xcm.rs index 91ae0f822b..a2af1b42d8 100644 --- a/runtime/hydradx/src/weights/pallet_xcm.rs +++ b/runtime/hydradx/src/weights/pallet_xcm.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -68,10 +68,10 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `179` - // Estimated: `3644` - // Minimum execution time: 38_791_000 picoseconds. - Weight::from_parts(39_254_000, 3644) + // Measured: `212` + // Estimated: `3677` + // Minimum execution time: 40_672_000 picoseconds. + Weight::from_parts(41_241_000, 3677) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -98,6 +98,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) @@ -108,11 +110,11 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(131106), added: 133581, mode: `MaxEncodedLen`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `998` - // Estimated: `4463` - // Minimum execution time: 159_158_000 picoseconds. - Weight::from_parts(160_718_000, 4463) - .saturating_add(T::DbWeight::get().reads(10_u64)) + // Measured: `1031` + // Estimated: `4496` + // Minimum execution time: 164_424_000 picoseconds. + Weight::from_parts(165_429_000, 4496) + .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) @@ -129,6 +131,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) @@ -139,11 +143,11 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(131106), added: 133581, mode: `MaxEncodedLen`) fn transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `998` - // Estimated: `4463` - // Minimum execution time: 155_596_000 picoseconds. - Weight::from_parts(156_896_000, 4463) - .saturating_add(T::DbWeight::get().reads(10_u64)) + // Measured: `1031` + // Estimated: `4496` + // Minimum execution time: 159_137_000 picoseconds. + Weight::from_parts(161_290_000, 4496) + .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: `Broadcast::IncrementalId` (r:1 w:1) @@ -154,8 +158,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1489` - // Minimum execution time: 20_854_000 picoseconds. - Weight::from_parts(21_152_000, 1489) + // Minimum execution time: 20_849_000 picoseconds. + Weight::from_parts(21_435_000, 1489) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -165,16 +169,16 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_319_000 picoseconds. - Weight::from_parts(12_777_000, 0) + // Minimum execution time: 12_467_000 picoseconds. + Weight::from_parts(12_853_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_578_000 picoseconds. - Weight::from_parts(4_696_000, 0) + // Minimum execution time: 4_660_000 picoseconds. + Weight::from_parts(4_803_000, 0) } /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -190,10 +194,10 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `179` - // Estimated: `3644` - // Minimum execution time: 44_556_000 picoseconds. - Weight::from_parts(45_105_000, 3644) + // Measured: `212` + // Estimated: `3677` + // Minimum execution time: 48_138_000 picoseconds. + Weight::from_parts(48_871_000, 3677) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -209,10 +213,10 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `269` - // Estimated: `3734` - // Minimum execution time: 45_855_000 picoseconds. - Weight::from_parts(46_248_000, 3734) + // Measured: `302` + // Estimated: `3767` + // Minimum execution time: 47_856_000 picoseconds. + Weight::from_parts(48_418_000, 3767) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -222,8 +226,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_619_000 picoseconds. - Weight::from_parts(4_761_000, 0) + // Minimum execution time: 4_669_000 picoseconds. + Weight::from_parts(4_828_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `PolkadotXcm::SupportedVersion` (r:6 w:2) @@ -232,8 +236,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `22` // Estimated: `15862` - // Minimum execution time: 27_874_000 picoseconds. - Weight::from_parts(28_318_000, 15862) + // Minimum execution time: 27_637_000 picoseconds. + Weight::from_parts(28_255_000, 15862) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -243,8 +247,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `26` // Estimated: `15866` - // Minimum execution time: 27_946_000 picoseconds. - Weight::from_parts(28_284_000, 15866) + // Minimum execution time: 27_826_000 picoseconds. + Weight::from_parts(28_174_000, 15866) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -254,8 +258,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `75` // Estimated: `18390` - // Minimum execution time: 32_121_000 picoseconds. - Weight::from_parts(32_587_000, 18390) + // Minimum execution time: 31_792_000 picoseconds. + Weight::from_parts(32_189_000, 18390) .saturating_add(T::DbWeight::get().reads(7_u64)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) @@ -266,10 +270,10 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `142` - // Estimated: `6082` - // Minimum execution time: 32_014_000 picoseconds. - Weight::from_parts(32_400_000, 6082) + // Measured: `175` + // Estimated: `6115` + // Minimum execution time: 31_813_000 picoseconds. + Weight::from_parts(32_147_000, 6115) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -279,8 +283,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `78` // Estimated: `13443` - // Minimum execution time: 22_874_000 picoseconds. - Weight::from_parts(23_240_000, 13443) + // Minimum execution time: 23_125_000 picoseconds. + Weight::from_parts(23_478_000, 13443) .saturating_add(T::DbWeight::get().reads(5_u64)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) @@ -289,8 +293,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `33` // Estimated: `15873` - // Minimum execution time: 28_249_000 picoseconds. - Weight::from_parts(28_820_000, 15873) + // Minimum execution time: 28_175_000 picoseconds. + Weight::from_parts(28_426_000, 15873) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -302,10 +306,10 @@ impl pallet_xcm::WeightInfo for HydraWeight { /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `142` - // Estimated: `15982` - // Minimum execution time: 43_749_000 picoseconds. - Weight::from_parts(44_491_000, 15982) + // Measured: `175` + // Estimated: `16015` + // Minimum execution time: 44_177_000 picoseconds. + Weight::from_parts(44_765_000, 16015) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -317,8 +321,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_587_000 picoseconds. - Weight::from_parts(4_727_000, 1485) + // Minimum execution time: 4_570_000 picoseconds. + Weight::from_parts(4_746_000, 1485) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -328,8 +332,8 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `7576` // Estimated: `11041` - // Minimum execution time: 36_125_000 picoseconds. - Weight::from_parts(36_387_000, 11041) + // Minimum execution time: 34_875_000 picoseconds. + Weight::from_parts(35_173_000, 11041) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -348,7 +352,7 @@ impl pallet_xcm::WeightInfo for HydraWeight { // Measured: `411` // Estimated: `4087` // Minimum execution time: 56_554_000 picoseconds. - Weight::from_parts(574_250_000, 4087) + Weight::from_parts(601_060_000, 4087) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/hydradx/src/weights/pallet_xyk.rs b/runtime/hydradx/src/weights/pallet_xyk.rs index 571c844cb1..646eb7e3a9 100644 --- a/runtime/hydradx/src/weights/pallet_xyk.rs +++ b/runtime/hydradx/src/weights/pallet_xyk.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_xyk` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -88,10 +88,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:3 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:5 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:5 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) @@ -110,10 +110,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) fn create_pool() -> Weight { // Proof Size summary in bytes: - // Measured: `4026` + // Measured: `4059` // Estimated: `19071` - // Minimum execution time: 655_366_000 picoseconds. - Weight::from_parts(659_275_000, 19071) + // Minimum execution time: 648_530_000 picoseconds. + Weight::from_parts(650_775_000, 19071) .saturating_add(T::DbWeight::get().reads(44_u64)) .saturating_add(T::DbWeight::get().writes(22_u64)) } @@ -143,10 +143,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:4 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencyPrice` (r:1 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencyPrice` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `Tokens::TotalIssuance` (r:1 w:1) @@ -159,11 +159,11 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `EmaOracle::WhitelistedAssets` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) fn add_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `4452` + // Measured: `4485` // Estimated: `19071` - // Minimum execution time: 439_747_000 picoseconds. - Weight::from_parts(442_192_000, 19071) - .saturating_add(T::DbWeight::get().reads(37_u64)) + // Minimum execution time: 440_739_000 picoseconds. + Weight::from_parts(445_951_000, 19071) + .saturating_add(T::DbWeight::get().reads(38_u64)) .saturating_add(T::DbWeight::get().writes(15_u64)) } /// Storage: `XYK::ShareToken` (r:1 w:1) @@ -188,10 +188,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencyPrice` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:3) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:4 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) @@ -206,11 +206,11 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) fn remove_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `4486` + // Measured: `4519` // Estimated: `19071` - // Minimum execution time: 571_141_000 picoseconds. - Weight::from_parts(575_136_000, 19071) - .saturating_add(T::DbWeight::get().reads(37_u64)) + // Minimum execution time: 566_058_000 picoseconds. + Weight::from_parts(568_511_000, 19071) + .saturating_add(T::DbWeight::get().reads(38_u64)) .saturating_add(T::DbWeight::get().writes(17_u64)) } /// Storage: `XYK::ShareToken` (r:1 w:0) @@ -237,10 +237,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencyPrice` (r:1 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencyPrice` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) @@ -249,11 +249,11 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `EmaOracle::WhitelistedAssets` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) fn sell() -> Weight { // Proof Size summary in bytes: - // Measured: `4496` + // Measured: `4562` // Estimated: `16488` - // Minimum execution time: 377_776_000 picoseconds. - Weight::from_parts(380_818_000, 16488) - .saturating_add(T::DbWeight::get().reads(32_u64)) + // Minimum execution time: 375_944_000 picoseconds. + Weight::from_parts(378_055_000, 16488) + .saturating_add(T::DbWeight::get().reads(33_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } /// Storage: `XYK::ShareToken` (r:1 w:0) @@ -276,10 +276,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencyPrice` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) @@ -292,11 +292,11 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `EmaOracle::WhitelistedAssets` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) fn buy() -> Weight { // Proof Size summary in bytes: - // Measured: `4496` + // Measured: `4562` // Estimated: `16488` - // Minimum execution time: 375_855_000 picoseconds. - Weight::from_parts(377_406_000, 16488) - .saturating_add(T::DbWeight::get().reads(32_u64)) + // Minimum execution time: 374_628_000 picoseconds. + Weight::from_parts(376_550_000, 16488) + .saturating_add(T::DbWeight::get().reads(33_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } /// Storage: `XYK::ShareToken` (r:1 w:0) @@ -323,10 +323,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AcceptedCurrencyPrice` (r:1 w:0) /// Proof: `MultiTransactionPayment::AcceptedCurrencyPrice` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `XYK::TotalLiquidity` (r:1 w:0) @@ -337,16 +337,16 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// The range of component `e` is `[0, 1]`. fn router_execution_sell(c: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1852 + e * (2644 ±0)` - // Estimated: `6190 + e * (10332 ±6_801_226_166_572_765)` - // Minimum execution time: 45_753_000 picoseconds. - Weight::from_parts(21_593_238, 6190) - // Standard Error: 95_116 - .saturating_add(Weight::from_parts(12_520_068, 0).saturating_mul(c.into())) - // Standard Error: 95_116 - .saturating_add(Weight::from_parts(346_933_174, 0).saturating_mul(e.into())) + // Measured: `1852 + e * (2710 ±0)` + // Estimated: `6190 + e * (10332 ±3_205_274_539_650_685)` + // Minimum execution time: 45_313_000 picoseconds. + Weight::from_parts(20_910_193, 6190) + // Standard Error: 107_761 + .saturating_add(Weight::from_parts(12_593_736, 0).saturating_mul(c.into())) + // Standard Error: 107_761 + .saturating_add(Weight::from_parts(342_704_932, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().reads((28_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((10_u64).saturating_mul(e.into()))) .saturating_add(Weight::from_parts(0, 10332).saturating_mul(e.into())) } @@ -370,10 +370,10 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// Proof: `MultiTransactionPayment::AcceptedCurrencyPrice` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:3 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) @@ -388,16 +388,16 @@ impl pallet_xyk::WeightInfo for HydraWeight { /// The range of component `e` is `[0, 1]`. fn router_execution_buy(c: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1852 + e * (2644 ±0)` - // Estimated: `6190 + e * (10332 ±832_664_340_444_670)` - // Minimum execution time: 56_837_000 picoseconds. - Weight::from_parts(22_860_617, 6190) - // Standard Error: 37_399 - .saturating_add(Weight::from_parts(11_692_081, 0).saturating_mul(c.into())) - // Standard Error: 62_252 - .saturating_add(Weight::from_parts(344_601_615, 0).saturating_mul(e.into())) + // Measured: `1852 + e * (2710 ±0)` + // Estimated: `6190 + e * (10332 ±3_249_988_731_097_191)` + // Minimum execution time: 56_627_000 picoseconds. + Weight::from_parts(23_761_505, 6190) + // Standard Error: 41_824 + .saturating_add(Weight::from_parts(11_250_833, 0).saturating_mul(c.into())) + // Standard Error: 69_618 + .saturating_add(Weight::from_parts(340_461_519, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().reads((28_u64).saturating_mul(e.into()))) .saturating_add(T::DbWeight::get().writes((10_u64).saturating_mul(e.into()))) .saturating_add(Weight::from_parts(0, 10332).saturating_mul(e.into())) } @@ -409,8 +409,8 @@ impl pallet_xyk::WeightInfo for HydraWeight { // Proof Size summary in bytes: // Measured: `1652` // Estimated: `6190` - // Minimum execution time: 38_955_000 picoseconds. - Weight::from_parts(39_400_000, 6190) + // Minimum execution time: 38_566_000 picoseconds. + Weight::from_parts(39_079_000, 6190) .saturating_add(T::DbWeight::get().reads(4_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/pallet_xyk_liquidity_mining.rs b/runtime/hydradx/src/weights/pallet_xyk_liquidity_mining.rs index d8c2911335..e38380673f 100644 --- a/runtime/hydradx/src/weights/pallet_xyk_liquidity_mining.rs +++ b/runtime/hydradx/src/weights/pallet_xyk_liquidity_mining.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_xyk_liquidity_mining` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` @@ -76,10 +76,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:4 w:4) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:4 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:1 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) @@ -94,11 +94,11 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) fn create_global_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `3442` + // Measured: `3475` // Estimated: `11402` - // Minimum execution time: 378_030_000 picoseconds. - Weight::from_parts(379_593_000, 11402) - .saturating_add(T::DbWeight::get().reads(26_u64)) + // Minimum execution time: 376_621_000 picoseconds. + Weight::from_parts(378_257_000, 11402) + .saturating_add(T::DbWeight::get().reads(27_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) } /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) @@ -119,16 +119,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn update_global_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `4883` + // Measured: `4916` // Estimated: `6328` - // Minimum execution time: 158_289_000 picoseconds. - Weight::from_parts(159_298_000, 6328) + // Minimum execution time: 158_540_000 picoseconds. + Weight::from_parts(159_890_000, 6328) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -156,16 +156,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::ExistentialDepositCounter` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn terminate_global_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `4176` + // Measured: `4209` // Estimated: `8559` - // Minimum execution time: 235_351_000 picoseconds. - Weight::from_parts(236_353_000, 8559) + // Minimum execution time: 233_872_000 picoseconds. + Weight::from_parts(235_036_000, 8559) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -183,8 +183,8 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `1577` // Estimated: `3670` - // Minimum execution time: 57_529_000 picoseconds. - Weight::from_parts(58_115_000, 3670) + // Minimum execution time: 56_720_000 picoseconds. + Weight::from_parts(57_102_000, 3670) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -212,16 +212,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn update_yield_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `5399` + // Measured: `5432` // Estimated: `6328` - // Minimum execution time: 185_879_000 picoseconds. - Weight::from_parts(186_849_000, 6328) + // Minimum execution time: 186_061_000 picoseconds. + Weight::from_parts(187_371_000, 6328) .saturating_add(T::DbWeight::get().reads(17_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -247,16 +247,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn stop_yield_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `5199` + // Measured: `5232` // Estimated: `6328` - // Minimum execution time: 179_260_000 picoseconds. - Weight::from_parts(180_040_000, 6328) + // Minimum execution time: 179_270_000 picoseconds. + Weight::from_parts(180_228_000, 6328) .saturating_add(T::DbWeight::get().reads(16_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -280,16 +280,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn terminate_yield_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `4986` + // Measured: `5019` // Estimated: `6156` - // Minimum execution time: 141_788_000 picoseconds. - Weight::from_parts(143_220_000, 6156) + // Minimum execution time: 141_877_000 picoseconds. + Weight::from_parts(143_218_000, 6156) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -315,10 +315,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:4 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `XYK::PoolAssets` (r:1 w:0) /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// Storage: `XYKWarehouseLM::DepositSequencer` (r:1 w:1) @@ -335,11 +335,11 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) fn deposit_shares() -> Weight { // Proof Size summary in bytes: - // Measured: `6362` + // Measured: `6395` // Estimated: `11322` - // Minimum execution time: 304_795_000 picoseconds. - Weight::from_parts(307_046_000, 11322) - .saturating_add(T::DbWeight::get().reads(29_u64)) + // Minimum execution time: 306_017_000 picoseconds. + Weight::from_parts(309_165_000, 11322) + .saturating_add(T::DbWeight::get().reads(30_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) } /// Storage: `Uniques::Asset` (r:1 w:0) @@ -368,18 +368,18 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::PoolAssets` (r:1 w:0) /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) fn redeposit_shares() -> Weight { // Proof Size summary in bytes: - // Measured: `7220` + // Measured: `7253` // Estimated: `6328` - // Minimum execution time: 227_990_000 picoseconds. - Weight::from_parts(230_453_000, 6328) + // Minimum execution time: 229_840_000 picoseconds. + Weight::from_parts(231_038_000, 6328) .saturating_add(T::DbWeight::get().reads(19_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -407,16 +407,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn claim_rewards() -> Weight { // Proof Size summary in bytes: - // Measured: `7339` + // Measured: `7372` // Estimated: `8739` - // Minimum execution time: 253_268_000 picoseconds. - Weight::from_parts(256_151_000, 8739) + // Minimum execution time: 254_462_000 picoseconds. + Weight::from_parts(257_014_000, 8739) .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -446,10 +446,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:4 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:5 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::PoolAssets` (r:1 w:0) /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) @@ -468,10 +468,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) fn withdraw_shares() -> Weight { // Proof Size summary in bytes: - // Measured: `7101` + // Measured: `7134` // Estimated: `13905` - // Minimum execution time: 508_797_000 picoseconds. - Weight::from_parts(512_375_000, 13905) + // Minimum execution time: 508_327_000 picoseconds. + Weight::from_parts(511_758_000, 13905) .saturating_add(T::DbWeight::get().reads(40_u64)) .saturating_add(T::DbWeight::get().writes(16_u64)) } @@ -499,16 +499,16 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:2 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) fn resume_yield_farm() -> Weight { // Proof Size summary in bytes: - // Measured: `5729` + // Measured: `5762` // Estimated: `6328` - // Minimum execution time: 185_677_000 picoseconds. - Weight::from_parts(186_995_000, 6328) + // Minimum execution time: 186_622_000 picoseconds. + Weight::from_parts(187_582_000, 6328) .saturating_add(T::DbWeight::get().reads(17_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -534,10 +534,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:6 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:8 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:2 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:7 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `XYK::PoolAssets` (r:1 w:0) /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// Storage: `XYKWarehouseLM::DepositSequencer` (r:1 w:1) @@ -555,13 +555,13 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// The range of component `c` is `[1, 5]`. fn join_farms(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `6799 + c * (690 ±0)` + // Measured: `6832 + c * (690 ±0)` // Estimated: `8739 + c * (2701 ±0)` - // Minimum execution time: 311_005_000 picoseconds. - Weight::from_parts(198_724_237, 8739) - // Standard Error: 76_688 - .saturating_add(Weight::from_parts(115_820_750, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(23_u64)) + // Minimum execution time: 312_675_000 picoseconds. + Weight::from_parts(200_195_774, 8739) + // Standard Error: 89_907 + .saturating_add(Weight::from_parts(116_827_161, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(24_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(8_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(c.into()))) @@ -585,10 +585,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:6 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::EgressAccounts` (r:9 w:0) + /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::EgressAccounts` (r:8 w:0) - /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Tokens::TotalIssuance` (r:1 w:1) /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::AssetLockdownState` (r:1 w:1) @@ -597,8 +597,6 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `Tokens::Reserves` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) /// Storage: `EmaOracle::WhitelistedAssets` (r:1 w:0) /// Proof: `EmaOracle::WhitelistedAssets` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `EmaOracle::Accumulator` (r:1 w:1) - /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(6601), added: 7096, mode: `MaxEncodedLen`) /// Storage: `XYKWarehouseLM::YieldFarm` (r:5 w:5) /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) /// Storage: `XYKWarehouseLM::GlobalFarm` (r:5 w:5) @@ -622,15 +620,15 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// The range of component `c` is `[1, 5]`. fn add_liquidity_and_join_farms(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `7392 + c * (672 ±0)` + // Measured: `7425 + c * (672 ±0)` // Estimated: `19071 + c * (2701 ±0)` - // Minimum execution time: 524_720_000 picoseconds. - Weight::from_parts(408_645_203, 19071) - // Standard Error: 74_419 - .saturating_add(Weight::from_parts(120_089_949, 0).saturating_mul(c.into())) + // Minimum execution time: 528_170_000 picoseconds. + Weight::from_parts(414_670_568, 19071) + // Standard Error: 97_233 + .saturating_add(Weight::from_parts(120_847_218, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(37_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(17_u64)) + .saturating_add(T::DbWeight::get().writes(16_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 2701).saturating_mul(c.into())) } @@ -660,10 +658,10 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// Proof: `AssetRegistry::BannedAssets` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:8 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) - /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `CircuitBreaker::EgressAccounts` (r:9 w:0) /// Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) + /// Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) /// Storage: `XYK::PoolAssets` (r:1 w:0) /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) @@ -683,12 +681,12 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW /// The range of component `c` is `[1, 5]`. fn exit_farms(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `6708 + c * (692 ±0)` + // Measured: `6741 + c * (692 ±0)` // Estimated: `6328 + c * (2792 ±0)` - // Minimum execution time: 342_263_000 picoseconds. - Weight::from_parts(108_830_970, 6328) - // Standard Error: 1_012_487 - .saturating_add(Weight::from_parts(231_505_237, 0).saturating_mul(c.into())) + // Minimum execution time: 339_867_000 picoseconds. + Weight::from_parts(109_364_623, 6328) + // Standard Error: 1_004_106 + .saturating_add(Weight::from_parts(228_420_684, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(16_u64)) .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -705,8 +703,8 @@ impl pallet_xyk_liquidity_mining::WeightInfo for HydraW // Proof Size summary in bytes: // Measured: `5770` // Estimated: `51701` - // Minimum execution time: 173_410_000 picoseconds. - Weight::from_parts(174_475_000, 51701) + // Minimum execution time: 184_150_000 picoseconds. + Weight::from_parts(185_202_000, 51701) .saturating_add(T::DbWeight::get().reads(21_u64)) } } \ No newline at end of file diff --git a/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index ecdfc34b8a..2a5de1d46f 100644 --- a/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::fungible` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024 // Executed Command: @@ -62,7 +62,7 @@ impl WeightInfo { // Storage: `AssetRegistry::Assets` (r:1 w:0) // Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) pub(crate) fn withdraw_asset() -> Weight { - Weight::from_parts(55_766_000_u64, 0) + Weight::from_parts(59_218_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -74,9 +74,11 @@ impl WeightInfo { // Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) // Storage: `AssetRegistry::Assets` (r:1 w:0) // Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) + // Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) + // Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) pub(crate) fn transfer_asset() -> Weight { - Weight::from_parts(77_803_000_u64, 0) - .saturating_add(T::DbWeight::get().reads(5_u64)) + Weight::from_parts(85_249_000_u64, 0) + .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: `UnknownTokens::ConcreteFungibleBalances` (r:1 w:0) @@ -87,6 +89,8 @@ impl WeightInfo { // Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) // Storage: `AssetRegistry::Assets` (r:1 w:0) // Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) + // Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) + // Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) // Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) @@ -96,12 +100,12 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn transfer_reserve_asset() -> Weight { - Weight::from_parts(112_352_000_u64, 0) - .saturating_add(T::DbWeight::get().reads(9_u64)) + Weight::from_parts(118_754_000_u64, 0) + .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } pub(crate) fn reserve_asset_deposited() -> Weight { - Weight::from_parts(2_427_000_u64, 0) + Weight::from_parts(2_387_000_u64, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -112,7 +116,7 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn initiate_reserve_withdraw() -> Weight { - Weight::from_parts(83_163_000_u64, 0) + Weight::from_parts(87_738_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -123,13 +127,15 @@ impl WeightInfo { } // Storage: `System::Account` (r:1 w:1) // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + // Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) + // Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) // Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) // Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) // Storage: `AssetRegistry::Assets` (r:1 w:0) // Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(125), added: 2600, mode: `MaxEncodedLen`) pub(crate) fn deposit_asset() -> Weight { - Weight::from_parts(52_050_000_u64, 0) - .saturating_add(T::DbWeight::get().reads(3_u64)) + Weight::from_parts(57_870_000_u64, 0) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) @@ -140,6 +146,8 @@ impl WeightInfo { // Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) // Storage: `System::Account` (r:1 w:1) // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + // Storage: `CircuitBreaker::EgressAccounts` (r:1 w:0) + // Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) // Storage: `CircuitBreaker::GlobalAssetOverrides` (r:1 w:0) // Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) // Storage: `AssetRegistry::Assets` (r:1 w:0) @@ -147,8 +155,8 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn deposit_reserve_asset() -> Weight { - Weight::from_parts(101_921_000_u64, 0) - .saturating_add(T::DbWeight::get().reads(7_u64)) + Weight::from_parts(107_644_000_u64, 0) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } } diff --git a/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 53fef61cfc..3b3f3bc75a 100644 --- a/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/runtime/hydradx/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 -//! DATE: 2026-03-17, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-08-05, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024 // Executed Command: @@ -62,39 +62,39 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn report_holding() -> Weight { - Weight::from_parts(75_767_000_u64, 0) + Weight::from_parts(78_475_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } pub(crate) fn buy_execution() -> Weight { - Weight::from_parts(1_431_000_u64, 0) + Weight::from_parts(1_450_000_u64, 0) } // Storage: `PolkadotXcm::Queries` (r:1 w:0) // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { - Weight::from_parts(8_765_000_u64, 0) + Weight::from_parts(8_796_000_u64, 0) .saturating_add(T::DbWeight::get().reads(1_u64)) } pub(crate) fn transact() -> Weight { - Weight::from_parts(12_170_000_u64, 0) + Weight::from_parts(12_356_000_u64, 0) } pub(crate) fn refund_surplus() -> Weight { - Weight::from_parts(2_955_000_u64, 0) + Weight::from_parts(3_032_000_u64, 0) } pub(crate) fn set_error_handler() -> Weight { - Weight::from_parts(1_367_000_u64, 0) + Weight::from_parts(1_409_000_u64, 0) } pub(crate) fn set_appendix() -> Weight { - Weight::from_parts(1_327_000_u64, 0) + Weight::from_parts(1_333_000_u64, 0) } pub(crate) fn clear_error() -> Weight { - Weight::from_parts(1_251_000_u64, 0) + Weight::from_parts(1_295_000_u64, 0) } pub(crate) fn descend_origin() -> Weight { - Weight::from_parts(1_342_000_u64, 0) + Weight::from_parts(1_364_000_u64, 0) } pub(crate) fn clear_origin() -> Weight { - Weight::from_parts(1_306_000_u64, 0) + Weight::from_parts(1_341_000_u64, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -105,19 +105,19 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn report_error() -> Weight { - Weight::from_parts(34_987_000_u64, 0) + Weight::from_parts(37_068_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) // Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn claim_asset() -> Weight { - Weight::from_parts(13_509_000_u64, 0) + Weight::from_parts(13_701_000_u64, 0) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } pub(crate) fn trap() -> Weight { - Weight::from_parts(1_326_000_u64, 0) + Weight::from_parts(1_379_000_u64, 0) } // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -128,30 +128,30 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn subscribe_version() -> Weight { - Weight::from_parts(37_334_000_u64, 0) + Weight::from_parts(41_274_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: `PolkadotXcm::VersionNotifyTargets` (r:0 w:1) // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn unsubscribe_version() -> Weight { - Weight::from_parts(5_370_000_u64, 0) + Weight::from_parts(5_170_000_u64, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } pub(crate) fn burn_asset() -> Weight { - Weight::from_parts(27_680_000_u64, 0) + Weight::from_parts(27_464_000_u64, 0) } pub(crate) fn expect_asset() -> Weight { - Weight::from_parts(8_376_000_u64, 0) + Weight::from_parts(8_095_000_u64, 0) } pub(crate) fn expect_origin() -> Weight { - Weight::from_parts(1_322_000_u64, 0) + Weight::from_parts(1_359_000_u64, 0) } pub(crate) fn expect_error() -> Weight { - Weight::from_parts(1_345_000_u64, 0) + Weight::from_parts(1_427_000_u64, 0) } pub(crate) fn expect_transact_status() -> Weight { - Weight::from_parts(1_511_000_u64, 0) + Weight::from_parts(1_547_000_u64, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -162,12 +162,12 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn query_pallet() -> Weight { - Weight::from_parts(52_629_000_u64, 0) + Weight::from_parts(55_896_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } pub(crate) fn expect_pallet() -> Weight { - Weight::from_parts(15_845_000_u64, 0) + Weight::from_parts(16_626_000_u64, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -178,18 +178,18 @@ impl WeightInfo { // Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) // Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn report_transact_status() -> Weight { - Weight::from_parts(35_350_000_u64, 0) + Weight::from_parts(37_482_000_u64, 0) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } pub(crate) fn clear_transact_status() -> Weight { - Weight::from_parts(1_406_000_u64, 0) + Weight::from_parts(1_362_000_u64, 0) } pub(crate) fn set_topic() -> Weight { - Weight::from_parts(1_298_000_u64, 0) + Weight::from_parts(1_302_000_u64, 0) } pub(crate) fn clear_topic() -> Weight { - Weight::from_parts(1_289_000_u64, 0) + Weight::from_parts(1_333_000_u64, 0) } // Storage: `AssetRegistry::LocationAssets` (r:1 w:0) // Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) @@ -201,12 +201,12 @@ impl WeightInfo { // Proof: `CircuitBreaker::AssetLockdownState` (`max_values`: None, `max_size`: Some(41), added: 2516, mode: `MaxEncodedLen`) // Storage: `System::Account` (r:4 w:4) // Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + // Storage: `CircuitBreaker::EgressAccounts` (r:4 w:0) + // Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) // Storage: `CircuitBreaker::GlobalAssetOverrides` (r:3 w:0) // Proof: `CircuitBreaker::GlobalAssetOverrides` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`) // Storage: `Router::Routes` (r:1 w:0) // Proof: `Router::Routes` (`max_values`: None, `max_size`: Some(142), added: 2617, mode: `MaxEncodedLen`) - // Storage: `CircuitBreaker::EgressAccounts` (r:3 w:0) - // Proof: `CircuitBreaker::EgressAccounts` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) // Storage: `Omnipool::Assets` (r:2 w:2) // Proof: `Omnipool::Assets` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) // Storage: `Tokens::Accounts` (r:5 w:5) @@ -222,7 +222,9 @@ impl WeightInfo { // Storage: `Referrals::LinkedAccounts` (r:1 w:0) // Proof: `Referrals::LinkedAccounts` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) // Storage: `Referrals::AssetRewards` (r:1 w:0) - // Proof: `Referrals::AssetRewards` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + // Proof: `Referrals::AssetRewards` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + // Storage: `Referrals::TotalShares` (r:1 w:1) + // Proof: `Referrals::TotalShares` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) // Storage: `EVMAccounts::AccountExtension` (r:1 w:0) // Proof: `EVMAccounts::AccountExtension` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) // Storage: `HSM::FlashMinter` (r:1 w:0) @@ -235,31 +237,25 @@ impl WeightInfo { // Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) // Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) // Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - // Storage: `Referrals::TotalShares` (r:1 w:1) - // Proof: `Referrals::TotalShares` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - // Storage: `Referrals::TraderShares` (r:1 w:1) - // Proof: `Referrals::TraderShares` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) - // Storage: `Referrals::PendingConversions` (r:1 w:1) - // Proof: `Referrals::PendingConversions` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) - // Storage: `Referrals::CounterForPendingConversions` (r:1 w:1) - // Proof: `Referrals::CounterForPendingConversions` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + // Storage: `FeeProcessor::PendingConversions` (r:1 w:1) + // Proof: `FeeProcessor::PendingConversions` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`) + // Storage: `FeeProcessor::CounterForPendingConversions` (r:1 w:1) + // Proof: `FeeProcessor::CounterForPendingConversions` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) // Storage: `Tokens::TotalIssuance` (r:2 w:2) // Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) - // Storage: `EmaOracle::Accumulator` (r:1 w:1) - // Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(6601), added: 7096, mode: `MaxEncodedLen`) // Storage: `CircuitBreaker::AllowedTradeVolumeLimitPerAsset` (r:2 w:2) // Proof: `CircuitBreaker::AllowedTradeVolumeLimitPerAsset` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) // Storage: `CircuitBreaker::TradeVolumeLimitPerAsset` (r:2 w:0) // Proof: `CircuitBreaker::TradeVolumeLimitPerAsset` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) pub(crate) fn exchange_asset() -> Weight { - Weight::from_parts(712_135_000_u64, 0) - .saturating_add(T::DbWeight::get().reads(53_u64)) - .saturating_add(T::DbWeight::get().writes(24_u64)) + Weight::from_parts(727_894_000_u64, 0) + .saturating_add(T::DbWeight::get().reads(52_u64)) + .saturating_add(T::DbWeight::get().writes(22_u64)) } pub(crate) fn set_fees_mode() -> Weight { - Weight::from_parts(1_330_000_u64, 0) + Weight::from_parts(1_353_000_u64, 0) } pub(crate) fn unpaid_execution() -> Weight { - Weight::from_parts(1_307_000_u64, 0) + Weight::from_parts(1_341_000_u64, 0) } } diff --git a/scripts/assign_cores.js b/scripts/assign_cores.js new file mode 100644 index 0000000000..fd94ad13c3 --- /dev/null +++ b/scripts/assign_cores.js @@ -0,0 +1,187 @@ +#!/usr/bin/env node + +let ApiPromise; +let WsProvider; +let Keyring; +let cryptoWaitReady; + +function loadPackage(packageName) { + try { + return require(packageName); + } catch (error) { + const paths = (process.env.PATH || "").split(require("path").delimiter); + for (const entry of paths) { + if (!entry.endsWith(`${require("path").sep}node_modules${require("path").sep}.bin`)) { + continue; + } + + const nodeModules = require("path").dirname(entry); + try { + return require(require("path").join(nodeModules, packageName)); + } catch (_) { + // Try the next npm exec temp directory. + } + } + + throw error; + } +} + +try { + ({ ApiPromise, WsProvider, Keyring } = loadPackage("@polkadot/api")); + ({ cryptoWaitReady } = loadPackage("@polkadot/util-crypto")); +} catch (error) { + console.error( + "Missing JS deps. Run without installing into the repo via:\n" + + "npm exec --yes --package=@polkadot/api --package=@polkadot/util-crypto -- node scripts/assign_cores.js", + ); + process.exit(1); +} + +function parseArgs(argv) { + const defaults = { + ws: "ws://127.0.0.1:9945", + suri: "//Alice", + paraId: 2034, + cores: [0, 1, 2], + begin: 0, + finalized: true, + }; + + for (let i = 0; i < argv.length; i += 1) { + const arg = argv[i]; + if (arg === "--ws") { + defaults.ws = argv[++i]; + } else if (arg === "--suri") { + defaults.suri = argv[++i]; + } else if (arg === "--para") { + defaults.paraId = Number(argv[++i]); + } else if (arg === "--cores") { + defaults.cores = argv[++i] + .split(",") + .filter(Boolean) + .map((value) => Number(value.trim())); + } else if (arg === "--begin") { + defaults.begin = Number(argv[++i]); + } else if (arg === "--in-block") { + defaults.finalized = false; + } else if (arg === "--help" || arg === "-h") { + printHelp(); + process.exit(0); + } else { + throw new Error(`Unknown argument: ${arg}`); + } + } + + if (!defaults.cores.length || defaults.cores.some((core) => Number.isNaN(core))) { + throw new Error("Expected --cores to contain a comma-separated list of integers"); + } + + if (Number.isNaN(defaults.paraId)) { + throw new Error("Expected --para to be an integer"); + } + + if (Number.isNaN(defaults.begin)) { + throw new Error("Expected --begin to be an integer"); + } + + return defaults; +} + +function printHelp() { + console.log(`Assign relay-chain cores to a parachain on a local Zombienet relay node. + +Usage: + node scripts/assign_cores.js [options] + +Options: + --ws Relay-chain websocket endpoint (default: ws://127.0.0.1:9945) + --suri Signing account SURI (default: //Alice) + --para Parachain id to assign cores to (default: 2032) + --cores Comma-separated core indexes (default: 0,1,2) + --begin Relay block number to start assignment from (default: 0) + --in-block Exit once included in a block instead of waiting for finalization + --help, -h Show this message +`); +} + +async function main() { + const { ws, suri, paraId, cores, begin, finalized } = parseArgs(process.argv.slice(2)); + + await cryptoWaitReady(); + + const provider = new WsProvider(ws); + const api = await ApiPromise.create({ provider }); + const keyring = new Keyring({ type: "sr25519" }); + const signer = keyring.addFromUri(suri); + + const calls = cores.map((core) => + api.tx.coretime.assignCore( + core, + begin, + [[{ Task: paraId }, 57600]], + null, + ), + ); + + const tx = api.tx.sudo.sudo(api.tx.utility.batch(calls)); + + console.log( + `Submitting assign_core for para ${paraId} on cores [${cores.join(", ")}] via ${ws} as ${signer.address}`, + ); + + await new Promise(async (resolve, reject) => { + let unsub = null; + + try { + unsub = await tx.signAndSend(signer, ({ status, dispatchError, events }) => { + if (dispatchError) { + if (dispatchError.isModule) { + const decoded = api.registry.findMetaError(dispatchError.asModule); + reject( + new Error( + `${decoded.section}.${decoded.name}: ${decoded.docs.join(" ")}`, + ), + ); + } else { + reject(new Error(dispatchError.toString())); + } + return; + } + + if (status.isInBlock) { + console.log(`Included at ${status.asInBlock.toHex()}`); + if (!finalized) { + if (unsub) { + unsub(); + } + resolve(); + } + } + + if (status.isFinalized) { + console.log(`Finalized at ${status.asFinalized.toHex()}`); + for (const { event } of events) { + console.log(`Event: ${event.section}.${event.method}`); + } + if (unsub) { + unsub(); + } + resolve(); + } + }); + } catch (error) { + if (unsub) { + unsub(); + } + reject(error); + } + }); + + await api.disconnect(); +} + +main().catch((error) => { + console.error(error.message || error); + process.exit(1); +}); diff --git a/scripts/circuit-breaker-dashboard/README.md b/scripts/circuit-breaker-dashboard/README.md index d5604c633d..1d7451bcc2 100644 --- a/scripts/circuit-breaker-dashboard/README.md +++ b/scripts/circuit-breaker-dashboard/README.md @@ -44,6 +44,6 @@ mcp__swarmpit-lark__create_stack(name="circuit-breaker", compose="Per-Asset Deposit Lockdown setTimeout(r, ms)); @@ -169,7 +170,7 @@ async function main() { // Step 5: Wait for approval console.log(" [5/5] Waiting for referendum to pass..."); for (let i = 0; i < 60; i++) { - await sleep(6000); + await sleep(BLOCK_TIME_MS); const info = await api.query.referenda.referendumInfoFor(refIndex); const infoJson = info.toJSON(); @@ -193,7 +194,7 @@ async function main() { // Verify console.log("\n Verifying EVM setup..."); - await sleep(6000); + await sleep(BLOCK_TIME_MS); const newBalance = await api.rpc.eth .getBalance("0xC19A2970A13ac19898c47d59Cbd0278D428EBC7c") diff --git a/scripts/opengov-force-remove-votes/.gitignore b/scripts/opengov-force-remove-votes/.gitignore new file mode 100644 index 0000000000..c2658d7d1b --- /dev/null +++ b/scripts/opengov-force-remove-votes/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/scripts/opengov-force-remove-votes/README.md b/scripts/opengov-force-remove-votes/README.md new file mode 100644 index 0000000000..9f71e1bf65 --- /dev/null +++ b/scripts/opengov-force-remove-votes/README.md @@ -0,0 +1,42 @@ +# OpenGov Force Remove Votes + +Builds `convictionVoting.forceRemoveVote(target, class, refIndex)` calls for +finished referenda found in `ConvictionVoting::VotingFor`. + +The signer must satisfy the runtime `VoteRemovalOrigin` configured for +`pallet-conviction-voting` (on Hydration, a Technical Committee member after the +SDK patch that enables this call). + +## Usage + +```sh +cd scripts/opengov-force-remove-votes +npm install + +RPC_SERVER=wss://rpc.hydradx.cloud npm run dry-run + +RPC_SERVER=wss://rpc.hydradx.cloud npm run submit +``` + +Submit mode prompts for `ACCOUNT_SECRET` interactively, so the seed is not +written to shell history. + +If the script reports unsupported signed extensions, refresh dependencies: + +```sh +rm -rf node_modules package-lock.json +npm install +``` + +The script logs `ConvictionVoting::VotingFor` record and vote counts before +building calls, and again after submitted batches complete. + +Optional environment variables: + +- `RPC_SERVER` - chain RPC, defaults to `ws://127.0.0.1:9944` +- `BATCH_SIZE` - calls per `utility.batch`, defaults to `20` +- `LIMIT` - maximum force-remove calls to build, useful for staged runs +- `TX_TIMEOUT_MS` - per-batch inclusion timeout before skipping, defaults to `60000` + +Batches that do not reach inclusion before `TX_TIMEOUT_MS` are skipped. Re-run +the script later to rescan chain state and pick up any skipped votes. diff --git a/scripts/opengov-force-remove-votes/index.js b/scripts/opengov-force-remove-votes/index.js new file mode 100644 index 0000000000..a04bb201c4 --- /dev/null +++ b/scripts/opengov-force-remove-votes/index.js @@ -0,0 +1,407 @@ +const { ApiPromise, Keyring, WsProvider } = require("@polkadot/api"); +const { findUnknownExtensions } = require("@polkadot/types/extrinsic/signedExtensions"); +const { cryptoWaitReady, encodeAddress } = require("@polkadot/util-crypto"); +const readline = require("readline"); + +const RPC = process.env.RPC_SERVER || "ws://127.0.0.1:9944"; +const BATCH_SIZE = Number(process.env.BATCH_SIZE || 20); +const LIMIT = process.env.LIMIT ? Number(process.env.LIMIT) : undefined; +const TX_TIMEOUT_MS = Number(process.env.TX_TIMEOUT_MS || 60_000); +const SUBMIT = process.argv[2] === "submit"; +const ALLOWED_NO_EFFECT_EXTENSIONS = new Set(["ValidateClaim", "StorageWeightReclaim"]); + +const hdxAddress = (pubKey) => encodeAddress(pubKey, 63); +const chunkify = (items, size) => + Array(Math.ceil(items.length / size)) + .fill() + .map((_, i) => items.slice(i * size, i * size + size)); + +function assertConfig() { + if (!Number.isInteger(BATCH_SIZE) || BATCH_SIZE <= 0) { + throw new Error(`BATCH_SIZE must be a positive integer, got: ${process.env.BATCH_SIZE}`); + } + + if (LIMIT !== undefined && (!Number.isInteger(LIMIT) || LIMIT <= 0)) { + throw new Error(`LIMIT must be a positive integer, got: ${process.env.LIMIT}`); + } + + if (!Number.isInteger(TX_TIMEOUT_MS) || TX_TIMEOUT_MS <= 0) { + throw new Error(`TX_TIMEOUT_MS must be a positive integer, got: ${process.env.TX_TIMEOUT_MS}`); + } +} + +async function promptSecret(prompt) { + if (!process.stdin.isTTY) { + throw new Error("submit mode requires an interactive TTY to prompt for ACCOUNT_SECRET"); + } + + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + }); + + return new Promise((resolve) => { + const stdin = process.stdin; + const onData = (char) => { + char = char.toString(); + switch (char) { + case "\n": + case "\r": + case "\u0004": + stdin.removeListener("data", onData); + break; + default: + readline.moveCursor(process.stdout, -rl.line.length, 0); + readline.clearLine(process.stdout, 1); + process.stdout.write("*".repeat(rl.line.length)); + break; + } + }; + + stdin.on("data", onData); + rl.question(prompt, (value) => { + rl.close(); + process.stdout.write("\n"); + resolve(value); + }); + }); +} + +function isOngoingReferendum(info) { + if (info.isNone) { + return false; + } + + const unwrapped = info.unwrap(); + return unwrapped.isOngoing; +} + +function castingVotes(voting) { + if (!voting.isCasting) { + return []; + } + + return voting.asCasting.votes.map(([refIndex]) => refIndex.toNumber()); +} + +async function votingStats(api) { + const entries = await api.query.convictionVoting.votingFor.entries(); + let castingRecords = 0; + let delegatingRecords = 0; + let votes = 0; + + for (const [, voting] of entries) { + if (voting.isCasting) { + castingRecords += 1; + votes += castingVotes(voting).length; + } else if (voting.isDelegating) { + delegatingRecords += 1; + } + } + + return { + votingForRecords: entries.length, + castingRecords, + delegatingRecords, + votes, + }; +} + +function logVotingStats(label, stats) { + console.log( + `${label} VotingFor stats - records: ${stats.votingForRecords}, casting: ${stats.castingRecords}, delegating: ${stats.delegatingRecords}, votes: ${stats.votes}` + ); +} + +function assertSignedExtensionsSupported(api) { + const unknown = findUnknownExtensions(api.registry.signedExtensions); + const unsupported = unknown.filter((name) => !ALLOWED_NO_EFFECT_EXTENSIONS.has(name)); + + if (unknown.length > 0) { + console.log(`unknown no-effect signed extensions allowed: ${unknown.join(", ")}`); + } + + if (unsupported.length === 0) { + return; + } + + throw new Error( + [ + `Unsupported signed extensions: ${unsupported.join(", ")}`, + "Your @polkadot/api version cannot safely sign transactions for this runtime.", + "Update dependencies before submitting:", + " rm -rf node_modules package-lock.json", + " npm install", + ].join("\n") + ); +} + +async function submitAndWait(api, signer, tx, nonce) { + return new Promise((resolve, reject) => { + let unsub; + let done = false; + + const finish = (fn, value) => { + if (done) { + return; + } + + done = true; + if (unsub) { + unsub(); + } + fn(value); + }; + + tx.signAndSend(signer, { nonce }, (receipt) => { + if (receipt.status.isInBlock || receipt.status.isFinalized) { + let failed = false; + let batchItemFailures = 0; + receipt.events.forEach(({ event }) => { + if (api.events.system.ExtrinsicFailed.is(event)) { + failed = true; + const [dispatchError] = event.data; + if (dispatchError.isModule) { + const decoded = api.registry.findMetaError(dispatchError.asModule); + console.error( + `extrinsic failed: ${decoded.section}.${decoded.name}: ${decoded.docs.join(" ")}` + ); + } else { + console.error(`extrinsic failed: ${dispatchError.toString()}`); + } + } + + if (api.events.utility?.BatchInterrupted?.is(event)) { + batchItemFailures += 1; + const [index, dispatchError] = event.data; + console.error(`batch interrupted at item ${index.toString()}: ${dispatchError.toString()}`); + } + + if (api.events.utility?.ItemFailed?.is(event)) { + batchItemFailures += 1; + const [dispatchError] = event.data; + console.error(`batch item failed: ${dispatchError.toString()}`); + } + }); + + if (failed) { + finish(reject, new Error(`extrinsic ${tx.hash.toHex()} failed`)); + } else { + finish(resolve, { receipt, batchItemFailures }); + } + } + }) + .then((unsubscribe) => { + unsub = unsubscribe; + }) + .catch((error) => finish(reject, error)); + }); +} + +async function submitAndWaitWithTimeout(api, signer, tx, nonce) { + let timeoutId; + const timeout = new Promise((_, reject) => { + timeoutId = setTimeout( + () => reject(new Error(`transaction ${tx.hash.toHex()} was not included within ${TX_TIMEOUT_MS}ms`)), + TX_TIMEOUT_MS + ); + }); + + try { + return await Promise.race([submitAndWait(api, signer, tx, nonce), timeout]); + } finally { + clearTimeout(timeoutId); + } +} + +async function nextAccountNonce(api, address) { + return api.rpc.system.accountNextIndex(address).then((n) => n.toNumber()); +} + +async function submitBatch(api, signer, batch, batchNumber, totalBatches, nonce) { + const txHash = batch.tx.hash.toHex(); + + console.log(`submitting batch ${batchNumber}/${totalBatches} (${batch.calls.length} calls)`); + console.log(`batch ${batchNumber}/${totalBatches} tx hash: ${txHash}`); + + try { + const result = await submitAndWaitWithTimeout(api, signer, batch.tx, nonce); + return { ...result, included: true, nonce: nonce + 1 }; + } catch (error) { + const currentNonce = await nextAccountNonce(api, signer.address); + if (currentNonce > nonce) { + console.warn( + `batch ${batchNumber}/${totalBatches}: nonce advanced from ${nonce} to ${currentNonce}; treating batch as included` + ); + return { batchItemFailures: "unknown", included: true, nonce: currentNonce }; + } + + console.warn( + `batch ${batchNumber}/${totalBatches}: ${error.message || error}; nonce is still ${currentNonce}, skipping this batch` + ); + console.warn(`skipped batch first call: ${JSON.stringify(batch.calls[0], (key, value) => (key === "tx" ? undefined : value))}`); + return { batchItemFailures: "skipped", included: false, nonce: currentNonce }; + } +} + +async function buildForceRemoveCalls(api) { + const entries = await api.query.convictionVoting.votingFor.entries(); + + const referendumStatusCache = new Map(); + const calls = []; + let castingRecords = 0; + let delegatingRecords = 0; + let totalVotes = 0; + let ongoingVotes = 0; + let missingOrFinishedVotes = 0; + + for (const [key, voting] of entries) { + const [target, classId] = key.args; + + if (voting.isDelegating) { + delegatingRecords += 1; + continue; + } + + if (!voting.isCasting) { + continue; + } + + castingRecords += 1; + const votes = castingVotes(voting); + totalVotes += votes.length; + + for (const refIndex of votes) { + let ongoing = referendumStatusCache.get(refIndex); + if (ongoing === undefined) { + const info = await api.query.referenda.referendumInfoFor(refIndex); + ongoing = isOngoingReferendum(info); + referendumStatusCache.set(refIndex, ongoing); + } + + if (ongoing) { + ongoingVotes += 1; + continue; + } + + missingOrFinishedVotes += 1; + const targetAddress = target.toString(); + calls.push({ + target: targetAddress, + classId: classId.toString(), + refIndex, + tx: api.tx.convictionVoting.forceRemoveVote(targetAddress, classId, refIndex), + }); + + if (LIMIT !== undefined && calls.length >= LIMIT) { + break; + } + } + + if (LIMIT !== undefined && calls.length >= LIMIT) { + break; + } + } + + console.log(`casting records: ${castingRecords}`); + console.log(`delegating records: ${delegatingRecords}`); + console.log(`votes in casting records scanned: ${totalVotes}`); + console.log(`ongoing votes skipped: ${ongoingVotes}`); + console.log(`finished/missing votes selected: ${missingOrFinishedVotes}`); + console.log(`forceRemoveVote calls built: ${calls.length}`); + + return calls; +} + +async function main() { + assertConfig(); + await cryptoWaitReady(); + + const provider = new WsProvider(RPC); + const api = await ApiPromise.create({ provider }); + + const [chain, nodeVersion] = await Promise.all([ + api.rpc.system.chain(), + api.rpc.system.version(), + ]); + + console.log(`connected to ${RPC} (${chain} ${nodeVersion})`); + console.log(`mode: ${SUBMIT ? "submit" : "dry-run"}`); + console.log(`tx timeout: ${TX_TIMEOUT_MS}ms`); + + assertSignedExtensionsSupported(api); + + if (!api.tx.convictionVoting.forceRemoveVote) { + throw new Error("convictionVoting.forceRemoveVote is not available in chain metadata"); + } + + const beforeStats = await votingStats(api); + logVotingStats("before", beforeStats); + + const calls = await buildForceRemoveCalls(api); + if (calls.length === 0) { + console.log("nothing to submit"); + await api.disconnect(); + return; + } + + let signer; + if (SUBMIT) { + const accountSecret = await promptSecret("ACCOUNT_SECRET: "); + const keyring = new Keyring({ type: "sr25519" }); + signer = keyring.addFromUri(accountSecret); + console.log(`active account: ${hdxAddress(signer.addressRaw)}`); + } + + const batches = chunkify(calls, BATCH_SIZE).map((chunk) => ({ + calls: chunk, + tx: api.tx.utility.batch(chunk.map(({ tx }) => tx)), + })); + + console.log(`batch size: ${BATCH_SIZE}`); + console.log(`batches: ${batches.length}`); + console.log("first call:"); + console.log(JSON.stringify(calls[0], (key, value) => (key === "tx" ? undefined : value), 2)); + console.log("encoded first batch:"); + console.log(batches[0].tx.toHex()); + + if (!SUBMIT) { + console.log("dry-run only; pass `submit` to broadcast"); + await api.disconnect(); + return; + } + + let skippedBatches = 0; + for (let i = 0; i < batches.length; i += 1) { + const batch = batches[i]; + const nonce = await nextAccountNonce(api, signer.address); + const { batchItemFailures, included } = await submitBatch( + api, + signer, + batch, + i + 1, + batches.length, + nonce + ); + + if (included) { + console.log(`batch ${i + 1}/${batches.length} included; item failures: ${batchItemFailures}`); + } else { + skippedBatches += 1; + console.log(`batch ${i + 1}/${batches.length} skipped`); + } + } + + const afterStats = await votingStats(api); + logVotingStats("after", afterStats); + console.log(`VotingFor record delta: ${beforeStats.votingForRecords - afterStats.votingForRecords}`); + console.log(`vote delta: ${beforeStats.votes - afterStats.votes}`); + console.log(`skipped batches: ${skippedBatches}`); + + await api.disconnect(); +} + +main().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/scripts/opengov-force-remove-votes/package-lock.json b/scripts/opengov-force-remove-votes/package-lock.json new file mode 100644 index 0000000000..39e8f116c4 --- /dev/null +++ b/scripts/opengov-force-remove-votes/package-lock.json @@ -0,0 +1,940 @@ +{ + "name": "opengov-force-remove-votes", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "opengov-force-remove-votes", + "version": "1.0.0", + "dependencies": { + "@polkadot/api": "latest", + "@polkadot/util-crypto": "latest" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@polkadot-api/json-rpc-provider": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz", + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot-api/json-rpc-provider-proxy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.1.0.tgz", + "integrity": "sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot-api/metadata-builders": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.3.2.tgz", + "integrity": "sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.6.0", + "@polkadot-api/utils": "0.1.0" + } + }, + "node_modules/@polkadot-api/observable-client": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.3.2.tgz", + "integrity": "sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/metadata-builders": "0.3.2", + "@polkadot-api/substrate-bindings": "0.6.0", + "@polkadot-api/utils": "0.1.0" + }, + "peerDependencies": { + "@polkadot-api/substrate-client": "0.1.4", + "rxjs": ">=7.8.0" + } + }, + "node_modules/@polkadot-api/substrate-bindings": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.6.0.tgz", + "integrity": "sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "@polkadot-api/utils": "0.1.0", + "@scure/base": "^1.1.1", + "scale-ts": "^1.6.0" + } + }, + "node_modules/@polkadot-api/substrate-client": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.1.4.tgz", + "integrity": "sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/json-rpc-provider": "0.0.1", + "@polkadot-api/utils": "0.1.0" + } + }, + "node_modules/@polkadot-api/utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.1.0.tgz", + "integrity": "sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot/api": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-16.5.6.tgz", + "integrity": "sha512-5h/X3pY8WpqGk4XTaiIUjKD6Pnk8k4bJ6EIwPKLP8/kfFWKSOenpN6ggZxANr+Qj+RgXrp4TxJVcuhXSiBh9Sg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api-augment": "16.5.6", + "@polkadot/api-base": "16.5.6", + "@polkadot/api-derive": "16.5.6", + "@polkadot/keyring": "^14.0.3", + "@polkadot/rpc-augment": "16.5.6", + "@polkadot/rpc-core": "16.5.6", + "@polkadot/rpc-provider": "16.5.6", + "@polkadot/types": "16.5.6", + "@polkadot/types-augment": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/types-create": "16.5.6", + "@polkadot/types-known": "16.5.6", + "@polkadot/util": "^14.0.3", + "@polkadot/util-crypto": "^14.0.3", + "eventemitter3": "^5.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-augment": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-16.5.6.tgz", + "integrity": "sha512-bunJF1c3nIuDtU6iwa+reTt9U47Y8iOC8Gw7PfANlZmLJmO/XVXnWc3JJLM+g9ESDn2raHJELeWBFVOXQrbtUw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api-base": "16.5.6", + "@polkadot/rpc-augment": "16.5.6", + "@polkadot/types": "16.5.6", + "@polkadot/types-augment": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/util": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-base": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-16.5.6.tgz", + "integrity": "sha512-eBLIv86ZZY4t5OrobVoGC+QXbErOGlBpI2rJI5OMvTNPoVvtEoI++u+wwRScjkOZaUhXyQikd+0Uv71qr3xnsA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-core": "16.5.6", + "@polkadot/types": "16.5.6", + "@polkadot/util": "^14.0.3", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-derive": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-16.5.6.tgz", + "integrity": "sha512-cHdvPvhYFch18uPTcuOZJ8VceOfercod2fi4xCnHJAmattzlgj9qCgnOoxdmBS9GZ403ZyRHOjBuUwZy/IsUWQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api": "16.5.6", + "@polkadot/api-augment": "16.5.6", + "@polkadot/api-base": "16.5.6", + "@polkadot/rpc-core": "16.5.6", + "@polkadot/types": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/util": "^14.0.3", + "@polkadot/util-crypto": "^14.0.3", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/keyring": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-14.0.3.tgz", + "integrity": "sha512-ozp1dQwaHCjgX/fpTTORmHjxdUNQnyiTVJszpzUaUpvtH/IGZhSU/mSHXMqNETS/g57vQa7NatIDcWfyR9abyA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "14.0.3", + "@polkadot/util-crypto": "14.0.3", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "14.0.3", + "@polkadot/util-crypto": "14.0.3" + } + }, + "node_modules/@polkadot/networks": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-14.0.3.tgz", + "integrity": "sha512-/VqTLUDn+Wm8S2L/yaGFddo3oW4vRYav0Rg4pLg/semMZLaN8PJ6h927ucn9JyWdH82QfZfyiIPORt0ZF3isyw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "14.0.3", + "@substrate/ss58-registry": "^1.51.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-augment": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-16.5.6.tgz", + "integrity": "sha512-vlrNvl2VtU09jZV/AvH7jBb/cNUO+dWu8Xj9pId5ctSUnZHm8o8wRk9ekyieKP57OUoKMd8+VScwMKd624SxTw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-core": "16.5.6", + "@polkadot/types": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/util": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-core": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-16.5.6.tgz", + "integrity": "sha512-l6od++WlvKH4mw5mtsIh2AhiBs3H+TtdOoUHVLCx/R9il7+gl+arltzZ8vBuffyh/O+uQ36lI8yUoD1g4gi1tA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-augment": "16.5.6", + "@polkadot/rpc-provider": "16.5.6", + "@polkadot/types": "16.5.6", + "@polkadot/util": "^14.0.3", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-provider": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-16.5.6.tgz", + "integrity": "sha512-46sHIjKYr4aSzBCfbyqtCwuP8MMJ3jOp0xx9eggOGbKyP8Z0j0Cp+1nNkZUYzehcdGjjrmCxCbQp17wc6cj4zA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/keyring": "^14.0.3", + "@polkadot/types": "16.5.6", + "@polkadot/types-support": "16.5.6", + "@polkadot/util": "^14.0.3", + "@polkadot/util-crypto": "^14.0.3", + "@polkadot/x-fetch": "^14.0.3", + "@polkadot/x-global": "^14.0.3", + "@polkadot/x-ws": "^14.0.3", + "eventemitter3": "^5.0.1", + "mock-socket": "^9.3.1", + "nock": "^13.5.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@substrate/connect": "0.8.11" + } + }, + "node_modules/@polkadot/types": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-16.5.6.tgz", + "integrity": "sha512-X/sfMHJS4RkRhnsc4CQqzUy7BM/s2y71TrBFHPYAjs2q/rbZ/BwvBk70SrUiSa0+iRRn3RewbBZm+AB8CbkdKw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/keyring": "^14.0.3", + "@polkadot/types-augment": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/types-create": "16.5.6", + "@polkadot/util": "^14.0.3", + "@polkadot/util-crypto": "^14.0.3", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-augment": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-16.5.6.tgz", + "integrity": "sha512-QN5UrluUZCVgknUDW0gps/FRQ13Qgm24w53pCd2HgD0nmTtXDt9D4psjWwx5JkGTkUAvpzFWwN41bkxAeCiV6g==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/types": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/util": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-codec": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-16.5.6.tgz", + "integrity": "sha512-3tzUv1LZOL97IlQmko4dqbfRC0cg9IQ2QAHRVoDIWsXrVovp1V3kPdP0o6e3I8T2XB9IlbabK91v+ZiIxhGMZw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "^14.0.3", + "@polkadot/x-bigint": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-create": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-16.5.6.tgz", + "integrity": "sha512-g7g3hrjpz4KgqQqei9PU0JY9fsFHBmThWALZk5pWB32vyDyDcXZiyhH3agDhqfmzQiolTW2FuvcNJxgS634J1w==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/types-codec": "16.5.6", + "@polkadot/util": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-known": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-16.5.6.tgz", + "integrity": "sha512-c78NcVO3LIvi4xzxB39WewE+80I4jOYUtPBaB4AzSMespEwIr92VTeX3KzFWuutxDXLSPqeVfXhaAhBB0NssiQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/networks": "^14.0.3", + "@polkadot/types": "16.5.6", + "@polkadot/types-codec": "16.5.6", + "@polkadot/types-create": "16.5.6", + "@polkadot/util": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-support": { + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-16.5.6.tgz", + "integrity": "sha512-Hqpa/hCvXZXUTUiJMAE55UXpzAeCVLaFlzzXQXLkne0vhmv3/JkWcBnX755a/b9+C4b3MKEz2i0tSKLsa3DldA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "^14.0.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-14.0.3.tgz", + "integrity": "sha512-mg1NR7ixHlNiz2zbvdcdy1OXZmca2tVA4DpewGpY/qFkW/gq9HdDrHLu7g0k90QnunDcFW4emb7NB60sGJQ0bw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-bigint": "14.0.3", + "@polkadot/x-global": "14.0.3", + "@polkadot/x-textdecoder": "14.0.3", + "@polkadot/x-textencoder": "14.0.3", + "@types/bn.js": "^5.1.6", + "bn.js": "^5.2.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util-crypto": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-14.0.3.tgz", + "integrity": "sha512-V00BI6XnZLCkrAmV8uN0eSB6fy48CkxdDZT29cgSMSwHPtY6oKUNgd1ST07PGCL5x8XflwjoA7CTlhdbp1Y9gw==", + "license": "Apache-2.0", + "dependencies": { + "@noble/curves": "^1.3.0", + "@noble/hashes": "^1.3.3", + "@polkadot/networks": "14.0.3", + "@polkadot/util": "14.0.3", + "@polkadot/wasm-crypto": "^7.5.3", + "@polkadot/wasm-util": "^7.5.3", + "@polkadot/x-bigint": "14.0.3", + "@polkadot/x-randomvalues": "14.0.3", + "@scure/base": "^1.1.7", + "@scure/sr25519": "^0.2.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "14.0.3" + } + }, + "node_modules/@polkadot/wasm-bridge": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.5.4.tgz", + "integrity": "sha512-6xaJVvoZbnbgpQYXNw9OHVNWjXmtcoPcWh7hlwx3NpfiLkkjljj99YS+XGZQlq7ks2fVCg7FbfknkNb8PldDaA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.5.4.tgz", + "integrity": "sha512-1seyClxa7Jd7kQjfnCzTTTfYhTa/KUTDUaD3DMHBk5Q4ZUN1D1unJgX+v1aUeXSPxmzocdZETPJJRZjhVOqg9g==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-bridge": "7.5.4", + "@polkadot/wasm-crypto-asmjs": "7.5.4", + "@polkadot/wasm-crypto-init": "7.5.4", + "@polkadot/wasm-crypto-wasm": "7.5.4", + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-asmjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.5.4.tgz", + "integrity": "sha512-ZYwxQHAJ8pPt6kYk9XFmyuFuSS+yirJLonvP+DYbxOrARRUHfN4nzp4zcZNXUuaFhpbDobDSFn6gYzye6BUotA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-init": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.5.4.tgz", + "integrity": "sha512-U6s4Eo2rHs2n1iR01vTz/sOQ7eOnRPjaCsGWhPV+ZC/20hkVzwPAhiizu/IqMEol4tO2yiSheD4D6bn0KxUJhg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-bridge": "7.5.4", + "@polkadot/wasm-crypto-asmjs": "7.5.4", + "@polkadot/wasm-crypto-wasm": "7.5.4", + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-wasm": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.5.4.tgz", + "integrity": "sha512-PsHgLsVTu43eprwSvUGnxybtOEuHPES6AbApcs7y5ZbM2PiDMzYbAjNul098xJK/CPtrxZ0ePDFnaQBmIJyTFw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-util": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.5.4.tgz", + "integrity": "sha512-hqPpfhCpRAqCIn/CYbBluhh0TXmwkJnDRjxrU9Bnqtw9nMNa97D8JuOjdd2pi0rxm+eeLQ/f1rQMp71RMM9t4w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/x-bigint": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-14.0.3.tgz", + "integrity": "sha512-U0al6BKgldFrEbmSObRAlzv9VDs5SMa/rbvZKvvkVec0sWTzYPWQZU1ZC/biXLYdjdKML89BeuCKmXZtCcGhUQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.3", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-fetch": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-14.0.3.tgz", + "integrity": "sha512-695c5aPBPtYcnn2zM+u0mXgyNHINlO0qGlGcJq3/0t5NVRZv5KZhk7NNm6antOay9uUjGG40F/r+LPzDT3QamA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.3", + "node-fetch": "^3.3.2", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-global": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-14.0.3.tgz", + "integrity": "sha512-MzMEynJ7HMTy/plLmdyP8rv14RS/6s29HZodUG9aCOscBnEiEDxVEax/ztRJqxhhQuHeYdx0LYDwVbdQDTkqNw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-randomvalues": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-14.0.3.tgz", + "integrity": "sha512-qTPcrk0nIHL2tIu5e0cLj3puQvjCK7onehnqO2fvlmWeIlvDel66fwWs06Ipsib+CwLJdmE6WgNy+8Jv74r6YA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.3", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "14.0.3", + "@polkadot/wasm-util": "*" + } + }, + "node_modules/@polkadot/x-textdecoder": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-14.0.3.tgz", + "integrity": "sha512-4RJYDG00iUzQ7YAuS/yvkWRZlkjYU8PUNdJHRfqtJ+SjrSPB7LYYxFhLgw43TZUtHmIueNTsml2Ukv3xXTr2kA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.3", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-textencoder": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-14.0.3.tgz", + "integrity": "sha512-9HH6o2L+r99wEfXhPb5g+Xwn7qouqD32PsMux7B0dFGR2KNqP4KwO19Hu+gdij6wsEhy7delhZwzHenrWwDfhQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.3", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-ws": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-14.0.3.tgz", + "integrity": "sha512-tOPdkMye3iuXnuFtdNg5+iSu7Cz9LRL8z5psMuZpUpThMYChGsS2pDFtNvXOKU8ohhO+frY9VdJ9VBg1WL9Iug==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.3", + "tslib": "^2.8.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/sr25519": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@scure/sr25519/-/sr25519-0.2.0.tgz", + "integrity": "sha512-uUuLP7Z126XdSizKtrCGqYyR3b3hYtJ6Fg/XFUXmc2//k2aXHDLqZwFeXxL97gg4XydPROPVnuaHGF2+xriSKg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.2", + "@noble/hashes": "~1.8.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@substrate/connect": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.11.tgz", + "integrity": "sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==", + "deprecated": "versions below 1.x are no longer maintained", + "license": "GPL-3.0-only", + "optional": true, + "dependencies": { + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.5", + "@substrate/light-client-extension-helpers": "^1.0.0", + "smoldot": "2.0.26" + } + }, + "node_modules/@substrate/connect-extension-protocol": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.2.tgz", + "integrity": "sha512-t66jwrXA0s5Goq82ZtjagLNd7DPGCNjHeehRlE/gcJmJ+G56C0W+2plqOMRicJ8XGR1/YFnUSEqUFiSNbjGrAA==", + "license": "GPL-3.0-only", + "optional": true + }, + "node_modules/@substrate/connect-known-chains": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.10.3.tgz", + "integrity": "sha512-OJEZO1Pagtb6bNE3wCikc2wrmvEU5x7GxFFLqqbz1AJYYxSlrPCGu4N2og5YTExo4IcloNMQYFRkBGue0BKZ4w==", + "license": "GPL-3.0-only", + "optional": true + }, + "node_modules/@substrate/light-client-extension-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-1.0.0.tgz", + "integrity": "sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/json-rpc-provider": "^0.0.1", + "@polkadot-api/json-rpc-provider-proxy": "^0.1.0", + "@polkadot-api/observable-client": "^0.3.0", + "@polkadot-api/substrate-client": "^0.1.2", + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.5", + "rxjs": "^7.8.1" + }, + "peerDependencies": { + "smoldot": "2.x" + } + }, + "node_modules/@substrate/ss58-registry": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz", + "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==", + "license": "Apache-2.0" + }, + "node_modules/@types/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "25.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz", + "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/bn.js": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.3.tgz", + "integrity": "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/mock-socket": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", + "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nock": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/scale-ts": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.1.tgz", + "integrity": "sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==", + "license": "MIT", + "optional": true + }, + "node_modules/smoldot": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.26.tgz", + "integrity": "sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==", + "license": "GPL-3.0-or-later WITH Classpath-exception-2.0", + "optional": true, + "dependencies": { + "ws": "^8.8.1" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "license": "MIT" + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/scripts/opengov-force-remove-votes/package.json b/scripts/opengov-force-remove-votes/package.json new file mode 100644 index 0000000000..42df11def3 --- /dev/null +++ b/scripts/opengov-force-remove-votes/package.json @@ -0,0 +1,15 @@ +{ + "name": "opengov-force-remove-votes", + "version": "1.0.0", + "private": true, + "description": "Force-remove finished conviction-voting votes from live chain state", + "main": "index.js", + "scripts": { + "dry-run": "node index.js", + "submit": "node index.js submit" + }, + "dependencies": { + "@polkadot/api": "latest", + "@polkadot/util-crypto": "latest" + } +} diff --git a/scripts/proxy-fee-test/scripts/setup-chain.js b/scripts/proxy-fee-test/scripts/setup-chain.js index 2c7fb41971..1197a23223 100644 --- a/scripts/proxy-fee-test/scripts/setup-chain.js +++ b/scripts/proxy-fee-test/scripts/setup-chain.js @@ -3,6 +3,7 @@ const { Keyring } = require("@polkadot/keyring"); const { blake2AsHex } = require("@polkadot/util-crypto"); const WS_URL = process.env.WS_URL || "ws://127.0.0.1:9999"; +const BLOCK_TIME_MS = 2000; function sendAndWait(tx, signer, api, timeoutMs = 60000) { return new Promise((resolve, reject) => { @@ -90,7 +91,7 @@ async function main() { await setupViaTcProposal(api, keyring); } - await sleep(6000); + await sleep(BLOCK_TIME_MS); const finalWeth = await api.query.assetRegistry.locationAssets(wethLoc); const finalId = finalWeth.isSome ? finalWeth.toJSON() : null; @@ -157,7 +158,7 @@ async function setupViaGovernance(api, alice) { console.log(" [4/4] Waiting for referendum..."); for (let i = 0; i < 30; i++) { - await sleep(6000); + await sleep(BLOCK_TIME_MS); const info = await api.query.referenda.referendumInfoFor(refIndex); const json = info.toJSON(); if (json.approved) { console.log(` Referendum #${refIndex} approved!`); return; } diff --git a/scripts/upgrade-runtime/upgrade.mjs b/scripts/upgrade-runtime/upgrade.mjs index 5f4dbe4349..a5a81ffcf9 100644 --- a/scripts/upgrade-runtime/upgrade.mjs +++ b/scripts/upgrade-runtime/upgrade.mjs @@ -31,6 +31,7 @@ const WASM_PATH = process.env.WASM || './hydradx_runtime.compact.compressed.wasm const SURI = process.env.SURI || '//Alice'; const VOTE_HDX = BigInt(process.env.VOTE_HDX || '3000000000'); const ENACT_AFTER = parseInt(process.env.ENACT_AFTER || '10', 10); +const BLOCK_TIME_MS = 2000; const HDX_DECIMALS = 12n; const VOTE_AMOUNT = VOTE_HDX * 10n ** HDX_DECIMALS; @@ -137,7 +138,7 @@ async function main() { const head = await api.rpc.chain.getHeader(); const state = h?.Ongoing?.deciding ? 'deciding' : (h?.Ongoing ? 'preparing' : 'unknown'); console.log(` block #${head.number.toNumber()} — ${state}`); - await new Promise((r) => setTimeout(r, 6000)); + await new Promise((r) => setTimeout(r, BLOCK_TIME_MS)); } if (!approved) throw new Error('Referendum did not pass in time'); @@ -151,7 +152,7 @@ async function main() { break; } console.log(` block #${head.number.toNumber()}: not yet authorized`); - await new Promise((r) => setTimeout(r, 6000)); + await new Promise((r) => setTimeout(r, BLOCK_TIME_MS)); } if (auth.isNone) throw new Error('Upgrade not authorized after waiting'); @@ -170,7 +171,7 @@ async function main() { // 6. Wait for specVersion to bump console.log('Waiting for runtime upgrade to take effect...'); for (let i = 0; i < 30; i++) { - await new Promise((r) => setTimeout(r, 6000)); + await new Promise((r) => setTimeout(r, BLOCK_TIME_MS)); const v = await api.rpc.state.getRuntimeVersion(); const head = await api.rpc.chain.getHeader(); const cur = v.specVersion.toNumber(); diff --git a/traits/Cargo.toml b/traits/Cargo.toml index bca6d7f613..2231c1c6a2 100644 --- a/traits/Cargo.toml +++ b/traits/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hydradx-traits" -version = "4.11.0" +version = "4.12.0" description = "Shared traits" authors = ["GalacticCouncil"] edition = "2021" diff --git a/traits/src/oracle.rs b/traits/src/oracle.rs index bea5a87946..ed89334d79 100644 --- a/traits/src/oracle.rs +++ b/traits/src/oracle.rs @@ -87,7 +87,7 @@ impl OraclePeriod { pub const fn as_period(&self) -> u64 { match self { OraclePeriod::LastBlock => 1, - OraclePeriod::Short => 20, + OraclePeriod::Short => 60, OraclePeriod::TenMinutes => 10 * MINUTES as u64, OraclePeriod::Hour => HOURS as u64, OraclePeriod::Day => DAYS as u64,