From 7fe772889d4e04ac114366489f9d7ba1992e4f45 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 24 Mar 2023 12:55:56 +0100 Subject: [PATCH 01/53] contracts: allow root calls --- frame/contracts/src/exec.rs | 25 +++++++-- frame/contracts/src/lib.rs | 82 ++++++++++++++++++++++++---- frame/contracts/src/storage/meter.rs | 40 ++++++++++---- 3 files changed, 120 insertions(+), 27 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 37be12d50d689..d928f27ffb576 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -19,7 +19,7 @@ use crate::{ gas::GasMeter, storage::{self, DepositAccount, WriteOutcome}, BalanceOf, CodeHash, Config, ContractInfo, ContractInfoOf, DebugBufferVec, Determinism, Error, - Event, Nonce, Pallet as Contracts, Schedule, System, + Event, Nonce, Pallet as Contracts, Schedule, System, ContractOrigin }; use frame_support::{ crypto::ecdsa::ECDSAExt, @@ -231,6 +231,9 @@ pub trait Ext: sealing::Sealed { /// However, this function does not require any storage lookup and therefore uses less weight. fn caller_is_origin(&self) -> bool; + /// Check if the origin is the root origin. + fn caller_is_root(&self) -> bool; + /// Returns a reference to the account id of the current contract. fn address(&self) -> &AccountIdOf; @@ -385,7 +388,7 @@ pub struct Stack<'a, T: Config, E> { /// Please note that it is possible that the id belongs to a contract rather than a plain /// account when being called through one of the contract RPCs where the client can freely /// choose the origin. This usually makes no sense but is still possible. - origin: T::AccountId, + origin: ContractOrigin, /// The cost schedule used when charging from the gas meter. schedule: &'a Schedule, /// The gas meter where costs are charged to. @@ -622,7 +625,7 @@ where /// /// Result<(ExecReturnValue, CodeSize), (ExecError, CodeSize)> pub fn run_call( - origin: T::AccountId, + origin: ContractOrigin, dest: T::AccountId, gas_meter: &'a mut GasMeter, storage_meter: &'a mut storage::meter::Meter, @@ -674,7 +677,7 @@ where salt, input_data: input_data.as_ref(), }, - origin, + ContractOrigin::from_account_id(origin), gas_meter, storage_meter, schedule, @@ -689,7 +692,7 @@ where /// Create a new call stack. fn new( args: FrameArgs, - origin: T::AccountId, + origin: ContractOrigin, gas_meter: &'a mut GasMeter, storage_meter: &'a mut storage::meter::Meter, schedule: &'a Schedule, @@ -848,8 +851,13 @@ where // it can create the account in case the initial transfer is < ed. if entry_point == ExportedFunction::Constructor { let frame = top_frame_mut!(self); + // Root origin is not allowed here + let origin = match &self.origin { + ContractOrigin::Signed(origin) => origin, + ContractOrigin::Root => return Err(Error::::RootOriginNotAllowed.into()), + }; frame.nested_storage.charge_instantiate( - &self.origin, + origin, &frame.account_id, frame.contract_info.get(&frame.account_id), )?; @@ -1310,6 +1318,11 @@ where self.caller() == &self.origin } + fn caller_is_root(&self) -> bool { + // self.origin + true + } + fn balance(&self) -> BalanceOf { T::Currency::free_balance(&self.top_frame().account_id) } diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 4f5d7ba305fc1..50a4be670d67d 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -116,9 +116,9 @@ use frame_support::{ ReservableCurrency, Time, }, weights::{OldWeight, Weight}, - BoundedVec, WeakBoundedVec, + BoundedVec, WeakBoundedVec }; -use frame_system::Pallet as System; +use frame_system::{Pallet as System, ensure_signed_or_root}; use pallet_contracts_primitives::{ Code, CodeUploadResult, CodeUploadReturnValue, ContractAccessError, ContractExecResult, ContractInstantiateResult, ExecReturnValue, GetStorageResult, InstantiateReturnValue, @@ -126,7 +126,7 @@ use pallet_contracts_primitives::{ }; use scale_info::TypeInfo; use smallvec::Array; -use sp_runtime::traits::{Convert, Hash, Saturating, StaticLookup}; +use sp_runtime::traits::{Convert, Hash, Saturating, StaticLookup, BadOrigin}; use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; pub use crate::{ @@ -615,7 +615,7 @@ pub mod pallet { data: Vec, ) -> DispatchResultWithPostInfo { let gas_limit: Weight = gas_limit.into(); - let origin = ensure_signed(origin)?; + let origin = contract_ensure_signed_or_root(origin)?; let dest = T::Lookup::lookup(dest)?; let common = CommonInput { origin, @@ -675,7 +675,7 @@ pub mod pallet { data: Vec, salt: Vec, ) -> DispatchResultWithPostInfo { - let origin = ensure_signed(origin)?; + let origin = ContractOrigin::from_account_id(ensure_signed(origin)?); let code_len = code.len() as u32; let data_len = data.len() as u32; let salt_len = salt.len() as u32; @@ -718,7 +718,7 @@ pub mod pallet { data: Vec, salt: Vec, ) -> DispatchResultWithPostInfo { - let origin = ensure_signed(origin)?; + let origin = ContractOrigin::from_account_id(ensure_signed(origin)?); let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { @@ -899,6 +899,8 @@ pub mod pallet { CodeRejected, /// An indetermistic code was used in a context where this is not permitted. Indeterministic, + /// Root origin is not allowed here. + RootOriginNotAllowed, } /// A mapping from an original code hash to the original code, untouched by instrumentation. @@ -955,9 +957,59 @@ pub mod pallet { StorageValue<_, BoundedVec, ValueQuery>; } +/// The types of origin supported by the contracts pallet. +#[derive(Clone)] +pub enum ContractOrigin { + /// The origin is a regular signed account. + Signed(T::AccountId), + /// The origin is root. + Root, +} + +impl ContractOrigin { + /// Returns the account id of the origin if it is a signed origin. + pub fn account_id(&self) -> Option<&T::AccountId> { + match self { + ContractOrigin::Signed(account) => Some(account), + ContractOrigin::Root => None, + } + } + /// Check if the origin is root + pub fn is_root(&self) -> bool { + matches!(self, ContractOrigin::Root) + } + /// Creates a new Signed ContractOrigin from an AccountId + pub fn from_account_id(account_id: T::AccountId) -> Self { + ContractOrigin::Signed(account_id) + } +} +// todo: this is not working, need to figure out why +// impl TryFrom for ContractOrigin { +// type Error = BadOrigin; + +// fn try_from(origin: T::RuntimeOrigin) -> Result { +// match origin { +// Ok(T::RuntimeOrigin::Root) => Ok(ContractOrigin::Root), +// Ok(T::RuntimeOrigin::Signed(t)) => Ok(ContractOrigin::Signed(t)), +// _ => Err(BadOrigin), +// } +// } +// } + +/// Helper function to ensure that the origin is either a regular signed account or root +/// and return the origin as a `ContractOrigin`. +fn contract_ensure_signed_or_root( + origin: T::RuntimeOrigin, +) -> Result, BadOrigin> { + match ensure_signed_or_root(origin)? { + Some(t) => Ok(ContractOrigin::Signed(t)), + None => Ok(ContractOrigin::Root), + } +} + /// Context of a contract invocation. struct CommonInput<'a, T: Config> { - origin: T::AccountId, + origin: ContractOrigin, value: BalanceOf, data: Vec, gas_limit: Weight, @@ -1089,13 +1141,21 @@ impl Invokable for InstantiateInput { ) -> InternalOutput { let mut storage_deposit = Default::default(); let try_exec = || { + // Root origin is not allowed here + let origin = match common.origin { + ContractOrigin::Signed(t) => t, + ContractOrigin::Root => return Err(ExecError { + error: >::RootOriginNotAllowed.into(), + origin: ErrorOrigin::Caller, + }), + }; let schedule = T::Schedule::get(); let (extra_deposit, executable) = match &self.code { Code::Upload(binary) => { let executable = PrefabWasmModule::from_code( binary.clone(), &schedule, - common.origin.clone(), + origin.clone(), Determinism::Deterministic, TryInstantiate::Skip, ) @@ -1124,7 +1184,7 @@ impl Invokable for InstantiateInput { )?; let InstantiateInput { salt, .. } = self; - let CommonInput { origin, value, data, debug_message, .. } = common; + let CommonInput { origin: _, value, data, debug_message, .. } = common; let result = ExecStack::>::run_instantiate( origin.clone(), executable, @@ -1137,7 +1197,7 @@ impl Invokable for InstantiateInput { debug_message, ); storage_deposit = storage_meter - .into_deposit(&origin) + .into_deposit(&common.origin) .saturating_add(&StorageDeposit::Charge(extra_deposit)); result }; @@ -1169,6 +1229,7 @@ impl Pallet { determinism: Determinism, ) -> ContractExecResult> { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; + let origin = ContractOrigin::from_account_id(origin); let common = CommonInput { origin, value, @@ -1210,6 +1271,7 @@ impl Pallet { debug: bool, ) -> ContractInstantiateResult> { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; + let origin = ContractOrigin::from_account_id(origin); let common = CommonInput { origin, value, diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index ef6fb3277c11b..bf4eac60779a5 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -19,7 +19,7 @@ use crate::{ storage::{ContractInfo, DepositAccount}, - BalanceOf, Config, Error, Inspect, Pallet, System, + BalanceOf, Config, Error, Inspect, Pallet, System, ContractOrigin, }; use codec::Encode; use frame_support::{ @@ -326,12 +326,24 @@ where /// /// This tries to [`Ext::check_limit`] on `origin` and fails if this is not possible. pub fn new( - origin: &T::AccountId, + origin: &ContractOrigin, limit: Option>, min_leftover: BalanceOf, ) -> Result { - let limit = E::check_limit(origin, limit, min_leftover)?; - Ok(Self { limit, ..Default::default() }) + // Check the limit only if the origin is not root + return match origin { + ContractOrigin::Root => { + match limit { + // If the limit is specified, that the root's limit + Some(l) => Ok(Self { limit: l, ..Default::default() }), + None => Err(DispatchError::Other("limit must be specified for root origin")), // todo: custom error with doc comment + } + }, + ContractOrigin::Signed(o) => { + let limit = E::check_limit(o, limit, min_leftover)?; + Ok(Self { limit, ..Default::default() }) + } + } } /// The total amount of deposit that should change hands as result of the execution @@ -340,7 +352,13 @@ where /// /// This drops the root meter in order to make sure it is only called when the whole /// execution did finish. - pub fn into_deposit(self, origin: &T::AccountId) -> DepositOf { + pub fn into_deposit(self, origin: &ContractOrigin) -> DepositOf { + // Only refund or charge deposit if the origin is not root + let origin = match origin { + ContractOrigin::Root => return self.total_deposit, + ContractOrigin::Signed(o) => o, + }; + for charge in self.charges.iter().filter(|c| matches!(c.amount, Deposit::Refund(_))) { E::charge(origin, &charge.deposit_account, &charge.amount, charge.terminated); } @@ -651,7 +669,7 @@ mod tests { fn new_reserves_balance_works() { clear_ext(); - TestMeter::new(&ALICE, Some(1_000), 0).unwrap(); + TestMeter::new(&ContractOrigin::Signed(ALICE), Some(1_000), 0).unwrap(); assert_eq!( TestExtTestValue::get(), @@ -666,7 +684,7 @@ mod tests { fn empty_charge_works() { clear_ext(); - let mut meter = TestMeter::new(&ALICE, Some(1_000), 0).unwrap(); + let mut meter = TestMeter::new(&ContractOrigin::Signed(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); // an empty charge does not create a `Charge` entry @@ -687,7 +705,7 @@ mod tests { fn charging_works() { clear_ext(); - let mut meter = TestMeter::new(&ALICE, Some(100), 0).unwrap(); + let mut meter = TestMeter::new(&ContractOrigin::Signed(ALICE), Some(100), 0).unwrap(); assert_eq!(meter.available(), 100); let mut nested0_info = @@ -716,7 +734,7 @@ mod tests { nested0.enforce_limit(Some(&mut nested0_info)).unwrap(); meter.absorb(nested0, DepositAccount(BOB), Some(&mut nested0_info)); - meter.into_deposit(&ALICE); + meter.into_deposit(&ContractOrigin::Signed(ALICE)); assert_eq!(nested0_info.extra_deposit(), 112); assert_eq!(nested1_info.extra_deposit(), 110); @@ -754,7 +772,7 @@ mod tests { fn termination_works() { clear_ext(); - let mut meter = TestMeter::new(&ALICE, Some(1_000), 0).unwrap(); + let mut meter = TestMeter::new(&ContractOrigin::Signed(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); let mut nested0 = meter.nested(); @@ -776,7 +794,7 @@ mod tests { nested0.absorb(nested1, DepositAccount(CHARLIE), None); meter.absorb(nested0, DepositAccount(BOB), None); - meter.into_deposit(&ALICE); + meter.into_deposit(&ContractOrigin::Signed(ALICE)); assert_eq!( TestExtTestValue::get(), From 8fda4a651d9c2bac070f8c5c35cc38e2a9015f1a Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 24 Mar 2023 15:30:57 +0100 Subject: [PATCH 02/53] contracts: update ContractOrigin --- frame/contracts/src/exec.rs | 233 +++++++++++++++++---------- frame/contracts/src/lib.rs | 16 +- frame/contracts/src/storage/meter.rs | 12 +- frame/contracts/src/wasm/mod.rs | 10 +- 4 files changed, 162 insertions(+), 109 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index d928f27ffb576..1e0d38162dfad 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -212,7 +212,11 @@ pub trait Ext: sealing::Sealed { ) -> Result; /// Returns a reference to the account id of the caller. - fn caller(&self) -> &AccountIdOf; + fn caller(&self) -> Option<&AccountIdOf>; + + /// Returns a reference to the account id of the caller + /// errors otherwise. + fn ensure_caller(&self) -> Result<&AccountIdOf, DispatchError>; /// Check if a contract lives at the specified `address`. fn is_contract(&self, address: &AccountIdOf) -> bool; @@ -894,11 +898,13 @@ where return Err(Error::::TerminatedInConstructor.into()) } + let caller = self.ensure_caller()?; + // Deposit an instantiation event. Contracts::::deposit_event( - vec![T::Hashing::hash_of(self.caller()), T::Hashing::hash_of(account_id)], + vec![T::Hashing::hash_of(caller), T::Hashing::hash_of(account_id)], Event::Instantiated { - deployer: self.caller().clone(), + deployer: caller.clone(), contract: account_id.clone(), }, ); @@ -910,7 +916,7 @@ where ); }, (ExportedFunction::Call, None) => { - let caller = self.caller(); + let caller = self.ensure_caller()?; Contracts::::deposit_event( vec![T::Hashing::hash_of(caller), T::Hashing::hash_of(account_id)], Event::Called { caller: caller.clone(), contract: account_id.clone() }, @@ -1070,7 +1076,8 @@ where } let value = frame.value_transferred; - Self::transfer(ExistenceRequirement::KeepAlive, self.caller(), &frame.account_id, value) + let caller = self.ensure_caller()?; + Self::transfer(ExistenceRequirement::KeepAlive, caller, &frame.account_id, value) } /// Reference to the current (top) frame. @@ -1175,11 +1182,12 @@ where let contract_info = top_frame.contract_info().clone(); let account_id = top_frame.account_id.clone(); let value = top_frame.value_transferred; + let caller = self.ensure_caller()?; let executable = self.push_frame( FrameArgs::Call { dest: account_id, cached_info: Some(contract_info), - delegated_call: Some(DelegatedCall { executable, caller: self.caller().clone() }), + delegated_call: Some(DelegatedCall { executable, caller: caller.clone() }), }, value, Weight::zero(), @@ -1294,11 +1302,21 @@ where &self.top_frame().account_id } - fn caller(&self) -> &T::AccountId { + fn caller(&self) -> Option<&T::AccountId> { if let Some(caller) = &self.top_frame().delegate_caller { - caller + Some(caller) } else { - self.frames().nth(1).map(|f| &f.account_id).unwrap_or(&self.origin) + self.frames().nth(1).map(|f| Some(&f.account_id)).unwrap_or(match &self.origin { + ContractOrigin::Signed(origin) => Some(&origin), + ContractOrigin::Root => None, + }) + } + } + + fn ensure_caller(&self) -> Result<&T::AccountId, DispatchError> { + match self.caller() { + Some(caller) => Ok(caller), + None => Err(Error::::NoAccountId.into()), } } @@ -1315,12 +1333,12 @@ where } fn caller_is_origin(&self) -> bool { - self.caller() == &self.origin + // todo: if both are None, then it is root. Is it okay to return true? + self.caller() == self.origin.account_id() } fn caller_is_root(&self) -> bool { - // self.origin - true + matches!(self.origin, ContractOrigin::Root) } fn balance(&self) -> BalanceOf { @@ -1646,11 +1664,11 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, exec_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), value).unwrap(); + let mut storage_meter = storage::meter::Meter::new(&ContractOrigin::from_account_id(ALICE), Some(0), value).unwrap(); assert_matches!( MockStack::run_call( - ALICE, + ContractOrigin::from_account_id(ALICE), BOB, &mut gas_meter, &mut storage_meter, @@ -1701,10 +1719,11 @@ mod tests { place_contract(&dest, success_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let mut storage_meter = storage::meter::Meter::new(&origin, Some(0), 55).unwrap(); + let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); let _ = MockStack::run_call( - origin.clone(), + contract_origin.clone(), dest.clone(), &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -1743,10 +1762,11 @@ mod tests { place_contract(&dest, delegate_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let mut storage_meter = storage::meter::Meter::new(&origin, Some(0), 55).unwrap(); + let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); let _ = MockStack::run_call( - origin.clone(), + contract_origin.clone(), dest.clone(), &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -1779,10 +1799,11 @@ mod tests { place_contract(&dest, return_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let mut storage_meter = storage::meter::Meter::new(&origin, Some(0), 55).unwrap(); + let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); let output = MockStack::run_call( - origin.clone(), + contract_origin.clone(), dest.clone(), &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -1830,11 +1851,12 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); - let mut storage_meter = storage::meter::Meter::new(&origin, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(origin); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); place_contract(&BOB, return_ch); let result = MockStack::run_call( - origin, + contract_origin, dest, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -1864,10 +1886,11 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, return_ch); - let mut storage_meter = storage::meter::Meter::new(&origin, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(origin); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - origin, + contract_origin, dest, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -1895,10 +1918,11 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, input_data_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -1927,7 +1951,8 @@ mod tests { let executable = MockExecutable::from_storage(input_data_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, min_balance).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); let result = MockStack::run_instantiate( ALICE, @@ -1975,10 +2000,11 @@ mod tests { let schedule = ::Schedule::get(); set_balance(&BOB, 1); place_contract(&BOB, recurse_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), value).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2005,7 +2031,7 @@ mod tests { let bob_ch = MockLoader::insert(Call, |ctx, _| { // Record the caller for bob. - WitnessedCallerBob::mutate(|caller| *caller = Some(ctx.ext.caller().clone())); + WitnessedCallerBob::mutate(|caller| *caller = Some(ctx.ext.caller().unwrap().clone())); // Call into CHARLIE contract. assert_matches!(ctx.ext.call(Weight::zero(), CHARLIE, 0, vec![], true), Ok(_)); @@ -2013,7 +2039,7 @@ mod tests { }); let charlie_ch = MockLoader::insert(Call, |ctx, _| { // Record the caller for charlie. - WitnessedCallerCharlie::mutate(|caller| *caller = Some(ctx.ext.caller().clone())); + WitnessedCallerCharlie::mutate(|caller| *caller = Some(ctx.ext.caller().unwrap().clone())); exec_success() }); @@ -2021,10 +2047,11 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&dest, bob_ch); place_contract(&CHARLIE, charlie_ch); - let mut storage_meter = storage::meter::Meter::new(&origin, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - origin.clone(), + contract_origin.clone(), dest.clone(), &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2056,9 +2083,10 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2085,10 +2113,11 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2113,10 +2142,11 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2149,10 +2179,11 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE -> BOB (caller is origin) -> CHARLIE (caller is not origin) let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2185,10 +2216,11 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); place_contract(&CHARLIE, charlie_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2212,7 +2244,8 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); assert_matches!( MockStack::run_instantiate( @@ -2244,8 +2277,9 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 1000); + let contract_origin = ContractOrigin::from_account_id(ALICE); let mut storage_meter = - storage::meter::Meter::new(&ALICE, Some(min_balance * 100), min_balance).unwrap(); + storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance).unwrap(); let instantiated_contract_address = assert_matches!( MockStack::run_instantiate( @@ -2288,8 +2322,9 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 1000); + let contract_origin = ContractOrigin::from_account_id(ALICE); let mut storage_meter = - storage::meter::Meter::new(&ALICE, Some(min_balance * 100), min_balance).unwrap(); + storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance).unwrap(); let instantiated_contract_address = assert_matches!( MockStack::run_instantiate( @@ -2341,13 +2376,14 @@ mod tests { let min_balance = ::Currency::minimum_balance(); set_balance(&ALICE, min_balance * 100); place_contract(&BOB, instantiator_ch); + let contract_origin = ContractOrigin::from_account_id(ALICE); let mut storage_meter = - storage::meter::Meter::new(&ALICE, Some(min_balance * 10), min_balance * 10) + storage::meter::Meter::new(&contract_origin, Some(min_balance * 10), min_balance * 10) .unwrap(); assert_matches!( MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2408,11 +2444,12 @@ mod tests { set_balance(&ALICE, 1000); set_balance(&BOB, 100); place_contract(&BOB, instantiator_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(200), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(200), 0).unwrap(); assert_matches!( MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2444,7 +2481,8 @@ mod tests { let executable = MockExecutable::from_storage(terminate_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, 10_000); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 100).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 100).unwrap(); assert_eq!( MockStack::run_instantiate( @@ -2495,10 +2533,11 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2529,7 +2568,8 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); let executable = MockExecutable::from_storage(code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, min_balance).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); let result = MockStack::run_instantiate( ALICE, @@ -2562,9 +2602,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -2596,9 +2637,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -2633,9 +2675,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -2664,11 +2707,12 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // Calling another contract should succeed assert_ok!(MockStack::run_call( - ALICE, + contract_origin.clone(), BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2682,7 +2726,7 @@ mod tests { // Calling into oneself fails assert_err!( MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2716,12 +2760,13 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // BOB -> CHARLIE -> BOB fails as BOB denies reentry. assert_err!( MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -2753,10 +2798,11 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -2836,10 +2882,11 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -2936,8 +2983,9 @@ mod tests { let succ_succ_executable = MockExecutable::from_storage(succ_succ_code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); + let contract_origin = ContractOrigin::from_account_id(ALICE); let mut storage_meter = - storage::meter::Meter::new(&ALICE, None, min_balance * 100).unwrap(); + storage::meter::Meter::new(&contract_origin, None, min_balance * 100).unwrap(); MockStack::run_instantiate( ALICE, @@ -3040,9 +3088,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3167,9 +3216,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3203,9 +3253,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3239,9 +3290,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3301,9 +3353,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3363,9 +3416,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3395,9 +3449,10 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, @@ -3441,9 +3496,10 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, None, 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( - ALICE, + contract_origin, BOB, &mut gas_meter, &mut storage_meter, @@ -3471,9 +3527,10 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_hash); - let mut storage_meter = storage::meter::Meter::new(&ALICE, Some(0), 0).unwrap(); + let contract_origin = ContractOrigin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( - ALICE, + contract_origin, BOB, &mut GasMeter::::new(GAS_LIMIT), &mut storage_meter, diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 50a4be670d67d..2ba7ac2f436c7 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -901,6 +901,8 @@ pub mod pallet { Indeterministic, /// Root origin is not allowed here. RootOriginNotAllowed, + /// There is no account id associated + NoAccountId, } /// A mapping from an original code hash to the original code, untouched by instrumentation. @@ -983,18 +985,6 @@ impl ContractOrigin { ContractOrigin::Signed(account_id) } } -// todo: this is not working, need to figure out why -// impl TryFrom for ContractOrigin { -// type Error = BadOrigin; - -// fn try_from(origin: T::RuntimeOrigin) -> Result { -// match origin { -// Ok(T::RuntimeOrigin::Root) => Ok(ContractOrigin::Root), -// Ok(T::RuntimeOrigin::Signed(t)) => Ok(ContractOrigin::Signed(t)), -// _ => Err(BadOrigin), -// } -// } -// } /// Helper function to ensure that the origin is either a regular signed account or root /// and return the origin as a `ContractOrigin`. @@ -1142,7 +1132,7 @@ impl Invokable for InstantiateInput { let mut storage_deposit = Default::default(); let try_exec = || { // Root origin is not allowed here - let origin = match common.origin { + let origin = match &common.origin { ContractOrigin::Signed(t) => t, ContractOrigin::Root => return Err(ExecError { error: >::RootOriginNotAllowed.into(), diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index bf4eac60779a5..892b7dc0db381 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -669,7 +669,7 @@ mod tests { fn new_reserves_balance_works() { clear_ext(); - TestMeter::new(&ContractOrigin::Signed(ALICE), Some(1_000), 0).unwrap(); + TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!( TestExtTestValue::get(), @@ -684,7 +684,7 @@ mod tests { fn empty_charge_works() { clear_ext(); - let mut meter = TestMeter::new(&ContractOrigin::Signed(ALICE), Some(1_000), 0).unwrap(); + let mut meter = TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); // an empty charge does not create a `Charge` entry @@ -705,7 +705,7 @@ mod tests { fn charging_works() { clear_ext(); - let mut meter = TestMeter::new(&ContractOrigin::Signed(ALICE), Some(100), 0).unwrap(); + let mut meter = TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(100), 0).unwrap(); assert_eq!(meter.available(), 100); let mut nested0_info = @@ -734,7 +734,7 @@ mod tests { nested0.enforce_limit(Some(&mut nested0_info)).unwrap(); meter.absorb(nested0, DepositAccount(BOB), Some(&mut nested0_info)); - meter.into_deposit(&ContractOrigin::Signed(ALICE)); + meter.into_deposit(&ContractOrigin::from_account_id(ALICE)); assert_eq!(nested0_info.extra_deposit(), 112); assert_eq!(nested1_info.extra_deposit(), 110); @@ -772,7 +772,7 @@ mod tests { fn termination_works() { clear_ext(); - let mut meter = TestMeter::new(&ContractOrigin::Signed(ALICE), Some(1_000), 0).unwrap(); + let mut meter = TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); let mut nested0 = meter.nested(); @@ -794,7 +794,7 @@ mod tests { nested0.absorb(nested1, DepositAccount(CHARLIE), None); meter.absorb(nested0, DepositAccount(BOB), None); - meter.into_deposit(&ContractOrigin::Signed(ALICE)); + meter.into_deposit(&ContractOrigin::from_account_id(ALICE)); assert_eq!( TestExtTestValue::get(), diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index f8c5a6ed96c57..556ed96cf4c14 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -571,8 +571,11 @@ mod tests { } Ok(result) } - fn caller(&self) -> &AccountIdOf { - &ALICE + fn caller(&self) -> Option<&AccountIdOf> { + Some(&ALICE) + } + fn ensure_caller(&self) -> Result<&AccountIdOf, DispatchError> { + Ok(&ALICE) } fn is_contract(&self, _address: &AccountIdOf) -> bool { true @@ -587,6 +590,9 @@ mod tests { fn caller_is_origin(&self) -> bool { false } + fn caller_is_root(&self) -> bool { + false + } fn address(&self) -> &AccountIdOf { &BOB } From f52ba846d9f8102dd1b2f200494ed84962aec063 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 24 Mar 2023 16:40:14 +0100 Subject: [PATCH 03/53] contracts: test allow root calls --- frame/contracts/src/exec.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 1e0d38162dfad..15ad37392b679 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -2197,6 +2197,43 @@ mod tests { }); } + #[test] + fn caller_is_root_returns_proper_values() { + let code_charlie = MockLoader::insert(Call, |ctx, _| { + // BOB is not the origin of the stack call + assert!(!ctx.ext.caller_is_root()); + exec_success() + }); + + let code_bob = MockLoader::insert(Call, |ctx, _| { + // root is the origin of the call stack + assert!(ctx.ext.caller_is_root()); + // BOB calls CHARLIE + ctx.ext.call(Weight::zero(), CHARLIE, 0, vec![], true) + }); + + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_bob); + place_contract(&CHARLIE, code_charlie); + let contract_origin = ContractOrigin::Root; + let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + // root -> BOB (caller is root) -> CHARLIE (caller is not origin) + let result = MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 0, + vec![0], + None, + Determinism::Deterministic, + ); + assert_matches!(result, Ok(_)); + }); + } + #[test] fn address_returns_proper_values() { let bob_ch = MockLoader::insert(Call, |ctx, _| { From 37052122c8dce8a75c61c51de381112edb506c91 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 24 Mar 2023 18:23:31 +0100 Subject: [PATCH 04/53] contracts: rustfmt --- frame/contracts/src/exec.rs | 147 +++++++++++++++++---------- frame/contracts/src/lib.rs | 25 +++-- frame/contracts/src/storage/meter.rs | 47 +++++---- frame/contracts/src/wasm/mod.rs | 10 +- 4 files changed, 140 insertions(+), 89 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 15ad37392b679..0df7765fc412b 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -18,8 +18,8 @@ use crate::{ gas::GasMeter, storage::{self, DepositAccount, WriteOutcome}, - BalanceOf, CodeHash, Config, ContractInfo, ContractInfoOf, DebugBufferVec, Determinism, Error, - Event, Nonce, Pallet as Contracts, Schedule, System, ContractOrigin + BalanceOf, CodeHash, Config, ContractInfo, ContractInfoOf, ContractOrigin, DebugBufferVec, + Determinism, Error, Event, Nonce, Pallet as Contracts, Schedule, System, }; use frame_support::{ crypto::ecdsa::ECDSAExt, @@ -783,11 +783,11 @@ where // `AllowIndeterminism` will only be ever set in case of off-chain execution. // Instantiations are never allowed even when executing off-chain. - if !(executable.is_deterministic() || - (matches!(determinism, Determinism::AllowIndeterminism) && - matches!(entry_point, ExportedFunction::Call))) + if !(executable.is_deterministic() + || (matches!(determinism, Determinism::AllowIndeterminism) + && matches!(entry_point, ExportedFunction::Call))) { - return Err(Error::::Indeterministic.into()) + return Err(Error::::Indeterministic.into()); } let frame = Frame { @@ -812,7 +812,7 @@ where gas_limit: Weight, ) -> Result { if self.frames.len() == T::CallStack::size() { - return Err(Error::::MaxCallDepthReached.into()) + return Err(Error::::MaxCallDepthReached.into()); } // We need to make sure that changes made to the contract info are not discarded. @@ -877,7 +877,7 @@ where // Avoid useless work that would be reverted anyways. if output.did_revert() { - return Ok(output) + return Ok(output); } // Storage limit is enforced as late as possible (when the last frame returns) so that @@ -895,7 +895,7 @@ where (ExportedFunction::Constructor, _) => { // It is not allowed to terminate a contract inside its constructor. if matches!(frame.contract_info, CachedContract::Terminated(_)) { - return Err(Error::::TerminatedInConstructor.into()) + return Err(Error::::TerminatedInConstructor.into()); } let caller = self.ensure_caller()?; @@ -937,8 +937,9 @@ where with_transaction(|| -> TransactionOutcome> { let output = do_transaction(); match &output { - Ok(result) if !result.did_revert() => - TransactionOutcome::Commit(Ok((true, output))), + Ok(result) if !result.did_revert() => { + TransactionOutcome::Commit(Ok((true, output))) + }, _ => TransactionOutcome::Rollback(Ok((false, output))), } }); @@ -980,7 +981,7 @@ where // Only gas counter changes are persisted in case of a failure. if !persist { - return + return; } // Record the storage meter changes of the nested call into the parent meter. @@ -1009,7 +1010,7 @@ where // trigger a rollback. if prev.account_id == *account_id { prev.contract_info = CachedContract::Cached(contract); - return + return; } // Predecessor is a different contract: We persist the info and invalidate the first @@ -1032,7 +1033,7 @@ where } self.gas_meter.absorb_nested(mem::take(&mut self.first_frame.nested_gas)); if !persist { - return + return; } let deposit_account = self.first_frame.contract_info.deposit_account().expect( "Is only `None` when the info is invalidated. The first frame can't be invalidated. @@ -1072,7 +1073,7 @@ where // If it is a delegate call, then we've already transferred tokens in the // last non-delegate frame. if frame.delegate_caller.is_some() { - return Ok(()) + return Ok(()); } let value = frame.value_transferred; @@ -1143,7 +1144,7 @@ where let try_call = || { if !self.allows_reentry(&to) { - return Err(>::ReentranceDenied.into()) + return Err(>::ReentranceDenied.into()); } // We ignore instantiate frames in our search for a cached contract. // Otherwise it would be possible to recursively call a contract from its own @@ -1223,7 +1224,7 @@ where fn terminate(&mut self, beneficiary: &AccountIdOf) -> Result<(), DispatchError> { use frame_support::traits::fungible::Inspect; if self.is_recursive() { - return Err(Error::::TerminatedWhileReentrant.into()) + return Err(Error::::TerminatedWhileReentrant.into()); } let frame = self.top_frame_mut(); let info = frame.terminate(); @@ -1428,7 +1429,7 @@ where fn set_code_hash(&mut self, hash: CodeHash) -> Result<(), DispatchError> { let frame = top_frame_mut!(self); if !E::from_storage(hash, self.schedule, &mut frame.nested_gas)?.is_deterministic() { - return Err(>::Indeterministic.into()) + return Err(>::Indeterministic.into()); } E::add_user(hash)?; let prev_hash = frame.contract_info().code_hash; @@ -1664,7 +1665,9 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, exec_ch); - let mut storage_meter = storage::meter::Meter::new(&ContractOrigin::from_account_id(ALICE), Some(0), value).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&ContractOrigin::from_account_id(ALICE), Some(0), value) + .unwrap(); assert_matches!( MockStack::run_call( @@ -1720,7 +1723,8 @@ mod tests { set_balance(&origin, 100); let balance = get_balance(&dest); let contract_origin = ContractOrigin::from_account_id(origin.clone()); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); let _ = MockStack::run_call( contract_origin.clone(), @@ -1763,7 +1767,8 @@ mod tests { set_balance(&origin, 100); let balance = get_balance(&dest); let contract_origin = ContractOrigin::from_account_id(origin.clone()); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); let _ = MockStack::run_call( contract_origin.clone(), @@ -1800,7 +1805,8 @@ mod tests { set_balance(&origin, 100); let balance = get_balance(&dest); let contract_origin = ContractOrigin::from_account_id(origin.clone()); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); let output = MockStack::run_call( contract_origin.clone(), @@ -1852,7 +1858,8 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); let contract_origin = ContractOrigin::from_account_id(origin); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); place_contract(&BOB, return_ch); let result = MockStack::run_call( @@ -1887,7 +1894,8 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, return_ch); let contract_origin = ContractOrigin::from_account_id(origin); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, @@ -1919,7 +1927,8 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, input_data_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, @@ -1952,7 +1961,8 @@ mod tests { MockExecutable::from_storage(input_data_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); let result = MockStack::run_instantiate( ALICE, @@ -2001,7 +2011,8 @@ mod tests { set_balance(&BOB, 1); place_contract(&BOB, recurse_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); let result = MockStack::run_call( contract_origin, @@ -2039,7 +2050,9 @@ mod tests { }); let charlie_ch = MockLoader::insert(Call, |ctx, _| { // Record the caller for charlie. - WitnessedCallerCharlie::mutate(|caller| *caller = Some(ctx.ext.caller().unwrap().clone())); + WitnessedCallerCharlie::mutate(|caller| { + *caller = Some(ctx.ext.caller().unwrap().clone()) + }); exec_success() }); @@ -2048,7 +2061,8 @@ mod tests { place_contract(&dest, bob_ch); place_contract(&CHARLIE, charlie_ch); let contract_origin = ContractOrigin::from_account_id(origin.clone()); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin.clone(), @@ -2084,7 +2098,8 @@ mod tests { place_contract(&BOB, bob_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, BOB, @@ -2114,7 +2129,8 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) let result = MockStack::run_call( contract_origin, @@ -2143,7 +2159,8 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) let result = MockStack::run_call( contract_origin, @@ -2180,7 +2197,8 @@ mod tests { place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE -> BOB (caller is origin) -> CHARLIE (caller is not origin) let result = MockStack::run_call( contract_origin, @@ -2217,7 +2235,8 @@ mod tests { place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); let contract_origin = ContractOrigin::Root; - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // root -> BOB (caller is root) -> CHARLIE (caller is not origin) let result = MockStack::run_call( contract_origin, @@ -2254,7 +2273,8 @@ mod tests { place_contract(&BOB, bob_ch); place_contract(&CHARLIE, charlie_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, @@ -2282,7 +2302,8 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); assert_matches!( MockStack::run_instantiate( @@ -2316,7 +2337,8 @@ mod tests { set_balance(&ALICE, min_balance * 1000); let contract_origin = ContractOrigin::from_account_id(ALICE); let mut storage_meter = - storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance).unwrap(); + storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance) + .unwrap(); let instantiated_contract_address = assert_matches!( MockStack::run_instantiate( @@ -2361,7 +2383,8 @@ mod tests { set_balance(&ALICE, min_balance * 1000); let contract_origin = ContractOrigin::from_account_id(ALICE); let mut storage_meter = - storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance).unwrap(); + storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance) + .unwrap(); let instantiated_contract_address = assert_matches!( MockStack::run_instantiate( @@ -2414,9 +2437,12 @@ mod tests { set_balance(&ALICE, min_balance * 100); place_contract(&BOB, instantiator_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = - storage::meter::Meter::new(&contract_origin, Some(min_balance * 10), min_balance * 10) - .unwrap(); + let mut storage_meter = storage::meter::Meter::new( + &contract_origin, + Some(min_balance * 10), + min_balance * 10, + ) + .unwrap(); assert_matches!( MockStack::run_call( @@ -2482,7 +2508,8 @@ mod tests { set_balance(&BOB, 100); place_contract(&BOB, instantiator_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(200), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(200), 0).unwrap(); assert_matches!( MockStack::run_call( @@ -2519,7 +2546,8 @@ mod tests { MockExecutable::from_storage(terminate_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, 10_000); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 100).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, None, 100).unwrap(); assert_eq!( MockStack::run_instantiate( @@ -2571,7 +2599,8 @@ mod tests { place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, @@ -2606,7 +2635,8 @@ mod tests { let executable = MockExecutable::from_storage(code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); let result = MockStack::run_instantiate( ALICE, @@ -2640,7 +2670,8 @@ mod tests { set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( contract_origin, BOB, @@ -2675,7 +2706,8 @@ mod tests { set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, BOB, @@ -2713,7 +2745,8 @@ mod tests { set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( contract_origin, BOB, @@ -2745,7 +2778,8 @@ mod tests { place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // Calling another contract should succeed assert_ok!(MockStack::run_call( @@ -2798,7 +2832,8 @@ mod tests { place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // BOB -> CHARLIE -> BOB fails as BOB denies reentry. assert_err!( @@ -2836,7 +2871,8 @@ mod tests { set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); MockStack::run_call( contract_origin, @@ -2920,7 +2956,8 @@ mod tests { set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); MockStack::run_call( contract_origin, @@ -3487,7 +3524,8 @@ mod tests { place_contract(&BOB, bob_ch); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, BOB, @@ -3565,7 +3603,8 @@ mod tests { place_contract(&BOB, code_hash); let contract_origin = ContractOrigin::from_account_id(ALICE); - let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( contract_origin, BOB, diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 2ba7ac2f436c7..32ee997ee4f47 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -116,9 +116,9 @@ use frame_support::{ ReservableCurrency, Time, }, weights::{OldWeight, Weight}, - BoundedVec, WeakBoundedVec + BoundedVec, WeakBoundedVec, }; -use frame_system::{Pallet as System, ensure_signed_or_root}; +use frame_system::{ensure_signed_or_root, Pallet as System}; use pallet_contracts_primitives::{ Code, CodeUploadResult, CodeUploadReturnValue, ContractAccessError, ContractExecResult, ContractInstantiateResult, ExecReturnValue, GetStorageResult, InstantiateReturnValue, @@ -126,7 +126,7 @@ use pallet_contracts_primitives::{ }; use scale_info::TypeInfo; use smallvec::Array; -use sp_runtime::traits::{Convert, Hash, Saturating, StaticLookup, BadOrigin}; +use sp_runtime::traits::{BadOrigin, Convert, Hash, Saturating, StaticLookup}; use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; pub use crate::{ @@ -571,7 +571,7 @@ pub mod pallet { let contract = if let Some(contract) = contract { contract } else { - return Err(>::ContractNotFound.into()) + return Err(>::ContractNotFound.into()); }; >::add_user(code_hash)?; >::remove_user(contract.code_hash); @@ -965,7 +965,7 @@ pub enum ContractOrigin { /// The origin is a regular signed account. Signed(T::AccountId), /// The origin is root. - Root, + Root, } impl ContractOrigin { @@ -1096,12 +1096,13 @@ impl Invokable for CallInput { let mut storage_meter = match StorageMeter::new(&common.origin, common.storage_deposit_limit, common.value) { Ok(meter) => meter, - Err(err) => + Err(err) => { return InternalOutput { result: Err(err.into()), gas_meter, storage_deposit: Default::default(), - }, + } + }, }; let schedule = T::Schedule::get(); let CallInput { dest, determinism } = self; @@ -1134,10 +1135,12 @@ impl Invokable for InstantiateInput { // Root origin is not allowed here let origin = match &common.origin { ContractOrigin::Signed(t) => t, - ContractOrigin::Root => return Err(ExecError { - error: >::RootOriginNotAllowed.into(), - origin: ErrorOrigin::Caller, - }), + ContractOrigin::Root => { + return Err(ExecError { + error: >::RootOriginNotAllowed.into(), + origin: ErrorOrigin::Caller, + }) + }, }; let schedule = T::Schedule::get(); let (extra_deposit, executable) = match &self.code { diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 892b7dc0db381..67b2ca46a7983 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -19,7 +19,7 @@ use crate::{ storage::{ContractInfo, DepositAccount}, - BalanceOf, Config, Error, Inspect, Pallet, System, ContractOrigin, + BalanceOf, Config, ContractOrigin, Error, Inspect, Pallet, System, }; use codec::Encode; use frame_support::{ @@ -155,7 +155,7 @@ impl Diff { } else { debug_assert_eq!(self.bytes_removed, 0); debug_assert_eq!(self.items_removed, 0); - return bytes_deposit.saturating_add(&items_deposit) + return bytes_deposit.saturating_add(&items_deposit); }; // Refunds are calculated pro rata based on the accumulated storage within the contract @@ -178,16 +178,20 @@ impl Diff { info.storage_items = info.storage_items.saturating_add(items_added).saturating_sub(items_removed); match &bytes_deposit { - Deposit::Charge(amount) => - info.storage_byte_deposit = info.storage_byte_deposit.saturating_add(*amount), - Deposit::Refund(amount) => - info.storage_byte_deposit = info.storage_byte_deposit.saturating_sub(*amount), + Deposit::Charge(amount) => { + info.storage_byte_deposit = info.storage_byte_deposit.saturating_add(*amount) + }, + Deposit::Refund(amount) => { + info.storage_byte_deposit = info.storage_byte_deposit.saturating_sub(*amount) + }, } match &items_deposit { - Deposit::Charge(amount) => - info.storage_item_deposit = info.storage_item_deposit.saturating_add(*amount), - Deposit::Refund(amount) => - info.storage_item_deposit = info.storage_item_deposit.saturating_sub(*amount), + Deposit::Charge(amount) => { + info.storage_item_deposit = info.storage_item_deposit.saturating_add(*amount) + }, + Deposit::Refund(amount) => { + info.storage_item_deposit = info.storage_item_deposit.saturating_sub(*amount) + }, } bytes_deposit.saturating_add(&items_deposit) @@ -342,8 +346,8 @@ where ContractOrigin::Signed(o) => { let limit = E::check_limit(o, limit, min_leftover)?; Ok(Self { limit, ..Default::default() }) - } - } + }, + }; } /// The total amount of deposit that should change hands as result of the execution @@ -358,7 +362,7 @@ where ContractOrigin::Root => return self.total_deposit, ContractOrigin::Signed(o) => o, }; - + for charge in self.charges.iter().filter(|c| matches!(c.amount, Deposit::Refund(_))) { E::charge(origin, &charge.deposit_account, &charge.amount, charge.terminated); } @@ -404,7 +408,7 @@ where // We also add another `ed` here which goes to the contract's own account into existence. deposit = deposit.max(Deposit::Charge(ed)).saturating_add(&Deposit::Charge(ed)); if deposit.charge_or_zero() > self.limit { - return Err(>::StorageDepositLimitExhausted.into()) + return Err(>::StorageDepositLimitExhausted.into()); } // We do not increase `own_contribution` because this will be charged later when the @@ -458,7 +462,7 @@ where } if let Deposit::Charge(amount) = total_deposit { if amount > self.limit { - return Err(>::StorageDepositLimitExhausted.into()) + return Err(>::StorageDepositLimitExhausted.into()); } } Ok(()) @@ -479,8 +483,8 @@ impl Ext for ReservingExt { .saturating_sub(Pallet::::min_balance()); let limit = limit.unwrap_or(max); ensure!( - limit <= max && - matches!(T::Currency::can_withdraw(origin, limit), WithdrawConsequence::Success), + limit <= max + && matches!(T::Currency::can_withdraw(origin, limit), WithdrawConsequence::Success), >::StorageDepositNotEnoughFunds, ); Ok(limit) @@ -684,7 +688,8 @@ mod tests { fn empty_charge_works() { clear_ext(); - let mut meter = TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); + let mut meter = + TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); // an empty charge does not create a `Charge` entry @@ -705,7 +710,8 @@ mod tests { fn charging_works() { clear_ext(); - let mut meter = TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(100), 0).unwrap(); + let mut meter = + TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(100), 0).unwrap(); assert_eq!(meter.available(), 100); let mut nested0_info = @@ -772,7 +778,8 @@ mod tests { fn termination_works() { clear_ext(); - let mut meter = TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); + let mut meter = + TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); let mut nested0 = meter.nested(); diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 556ed96cf4c14..22f60db5c9c84 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -543,8 +543,9 @@ mod tests { let entry = self.storage.entry(key.clone()); let result = match (entry, take_old) { (Entry::Vacant(_), _) => WriteOutcome::New, - (Entry::Occupied(entry), false) => - WriteOutcome::Overwritten(entry.remove().len() as u32), + (Entry::Occupied(entry), false) => { + WriteOutcome::Overwritten(entry.remove().len() as u32) + }, (Entry::Occupied(entry), true) => WriteOutcome::Taken(entry.remove()), }; if let Some(value) = value { @@ -562,8 +563,9 @@ mod tests { let entry = self.storage.entry(key.clone()); let result = match (entry, take_old) { (Entry::Vacant(_), _) => WriteOutcome::New, - (Entry::Occupied(entry), false) => - WriteOutcome::Overwritten(entry.remove().len() as u32), + (Entry::Occupied(entry), false) => { + WriteOutcome::Overwritten(entry.remove().len() as u32) + }, (Entry::Occupied(entry), true) => WriteOutcome::Taken(entry.remove()), }; if let Some(value) = value { From e25d27bb71e7eb2f4c29d8963e623f5e0c905bb1 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 27 Mar 2023 14:46:31 +0200 Subject: [PATCH 05/53] contracts: test root caller traps --- frame/contracts/src/exec.rs | 46 +++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index ec78267c572ac..f117c391b4c7c 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -220,7 +220,7 @@ pub trait Ext: sealing::Sealed { /// However, this function does not require any storage lookup and therefore uses less weight. fn caller_is_origin(&self) -> bool; - /// Check if the origin is the root origin. + /// Check if the caller is origin, and this origin is root. fn caller_is_root(&self) -> bool; /// Returns a reference to the account id of the current contract. @@ -1061,6 +1061,10 @@ where return Ok(()); } + // todo: is this okay? should we bypass if root? + if self.caller_is_root() { + return Ok(()); + } let value = frame.value_transferred; let caller = self.ensure_caller()?; Self::transfer(ExistenceRequirement::KeepAlive, caller, &frame.account_id, value) @@ -1301,6 +1305,10 @@ where } fn caller_is_root(&self) -> bool { + // it the caller isn't origin, then it can't be root. + if !self.caller_is_origin() { + return false; + } matches!(self.origin, ContractOrigin::Root) } @@ -2171,16 +2179,46 @@ mod tests { 0, vec![0], None, - Determinism::Deterministic, + Determinism::Enforced, ); assert_matches!(result, Ok(_)); }); } + #[test] + fn root_caller_traps() { + let code_bob = MockLoader::insert(Call, |ctx, _| { + // root is the origin of the call stack + assert!(ctx.ext.caller_is_root()); + exec_success() + }); + + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_bob); + let contract_origin = ContractOrigin::Root; + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + // root -> BOB (caller is root) + let result = MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 0, + vec![0], + None, + Determinism::Enforced, + ); + assert_eq!(result, Err(Error::::NoAccountId.into())); + }); + } + #[test] fn caller_is_root_returns_proper_values() { let code_charlie = MockLoader::insert(Call, |ctx, _| { - // BOB is not the origin of the stack call + // BOB is not root assert!(!ctx.ext.caller_is_root()); exec_success() }); @@ -2199,7 +2237,7 @@ mod tests { let contract_origin = ContractOrigin::Root; let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); - // root -> BOB (caller is root) -> CHARLIE (caller is not origin) + // root -> BOB (caller is root) -> CHARLIE (caller is not root) let result = MockStack::run_call( contract_origin, BOB, From 04f0b31e741753167b89cb480daf03677df53ad6 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 27 Mar 2023 21:15:37 +0200 Subject: [PATCH 06/53] contracts: add Caller enum --- frame/contracts/src/exec.rs | 85 ++++++++++++++-------------- frame/contracts/src/lib.rs | 61 +++++++++++++------- frame/contracts/src/storage/meter.rs | 2 +- frame/contracts/src/tests.rs | 24 ++++---- frame/contracts/src/wasm/mod.rs | 9 +-- 5 files changed, 101 insertions(+), 80 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index f117c391b4c7c..dd7ae8b1f3db1 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -18,8 +18,8 @@ use crate::{ gas::GasMeter, storage::{self, DepositAccount, WriteOutcome}, - BalanceOf, CodeHash, Config, ContractInfo, ContractInfoOf, ContractOrigin, DebugBufferVec, - Determinism, Error, Event, Nonce, Pallet as Contracts, Schedule, System, + BalanceOf, Caller, CodeHash, Config, ContractInfo, ContractInfoOf, ContractOrigin, + DebugBufferVec, Determinism, Error, Event, Nonce, Pallet as Contracts, Schedule, System, }; use frame_support::{ crypto::ecdsa::ECDSAExt, @@ -196,12 +196,9 @@ pub trait Ext: sealing::Sealed { take_old: bool, ) -> Result; - /// Returns a reference to the account id of the caller. - fn caller(&self) -> Option<&AccountIdOf>; - - /// Returns a reference to the account id of the caller + /// Returns a reference to the account id of the caller if it has one /// errors otherwise. - fn ensure_caller(&self) -> Result<&AccountIdOf, DispatchError>; + fn caller(&self) -> Caller; /// Check if a contract lives at the specified `address`. fn is_contract(&self, address: &AccountIdOf) -> bool; @@ -843,7 +840,7 @@ where // Root origin is not allowed here let origin = match &self.origin { ContractOrigin::Signed(origin) => origin, - ContractOrigin::Root => return Err(Error::::RootOriginNotAllowed.into()), + ContractOrigin::Root => return Err(Error::::RootOrigin.into()), }; frame.nested_storage.charge_instantiate( origin, @@ -883,7 +880,7 @@ where return Err(Error::::TerminatedInConstructor.into()); } - let caller = self.ensure_caller()?; + let caller = &self.caller().account_id()?; // Deposit an instantiation event. Contracts::::deposit_event( @@ -901,9 +898,9 @@ where ); }, (ExportedFunction::Call, None) => { - let caller = self.ensure_caller()?; + let caller = self.caller(); Contracts::::deposit_event( - vec![T::Hashing::hash_of(caller), T::Hashing::hash_of(account_id)], + vec![T::Hashing::hash_of(&caller), T::Hashing::hash_of(account_id)], Event::Called { caller: caller.clone(), contract: account_id.clone() }, ); }, @@ -1061,13 +1058,14 @@ where return Ok(()); } - // todo: is this okay? should we bypass if root? - if self.caller_is_root() { - return Ok(()); - } + // If there is no account id, the the origin is root and we don't need to transfer + let caller = match self.caller() { + Caller::Account(caller) => caller, + Caller::Root => return Ok(()), + }; + let value = frame.value_transferred; - let caller = self.ensure_caller()?; - Self::transfer(ExistenceRequirement::KeepAlive, caller, &frame.account_id, value) + Self::transfer(ExistenceRequirement::KeepAlive, &caller, &frame.account_id, value) } /// Reference to the current (top) frame. @@ -1172,7 +1170,7 @@ where let contract_info = top_frame.contract_info().clone(); let account_id = top_frame.account_id.clone(); let value = top_frame.value_transferred; - let caller = self.ensure_caller()?; + let caller = self.caller().account_id()?; let executable = self.push_frame( FrameArgs::Call { dest: account_id, @@ -1269,21 +1267,16 @@ where &self.top_frame().account_id } - fn caller(&self) -> Option<&T::AccountId> { + fn caller(&self) -> Caller { if let Some(caller) = &self.top_frame().delegate_caller { - Some(caller) + Caller::Account(caller.clone()) } else { - self.frames().nth(1).map(|f| Some(&f.account_id)).unwrap_or(match &self.origin { - ContractOrigin::Signed(origin) => Some(&origin), - ContractOrigin::Root => None, - }) - } - } - - fn ensure_caller(&self) -> Result<&T::AccountId, DispatchError> { - match self.caller() { - Some(caller) => Ok(caller), - None => Err(Error::::NoAccountId.into()), + self.frames().nth(1).map(|f| Caller::Account(f.account_id.clone())).unwrap_or( + match &self.origin { + ContractOrigin::Signed(origin) => Caller::Account(origin.clone()), + ContractOrigin::Root => Caller::Root, + }, + ) } } @@ -1300,8 +1293,11 @@ where } fn caller_is_origin(&self) -> bool { - // todo: if both are None, then it is root. Is it okay to return true? - self.caller() == self.origin.account_id() + match (&self.origin, &self.caller()) { + (ContractOrigin::Signed(origin), Caller::Account(caller)) => origin == caller, + (ContractOrigin::Root, Caller::Root) => true, + _ => false, + } } fn caller_is_root(&self) -> bool { @@ -2012,7 +2008,9 @@ mod tests { let bob_ch = MockLoader::insert(Call, |ctx, _| { // Record the caller for bob. - WitnessedCallerBob::mutate(|caller| *caller = Some(ctx.ext.caller().unwrap().clone())); + WitnessedCallerBob::mutate(|caller| { + *caller = Some(ctx.ext.caller().account_id().unwrap().clone()) + }); // Call into CHARLIE contract. assert_matches!(ctx.ext.call(Weight::zero(), CHARLIE, 0, vec![], true), Ok(_)); @@ -2021,7 +2019,7 @@ mod tests { let charlie_ch = MockLoader::insert(Call, |ctx, _| { // Record the caller for charlie. WitnessedCallerCharlie::mutate(|caller| { - *caller = Some(ctx.ext.caller().unwrap().clone()) + *caller = Some(ctx.ext.caller().account_id().unwrap().clone()) }); exec_success() }); @@ -2186,7 +2184,7 @@ mod tests { } #[test] - fn root_caller_traps() { + fn root_caller_succeeds() { let code_bob = MockLoader::insert(Call, |ctx, _| { // root is the origin of the call stack assert!(ctx.ext.caller_is_root()); @@ -2211,12 +2209,12 @@ mod tests { None, Determinism::Enforced, ); - assert_eq!(result, Err(Error::::NoAccountId.into())); + assert_matches!(result, Ok(_)); }); } #[test] - fn caller_is_root_returns_proper_values() { + fn root_caller_succeeds_with_consecutive_calls() { let code_charlie = MockLoader::insert(Call, |ctx, _| { // BOB is not root assert!(!ctx.ext.caller_is_root()); @@ -2472,7 +2470,7 @@ mod tests { &events(), &[ Event::Instantiated { deployer: BOB, contract: instantiated_contract_address }, - Event::Called { caller: ALICE, contract: BOB }, + Event::Called { caller: Caller::from_account_id(ALICE), contract: BOB }, ] ); }); @@ -2528,7 +2526,10 @@ mod tests { // The contract wasn't instantiated so we don't expect to see an instantiation // event here. - assert_eq!(&events(), &[Event::Called { caller: ALICE, contract: BOB },]); + assert_eq!( + &events(), + &[Event::Called { caller: Caller::from_account_id(ALICE), contract: BOB },] + ); }); } @@ -2902,7 +2903,7 @@ mod tests { EventRecord { phase: Phase::Initialization, event: MetaEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: BOB, }), topics: vec![hash(&ALICE), hash(&BOB)], @@ -3002,7 +3003,7 @@ mod tests { EventRecord { phase: Phase::Initialization, event: MetaEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: BOB, }), topics: vec![hash(&ALICE), hash(&BOB)], diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index c9fc9a1c427a1..32c0ac4868d63 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -106,10 +106,10 @@ use crate::{ wasm::{OwnerInfo, PrefabWasmModule, TryInstantiate}, weights::WeightInfo, }; -use codec::{Codec, Encode, HasCompact}; +use codec::{Codec, Decode, Encode, HasCompact}; use environmental::*; use frame_support::{ - dispatch::{Dispatchable, GetDispatchInfo, Pays, PostDispatchInfo}, + dispatch::{DispatchError, Dispatchable, GetDispatchInfo, Pays, PostDispatchInfo}, ensure, traits::{ tokens::fungible::Inspect, ConstU32, Contains, Currency, Get, Randomness, @@ -795,7 +795,7 @@ pub mod pallet { /// rolled back. Called { /// The account that called the `contract`. - caller: T::AccountId, + caller: Caller, /// The contract that was called. contract: T::AccountId, }, @@ -881,6 +881,8 @@ pub mod pallet { StorageDepositNotEnoughFunds, /// More storage was created than allowed by the storage deposit limit. StorageDepositLimitExhausted, + /// The storage deposit limit needs to be specified + StorageDepositLimitRequired, /// Code removal was denied because the code is still in use by at least one contract. CodeInUse, /// The contract ran to completion but decided to revert its storage changes. @@ -899,10 +901,8 @@ pub mod pallet { CodeRejected, /// An indetermistic code was used in a context where this is not permitted. Indeterministic, - /// Root origin is not allowed here. - RootOriginNotAllowed, - /// There is no account id associated - NoAccountId, + /// Root origin is not allowed. + RootOrigin, } /// A mapping from an original code hash to the original code, untouched by instrumentation. @@ -969,17 +969,6 @@ pub enum ContractOrigin { } impl ContractOrigin { - /// Returns the account id of the origin if it is a signed origin. - pub fn account_id(&self) -> Option<&T::AccountId> { - match self { - ContractOrigin::Signed(account) => Some(account), - ContractOrigin::Root => None, - } - } - /// Check if the origin is root - pub fn is_root(&self) -> bool { - matches!(self, ContractOrigin::Root) - } /// Creates a new Signed ContractOrigin from an AccountId pub fn from_account_id(account_id: T::AccountId) -> Self { ContractOrigin::Signed(account_id) @@ -997,6 +986,40 @@ fn contract_ensure_signed_or_root( } } +/// The types of callers supported by the contracts pallet. +#[derive(Clone, Encode, Decode, PartialEq, TypeInfo)] +pub enum Caller { + Account(T::AccountId), + Root, +} + +impl Caller { + /// Creates a new Signed ContractOrigin from an AccountId + pub fn from_account_id(account_id: T::AccountId) -> Self { + Caller::Account(account_id) + } +} + +impl sp_std::fmt::Debug for Caller { + fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { + match self { + Caller::Account(id) => write!(f, "Caller::Account({:?})", id), + Caller::Root => write!(f, "Caller::Root"), + } + } +} + +impl Caller { + /// Returns the account id of the caller if it has one + /// it errors otherwise + pub fn account_id(&self) -> Result { + match self { + Caller::Account(id) => Ok(id.clone()), + Caller::Root => Err(>::RootOrigin.into()), + } + } +} + /// Context of a contract invocation. struct CommonInput<'a, T: Config> { origin: ContractOrigin, @@ -1137,7 +1160,7 @@ impl Invokable for InstantiateInput { ContractOrigin::Signed(t) => t, ContractOrigin::Root => { return Err(ExecError { - error: >::RootOriginNotAllowed.into(), + error: >::RootOrigin.into(), origin: ErrorOrigin::Caller, }) }, diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 2a7d9fae64a6b..58df19cc5312f 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -343,7 +343,7 @@ where match limit { // If the limit is specified, that the root's limit Some(l) => Ok(Self { limit: l, ..Default::default() }), - None => Err(DispatchError::Other("limit must be specified for root origin")), // todo: custom error with doc comment + None => Err(>::StorageDepositLimitRequired.into()), } }, ContractOrigin::Signed(o) => { diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index 146e5fd24ad07..0e7a6d86feded 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -25,8 +25,8 @@ use crate::{ tests::test_utils::{get_contract, get_contract_checked}, wasm::{Determinism, PrefabWasmModule, ReturnCode as RuntimeReturnCode}, weights::WeightInfo, - BalanceOf, Code, CodeStorage, Config, ContractInfo, ContractInfoOf, DefaultAddressGenerator, - DeletionQueue, Error, Pallet, Schedule, + BalanceOf, Caller, Code, CodeStorage, Config, ContractInfo, ContractInfoOf, + DefaultAddressGenerator, DeletionQueue, Error, Pallet, Schedule, }; use assert_matches::assert_matches; use codec::Encode; @@ -961,7 +961,7 @@ fn deploy_and_call_other_contract() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: caller_addr.clone(), + caller: Caller::from_account_id(caller_addr.clone()), contract: callee_addr.clone(), }), topics: vec![hash(&caller_addr), hash(&callee_addr)], @@ -969,7 +969,7 @@ fn deploy_and_call_other_contract() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: caller_addr.clone(), }), topics: vec![hash(&ALICE), hash(&caller_addr)], @@ -1280,7 +1280,7 @@ fn self_destruct_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), topics: vec![hash(&ALICE), hash(&addr)], @@ -2515,8 +2515,8 @@ fn reinstrument_does_charge() { assert!(result2.gas_consumed.ref_time() > result1.gas_consumed.ref_time()); assert_eq!( result2.gas_consumed.ref_time(), - result1.gas_consumed.ref_time() + - ::WeightInfo::reinstrument(code_len).ref_time(), + result1.gas_consumed.ref_time() + + ::WeightInfo::reinstrument(code_len).ref_time(), ); }); } @@ -3452,7 +3452,7 @@ fn storage_deposit_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), topics: vec![hash(&ALICE), hash(&addr)], @@ -3469,7 +3469,7 @@ fn storage_deposit_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), topics: vec![hash(&ALICE), hash(&addr)], @@ -3486,7 +3486,7 @@ fn storage_deposit_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), topics: vec![hash(&ALICE), hash(&addr)], @@ -3888,7 +3888,7 @@ fn set_code_hash() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: contract_addr.clone(), }), topics: vec![hash(&ALICE), hash(&contract_addr)], @@ -3896,7 +3896,7 @@ fn set_code_hash() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: ALICE, + caller: Caller::from_account_id(ALICE), contract: contract_addr.clone(), }), topics: vec![hash(&ALICE), hash(&contract_addr)], diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 6646e6563ff7c..9f7457efab3df 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -370,7 +370,7 @@ mod tests { gas::GasMeter, storage::WriteOutcome, tests::{RuntimeCall, Test, ALICE, BOB}, - BalanceOf, CodeHash, Error, Pallet as Contracts, + BalanceOf, Caller, CodeHash, Error, Pallet as Contracts, }; use assert_matches::assert_matches; use frame_support::{ @@ -544,11 +544,8 @@ mod tests { } Ok(result) } - fn caller(&self) -> Option<&AccountIdOf> { - Some(&ALICE) - } - fn ensure_caller(&self) -> Result<&AccountIdOf, DispatchError> { - Ok(&ALICE) + fn caller(&self) -> Caller { + Caller::from_account_id(ALICE) } fn is_contract(&self, _address: &AccountIdOf) -> bool { true From b3a1ac7474a7e9d99e29ab7458937107b494dc55 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 09:55:29 +0200 Subject: [PATCH 07/53] contracts: improve some comments --- frame/contracts/src/exec.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index dd7ae8b1f3db1..1118da059461f 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -196,8 +196,7 @@ pub trait Ext: sealing::Sealed { take_old: bool, ) -> Result; - /// Returns a reference to the account id of the caller if it has one - /// errors otherwise. + /// Returns the caller fn caller(&self) -> Caller; /// Check if a contract lives at the specified `address`. @@ -1058,7 +1057,7 @@ where return Ok(()); } - // If there is no account id, the the origin is root and we don't need to transfer + // If the caller is root, we don't need to transfer let caller = match self.caller() { Caller::Account(caller) => caller, Caller::Root => return Ok(()), From 0fc1c1daf260e37829426ffbd5b2abb3ea26ea79 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 10:34:59 +0200 Subject: [PATCH 08/53] contracts: improve some comments --- frame/contracts/src/exec.rs | 12 ++++++------ frame/contracts/src/lib.rs | 19 ++++++++++--------- frame/contracts/src/storage/meter.rs | 6 +++--- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 1118da059461f..a73ef0d99ce36 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -836,7 +836,7 @@ where // it can create the account in case the initial transfer is < ed. if entry_point == ExportedFunction::Constructor { let frame = top_frame_mut!(self); - // Root origin is not allowed here + // Root origin is not allowed here. let origin = match &self.origin { ContractOrigin::Signed(origin) => origin, ContractOrigin::Root => return Err(Error::::RootOrigin.into()), @@ -1057,7 +1057,7 @@ where return Ok(()); } - // If the caller is root, we don't need to transfer + // If the caller is root, we don't need to transfer. let caller = match self.caller() { Caller::Account(caller) => caller, Caller::Root => return Ok(()), @@ -2185,7 +2185,7 @@ mod tests { #[test] fn root_caller_succeeds() { let code_bob = MockLoader::insert(Call, |ctx, _| { - // root is the origin of the call stack + // root is the origin of the call stack. assert!(ctx.ext.caller_is_root()); exec_success() }); @@ -2215,15 +2215,15 @@ mod tests { #[test] fn root_caller_succeeds_with_consecutive_calls() { let code_charlie = MockLoader::insert(Call, |ctx, _| { - // BOB is not root + // BOB is not root, even though the origin is root. assert!(!ctx.ext.caller_is_root()); exec_success() }); let code_bob = MockLoader::insert(Call, |ctx, _| { - // root is the origin of the call stack + // root is the origin of the call stack. assert!(ctx.ext.caller_is_root()); - // BOB calls CHARLIE + // BOB calls CHARLIE. ctx.ext.call(Weight::zero(), CHARLIE, 0, vec![], true) }); diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 32c0ac4868d63..cafd52867d0f3 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -794,7 +794,7 @@ pub mod pallet { /// calls. This is because on failure all storage changes including events are /// rolled back. Called { - /// The account that called the `contract`. + /// The caller of the `contract`. caller: Caller, /// The contract that was called. contract: T::AccountId, @@ -959,7 +959,7 @@ pub mod pallet { StorageValue<_, BoundedVec, ValueQuery>; } -/// The types of origin supported by the contracts pallet. +/// The type of origins supported by the contracts pallet. #[derive(Clone)] pub enum ContractOrigin { /// The origin is a regular signed account. @@ -969,14 +969,15 @@ pub enum ContractOrigin { } impl ContractOrigin { - /// Creates a new Signed ContractOrigin from an AccountId + /// Creates a new Signed ContractOrigin from an AccountId. pub fn from_account_id(account_id: T::AccountId) -> Self { ContractOrigin::Signed(account_id) } } /// Helper function to ensure that the origin is either a regular signed account or root -/// and return the origin as a `ContractOrigin`. +/// and returns the it as a `ContractOrigin`, if it is one of those. +/// It errors otherwise. fn contract_ensure_signed_or_root( origin: T::RuntimeOrigin, ) -> Result, BadOrigin> { @@ -986,7 +987,7 @@ fn contract_ensure_signed_or_root( } } -/// The types of callers supported by the contracts pallet. +/// The type of callers supported by the contracts pallet. #[derive(Clone, Encode, Decode, PartialEq, TypeInfo)] pub enum Caller { Account(T::AccountId), @@ -994,7 +995,7 @@ pub enum Caller { } impl Caller { - /// Creates a new Signed ContractOrigin from an AccountId + /// Creates a new Signed ContractOrigin from an AccountId. pub fn from_account_id(account_id: T::AccountId) -> Self { Caller::Account(account_id) } @@ -1010,8 +1011,8 @@ impl sp_std::fmt::Debug for Caller { } impl Caller { - /// Returns the account id of the caller if it has one - /// it errors otherwise + /// Returns the account id of the caller if it has one. + /// It errors otherwise. pub fn account_id(&self) -> Result { match self { Caller::Account(id) => Ok(id.clone()), @@ -1155,7 +1156,7 @@ impl Invokable for InstantiateInput { ) -> InternalOutput { let mut storage_deposit = Default::default(); let try_exec = || { - // Root origin is not allowed here + // Root origin is not allowed here. let origin = match &common.origin { ContractOrigin::Signed(t) => t, ContractOrigin::Root => { diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 58df19cc5312f..8c1135ea9f4d3 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -337,11 +337,11 @@ where limit: Option>, min_leftover: BalanceOf, ) -> Result { - // Check the limit only if the origin is not root + // Check the limit only if the origin is not root. return match origin { ContractOrigin::Root => { match limit { - // If the limit is specified, that the root's limit + // If the limit is specified, that the root's limit. Some(l) => Ok(Self { limit: l, ..Default::default() }), None => Err(>::StorageDepositLimitRequired.into()), } @@ -360,7 +360,7 @@ where /// This drops the root meter in order to make sure it is only called when the whole /// execution did finish. pub fn into_deposit(self, origin: &ContractOrigin) -> DepositOf { - // Only refund or charge deposit if the origin is not root + // Only refund or charge deposit if the origin is not root. let origin = match origin { ContractOrigin::Root => return self.total_deposit, ContractOrigin::Signed(o) => o, From e4aeec9fcc2e7a50059966522023b8bde9ded412 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 11:25:45 +0200 Subject: [PATCH 09/53] contracts: format code with +nightly --- frame/contracts/src/exec.rs | 35 ++++++++++++++-------------- frame/contracts/src/lib.rs | 12 ++++------ frame/contracts/src/storage/meter.rs | 32 +++++++++++-------------- frame/contracts/src/tests.rs | 4 ++-- frame/contracts/src/wasm/mod.rs | 5 ++-- 5 files changed, 40 insertions(+), 48 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index a73ef0d99ce36..83331da64d572 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -764,11 +764,11 @@ where // `Relaxed` will only be ever set in case of off-chain execution. // Instantiations are never allowed even when executing off-chain. - if !(executable.is_deterministic() - || (matches!(determinism, Determinism::Relaxed) - && matches!(entry_point, ExportedFunction::Call))) + if !(executable.is_deterministic() || + (matches!(determinism, Determinism::Relaxed) && + matches!(entry_point, ExportedFunction::Call))) { - return Err(Error::::Indeterministic.into()); + return Err(Error::::Indeterministic.into()) } let frame = Frame { @@ -793,7 +793,7 @@ where gas_limit: Weight, ) -> Result { if self.frames.len() == T::CallStack::size() { - return Err(Error::::MaxCallDepthReached.into()); + return Err(Error::::MaxCallDepthReached.into()) } // We need to make sure that changes made to the contract info are not discarded. @@ -858,7 +858,7 @@ where // Avoid useless work that would be reverted anyways. if output.did_revert() { - return Ok(output); + return Ok(output) } // Storage limit is enforced as late as possible (when the last frame returns) so that @@ -876,7 +876,7 @@ where (ExportedFunction::Constructor, _) => { // It is not allowed to terminate a contract inside its constructor. if matches!(frame.contract_info, CachedContract::Terminated(_)) { - return Err(Error::::TerminatedInConstructor.into()); + return Err(Error::::TerminatedInConstructor.into()) } let caller = &self.caller().account_id()?; @@ -918,9 +918,8 @@ where with_transaction(|| -> TransactionOutcome> { let output = do_transaction(); match &output { - Ok(result) if !result.did_revert() => { - TransactionOutcome::Commit(Ok((true, output))) - }, + Ok(result) if !result.did_revert() => + TransactionOutcome::Commit(Ok((true, output))), _ => TransactionOutcome::Rollback(Ok((false, output))), } }); @@ -962,7 +961,7 @@ where // Only gas counter changes are persisted in case of a failure. if !persist { - return; + return } // Record the storage meter changes of the nested call into the parent meter. @@ -991,7 +990,7 @@ where // trigger a rollback. if prev.account_id == *account_id { prev.contract_info = CachedContract::Cached(contract); - return; + return } // Predecessor is a different contract: We persist the info and invalidate the first @@ -1014,7 +1013,7 @@ where } self.gas_meter.absorb_nested(mem::take(&mut self.first_frame.nested_gas)); if !persist { - return; + return } let deposit_account = self.first_frame.contract_info.deposit_account().expect( "Is only `None` when the info is invalidated. The first frame can't be invalidated. @@ -1054,7 +1053,7 @@ where // If it is a delegate call, then we've already transferred tokens in the // last non-delegate frame. if frame.delegate_caller.is_some() { - return Ok(()); + return Ok(()) } // If the caller is root, we don't need to transfer. @@ -1130,7 +1129,7 @@ where let try_call = || { if !self.allows_reentry(&to) { - return Err(>::ReentranceDenied.into()); + return Err(>::ReentranceDenied.into()) } // We ignore instantiate frames in our search for a cached contract. // Otherwise it would be possible to recursively call a contract from its own @@ -1210,7 +1209,7 @@ where fn terminate(&mut self, beneficiary: &AccountIdOf) -> Result<(), DispatchError> { use frame_support::traits::fungible::Inspect; if self.is_recursive() { - return Err(Error::::TerminatedWhileReentrant.into()); + return Err(Error::::TerminatedWhileReentrant.into()) } let frame = self.top_frame_mut(); let info = frame.terminate(); @@ -1302,7 +1301,7 @@ where fn caller_is_root(&self) -> bool { // it the caller isn't origin, then it can't be root. if !self.caller_is_origin() { - return false; + return false } matches!(self.origin, ContractOrigin::Root) } @@ -1394,7 +1393,7 @@ where fn set_code_hash(&mut self, hash: CodeHash) -> Result<(), DispatchError> { let frame = top_frame_mut!(self); if !E::from_storage(hash, self.schedule, &mut frame.nested_gas)?.is_deterministic() { - return Err(>::Indeterministic.into()); + return Err(>::Indeterministic.into()) } E::add_user(hash)?; let prev_hash = frame.contract_info().code_hash; diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index cafd52867d0f3..280cfbbf523bc 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -571,7 +571,7 @@ pub mod pallet { let contract = if let Some(contract) = contract { contract } else { - return Err(>::ContractNotFound.into()); + return Err(>::ContractNotFound.into()) }; >::add_user(code_hash)?; >::remove_user(contract.code_hash); @@ -1120,13 +1120,12 @@ impl Invokable for CallInput { let mut storage_meter = match StorageMeter::new(&common.origin, common.storage_deposit_limit, common.value) { Ok(meter) => meter, - Err(err) => { + Err(err) => return InternalOutput { result: Err(err.into()), gas_meter, storage_deposit: Default::default(), - } - }, + }, }; let schedule = T::Schedule::get(); let CallInput { dest, determinism } = self; @@ -1159,12 +1158,11 @@ impl Invokable for InstantiateInput { // Root origin is not allowed here. let origin = match &common.origin { ContractOrigin::Signed(t) => t, - ContractOrigin::Root => { + ContractOrigin::Root => return Err(ExecError { error: >::RootOrigin.into(), origin: ErrorOrigin::Caller, - }) - }, + }), }; let schedule = T::Schedule::get(); let (extra_deposit, executable) = match &self.code { diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 8c1135ea9f4d3..e24252bcad9a9 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -158,7 +158,7 @@ impl Diff { } else { debug_assert_eq!(self.bytes_removed, 0); debug_assert_eq!(self.items_removed, 0); - return bytes_deposit.saturating_add(&items_deposit); + return bytes_deposit.saturating_add(&items_deposit) }; // Refunds are calculated pro rata based on the accumulated storage within the contract @@ -181,20 +181,16 @@ impl Diff { info.storage_items = info.storage_items.saturating_add(items_added).saturating_sub(items_removed); match &bytes_deposit { - Deposit::Charge(amount) => { - info.storage_byte_deposit = info.storage_byte_deposit.saturating_add(*amount) - }, - Deposit::Refund(amount) => { - info.storage_byte_deposit = info.storage_byte_deposit.saturating_sub(*amount) - }, + Deposit::Charge(amount) => + info.storage_byte_deposit = info.storage_byte_deposit.saturating_add(*amount), + Deposit::Refund(amount) => + info.storage_byte_deposit = info.storage_byte_deposit.saturating_sub(*amount), } match &items_deposit { - Deposit::Charge(amount) => { - info.storage_item_deposit = info.storage_item_deposit.saturating_add(*amount) - }, - Deposit::Refund(amount) => { - info.storage_item_deposit = info.storage_item_deposit.saturating_sub(*amount) - }, + Deposit::Charge(amount) => + info.storage_item_deposit = info.storage_item_deposit.saturating_add(*amount), + Deposit::Refund(amount) => + info.storage_item_deposit = info.storage_item_deposit.saturating_sub(*amount), } bytes_deposit.saturating_add(&items_deposit) @@ -350,7 +346,7 @@ where let limit = E::check_limit(o, limit, min_leftover)?; Ok(Self { limit, ..Default::default() }) }, - }; + } } /// The total amount of deposit that should change hands as result of the execution @@ -411,7 +407,7 @@ where // We also add another `ed` here which goes to the contract's own account into existence. deposit = deposit.max(Deposit::Charge(ed)).saturating_add(&Deposit::Charge(ed)); if deposit.charge_or_zero() > self.limit { - return Err(>::StorageDepositLimitExhausted.into()); + return Err(>::StorageDepositLimitExhausted.into()) } // We do not increase `own_contribution` because this will be charged later when the @@ -465,7 +461,7 @@ where } if let Deposit::Charge(amount) = total_deposit { if amount > self.limit { - return Err(>::StorageDepositLimitExhausted.into()); + return Err(>::StorageDepositLimitExhausted.into()) } } Ok(()) @@ -486,8 +482,8 @@ impl Ext for ReservingExt { .saturating_sub(Pallet::::min_balance()); let limit = limit.unwrap_or(max); ensure!( - limit <= max - && matches!(T::Currency::can_withdraw(origin, limit), WithdrawConsequence::Success), + limit <= max && + matches!(T::Currency::can_withdraw(origin, limit), WithdrawConsequence::Success), >::StorageDepositNotEnoughFunds, ); Ok(limit) diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index 0e7a6d86feded..f22f5ec458999 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -2515,8 +2515,8 @@ fn reinstrument_does_charge() { assert!(result2.gas_consumed.ref_time() > result1.gas_consumed.ref_time()); assert_eq!( result2.gas_consumed.ref_time(), - result1.gas_consumed.ref_time() - + ::WeightInfo::reinstrument(code_len).ref_time(), + result1.gas_consumed.ref_time() + + ::WeightInfo::reinstrument(code_len).ref_time(), ); }); } diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 9f7457efab3df..2efaccf3c3a87 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -534,9 +534,8 @@ mod tests { let entry = self.storage.entry(key.clone()); let result = match (entry, take_old) { (Entry::Vacant(_), _) => WriteOutcome::New, - (Entry::Occupied(entry), false) => { - WriteOutcome::Overwritten(entry.remove().len() as u32) - }, + (Entry::Occupied(entry), false) => + WriteOutcome::Overwritten(entry.remove().len() as u32), (Entry::Occupied(entry), true) => WriteOutcome::Taken(entry.remove()), }; if let Some(value) = value { From f31b50d98554ae922bb8f5d9a065c0249dc8dbae Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 15:31:23 +0200 Subject: [PATCH 10/53] contracts: fix failing tests --- frame/contracts/src/exec.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 83331da64d572..4f9063db01943 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -2904,7 +2904,7 @@ mod tests { caller: Caller::from_account_id(ALICE), contract: BOB, }), - topics: vec![hash(&ALICE), hash(&BOB)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&BOB)], }, ] ); @@ -3004,7 +3004,7 @@ mod tests { caller: Caller::from_account_id(ALICE), contract: BOB, }), - topics: vec![hash(&ALICE), hash(&BOB)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&BOB)], }, ] ); From 29364391a39040049bfeb437a29b02cb492e4b01 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 16:21:40 +0200 Subject: [PATCH 11/53] contracts: improve charte instantiate call when root origin --- frame/contracts/src/exec.rs | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 4f9063db01943..c19bd5290c3a5 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -834,19 +834,19 @@ where let do_transaction = || { // We need to charge the storage deposit before the initial transfer so that // it can create the account in case the initial transfer is < ed. - if entry_point == ExportedFunction::Constructor { - let frame = top_frame_mut!(self); - // Root origin is not allowed here. - let origin = match &self.origin { - ContractOrigin::Signed(origin) => origin, - ContractOrigin::Root => return Err(Error::::RootOrigin.into()), - }; - frame.nested_storage.charge_instantiate( - origin, - &frame.account_id, - frame.contract_info.get(&frame.account_id), - )?; - } + // Also, we can only charge the storage deposit if there is an account id asociated with + // the origin, if the origin is Root there is no storage deposit to charge. + match (entry_point, &self.origin) { + (ExportedFunction::Constructor, ContractOrigin::Signed(origin)) => { + let frame = top_frame_mut!(self); + frame.nested_storage.charge_instantiate( + origin, + &frame.account_id, + frame.contract_info.get(&frame.account_id), + )?; + }, + _ => (), + }; // Every non delegate call or instantiate also optionally transfers the balance. self.initial_transfer()?; @@ -1056,11 +1056,9 @@ where return Ok(()) } + // Get the account id from the Caller. // If the caller is root, we don't need to transfer. - let caller = match self.caller() { - Caller::Account(caller) => caller, - Caller::Root => return Ok(()), - }; + let Caller::Account(caller) = self.caller() else { return Ok(()) }; let value = frame.value_transferred; Self::transfer(ExistenceRequirement::KeepAlive, &caller, &frame.account_id, value) @@ -1299,7 +1297,7 @@ where } fn caller_is_root(&self) -> bool { - // it the caller isn't origin, then it can't be root. + // if the caller isn't origin, then it can't be root. if !self.caller_is_origin() { return false } From aa91b3b20697e34a2f426ef3dec2063a239ca352 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 16:48:10 +0200 Subject: [PATCH 12/53] contract: refactor common, call and instantiate inputs --- frame/contracts/src/lib.rs | 52 +++++++++++++++----------------------- 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 280cfbbf523bc..71b80e26e4b0e 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -618,15 +618,14 @@ pub mod pallet { let origin = contract_ensure_signed_or_root(origin)?; let dest = T::Lookup::lookup(dest)?; let common = CommonInput { - origin, value, data, gas_limit, storage_deposit_limit: storage_deposit_limit.map(Into::into), debug_message: None, }; - let mut output = - CallInput:: { dest, determinism: Determinism::Enforced }.run_guarded(common); + let mut output = CallInput:: { origin, dest, determinism: Determinism::Enforced } + .run_guarded(common); if let Ok(retval) = &output.result { if retval.did_revert() { output.result = Err(>::ContractReverted.into()); @@ -675,20 +674,19 @@ pub mod pallet { data: Vec, salt: Vec, ) -> DispatchResultWithPostInfo { - let origin = ContractOrigin::from_account_id(ensure_signed(origin)?); + let origin = ensure_signed(origin)?; let code_len = code.len() as u32; let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { - origin, value, data, gas_limit, storage_deposit_limit: storage_deposit_limit.map(Into::into), debug_message: None, }; - let mut output = - InstantiateInput:: { code: Code::Upload(code), salt }.run_guarded(common); + let mut output = InstantiateInput:: { origin, code: Code::Upload(code), salt } + .run_guarded(common); if let Ok(retval) = &output.result { if retval.1.did_revert() { output.result = Err(>::ContractReverted.into()); @@ -718,11 +716,10 @@ pub mod pallet { data: Vec, salt: Vec, ) -> DispatchResultWithPostInfo { - let origin = ContractOrigin::from_account_id(ensure_signed(origin)?); + let origin = ensure_signed(origin)?; let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { - origin, value, data, gas_limit, @@ -730,7 +727,8 @@ pub mod pallet { debug_message: None, }; let mut output = - InstantiateInput:: { code: Code::Existing(code_hash), salt }.run_guarded(common); + InstantiateInput:: { origin, code: Code::Existing(code_hash), salt } + .run_guarded(common); if let Ok(retval) = &output.result { if retval.1.did_revert() { output.result = Err(>::ContractReverted.into()); @@ -1023,7 +1021,6 @@ impl Caller { /// Context of a contract invocation. struct CommonInput<'a, T: Config> { - origin: ContractOrigin, value: BalanceOf, data: Vec, gas_limit: Weight, @@ -1033,12 +1030,14 @@ struct CommonInput<'a, T: Config> { /// Input specific to a call into contract. struct CallInput { + origin: ContractOrigin, dest: T::AccountId, determinism: Determinism, } /// Input specific to a contract instantiation invocation. struct InstantiateInput { + origin: T::AccountId, code: Code>, salt: Vec, } @@ -1117,8 +1116,9 @@ impl Invokable for CallInput { common: CommonInput, mut gas_meter: GasMeter, ) -> InternalOutput { + let CallInput { origin, dest, determinism } = self; let mut storage_meter = - match StorageMeter::new(&common.origin, common.storage_deposit_limit, common.value) { + match StorageMeter::new(&origin, common.storage_deposit_limit, common.value) { Ok(meter) => meter, Err(err) => return InternalOutput { @@ -1128,8 +1128,7 @@ impl Invokable for CallInput { }, }; let schedule = T::Schedule::get(); - let CallInput { dest, determinism } = self; - let CommonInput { origin, value, data, debug_message, .. } = common; + let CommonInput { value, data, debug_message, .. } = common; let result = ExecStack::>::run_call( origin.clone(), dest.clone(), @@ -1155,16 +1154,8 @@ impl Invokable for InstantiateInput { ) -> InternalOutput { let mut storage_deposit = Default::default(); let try_exec = || { - // Root origin is not allowed here. - let origin = match &common.origin { - ContractOrigin::Signed(t) => t, - ContractOrigin::Root => - return Err(ExecError { - error: >::RootOrigin.into(), - origin: ErrorOrigin::Caller, - }), - }; let schedule = T::Schedule::get(); + let InstantiateInput { origin, salt, .. } = self; let (extra_deposit, executable) = match &self.code { Code::Upload(binary) => { let executable = PrefabWasmModule::from_code( @@ -1192,14 +1183,14 @@ impl Invokable for InstantiateInput { PrefabWasmModule::from_storage(*hash, &schedule, &mut gas_meter)?, ), }; + let contract_origin = ContractOrigin::from_account_id(origin.clone()); let mut storage_meter = StorageMeter::new( - &common.origin, + &contract_origin, common.storage_deposit_limit, common.value.saturating_add(extra_deposit), )?; - let InstantiateInput { salt, .. } = self; - let CommonInput { origin: _, value, data, debug_message, .. } = common; + let CommonInput { value, data, debug_message, .. } = common; let result = ExecStack::>::run_instantiate( origin.clone(), executable, @@ -1212,7 +1203,7 @@ impl Invokable for InstantiateInput { debug_message, ); storage_deposit = storage_meter - .into_deposit(&common.origin) + .into_deposit(&contract_origin) .saturating_add(&StorageDeposit::Charge(extra_deposit)); result }; @@ -1246,14 +1237,13 @@ impl Pallet { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; let origin = ContractOrigin::from_account_id(origin); let common = CommonInput { - origin, value, data, gas_limit, storage_deposit_limit, debug_message: debug_message.as_mut(), }; - let output = CallInput:: { dest, determinism }.run_guarded(common); + let output = CallInput:: { origin, dest, determinism }.run_guarded(common); ContractExecResult { result: output.result.map_err(|r| r.error), gas_consumed: output.gas_meter.gas_consumed(), @@ -1286,16 +1276,14 @@ impl Pallet { debug: bool, ) -> ContractInstantiateResult> { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; - let origin = ContractOrigin::from_account_id(origin); let common = CommonInput { - origin, value, data, gas_limit, storage_deposit_limit, debug_message: debug_message.as_mut(), }; - let output = InstantiateInput:: { code, salt }.run_guarded(common); + let output = InstantiateInput:: { origin, code, salt }.run_guarded(common); ContractInstantiateResult { result: output .result From 99bfe7c1bfc3f2daee7dd8364d31e1b6a718aec5 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 28 Mar 2023 19:01:22 +0200 Subject: [PATCH 13/53] contracts: fix some failing test --- frame/contracts/src/tests.rs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index f22f5ec458999..f6d83681670ad 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -964,7 +964,10 @@ fn deploy_and_call_other_contract() { caller: Caller::from_account_id(caller_addr.clone()), contract: callee_addr.clone(), }), - topics: vec![hash(&caller_addr), hash(&callee_addr)], + topics: vec![ + hash(&Caller::::from_account_id(caller_addr.clone())), + hash(&callee_addr) + ], }, EventRecord { phase: Phase::Initialization, @@ -972,7 +975,7 @@ fn deploy_and_call_other_contract() { caller: Caller::from_account_id(ALICE), contract: caller_addr.clone(), }), - topics: vec![hash(&ALICE), hash(&caller_addr)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&caller_addr)], }, ] ); @@ -1283,7 +1286,7 @@ fn self_destruct_works() { caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&ALICE), hash(&addr)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3455,7 +3458,7 @@ fn storage_deposit_works() { caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&ALICE), hash(&addr)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3472,7 +3475,7 @@ fn storage_deposit_works() { caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&ALICE), hash(&addr)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3489,7 +3492,7 @@ fn storage_deposit_works() { caller: Caller::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&ALICE), hash(&addr)], + topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3891,7 +3894,10 @@ fn set_code_hash() { caller: Caller::from_account_id(ALICE), contract: contract_addr.clone(), }), - topics: vec![hash(&ALICE), hash(&contract_addr)], + topics: vec![ + hash(&Caller::::from_account_id(ALICE)), + hash(&contract_addr) + ], }, EventRecord { phase: Phase::Initialization, @@ -3899,7 +3905,10 @@ fn set_code_hash() { caller: Caller::from_account_id(ALICE), contract: contract_addr.clone(), }), - topics: vec![hash(&ALICE), hash(&contract_addr)], + topics: vec![ + hash(&Caller::::from_account_id(ALICE)), + hash(&contract_addr) + ], }, ], ); From 4566e2cbab9e418c75bc28f40a9df1f9574a7e3c Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 29 Mar 2023 17:20:00 +0200 Subject: [PATCH 14/53] contracts: trap caller when there is no account id --- frame/contracts/src/exec.rs | 5 ++++- frame/contracts/src/wasm/mod.rs | 14 +++++++++++++- frame/contracts/src/wasm/runtime.rs | 3 ++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index c19bd5290c3a5..8edc5331d996a 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -1058,7 +1058,10 @@ where // Get the account id from the Caller. // If the caller is root, we don't need to transfer. - let Caller::Account(caller) = self.caller() else { return Ok(()) }; + let caller = match self.caller() { + Caller::Account(caller) => caller, + Caller::Root => return Ok(()), + }; let value = frame.value_transferred; Self::transfer(ExistenceRequirement::KeepAlive, &caller, &frame.account_id, value) diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 2efaccf3c3a87..392d5c5b1cbf0 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -437,6 +437,7 @@ mod tests { debug_buffer: Vec, ecdsa_recover: RefCell>, code_hashes: Vec>, + caller: Caller, } /// The call is mocked and just returns this hardcoded value. @@ -460,6 +461,7 @@ mod tests { gas_meter: GasMeter::new(Weight::from_parts(10_000_000_000, 10 * 1024 * 1024)), debug_buffer: Default::default(), ecdsa_recover: Default::default(), + caller: Caller::Account(ALICE), } } } @@ -544,7 +546,7 @@ mod tests { Ok(result) } fn caller(&self) -> Caller { - Caller::from_account_id(ALICE) + self.caller.clone() } fn is_contract(&self, _address: &AccountIdOf) -> bool { true @@ -1449,6 +1451,16 @@ mod tests { assert_ok!(execute(CODE_CALLER, vec![], MockExt::default())); } + #[test] + fn caller_traps_when_no_account_id() { + let mut ext = MockExt::default(); + ext.caller = Caller::Root; + assert_eq!( + execute(CODE_CALLER, vec![], ext), + Err(ExecError { error: Error::::RootOrigin.into(), origin: ErrorOrigin::Caller }) + ); + } + /// calls `seal_address` and compares the result with the constant (BOB's address part). const CODE_ADDRESS: &str = r#" (module diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 88b5b87dda411..bc64a7fbe2bf1 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1631,11 +1631,12 @@ pub mod env { #[prefixed_alias] fn caller(ctx: _, memory: _, out_ptr: u32, out_len_ptr: u32) -> Result<(), TrapReason> { ctx.charge_gas(RuntimeCosts::Caller)?; + let caller = ctx.ext.caller().account_id()?; Ok(ctx.write_sandbox_output( memory, out_ptr, out_len_ptr, - &ctx.ext.caller().encode(), + &caller.encode(), false, already_charged, )?) From ed9550e6d3e542778c0b8b2cb96f6edb604130ca Mon Sep 17 00:00:00 2001 From: juangirini Date: Thu, 30 Mar 2023 09:32:48 +0200 Subject: [PATCH 15/53] Update frame/contracts/src/lib.rs Co-authored-by: PG Herveou --- frame/contracts/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 71b80e26e4b0e..18ec0174fe057 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -974,7 +974,7 @@ impl ContractOrigin { } /// Helper function to ensure that the origin is either a regular signed account or root -/// and returns the it as a `ContractOrigin`, if it is one of those. +/// and returns it as a `ContractOrigin`, if it is one of those. /// It errors otherwise. fn contract_ensure_signed_or_root( origin: T::RuntimeOrigin, From 14218198bd83ebe207ba19f17f58893dcb664cd0 Mon Sep 17 00:00:00 2001 From: juangirini Date: Thu, 30 Mar 2023 09:38:06 +0200 Subject: [PATCH 16/53] Update frame/contracts/src/exec.rs Co-authored-by: PG Herveou --- frame/contracts/src/exec.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 8edc5331d996a..a00f752510d83 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -834,7 +834,7 @@ where let do_transaction = || { // We need to charge the storage deposit before the initial transfer so that // it can create the account in case the initial transfer is < ed. - // Also, we can only charge the storage deposit if there is an account id asociated with + // Also, we can only charge the storage deposit if there is an account id associated with // the origin, if the origin is Root there is no storage deposit to charge. match (entry_point, &self.origin) { (ExportedFunction::Constructor, ContractOrigin::Signed(origin)) => { From 8fb4971d573a5c33a198d092e5affab45ac99426 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Thu, 30 Mar 2023 10:04:17 +0200 Subject: [PATCH 17/53] contracts: make `into_deposit` return zero when the origin is root --- frame/contracts/src/storage/meter.rs | 82 +++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index e24252bcad9a9..4711de58a5984 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -32,7 +32,10 @@ use frame_support::{ DefaultNoBound, RuntimeDebugNoBound, }; use pallet_contracts_primitives::StorageDeposit as Deposit; -use sp_runtime::{traits::Saturating, FixedPointNumber, FixedU128}; +use sp_runtime::{ + traits::{Saturating, Zero}, + FixedPointNumber, FixedU128, +}; use sp_std::{marker::PhantomData, vec::Vec}; /// Deposit that uses the native currency's balance type. @@ -358,7 +361,7 @@ where pub fn into_deposit(self, origin: &ContractOrigin) -> DepositOf { // Only refund or charge deposit if the origin is not root. let origin = match origin { - ContractOrigin::Root => return self.total_deposit, + ContractOrigin::Root => return Deposit::Charge(Zero::zero()), ContractOrigin::Signed(o) => o, }; @@ -773,6 +776,49 @@ mod tests { ) } + #[test] + fn charging_works_for_root() { + clear_ext(); + + let mut meter = TestMeter::new(&ContractOrigin::Root, Some(100), 0).unwrap(); + assert_eq!(meter.available(), 100); + + let mut nested0_info = + new_info(StorageInfo { bytes: 100, items: 5, bytes_deposit: 100, items_deposit: 10 }); + let mut nested0 = meter.nested(); + nested0.charge(&Diff { + bytes_added: 108, + bytes_removed: 5, + items_added: 1, + items_removed: 2, + }); + nested0.charge(&Diff { bytes_removed: 99, ..Default::default() }); + + let mut nested1_info = + new_info(StorageInfo { bytes: 100, items: 10, bytes_deposit: 100, items_deposit: 20 }); + let mut nested1 = nested0.nested(); + nested1.charge(&Diff { items_removed: 5, ..Default::default() }); + nested0.absorb(nested1, DepositAccount(CHARLIE), Some(&mut nested1_info)); + + let mut nested2_info = + new_info(StorageInfo { bytes: 100, items: 7, bytes_deposit: 100, items_deposit: 20 }); + let mut nested2 = nested0.nested(); + nested2.charge(&Diff { items_removed: 7, ..Default::default() }); + nested0.absorb(nested2, DepositAccount(CHARLIE), Some(&mut nested2_info)); + + nested0.enforce_limit(Some(&mut nested0_info)).unwrap(); + meter.absorb(nested0, DepositAccount(BOB), Some(&mut nested0_info)); + + let deposit = meter.into_deposit(&ContractOrigin::Root); + assert_eq!(deposit, Deposit::Charge(Zero::zero())); + + assert_eq!(nested0_info.extra_deposit(), 112); + assert_eq!(nested1_info.extra_deposit(), 110); + assert_eq!(nested2_info.extra_deposit(), 100); + + assert_eq!(TestExtTestValue::get(), TestExt { limit_checks: vec![], charges: vec![] }) + } + #[test] fn termination_works() { clear_ext(); @@ -823,4 +869,36 @@ mod tests { } ) } + + #[test] + fn termination_works_for_root() { + clear_ext(); + + let mut meter = TestMeter::new(&ContractOrigin::Root, Some(1_000), 0).unwrap(); + assert_eq!(meter.available(), 1_000); + + let mut nested0 = meter.nested(); + nested0.charge(&Diff { + bytes_added: 5, + bytes_removed: 1, + items_added: 3, + items_removed: 1, + }); + nested0.charge(&Diff { items_added: 2, ..Default::default() }); + + let mut nested1_info = + new_info(StorageInfo { bytes: 100, items: 10, bytes_deposit: 100, items_deposit: 20 }); + let mut nested1 = nested0.nested(); + nested1.charge(&Diff { items_removed: 5, ..Default::default() }); + nested1.charge(&Diff { bytes_added: 20, ..Default::default() }); + nested1.terminate(&nested1_info); + nested0.enforce_limit(Some(&mut nested1_info)).unwrap(); + nested0.absorb(nested1, DepositAccount(CHARLIE), None); + + meter.absorb(nested0, DepositAccount(BOB), None); + let deposit = meter.into_deposit(&ContractOrigin::Root); + assert_eq!(deposit, Deposit::Charge(Zero::zero())); + + assert_eq!(TestExtTestValue::get(), TestExt { limit_checks: vec![], charges: vec![] }) + } } From 0eaaebddf52ea3fbc5a6861e6615e45442084f93 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Thu, 30 Mar 2023 13:01:45 +0200 Subject: [PATCH 18/53] contracts: cargo fmt --- frame/contracts/src/exec.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index a00f752510d83..c323fe508f284 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -834,8 +834,8 @@ where let do_transaction = || { // We need to charge the storage deposit before the initial transfer so that // it can create the account in case the initial transfer is < ed. - // Also, we can only charge the storage deposit if there is an account id associated with - // the origin, if the origin is Root there is no storage deposit to charge. + // Also, we can only charge the storage deposit if there is an account id associated + // with the origin, if the origin is Root there is no storage deposit to charge. match (entry_point, &self.origin) { (ExportedFunction::Constructor, ContractOrigin::Signed(origin)) => { let frame = top_frame_mut!(self); From 05f00ac336850604c576d614fb197432ea6ef1e9 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Thu, 30 Mar 2023 17:16:23 +0200 Subject: [PATCH 19/53] contracts: charging and terminating tests refactored --- frame/contracts/src/storage/meter.rs | 317 ++++++++++++--------------- 1 file changed, 143 insertions(+), 174 deletions(-) diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 4711de58a5984..32cfd6a59a986 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -650,6 +650,12 @@ mod tests { TestExtTestValue::mutate(|ext| ext.clear()) } + struct ChargingTestCase { + origin: ContractOrigin, + deposit: DepositOf, + expected: TestExt, + } + #[derive(Default)] struct StorageInfo { bytes: u32, @@ -710,195 +716,158 @@ mod tests { #[test] fn charging_works() { - clear_ext(); + let test_cases = vec![ + ChargingTestCase { + origin: ContractOrigin::::from_account_id(ALICE), + deposit: Deposit::Refund(28), + expected: TestExt { + limit_checks: vec![LimitCheck { origin: ALICE, limit: 100, min_leftover: 0 }], + charges: vec![ + Charge { + origin: ALICE, + contract: DepositAccount(CHARLIE), + amount: Deposit::Refund(10), + terminated: false, + }, + Charge { + origin: ALICE, + contract: DepositAccount(CHARLIE), + amount: Deposit::Refund(20), + terminated: false, + }, + Charge { + origin: ALICE, + contract: DepositAccount(BOB), + amount: Deposit::Charge(2), + terminated: false, + }, + ], + }, + }, + ChargingTestCase { + origin: ContractOrigin::::Root, + deposit: Deposit::Charge(0), + expected: TestExt { limit_checks: vec![], charges: vec![] }, + }, + ]; - let mut meter = - TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(100), 0).unwrap(); - assert_eq!(meter.available(), 100); + for test_case in test_cases { + clear_ext(); - let mut nested0_info = - new_info(StorageInfo { bytes: 100, items: 5, bytes_deposit: 100, items_deposit: 10 }); - let mut nested0 = meter.nested(); - nested0.charge(&Diff { - bytes_added: 108, - bytes_removed: 5, - items_added: 1, - items_removed: 2, - }); - nested0.charge(&Diff { bytes_removed: 99, ..Default::default() }); - - let mut nested1_info = - new_info(StorageInfo { bytes: 100, items: 10, bytes_deposit: 100, items_deposit: 20 }); - let mut nested1 = nested0.nested(); - nested1.charge(&Diff { items_removed: 5, ..Default::default() }); - nested0.absorb(nested1, DepositAccount(CHARLIE), Some(&mut nested1_info)); - - let mut nested2_info = - new_info(StorageInfo { bytes: 100, items: 7, bytes_deposit: 100, items_deposit: 20 }); - let mut nested2 = nested0.nested(); - nested2.charge(&Diff { items_removed: 7, ..Default::default() }); - nested0.absorb(nested2, DepositAccount(CHARLIE), Some(&mut nested2_info)); - - nested0.enforce_limit(Some(&mut nested0_info)).unwrap(); - meter.absorb(nested0, DepositAccount(BOB), Some(&mut nested0_info)); - - meter.into_deposit(&ContractOrigin::from_account_id(ALICE)); - - assert_eq!(nested0_info.extra_deposit(), 112); - assert_eq!(nested1_info.extra_deposit(), 110); - assert_eq!(nested2_info.extra_deposit(), 100); + let mut meter = TestMeter::new(&test_case.origin, Some(100), 0).unwrap(); + assert_eq!(meter.available(), 100); - assert_eq!( - TestExtTestValue::get(), - TestExt { - limit_checks: vec![LimitCheck { origin: ALICE, limit: 100, min_leftover: 0 }], - charges: vec![ - Charge { - origin: ALICE, - contract: DepositAccount(CHARLIE), - amount: Deposit::Refund(10), - terminated: false - }, - Charge { - origin: ALICE, - contract: DepositAccount(CHARLIE), - amount: Deposit::Refund(20), - terminated: false - }, - Charge { - origin: ALICE, - contract: DepositAccount(BOB), - amount: Deposit::Charge(2), - terminated: false - } - ] - } - ) - } + let mut nested0_info = new_info(StorageInfo { + bytes: 100, + items: 5, + bytes_deposit: 100, + items_deposit: 10, + }); + let mut nested0 = meter.nested(); + nested0.charge(&Diff { + bytes_added: 108, + bytes_removed: 5, + items_added: 1, + items_removed: 2, + }); + nested0.charge(&Diff { bytes_removed: 99, ..Default::default() }); - #[test] - fn charging_works_for_root() { - clear_ext(); + let mut nested1_info = new_info(StorageInfo { + bytes: 100, + items: 10, + bytes_deposit: 100, + items_deposit: 20, + }); + let mut nested1 = nested0.nested(); + nested1.charge(&Diff { items_removed: 5, ..Default::default() }); + nested0.absorb(nested1, DepositAccount(CHARLIE), Some(&mut nested1_info)); + + let mut nested2_info = new_info(StorageInfo { + bytes: 100, + items: 7, + bytes_deposit: 100, + items_deposit: 20, + }); + let mut nested2 = nested0.nested(); + nested2.charge(&Diff { items_removed: 7, ..Default::default() }); + nested0.absorb(nested2, DepositAccount(CHARLIE), Some(&mut nested2_info)); - let mut meter = TestMeter::new(&ContractOrigin::Root, Some(100), 0).unwrap(); - assert_eq!(meter.available(), 100); + nested0.enforce_limit(Some(&mut nested0_info)).unwrap(); + meter.absorb(nested0, DepositAccount(BOB), Some(&mut nested0_info)); - let mut nested0_info = - new_info(StorageInfo { bytes: 100, items: 5, bytes_deposit: 100, items_deposit: 10 }); - let mut nested0 = meter.nested(); - nested0.charge(&Diff { - bytes_added: 108, - bytes_removed: 5, - items_added: 1, - items_removed: 2, - }); - nested0.charge(&Diff { bytes_removed: 99, ..Default::default() }); - - let mut nested1_info = - new_info(StorageInfo { bytes: 100, items: 10, bytes_deposit: 100, items_deposit: 20 }); - let mut nested1 = nested0.nested(); - nested1.charge(&Diff { items_removed: 5, ..Default::default() }); - nested0.absorb(nested1, DepositAccount(CHARLIE), Some(&mut nested1_info)); - - let mut nested2_info = - new_info(StorageInfo { bytes: 100, items: 7, bytes_deposit: 100, items_deposit: 20 }); - let mut nested2 = nested0.nested(); - nested2.charge(&Diff { items_removed: 7, ..Default::default() }); - nested0.absorb(nested2, DepositAccount(CHARLIE), Some(&mut nested2_info)); - - nested0.enforce_limit(Some(&mut nested0_info)).unwrap(); - meter.absorb(nested0, DepositAccount(BOB), Some(&mut nested0_info)); - - let deposit = meter.into_deposit(&ContractOrigin::Root); - assert_eq!(deposit, Deposit::Charge(Zero::zero())); - - assert_eq!(nested0_info.extra_deposit(), 112); - assert_eq!(nested1_info.extra_deposit(), 110); - assert_eq!(nested2_info.extra_deposit(), 100); - - assert_eq!(TestExtTestValue::get(), TestExt { limit_checks: vec![], charges: vec![] }) + assert_eq!(meter.into_deposit(&test_case.origin), test_case.deposit); + + assert_eq!(nested0_info.extra_deposit(), 112); + assert_eq!(nested1_info.extra_deposit(), 110); + assert_eq!(nested2_info.extra_deposit(), 100); + + assert_eq!(TestExtTestValue::get(), test_case.expected) + } } #[test] fn termination_works() { - clear_ext(); - - let mut meter = - TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); - assert_eq!(meter.available(), 1_000); + let test_cases = vec![ + ChargingTestCase { + origin: ContractOrigin::::from_account_id(ALICE), + deposit: Deposit::Refund(107), + expected: TestExt { + limit_checks: vec![LimitCheck { origin: ALICE, limit: 1_000, min_leftover: 0 }], + charges: vec![ + Charge { + origin: ALICE, + contract: DepositAccount(CHARLIE), + amount: Deposit::Refund(119), + terminated: true, + }, + Charge { + origin: ALICE, + contract: DepositAccount(BOB), + amount: Deposit::Charge(12), + terminated: false, + }, + ], + }, + }, + ChargingTestCase { + origin: ContractOrigin::::Root, + deposit: Deposit::Charge(0), + expected: TestExt { limit_checks: vec![], charges: vec![] }, + }, + ]; - let mut nested0 = meter.nested(); - nested0.charge(&Diff { - bytes_added: 5, - bytes_removed: 1, - items_added: 3, - items_removed: 1, - }); - nested0.charge(&Diff { items_added: 2, ..Default::default() }); - - let mut nested1_info = - new_info(StorageInfo { bytes: 100, items: 10, bytes_deposit: 100, items_deposit: 20 }); - let mut nested1 = nested0.nested(); - nested1.charge(&Diff { items_removed: 5, ..Default::default() }); - nested1.charge(&Diff { bytes_added: 20, ..Default::default() }); - nested1.terminate(&nested1_info); - nested0.enforce_limit(Some(&mut nested1_info)).unwrap(); - nested0.absorb(nested1, DepositAccount(CHARLIE), None); + for test_case in test_cases { + clear_ext(); - meter.absorb(nested0, DepositAccount(BOB), None); - meter.into_deposit(&ContractOrigin::from_account_id(ALICE)); + let mut meter = TestMeter::new(&test_case.origin, Some(1_000), 0).unwrap(); + assert_eq!(meter.available(), 1_000); - assert_eq!( - TestExtTestValue::get(), - TestExt { - limit_checks: vec![LimitCheck { origin: ALICE, limit: 1_000, min_leftover: 0 }], - charges: vec![ - Charge { - origin: ALICE, - contract: DepositAccount(CHARLIE), - amount: Deposit::Refund(119), - terminated: true - }, - Charge { - origin: ALICE, - contract: DepositAccount(BOB), - amount: Deposit::Charge(12), - terminated: false - } - ] - } - ) - } - - #[test] - fn termination_works_for_root() { - clear_ext(); - - let mut meter = TestMeter::new(&ContractOrigin::Root, Some(1_000), 0).unwrap(); - assert_eq!(meter.available(), 1_000); + let mut nested0 = meter.nested(); + nested0.charge(&Diff { + bytes_added: 5, + bytes_removed: 1, + items_added: 3, + items_removed: 1, + }); + nested0.charge(&Diff { items_added: 2, ..Default::default() }); - let mut nested0 = meter.nested(); - nested0.charge(&Diff { - bytes_added: 5, - bytes_removed: 1, - items_added: 3, - items_removed: 1, - }); - nested0.charge(&Diff { items_added: 2, ..Default::default() }); - - let mut nested1_info = - new_info(StorageInfo { bytes: 100, items: 10, bytes_deposit: 100, items_deposit: 20 }); - let mut nested1 = nested0.nested(); - nested1.charge(&Diff { items_removed: 5, ..Default::default() }); - nested1.charge(&Diff { bytes_added: 20, ..Default::default() }); - nested1.terminate(&nested1_info); - nested0.enforce_limit(Some(&mut nested1_info)).unwrap(); - nested0.absorb(nested1, DepositAccount(CHARLIE), None); + let mut nested1_info = new_info(StorageInfo { + bytes: 100, + items: 10, + bytes_deposit: 100, + items_deposit: 20, + }); + let mut nested1 = nested0.nested(); + nested1.charge(&Diff { items_removed: 5, ..Default::default() }); + nested1.charge(&Diff { bytes_added: 20, ..Default::default() }); + nested1.terminate(&nested1_info); + nested0.enforce_limit(Some(&mut nested1_info)).unwrap(); + nested0.absorb(nested1, DepositAccount(CHARLIE), None); - meter.absorb(nested0, DepositAccount(BOB), None); - let deposit = meter.into_deposit(&ContractOrigin::Root); - assert_eq!(deposit, Deposit::Charge(Zero::zero())); + meter.absorb(nested0, DepositAccount(BOB), None); + assert_eq!(meter.into_deposit(&test_case.origin), test_case.deposit); - assert_eq!(TestExtTestValue::get(), TestExt { limit_checks: vec![], charges: vec![] }) + assert_eq!(TestExtTestValue::get(), test_case.expected) + } } } From 2e16ef8469d4073a25de6b1bfff56581966e0e10 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 31 Mar 2023 17:48:54 +0200 Subject: [PATCH 20/53] contracts: improved errors --- frame/contracts/src/lib.rs | 6 ++---- frame/contracts/src/wasm/mod.rs | 2 +- frame/contracts/src/wasm/runtime.rs | 3 +++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index da9ff9b074d8e..6de48e53ee250 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -827,7 +827,7 @@ pub mod pallet { StorageDepositNotEnoughFunds, /// More storage was created than allowed by the storage deposit limit. StorageDepositLimitExhausted, - /// The storage deposit limit needs to be specified + /// The storage deposit limit needs to be specified. StorageDepositLimitRequired, /// Code removal was denied because the code is still in use by at least one contract. CodeInUse, @@ -847,8 +847,6 @@ pub mod pallet { CodeRejected, /// An indetermistic code was used in a context where this is not permitted. Indeterministic, - /// Root origin is not allowed. - RootOrigin, } /// A mapping from an original code hash to the original code, untouched by instrumentation. @@ -967,7 +965,7 @@ impl Caller { pub fn account_id(&self) -> Result { match self { Caller::Account(id) => Ok(id.clone()), - Caller::Root => Err(>::RootOrigin.into()), + Caller::Root => Err(DispatchError::BadOrigin), } } } diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 392d5c5b1cbf0..31439fcd78e05 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -1457,7 +1457,7 @@ mod tests { ext.caller = Caller::Root; assert_eq!( execute(CODE_CALLER, vec![], ext), - Err(ExecError { error: Error::::RootOrigin.into(), origin: ErrorOrigin::Caller }) + Err(ExecError { error: DispatchError::BadOrigin, origin: ErrorOrigin::Caller }) ); } diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index bc64a7fbe2bf1..60ccbcbabeb5c 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1628,6 +1628,9 @@ pub mod env { /// If this is a top-level call (i.e. initiated by an extrinsic) the origin address of the /// extrinsic will be returned. Otherwise, if this call is initiated by another contract then /// the address of the contract will be returned. The value is encoded as T::AccountId. + /// + /// If there is no address associated with the caller (e.g. because the caller is root) then + /// it traps with `BadOrigin`. #[prefixed_alias] fn caller(ctx: _, memory: _, out_ptr: u32, out_len_ptr: u32) -> Result<(), TrapReason> { ctx.charge_gas(RuntimeCosts::Caller)?; From 308b2ffed29bdb8db3e57eaf8c79ab5d37dc8ee3 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 31 Mar 2023 18:38:29 +0200 Subject: [PATCH 21/53] contracts: refactor & merge ContractOrigin cand Caller enums --- frame/contracts/src/exec.rs | 122 +++++++++++++-------------- frame/contracts/src/lib.rs | 51 +++-------- frame/contracts/src/storage/meter.rs | 29 +++---- frame/contracts/src/wasm/mod.rs | 2 +- 4 files changed, 86 insertions(+), 118 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 8a19a20e0471b..6dcd185faeb38 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -18,8 +18,8 @@ use crate::{ gas::GasMeter, storage::{self, DepositAccount, WriteOutcome}, - BalanceOf, Caller, CodeHash, Config, ContractInfo, ContractInfoOf, ContractOrigin, - DebugBufferVec, Determinism, Error, Event, Nonce, Pallet as Contracts, Schedule, System, + BalanceOf, Caller, CodeHash, Config, ContractInfo, ContractInfoOf, DebugBufferVec, Determinism, + Error, Event, Nonce, Pallet as Contracts, Schedule, System, }; use frame_support::{ crypto::ecdsa::ECDSAExt, @@ -373,7 +373,7 @@ pub struct Stack<'a, T: Config, E> { /// Please note that it is possible that the id belongs to a contract rather than a plain /// account when being called through one of the contract RPCs where the client can freely /// choose the origin. This usually makes no sense but is still possible. - origin: ContractOrigin, + origin: Caller, /// The cost schedule used when charging from the gas meter. schedule: &'a Schedule, /// The gas meter where costs are charged to. @@ -610,7 +610,7 @@ where /// /// Result<(ExecReturnValue, CodeSize), (ExecError, CodeSize)> pub fn run_call( - origin: ContractOrigin, + origin: Caller, dest: T::AccountId, gas_meter: &'a mut GasMeter, storage_meter: &'a mut storage::meter::Meter, @@ -662,7 +662,7 @@ where salt, input_data: input_data.as_ref(), }, - ContractOrigin::from_account_id(origin), + Caller::from_account_id(origin), gas_meter, storage_meter, schedule, @@ -677,7 +677,7 @@ where /// Create a new call stack. fn new( args: FrameArgs, - origin: ContractOrigin, + origin: Caller, gas_meter: &'a mut GasMeter, storage_meter: &'a mut storage::meter::Meter, schedule: &'a Schedule, @@ -837,7 +837,7 @@ where // Also, we can only charge the storage deposit if there is an account id associated // with the origin, if the origin is Root there is no storage deposit to charge. match (entry_point, &self.origin) { - (ExportedFunction::Constructor, ContractOrigin::Signed(origin)) => { + (ExportedFunction::Constructor, Caller::Signed(origin)) => { let frame = top_frame_mut!(self); frame.nested_storage.charge_instantiate( origin, @@ -1059,7 +1059,7 @@ where // Get the account id from the Caller. // If the caller is root, we don't need to transfer. let caller = match self.caller() { - Caller::Account(caller) => caller, + Caller::Signed(caller) => caller, Caller::Root => return Ok(()), }; @@ -1268,14 +1268,12 @@ where fn caller(&self) -> Caller { if let Some(caller) = &self.top_frame().delegate_caller { - Caller::Account(caller.clone()) + Caller::Signed(caller.clone()) } else { - self.frames().nth(1).map(|f| Caller::Account(f.account_id.clone())).unwrap_or( - match &self.origin { - ContractOrigin::Signed(origin) => Caller::Account(origin.clone()), - ContractOrigin::Root => Caller::Root, - }, - ) + self.frames() + .nth(1) + .map(|f| Caller::Signed(f.account_id.clone())) + .unwrap_or(self.origin.clone()) } } @@ -1292,11 +1290,7 @@ where } fn caller_is_origin(&self) -> bool { - match (&self.origin, &self.caller()) { - (ContractOrigin::Signed(origin), Caller::Account(caller)) => origin == caller, - (ContractOrigin::Root, Caller::Root) => true, - _ => false, - } + &self.origin == &self.caller() } fn caller_is_root(&self) -> bool { @@ -1304,7 +1298,7 @@ where if !self.caller_is_origin() { return false } - matches!(self.origin, ContractOrigin::Root) + matches!(self.origin, Caller::Root) } fn balance(&self) -> BalanceOf { @@ -1631,12 +1625,12 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, exec_ch); let mut storage_meter = - storage::meter::Meter::new(&ContractOrigin::from_account_id(ALICE), Some(0), value) + storage::meter::Meter::new(&Caller::from_account_id(ALICE), Some(0), value) .unwrap(); assert_matches!( MockStack::run_call( - ContractOrigin::from_account_id(ALICE), + Caller::from_account_id(ALICE), BOB, &mut gas_meter, &mut storage_meter, @@ -1687,7 +1681,7 @@ mod tests { place_contract(&dest, success_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let contract_origin = Caller::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); @@ -1731,7 +1725,7 @@ mod tests { place_contract(&dest, delegate_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let contract_origin = Caller::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); @@ -1769,7 +1763,7 @@ mod tests { place_contract(&dest, return_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let contract_origin = Caller::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); @@ -1822,7 +1816,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); - let contract_origin = ContractOrigin::from_account_id(origin); + let contract_origin = Caller::from_account_id(origin); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); place_contract(&BOB, return_ch); @@ -1858,7 +1852,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, return_ch); - let contract_origin = ContractOrigin::from_account_id(origin); + let contract_origin = Caller::from_account_id(origin); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -1891,7 +1885,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, input_data_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -1925,7 +1919,7 @@ mod tests { let executable = MockExecutable::from_storage(input_data_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); @@ -1975,7 +1969,7 @@ mod tests { let schedule = ::Schedule::get(); set_balance(&BOB, 1); place_contract(&BOB, recurse_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); @@ -2027,7 +2021,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&dest, bob_ch); place_contract(&CHARLIE, charlie_ch); - let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let contract_origin = Caller::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2064,7 +2058,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( @@ -2095,7 +2089,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) @@ -2125,7 +2119,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) @@ -2163,7 +2157,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE -> BOB (caller is origin) -> CHARLIE (caller is not origin) @@ -2193,7 +2187,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); - let contract_origin = ContractOrigin::Root; + let contract_origin = Caller::Root; let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // root -> BOB (caller is root) @@ -2231,7 +2225,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = ContractOrigin::Root; + let contract_origin = Caller::Root; let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // root -> BOB (caller is root) -> CHARLIE (caller is not root) @@ -2269,7 +2263,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); place_contract(&CHARLIE, charlie_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2298,7 +2292,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2332,7 +2326,7 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 1000); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance) .unwrap(); @@ -2378,7 +2372,7 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 1000); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance) .unwrap(); @@ -2433,7 +2427,7 @@ mod tests { let min_balance = ::Currency::minimum_balance(); set_balance(&ALICE, min_balance * 100); place_contract(&BOB, instantiator_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new( &contract_origin, Some(min_balance * 10), @@ -2504,7 +2498,7 @@ mod tests { set_balance(&ALICE, 1000); set_balance(&BOB, 100); place_contract(&BOB, instantiator_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(200), 0).unwrap(); @@ -2545,7 +2539,7 @@ mod tests { let executable = MockExecutable::from_storage(terminate_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, 10_000); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 100).unwrap(); @@ -2598,7 +2592,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2634,7 +2628,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); let executable = MockExecutable::from_storage(code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); @@ -2669,7 +2663,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( @@ -2705,7 +2699,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( @@ -2744,7 +2738,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( @@ -2777,7 +2771,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2831,7 +2825,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2870,7 +2864,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); @@ -2957,7 +2951,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); @@ -3059,7 +3053,7 @@ mod tests { let succ_succ_executable = MockExecutable::from_storage(succ_succ_code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance * 100).unwrap(); @@ -3170,7 +3164,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3298,7 +3292,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3338,7 +3332,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3378,7 +3372,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3435,7 +3429,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3492,7 +3486,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3525,7 +3519,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( @@ -3573,7 +3567,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3604,7 +3598,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_hash); - let contract_origin = ContractOrigin::from_account_id(ALICE); + let contract_origin = Caller::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 6de48e53ee250..2e3ee92101872 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -116,7 +116,7 @@ use frame_support::{ ReservableCurrency, Time, }, weights::{OldWeight, Weight}, - BoundedVec, WeakBoundedVec, + BoundedVec, RuntimeDebugNoBound, WeakBoundedVec, }; use frame_system::{ensure_signed_or_root, Pallet as System}; use pallet_contracts_primitives::{ @@ -908,54 +908,29 @@ pub mod pallet { StorageValue<_, DeletionQueueManager, ValueQuery>; } -/// The type of origins supported by the contracts pallet. -#[derive(Clone)] -pub enum ContractOrigin { - /// The origin is a regular signed account. - Signed(T::AccountId), - /// The origin is root. - Root, -} - -impl ContractOrigin { - /// Creates a new Signed ContractOrigin from an AccountId. - pub fn from_account_id(account_id: T::AccountId) -> Self { - ContractOrigin::Signed(account_id) - } -} - /// Helper function to ensure that the origin is either a regular signed account or root -/// and returns it as a `ContractOrigin`, if it is one of those. +/// and returns it as a `Caller`, if it is one of those. /// It errors otherwise. fn contract_ensure_signed_or_root( origin: T::RuntimeOrigin, -) -> Result, BadOrigin> { +) -> Result, BadOrigin> { match ensure_signed_or_root(origin)? { - Some(t) => Ok(ContractOrigin::Signed(t)), - None => Ok(ContractOrigin::Root), + Some(t) => Ok(Caller::Signed(t)), + None => Ok(Caller::Root), } } /// The type of callers supported by the contracts pallet. -#[derive(Clone, Encode, Decode, PartialEq, TypeInfo)] +#[derive(Clone, Encode, Decode, PartialEq, TypeInfo, RuntimeDebugNoBound)] pub enum Caller { - Account(T::AccountId), + Signed(T::AccountId), Root, } impl Caller { - /// Creates a new Signed ContractOrigin from an AccountId. + /// Creates a new Signed Caller from an AccountId. pub fn from_account_id(account_id: T::AccountId) -> Self { - Caller::Account(account_id) - } -} - -impl sp_std::fmt::Debug for Caller { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { - match self { - Caller::Account(id) => write!(f, "Caller::Account({:?})", id), - Caller::Root => write!(f, "Caller::Root"), - } + Caller::Signed(account_id) } } @@ -964,7 +939,7 @@ impl Caller { /// It errors otherwise. pub fn account_id(&self) -> Result { match self { - Caller::Account(id) => Ok(id.clone()), + Caller::Signed(id) => Ok(id.clone()), Caller::Root => Err(DispatchError::BadOrigin), } } @@ -981,7 +956,7 @@ struct CommonInput<'a, T: Config> { /// Input specific to a call into contract. struct CallInput { - origin: ContractOrigin, + origin: Caller, dest: T::AccountId, determinism: Determinism, } @@ -1134,7 +1109,7 @@ impl Invokable for InstantiateInput { PrefabWasmModule::from_storage(*hash, &schedule, &mut gas_meter)?, ), }; - let contract_origin = ContractOrigin::from_account_id(origin.clone()); + let contract_origin = Caller::from_account_id(origin.clone()); let mut storage_meter = StorageMeter::new( &contract_origin, common.storage_deposit_limit, @@ -1186,7 +1161,7 @@ impl Pallet { determinism: Determinism, ) -> ContractExecResult> { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; - let origin = ContractOrigin::from_account_id(origin); + let origin = Caller::from_account_id(origin); let common = CommonInput { value, data, diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 32cfd6a59a986..0c1a0d92a0a8a 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -19,7 +19,7 @@ use crate::{ storage::{ContractInfo, DepositAccount}, - BalanceOf, Config, ContractOrigin, Error, Inspect, Pallet, System, + BalanceOf, Caller, Config, Error, Inspect, Pallet, System, }; use codec::Encode; use frame_support::{ @@ -332,20 +332,20 @@ where /// /// This tries to [`Ext::check_limit`] on `origin` and fails if this is not possible. pub fn new( - origin: &ContractOrigin, + origin: &Caller, limit: Option>, min_leftover: BalanceOf, ) -> Result { // Check the limit only if the origin is not root. return match origin { - ContractOrigin::Root => { + Caller::Root => { match limit { // If the limit is specified, that the root's limit. Some(l) => Ok(Self { limit: l, ..Default::default() }), None => Err(>::StorageDepositLimitRequired.into()), } }, - ContractOrigin::Signed(o) => { + Caller::Signed(o) => { let limit = E::check_limit(o, limit, min_leftover)?; Ok(Self { limit, ..Default::default() }) }, @@ -358,11 +358,11 @@ where /// /// This drops the root meter in order to make sure it is only called when the whole /// execution did finish. - pub fn into_deposit(self, origin: &ContractOrigin) -> DepositOf { + pub fn into_deposit(self, origin: &Caller) -> DepositOf { // Only refund or charge deposit if the origin is not root. let origin = match origin { - ContractOrigin::Root => return Deposit::Charge(Zero::zero()), - ContractOrigin::Signed(o) => o, + Caller::Root => return Deposit::Charge(Zero::zero()), + Caller::Signed(o) => o, }; for charge in self.charges.iter().filter(|c| matches!(c.amount, Deposit::Refund(_))) { @@ -651,7 +651,7 @@ mod tests { } struct ChargingTestCase { - origin: ContractOrigin, + origin: Caller, deposit: DepositOf, expected: TestExt, } @@ -681,7 +681,7 @@ mod tests { fn new_reserves_balance_works() { clear_ext(); - TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); + TestMeter::new(&Caller::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!( TestExtTestValue::get(), @@ -696,8 +696,7 @@ mod tests { fn empty_charge_works() { clear_ext(); - let mut meter = - TestMeter::new(&ContractOrigin::from_account_id(ALICE), Some(1_000), 0).unwrap(); + let mut meter = TestMeter::new(&Caller::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); // an empty charge does not create a `Charge` entry @@ -718,7 +717,7 @@ mod tests { fn charging_works() { let test_cases = vec![ ChargingTestCase { - origin: ContractOrigin::::from_account_id(ALICE), + origin: Caller::::from_account_id(ALICE), deposit: Deposit::Refund(28), expected: TestExt { limit_checks: vec![LimitCheck { origin: ALICE, limit: 100, min_leftover: 0 }], @@ -745,7 +744,7 @@ mod tests { }, }, ChargingTestCase { - origin: ContractOrigin::::Root, + origin: Caller::::Root, deposit: Deposit::Charge(0), expected: TestExt { limit_checks: vec![], charges: vec![] }, }, @@ -809,7 +808,7 @@ mod tests { fn termination_works() { let test_cases = vec![ ChargingTestCase { - origin: ContractOrigin::::from_account_id(ALICE), + origin: Caller::::from_account_id(ALICE), deposit: Deposit::Refund(107), expected: TestExt { limit_checks: vec![LimitCheck { origin: ALICE, limit: 1_000, min_leftover: 0 }], @@ -830,7 +829,7 @@ mod tests { }, }, ChargingTestCase { - origin: ContractOrigin::::Root, + origin: Caller::::Root, deposit: Deposit::Charge(0), expected: TestExt { limit_checks: vec![], charges: vec![] }, }, diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 31439fcd78e05..bc34f4e9b2759 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -461,7 +461,7 @@ mod tests { gas_meter: GasMeter::new(Weight::from_parts(10_000_000_000, 10 * 1024 * 1024)), debug_buffer: Default::default(), ecdsa_recover: Default::default(), - caller: Caller::Account(ALICE), + caller: Caller::Signed(ALICE), } } } From da14bd0a8e2633e112ff5239884cd22f7402bab9 Mon Sep 17 00:00:00 2001 From: juangirini Date: Tue, 4 Apr 2023 12:12:30 +0200 Subject: [PATCH 22/53] Update frame/contracts/src/lib.rs Co-authored-by: Sasha Gryaznov --- frame/contracts/src/lib.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 2e3ee92101872..153ef26283fae 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -908,9 +908,8 @@ pub mod pallet { StorageValue<_, DeletionQueueManager, ValueQuery>; } -/// Helper function to ensure that the origin is either a regular signed account or root -/// and returns it as a `Caller`, if it is one of those. -/// It errors otherwise. +/// Helper function to ensure that the origin is either a signed extrinsic or root. +/// Returns a `Caller` if it is one of those, or an `Err` otherwise. fn contract_ensure_signed_or_root( origin: T::RuntimeOrigin, ) -> Result, BadOrigin> { From d36d70e7b7b5910acab634e5f03cb88aca73a5a6 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 4 Apr 2023 12:37:11 +0200 Subject: [PATCH 23/53] contracts: apply suggested pr changes --- frame/contracts/src/lib.rs | 19 ++++++------------- frame/contracts/src/storage/meter.rs | 5 ++++- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 153ef26283fae..1517ba357f2a4 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -126,7 +126,7 @@ use pallet_contracts_primitives::{ }; use scale_info::TypeInfo; use smallvec::Array; -use sp_runtime::traits::{BadOrigin, Convert, Hash, Saturating, StaticLookup}; +use sp_runtime::traits::{Convert, Hash, Saturating, StaticLookup}; use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; pub use crate::{ @@ -569,7 +569,11 @@ pub mod pallet { data: Vec, ) -> DispatchResultWithPostInfo { let gas_limit: Weight = gas_limit.into(); - let origin = contract_ensure_signed_or_root(origin)?; + // Ensure that the origin is either a signed extrinsic or root. + let origin = match ensure_signed_or_root(origin)? { + Some(t) => Caller::Signed(t), + None => Caller::Root, + }; let dest = T::Lookup::lookup(dest)?; let common = CommonInput { value, @@ -908,17 +912,6 @@ pub mod pallet { StorageValue<_, DeletionQueueManager, ValueQuery>; } -/// Helper function to ensure that the origin is either a signed extrinsic or root. -/// Returns a `Caller` if it is one of those, or an `Err` otherwise. -fn contract_ensure_signed_or_root( - origin: T::RuntimeOrigin, -) -> Result, BadOrigin> { - match ensure_signed_or_root(origin)? { - Some(t) => Ok(Caller::Signed(t)), - None => Ok(Caller::Root), - } -} - /// The type of callers supported by the contracts pallet. #[derive(Clone, Encode, Decode, PartialEq, TypeInfo, RuntimeDebugNoBound)] pub enum Caller { diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 0c1a0d92a0a8a..550af3f1e940e 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -340,7 +340,10 @@ where return match origin { Caller::Root => { match limit { - // If the limit is specified, that the root's limit. + // We don't have a way to check the root's limit as there isn't an account + // associated with it. Therefore, whatever the specified limit is, that will be + // the root's limit. Following this criteria, when the caller is root we need + // the limit parameter to be specified. Some(l) => Ok(Self { limit: l, ..Default::default() }), None => Err(>::StorageDepositLimitRequired.into()), } From bf55a3377e42098be08b3b0ee16cbf7b4bcea3dc Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 5 Apr 2023 09:57:13 +0200 Subject: [PATCH 24/53] contracts: rename Caller to Origin --- frame/contracts/src/exec.rs | 126 +++++++++++++-------------- frame/contracts/src/lib.rs | 28 +++--- frame/contracts/src/storage/meter.rs | 28 +++--- frame/contracts/src/tests.rs | 36 ++++---- frame/contracts/src/wasm/mod.rs | 10 +-- 5 files changed, 114 insertions(+), 114 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 6dcd185faeb38..0d3e4e4ff37da 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -18,8 +18,8 @@ use crate::{ gas::GasMeter, storage::{self, DepositAccount, WriteOutcome}, - BalanceOf, Caller, CodeHash, Config, ContractInfo, ContractInfoOf, DebugBufferVec, Determinism, - Error, Event, Nonce, Pallet as Contracts, Schedule, System, + BalanceOf, CodeHash, Config, ContractInfo, ContractInfoOf, DebugBufferVec, Determinism, Error, + Event, Nonce, Origin, Pallet as Contracts, Schedule, System, }; use frame_support::{ crypto::ecdsa::ECDSAExt, @@ -197,7 +197,7 @@ pub trait Ext: sealing::Sealed { ) -> Result; /// Returns the caller - fn caller(&self) -> Caller; + fn caller(&self) -> Origin; /// Check if a contract lives at the specified `address`. fn is_contract(&self, address: &AccountIdOf) -> bool; @@ -373,7 +373,7 @@ pub struct Stack<'a, T: Config, E> { /// Please note that it is possible that the id belongs to a contract rather than a plain /// account when being called through one of the contract RPCs where the client can freely /// choose the origin. This usually makes no sense but is still possible. - origin: Caller, + origin: Origin, /// The cost schedule used when charging from the gas meter. schedule: &'a Schedule, /// The gas meter where costs are charged to. @@ -610,7 +610,7 @@ where /// /// Result<(ExecReturnValue, CodeSize), (ExecError, CodeSize)> pub fn run_call( - origin: Caller, + origin: Origin, dest: T::AccountId, gas_meter: &'a mut GasMeter, storage_meter: &'a mut storage::meter::Meter, @@ -662,7 +662,7 @@ where salt, input_data: input_data.as_ref(), }, - Caller::from_account_id(origin), + Origin::from_account_id(origin), gas_meter, storage_meter, schedule, @@ -677,7 +677,7 @@ where /// Create a new call stack. fn new( args: FrameArgs, - origin: Caller, + origin: Origin, gas_meter: &'a mut GasMeter, storage_meter: &'a mut storage::meter::Meter, schedule: &'a Schedule, @@ -837,7 +837,7 @@ where // Also, we can only charge the storage deposit if there is an account id associated // with the origin, if the origin is Root there is no storage deposit to charge. match (entry_point, &self.origin) { - (ExportedFunction::Constructor, Caller::Signed(origin)) => { + (ExportedFunction::Constructor, Origin::Signed(origin)) => { let frame = top_frame_mut!(self); frame.nested_storage.charge_instantiate( origin, @@ -1059,8 +1059,8 @@ where // Get the account id from the Caller. // If the caller is root, we don't need to transfer. let caller = match self.caller() { - Caller::Signed(caller) => caller, - Caller::Root => return Ok(()), + Origin::Signed(caller) => caller, + Origin::Root => return Ok(()), }; let value = frame.value_transferred; @@ -1266,13 +1266,13 @@ where &self.top_frame().account_id } - fn caller(&self) -> Caller { + fn caller(&self) -> Origin { if let Some(caller) = &self.top_frame().delegate_caller { - Caller::Signed(caller.clone()) + Origin::Signed(caller.clone()) } else { self.frames() .nth(1) - .map(|f| Caller::Signed(f.account_id.clone())) + .map(|f| Origin::Signed(f.account_id.clone())) .unwrap_or(self.origin.clone()) } } @@ -1298,7 +1298,7 @@ where if !self.caller_is_origin() { return false } - matches!(self.origin, Caller::Root) + matches!(self.origin, Origin::Root) } fn balance(&self) -> BalanceOf { @@ -1625,12 +1625,12 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, exec_ch); let mut storage_meter = - storage::meter::Meter::new(&Caller::from_account_id(ALICE), Some(0), value) + storage::meter::Meter::new(&Origin::from_account_id(ALICE), Some(0), value) .unwrap(); assert_matches!( MockStack::run_call( - Caller::from_account_id(ALICE), + Origin::from_account_id(ALICE), BOB, &mut gas_meter, &mut storage_meter, @@ -1681,7 +1681,7 @@ mod tests { place_contract(&dest, success_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let contract_origin = Caller::from_account_id(origin.clone()); + let contract_origin = Origin::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); @@ -1725,7 +1725,7 @@ mod tests { place_contract(&dest, delegate_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let contract_origin = Caller::from_account_id(origin.clone()); + let contract_origin = Origin::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); @@ -1763,7 +1763,7 @@ mod tests { place_contract(&dest, return_ch); set_balance(&origin, 100); let balance = get_balance(&dest); - let contract_origin = Caller::from_account_id(origin.clone()); + let contract_origin = Origin::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 55).unwrap(); @@ -1816,7 +1816,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); - let contract_origin = Caller::from_account_id(origin); + let contract_origin = Origin::from_account_id(origin); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); place_contract(&BOB, return_ch); @@ -1852,7 +1852,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, return_ch); - let contract_origin = Caller::from_account_id(origin); + let contract_origin = Origin::from_account_id(origin); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -1885,7 +1885,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, input_data_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -1919,7 +1919,7 @@ mod tests { let executable = MockExecutable::from_storage(input_data_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); @@ -1969,7 +1969,7 @@ mod tests { let schedule = ::Schedule::get(); set_balance(&BOB, 1); place_contract(&BOB, recurse_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), value).unwrap(); @@ -2021,7 +2021,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&dest, bob_ch); place_contract(&CHARLIE, charlie_ch); - let contract_origin = Caller::from_account_id(origin.clone()); + let contract_origin = Origin::from_account_id(origin.clone()); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2058,7 +2058,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( @@ -2089,7 +2089,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) @@ -2119,7 +2119,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE (not contract) -> BOB (contract) @@ -2157,7 +2157,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // ALICE -> BOB (caller is origin) -> CHARLIE (caller is not origin) @@ -2187,7 +2187,7 @@ mod tests { ExtBuilder::default().build().execute_with(|| { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); - let contract_origin = Caller::Root; + let contract_origin = Origin::Root; let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // root -> BOB (caller is root) @@ -2225,7 +2225,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = Caller::Root; + let contract_origin = Origin::Root; let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); // root -> BOB (caller is root) -> CHARLIE (caller is not root) @@ -2263,7 +2263,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); place_contract(&CHARLIE, charlie_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2292,7 +2292,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2326,7 +2326,7 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 1000); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance) .unwrap(); @@ -2372,7 +2372,7 @@ mod tests { let executable = MockExecutable::from_storage(dummy_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 1000); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(min_balance * 100), min_balance) .unwrap(); @@ -2427,7 +2427,7 @@ mod tests { let min_balance = ::Currency::minimum_balance(); set_balance(&ALICE, min_balance * 100); place_contract(&BOB, instantiator_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new( &contract_origin, Some(min_balance * 10), @@ -2463,7 +2463,7 @@ mod tests { &events(), &[ Event::Instantiated { deployer: BOB, contract: instantiated_contract_address }, - Event::Called { caller: Caller::from_account_id(ALICE), contract: BOB }, + Event::Called { caller: Origin::from_account_id(ALICE), contract: BOB }, ] ); }); @@ -2498,7 +2498,7 @@ mod tests { set_balance(&ALICE, 1000); set_balance(&BOB, 100); place_contract(&BOB, instantiator_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(200), 0).unwrap(); @@ -2521,7 +2521,7 @@ mod tests { // event here. assert_eq!( &events(), - &[Event::Called { caller: Caller::from_account_id(ALICE), contract: BOB },] + &[Event::Called { caller: Origin::from_account_id(ALICE), contract: BOB },] ); }); } @@ -2539,7 +2539,7 @@ mod tests { let executable = MockExecutable::from_storage(terminate_ch, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, 10_000); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 100).unwrap(); @@ -2592,7 +2592,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2628,7 +2628,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); let executable = MockExecutable::from_storage(code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance).unwrap(); @@ -2663,7 +2663,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( @@ -2699,7 +2699,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( @@ -2738,7 +2738,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); MockStack::run_call( @@ -2771,7 +2771,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2825,7 +2825,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_bob); place_contract(&CHARLIE, code_charlie); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); @@ -2864,7 +2864,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); @@ -2896,10 +2896,10 @@ mod tests { EventRecord { phase: Phase::Initialization, event: MetaEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: BOB, }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&BOB)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&BOB)], }, ] ); @@ -2951,7 +2951,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 10); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); System::reset_events(); @@ -2996,10 +2996,10 @@ mod tests { EventRecord { phase: Phase::Initialization, event: MetaEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: BOB, }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&BOB)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&BOB)], }, ] ); @@ -3053,7 +3053,7 @@ mod tests { let succ_succ_executable = MockExecutable::from_storage(succ_succ_code, &schedule, &mut gas_meter).unwrap(); set_balance(&ALICE, min_balance * 10_000); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, min_balance * 100).unwrap(); @@ -3164,7 +3164,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3292,7 +3292,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3332,7 +3332,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3372,7 +3372,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3429,7 +3429,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3486,7 +3486,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3519,7 +3519,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, bob_ch); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( @@ -3567,7 +3567,7 @@ mod tests { let mut gas_meter = GasMeter::::new(GAS_LIMIT); set_balance(&ALICE, min_balance * 1000); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); assert_ok!(MockStack::run_call( contract_origin, @@ -3598,7 +3598,7 @@ mod tests { let schedule = ::Schedule::get(); place_contract(&BOB, code_hash); - let contract_origin = Caller::from_account_id(ALICE); + let contract_origin = Origin::from_account_id(ALICE); let mut storage_meter = storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); let result = MockStack::run_call( diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 9f540ec738ef6..6c140740a6638 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -577,8 +577,8 @@ pub mod pallet { let gas_limit: Weight = gas_limit.into(); // Ensure that the origin is either a signed extrinsic or root. let origin = match ensure_signed_or_root(origin)? { - Some(t) => Caller::Signed(t), - None => Caller::Root, + Some(t) => Origin::Signed(t), + None => Origin::Root, }; let dest = T::Lookup::lookup(dest)?; let common = CommonInput { @@ -757,7 +757,7 @@ pub mod pallet { /// rolled back. Called { /// The caller of the `contract`. - caller: Caller, + caller: Origin, /// The contract that was called. contract: T::AccountId, }, @@ -918,27 +918,27 @@ pub mod pallet { StorageValue<_, DeletionQueueManager, ValueQuery>; } -/// The type of callers supported by the contracts pallet. +/// The type of origins supported by the contracts pallet. #[derive(Clone, Encode, Decode, PartialEq, TypeInfo, RuntimeDebugNoBound)] -pub enum Caller { - Signed(T::AccountId), +pub enum Origin { Root, + Signed(T::AccountId), } -impl Caller { +impl Origin { /// Creates a new Signed Caller from an AccountId. pub fn from_account_id(account_id: T::AccountId) -> Self { - Caller::Signed(account_id) + Origin::Signed(account_id) } } -impl Caller { +impl Origin { /// Returns the account id of the caller if it has one. /// It errors otherwise. pub fn account_id(&self) -> Result { match self { - Caller::Signed(id) => Ok(id.clone()), - Caller::Root => Err(DispatchError::BadOrigin), + Origin::Signed(id) => Ok(id.clone()), + Origin::Root => Err(DispatchError::BadOrigin), } } } @@ -954,7 +954,7 @@ struct CommonInput<'a, T: Config> { /// Input specific to a call into contract. struct CallInput { - origin: Caller, + origin: Origin, dest: T::AccountId, determinism: Determinism, } @@ -1107,7 +1107,7 @@ impl Invokable for InstantiateInput { PrefabWasmModule::from_storage(*hash, &schedule, &mut gas_meter)?, ), }; - let contract_origin = Caller::from_account_id(origin.clone()); + let contract_origin = Origin::from_account_id(origin.clone()); let mut storage_meter = StorageMeter::new( &contract_origin, common.storage_deposit_limit, @@ -1159,7 +1159,7 @@ impl Pallet { determinism: Determinism, ) -> ContractExecResult> { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; - let origin = Caller::from_account_id(origin); + let origin = Origin::from_account_id(origin); let common = CommonInput { value, data, diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 550af3f1e940e..c71ce0bb5d6af 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -19,7 +19,7 @@ use crate::{ storage::{ContractInfo, DepositAccount}, - BalanceOf, Caller, Config, Error, Inspect, Pallet, System, + BalanceOf, Config, Error, Inspect, Origin, Pallet, System, }; use codec::Encode; use frame_support::{ @@ -332,13 +332,13 @@ where /// /// This tries to [`Ext::check_limit`] on `origin` and fails if this is not possible. pub fn new( - origin: &Caller, + origin: &Origin, limit: Option>, min_leftover: BalanceOf, ) -> Result { // Check the limit only if the origin is not root. return match origin { - Caller::Root => { + Origin::Root => { match limit { // We don't have a way to check the root's limit as there isn't an account // associated with it. Therefore, whatever the specified limit is, that will be @@ -348,7 +348,7 @@ where None => Err(>::StorageDepositLimitRequired.into()), } }, - Caller::Signed(o) => { + Origin::Signed(o) => { let limit = E::check_limit(o, limit, min_leftover)?; Ok(Self { limit, ..Default::default() }) }, @@ -361,11 +361,11 @@ where /// /// This drops the root meter in order to make sure it is only called when the whole /// execution did finish. - pub fn into_deposit(self, origin: &Caller) -> DepositOf { + pub fn into_deposit(self, origin: &Origin) -> DepositOf { // Only refund or charge deposit if the origin is not root. let origin = match origin { - Caller::Root => return Deposit::Charge(Zero::zero()), - Caller::Signed(o) => o, + Origin::Root => return Deposit::Charge(Zero::zero()), + Origin::Signed(o) => o, }; for charge in self.charges.iter().filter(|c| matches!(c.amount, Deposit::Refund(_))) { @@ -654,7 +654,7 @@ mod tests { } struct ChargingTestCase { - origin: Caller, + origin: Origin, deposit: DepositOf, expected: TestExt, } @@ -684,7 +684,7 @@ mod tests { fn new_reserves_balance_works() { clear_ext(); - TestMeter::new(&Caller::from_account_id(ALICE), Some(1_000), 0).unwrap(); + TestMeter::new(&Origin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!( TestExtTestValue::get(), @@ -699,7 +699,7 @@ mod tests { fn empty_charge_works() { clear_ext(); - let mut meter = TestMeter::new(&Caller::from_account_id(ALICE), Some(1_000), 0).unwrap(); + let mut meter = TestMeter::new(&Origin::from_account_id(ALICE), Some(1_000), 0).unwrap(); assert_eq!(meter.available(), 1_000); // an empty charge does not create a `Charge` entry @@ -720,7 +720,7 @@ mod tests { fn charging_works() { let test_cases = vec![ ChargingTestCase { - origin: Caller::::from_account_id(ALICE), + origin: Origin::::from_account_id(ALICE), deposit: Deposit::Refund(28), expected: TestExt { limit_checks: vec![LimitCheck { origin: ALICE, limit: 100, min_leftover: 0 }], @@ -747,7 +747,7 @@ mod tests { }, }, ChargingTestCase { - origin: Caller::::Root, + origin: Origin::::Root, deposit: Deposit::Charge(0), expected: TestExt { limit_checks: vec![], charges: vec![] }, }, @@ -811,7 +811,7 @@ mod tests { fn termination_works() { let test_cases = vec![ ChargingTestCase { - origin: Caller::::from_account_id(ALICE), + origin: Origin::::from_account_id(ALICE), deposit: Deposit::Refund(107), expected: TestExt { limit_checks: vec![LimitCheck { origin: ALICE, limit: 1_000, min_leftover: 0 }], @@ -832,7 +832,7 @@ mod tests { }, }, ChargingTestCase { - origin: Caller::::Root, + origin: Origin::::Root, deposit: Deposit::Charge(0), expected: TestExt { limit_checks: vec![], charges: vec![] }, }, diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index 036be8c932cf6..f86207c96dfe6 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -26,8 +26,8 @@ use crate::{ tests::test_utils::{get_contract, get_contract_checked}, wasm::{Determinism, PrefabWasmModule, ReturnCode as RuntimeReturnCode}, weights::WeightInfo, - BalanceOf, Caller, Code, CodeStorage, Config, ContractInfo, ContractInfoOf, - DefaultAddressGenerator, DeletionQueueCounter, Error, Pallet, Schedule, + BalanceOf, Code, CodeStorage, Config, ContractInfo, ContractInfoOf, DefaultAddressGenerator, + DeletionQueueCounter, Error, Origin, Pallet, Schedule, }; use assert_matches::assert_matches; use codec::Encode; @@ -966,21 +966,21 @@ fn deploy_and_call_other_contract() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(caller_addr.clone()), + caller: Origin::from_account_id(caller_addr.clone()), contract: callee_addr.clone(), }), topics: vec![ - hash(&Caller::::from_account_id(caller_addr.clone())), + hash(&Origin::::from_account_id(caller_addr.clone())), hash(&callee_addr) ], }, EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: caller_addr.clone(), }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&caller_addr)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&caller_addr)], }, ] ); @@ -1288,10 +1288,10 @@ fn self_destruct_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3449,10 +3449,10 @@ fn storage_deposit_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3466,10 +3466,10 @@ fn storage_deposit_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3483,10 +3483,10 @@ fn storage_deposit_works() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: addr.clone(), }), - topics: vec![hash(&Caller::::from_account_id(ALICE)), hash(&addr)], + topics: vec![hash(&Origin::::from_account_id(ALICE)), hash(&addr)], }, EventRecord { phase: Phase::Initialization, @@ -3885,22 +3885,22 @@ fn set_code_hash() { EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: contract_addr.clone(), }), topics: vec![ - hash(&Caller::::from_account_id(ALICE)), + hash(&Origin::::from_account_id(ALICE)), hash(&contract_addr) ], }, EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Contracts(crate::Event::Called { - caller: Caller::from_account_id(ALICE), + caller: Origin::from_account_id(ALICE), contract: contract_addr.clone(), }), topics: vec![ - hash(&Caller::::from_account_id(ALICE)), + hash(&Origin::::from_account_id(ALICE)), hash(&contract_addr) ], }, diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 6b787b480db34..05fba21bc5928 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -370,7 +370,7 @@ mod tests { gas::GasMeter, storage::WriteOutcome, tests::{RuntimeCall, Test, ALICE, BOB}, - BalanceOf, Caller, CodeHash, Error, OldWeight, Pallet as Contracts, + BalanceOf, CodeHash, Error, OldWeight, Origin, Pallet as Contracts, }; use assert_matches::assert_matches; use frame_support::{ @@ -435,7 +435,7 @@ mod tests { debug_buffer: Vec, ecdsa_recover: RefCell>, code_hashes: Vec>, - caller: Caller, + caller: Origin, } /// The call is mocked and just returns this hardcoded value. @@ -459,7 +459,7 @@ mod tests { gas_meter: GasMeter::new(Weight::from_parts(10_000_000_000, 10 * 1024 * 1024)), debug_buffer: Default::default(), ecdsa_recover: Default::default(), - caller: Caller::Signed(ALICE), + caller: Origin::Signed(ALICE), } } } @@ -543,7 +543,7 @@ mod tests { } Ok(result) } - fn caller(&self) -> Caller { + fn caller(&self) -> Origin { self.caller.clone() } fn is_contract(&self, _address: &AccountIdOf) -> bool { @@ -1452,7 +1452,7 @@ mod tests { #[test] fn caller_traps_when_no_account_id() { let mut ext = MockExt::default(); - ext.caller = Caller::Root; + ext.caller = Origin::Root; assert_eq!( execute(CODE_CALLER, vec![], ext), Err(ExecError { error: DispatchError::BadOrigin, origin: ErrorOrigin::Caller }) From 5208f67e0dc36b507cc3e9b6f1037835eea25989 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 12 Apr 2023 16:45:31 +0200 Subject: [PATCH 25/53] contracts: refactor run fn --- frame/contracts/src/exec.rs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 0d3e4e4ff37da..3101779463c09 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -834,18 +834,17 @@ where let do_transaction = || { // We need to charge the storage deposit before the initial transfer so that // it can create the account in case the initial transfer is < ed. - // Also, we can only charge the storage deposit if there is an account id associated - // with the origin, if the origin is Root there is no storage deposit to charge. - match (entry_point, &self.origin) { - (ExportedFunction::Constructor, Origin::Signed(origin)) => { - let frame = top_frame_mut!(self); - frame.nested_storage.charge_instantiate( - origin, - &frame.account_id, - frame.contract_info.get(&frame.account_id), - )?; - }, - _ => (), + // Root origins don't have an account associated with, so when the origin is root we + // can't charge the storage deposit. + if let (ExportedFunction::Constructor, Origin::Signed(origin)) = + (entry_point, &self.origin) + { + let frame = top_frame_mut!(self); + frame.nested_storage.charge_instantiate( + origin, + &frame.account_id, + frame.contract_info.get(&frame.account_id), + )?; }; // Every non delegate call or instantiate also optionally transfers the balance. From e3e1a489216f3b9e56051429f5877700b42d3e27 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 14 Apr 2023 17:58:28 +0200 Subject: [PATCH 26/53] contracts: cr improvements --- frame/contracts/src/exec.rs | 64 +++++++++++++++++++++-------- frame/contracts/src/lib.rs | 6 +-- frame/contracts/src/wasm/mod.rs | 2 +- frame/contracts/src/wasm/runtime.rs | 2 +- primitives/runtime/src/lib.rs | 4 ++ 5 files changed, 55 insertions(+), 23 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 3101779463c09..d986518f27eeb 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -196,7 +196,7 @@ pub trait Ext: sealing::Sealed { take_old: bool, ) -> Result; - /// Returns the caller + /// Returns the caller. fn caller(&self) -> Origin; /// Check if a contract lives at the specified `address`. @@ -834,11 +834,10 @@ where let do_transaction = || { // We need to charge the storage deposit before the initial transfer so that // it can create the account in case the initial transfer is < ed. - // Root origins don't have an account associated with, so when the origin is root we - // can't charge the storage deposit. - if let (ExportedFunction::Constructor, Origin::Signed(origin)) = - (entry_point, &self.origin) - { + if entry_point == ExportedFunction::Constructor { + // Root origin can't be used to instantiate a contract, so it is safe to assume that + // if we reached this point the origin has an associated account. + let origin = &self.origin.account_id()?; let frame = top_frame_mut!(self); frame.nested_storage.charge_instantiate( origin, @@ -878,15 +877,12 @@ where return Err(Error::::TerminatedInConstructor.into()) } - let caller = &self.caller().account_id()?; + let caller = self.caller().account_id()?.clone(); // Deposit an instantiation event. Contracts::::deposit_event( - vec![T::Hashing::hash_of(caller), T::Hashing::hash_of(account_id)], - Event::Instantiated { - deployer: caller.clone(), - contract: account_id.clone(), - }, + vec![T::Hashing::hash_of(&caller), T::Hashing::hash_of(account_id)], + Event::Instantiated { deployer: caller, contract: account_id.clone() }, ); }, (ExportedFunction::Call, Some(code_hash)) => { @@ -1055,14 +1051,16 @@ where return Ok(()) } + let value = frame.value_transferred; + // Get the account id from the Caller. - // If the caller is root, we don't need to transfer. + // If the caller is root there is no account to transfer from, and therefore we can't take + // any `value` other than 0. let caller = match self.caller() { Origin::Signed(caller) => caller, - Origin::Root => return Ok(()), + Origin::Root if value == 0u32.into() => return Ok(()), + Origin::Root => return DispatchError::RootNotAllowed.into(), }; - - let value = frame.value_transferred; Self::transfer(ExistenceRequirement::KeepAlive, &caller, &frame.account_id, value) } @@ -1168,12 +1166,12 @@ where let contract_info = top_frame.contract_info().clone(); let account_id = top_frame.account_id.clone(); let value = top_frame.value_transferred; - let caller = self.caller().account_id()?; + let caller = self.caller().account_id()?.clone(); let executable = self.push_frame( FrameArgs::Call { dest: account_id, cached_info: Some(contract_info), - delegated_call: Some(DelegatedCall { executable, caller: caller.clone() }), + delegated_call: Some(DelegatedCall { executable, caller }), }, value, Weight::zero(), @@ -2205,6 +2203,36 @@ mod tests { }); } + #[test] + fn root_caller_does_not_succeed_when_value_not_zero() { + let code_bob = MockLoader::insert(Call, |ctx, _| { + // root is the origin of the call stack. + assert!(ctx.ext.caller_is_root()); + exec_success() + }); + + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_bob); + let contract_origin = Origin::Root; + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + // root -> BOB (caller is root) + let result = MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 1, + vec![0], + None, + Determinism::Enforced, + ); + assert_matches!(result, Err(_)); + }); + } + #[test] fn root_caller_succeeds_with_consecutive_calls() { let code_charlie = MockLoader::insert(Call, |ctx, _| { diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 6c140740a6638..0f1a358dbc9e1 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -935,10 +935,10 @@ impl Origin { impl Origin { /// Returns the account id of the caller if it has one. /// It errors otherwise. - pub fn account_id(&self) -> Result { + pub fn account_id(&self) -> Result<&T::AccountId, DispatchError> { match self { - Origin::Signed(id) => Ok(id.clone()), - Origin::Root => Err(DispatchError::BadOrigin), + Origin::Signed(id) => Ok(id), + Origin::Root => Err(DispatchError::RootNotAllowed), } } } diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 05fba21bc5928..59b2ec5da8228 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -1455,7 +1455,7 @@ mod tests { ext.caller = Origin::Root; assert_eq!( execute(CODE_CALLER, vec![], ext), - Err(ExecError { error: DispatchError::BadOrigin, origin: ErrorOrigin::Caller }) + Err(ExecError { error: DispatchError::RootNotAllowed, origin: ErrorOrigin::Caller }) ); } diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 60ccbcbabeb5c..ab215ee7702bd 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1634,7 +1634,7 @@ pub mod env { #[prefixed_alias] fn caller(ctx: _, memory: _, out_ptr: u32, out_len_ptr: u32) -> Result<(), TrapReason> { ctx.charge_gas(RuntimeCosts::Caller)?; - let caller = ctx.ext.caller().account_id()?; + let caller = ctx.ext.caller().account_id()?.clone(); Ok(ctx.write_sandbox_output( memory, out_ptr, diff --git a/primitives/runtime/src/lib.rs b/primitives/runtime/src/lib.rs index 2d959425e0f8e..4d57240647f29 100644 --- a/primitives/runtime/src/lib.rs +++ b/primitives/runtime/src/lib.rs @@ -553,6 +553,8 @@ pub enum DispatchError { Corruption, /// Some resource (e.g. a preimage) is unavailable right now. This might fix itself later. Unavailable, + /// Root origin is not allowed. + RootNotAllowed, } /// Result of a `Dispatchable` which contains the `DispatchResult` and additional information about @@ -678,6 +680,7 @@ impl From for &'static str { Exhausted => "Resources exhausted", Corruption => "State corrupt", Unavailable => "Resource unavailable", + RootNotAllowed => "Root not allowed", } } } @@ -724,6 +727,7 @@ impl traits::Printable for DispatchError { Exhausted => "Resources exhausted".print(), Corruption => "State corrupt".print(), Unavailable => "Resource unavailable".print(), + RootNotAllowed => "Root not allowed".print(), } } } From 6158374d547b026008d5ef15d4cbb939739c5786 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 17 Apr 2023 09:37:11 +0200 Subject: [PATCH 27/53] contracts: allow root to use delegate call --- frame/contracts/src/exec.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 8614953d60b00..8f124672f0f65 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -435,7 +435,7 @@ pub struct Frame { /// If `false` the contract enabled its defense against reentrance attacks. allows_reentry: bool, /// The caller of the currently executing frame which was spawned by `delegate_call`. - delegate_caller: Option, + delegate_caller: Option>, } /// Used in a delegate call frame arguments in order to override the executable and caller. @@ -443,7 +443,7 @@ struct DelegatedCall { /// The executable which is run instead of the contracts own `executable`. executable: E, /// The account id of the caller contract. - caller: T::AccountId, + caller: Origin, } /// Parameter passed in when creating a new `Frame`. @@ -1172,12 +1172,11 @@ where let contract_info = top_frame.contract_info().clone(); let account_id = top_frame.account_id.clone(); let value = top_frame.value_transferred; - let caller = self.caller().account_id()?.clone(); let executable = self.push_frame( FrameArgs::Call { dest: account_id, cached_info: Some(contract_info), - delegated_call: Some(DelegatedCall { executable, caller }), + delegated_call: Some(DelegatedCall { executable, caller: self.caller() }), }, value, Weight::zero(), @@ -1271,7 +1270,7 @@ where fn caller(&self) -> Origin { if let Some(caller) = &self.top_frame().delegate_caller { - Origin::Signed(caller.clone()) + caller.clone() } else { self.frames() .nth(1) From 86c38abe65ded855fd0fe195be77f4771dbbd019 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 17 Apr 2023 10:41:21 +0200 Subject: [PATCH 28/53] contracts: add caller_is_root weight --- frame/contracts/src/schedule.rs | 4 ++++ frame/contracts/src/wasm/runtime.rs | 17 +++++++++++++++++ frame/contracts/src/weights.rs | 7 +++++++ 3 files changed, 28 insertions(+) diff --git a/frame/contracts/src/schedule.rs b/frame/contracts/src/schedule.rs index 747540bce6359..1fa2db91cab5c 100644 --- a/frame/contracts/src/schedule.rs +++ b/frame/contracts/src/schedule.rs @@ -256,6 +256,9 @@ pub struct HostFnWeights { /// Weight of calling `seal_caller_is_origin`. pub caller_is_origin: Weight, + /// Weight of calling `seal_caller_is_root`. + pub caller_is_root: Weight, + /// Weight of calling `seal_address`. pub address: Weight, @@ -552,6 +555,7 @@ impl Default for HostFnWeights { code_hash: cost!(seal_code_hash), own_code_hash: cost!(seal_own_code_hash), caller_is_origin: cost!(seal_caller_is_origin), + caller_is_root: cost!(seal_caller_is_root), address: cost!(seal_address), gas_left: cost!(seal_gas_left), balance: cost!(seal_balance), diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 16549d834a4c9..0a513bebbcdf4 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -191,6 +191,8 @@ pub enum RuntimeCosts { OwnCodeHash, /// Weight of calling `seal_caller_is_origin`. CallerIsOrigin, + /// Weight of calling `seal_caller_is_root`. + CallerIsRoot, /// Weight of calling `seal_address`. Address, /// Weight of calling `seal_gas_left`. @@ -283,6 +285,7 @@ impl RuntimeCosts { CodeHash => s.code_hash, OwnCodeHash => s.own_code_hash, CallerIsOrigin => s.caller_is_origin, + CallerIsRoot => s.caller_is_root, Address => s.address, GasLeft => s.gas_left, Balance => s.balance, @@ -1745,6 +1748,20 @@ pub mod env { Ok(ctx.ext.caller_is_origin() as u32) } + /// Checks whether the caller of the current contract is root. + /// + /// Note that this is only possible when root is the origin of the whole call stack. + /// + /// A return value of `true` indicates that this contract is being called by a root origin + /// and `false` indicates that the caller is a signed origin. + /// + /// Returned value is a `u32`-encoded boolean: (`0 = false`, `1 = true`). + #[prefixed_alias] + fn caller_is_root(ctx: _, _memory: _) -> Result { + ctx.charge_gas(RuntimeCosts::CallerIsRoot)?; + Ok(ctx.ext.caller_is_root() as u32) + } + /// Stores the address of the current contract into the supplied buffer. /// /// The value is stored to linear memory at the address pointed to by `out_ptr`. diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index cdaba7f59b72f..78b82ebc70863 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -63,6 +63,7 @@ pub trait WeightInfo { fn seal_code_hash(r: u32, ) -> Weight; fn seal_own_code_hash(r: u32, ) -> Weight; fn seal_caller_is_origin(r: u32, ) -> Weight; + fn seal_caller_is_root(r: u32, ) -> Weight; fn seal_address(r: u32, ) -> Weight; fn seal_gas_left(r: u32, ) -> Weight; fn seal_balance(r: u32, ) -> Weight; @@ -489,6 +490,9 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } + fn seal_caller_is_root(_r: u32, ) -> Weight { + Weight::zero() + } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) @@ -2481,6 +2485,9 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } + fn seal_caller_is_root(_r: u32, ) -> Weight { + Weight::zero() + } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) From baeb20e5c1bcca6895071455113d035cf50bb179 Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Mon, 17 Apr 2023 10:12:29 +0000 Subject: [PATCH 29/53] ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts --- frame/contracts/src/weights.rs | 1928 ++++++++++++++++---------------- 1 file changed, 957 insertions(+), 971 deletions(-) diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 78b82ebc70863..57a963a63e68f 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -18,25 +18,26 @@ //! Autogenerated weights for pallet_contracts //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `bm2`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/substrate +// target/production/substrate // benchmark // pallet -// --chain=dev // --steps=50 // --repeat=20 -// --pallet=pallet_contracts // --extrinsic=* // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/contracts/src/weights.rs +// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/substrate/.git/.artifacts/bench.json +// --pallet=pallet_contracts +// --chain=dev // --header=./HEADER-APACHE2 +// --output=./frame/contracts/src/weights.rs // --template=./.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -63,7 +64,6 @@ pub trait WeightInfo { fn seal_code_hash(r: u32, ) -> Weight; fn seal_own_code_hash(r: u32, ) -> Weight; fn seal_caller_is_origin(r: u32, ) -> Weight; - fn seal_caller_is_root(r: u32, ) -> Weight; fn seal_address(r: u32, ) -> Weight; fn seal_gas_left(r: u32, ) -> Weight; fn seal_balance(r: u32, ) -> Weight; @@ -178,8 +178,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_565_000 picoseconds. - Weight::from_parts(2_759_000, 1594) + // Minimum execution time: 2_732_000 picoseconds. + Weight::from_parts(2_891_000, 1594) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -189,10 +189,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_480_000 picoseconds. - Weight::from_parts(10_153_869, 478) - // Standard Error: 427 - .saturating_add(Weight::from_parts(958_726, 0).saturating_mul(k.into())) + // Minimum execution time: 13_440_000 picoseconds. + Weight::from_parts(8_360_703, 478) + // Standard Error: 1_070 + .saturating_add(Weight::from_parts(968_976, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -208,10 +208,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 30_406_000 picoseconds. - Weight::from_parts(28_467_370, 3708) - // Standard Error: 46 - .saturating_add(Weight::from_parts(53_724, 0).saturating_mul(c.into())) + // Minimum execution time: 38_480_000 picoseconds. + Weight::from_parts(37_986_449, 3708) + // Standard Error: 52 + .saturating_add(Weight::from_parts(54_436, 0).saturating_mul(c.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(c.into())) @@ -231,10 +231,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 263_198_000 picoseconds. - Weight::from_parts(276_162_279, 6656) - // Standard Error: 18 - .saturating_add(Weight::from_parts(37_378, 0).saturating_mul(c.into())) + // Minimum execution time: 317_858_000 picoseconds. + Weight::from_parts(316_836_827, 6656) + // Standard Error: 82 + .saturating_add(Weight::from_parts(38_240, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -262,14 +262,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_132_259_000 picoseconds. - Weight::from_parts(513_284_834, 8659) - // Standard Error: 280 - .saturating_add(Weight::from_parts(106_723, 0).saturating_mul(c.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(i.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_436, 0).saturating_mul(s.into())) + // Minimum execution time: 3_287_137_000 picoseconds. + Weight::from_parts(628_452_802, 8659) + // Standard Error: 295 + .saturating_add(Weight::from_parts(108_579, 0).saturating_mul(c.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_174, 0).saturating_mul(i.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_488, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -293,12 +293,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_646_604_000 picoseconds. - Weight::from_parts(271_369_256, 6408) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_426, 0).saturating_mul(i.into())) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_438, 0).saturating_mul(s.into())) + // Minimum execution time: 1_697_157_000 picoseconds. + Weight::from_parts(263_863_134, 6408) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(i.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_514, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -316,8 +316,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 191_360_000 picoseconds. - Weight::from_parts(192_625_000, 6699) + // Minimum execution time: 192_637_000 picoseconds. + Weight::from_parts(193_909_000, 6699) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -334,10 +334,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 245_207_000 picoseconds. - Weight::from_parts(244_703_457, 3574) - // Standard Error: 61 - .saturating_add(Weight::from_parts(106_850, 0).saturating_mul(c.into())) + // Minimum execution time: 303_462_000 picoseconds. + Weight::from_parts(333_144_274, 3574) + // Standard Error: 194 + .saturating_add(Weight::from_parts(107_349, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -353,8 +353,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_560_000 picoseconds. - Weight::from_parts(33_833_000, 3720) + // Minimum execution time: 33_658_000 picoseconds. + Weight::from_parts(34_334_000, 3720) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -368,8 +368,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_288_000 picoseconds. - Weight::from_parts(33_775_000, 8985) + // Minimum execution time: 33_847_000 picoseconds. + Weight::from_parts(34_250_000, 8985) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -388,10 +388,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 234_292_000 picoseconds. - Weight::from_parts(235_941_911, 6722) - // Standard Error: 413 - .saturating_add(Weight::from_parts(339_913, 0).saturating_mul(r.into())) + // Minimum execution time: 286_676_000 picoseconds. + Weight::from_parts(289_046_797, 6722) + // Standard Error: 898 + .saturating_add(Weight::from_parts(342_636, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -411,10 +411,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 236_273_000 picoseconds. - Weight::from_parts(74_380_906, 6743) - // Standard Error: 5_745 - .saturating_add(Weight::from_parts(3_331_781, 0).saturating_mul(r.into())) + // Minimum execution time: 287_691_000 picoseconds. + Weight::from_parts(126_218_824, 6743) + // Standard Error: 6_083 + .saturating_add(Weight::from_parts(3_300_296, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -435,10 +435,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 236_573_000 picoseconds. - Weight::from_parts(82_473_906, 6747) - // Standard Error: 5_510 - .saturating_add(Weight::from_parts(4_131_820, 0).saturating_mul(r.into())) + // Minimum execution time: 288_223_000 picoseconds. + Weight::from_parts(138_731_429, 6747) + // Standard Error: 7_351 + .saturating_add(Weight::from_parts(4_180_670, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -459,10 +459,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 235_878_000 picoseconds. - Weight::from_parts(238_387_359, 6730) - // Standard Error: 318 - .saturating_add(Weight::from_parts(409_923, 0).saturating_mul(r.into())) + // Minimum execution time: 287_955_000 picoseconds. + Weight::from_parts(292_151_471, 6730) + // Standard Error: 570 + .saturating_add(Weight::from_parts(408_585, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -482,17 +482,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 233_476_000 picoseconds. - Weight::from_parts(238_014_452, 6723) - // Standard Error: 145 - .saturating_add(Weight::from_parts(165_823, 0).saturating_mul(r.into())) + // Minimum execution time: 284_091_000 picoseconds. + Weight::from_parts(289_062_398, 6723) + // Standard Error: 306 + .saturating_add(Weight::from_parts(179_413, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - fn seal_caller_is_root(_r: u32, ) -> Weight { - Weight::zero() - } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) @@ -508,10 +505,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 235_490_000 picoseconds. - Weight::from_parts(240_039_685, 6724) - // Standard Error: 330 - .saturating_add(Weight::from_parts(332_291, 0).saturating_mul(r.into())) + // Minimum execution time: 287_167_000 picoseconds. + Weight::from_parts(288_073_363, 6724) + // Standard Error: 618 + .saturating_add(Weight::from_parts(340_081, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -531,10 +528,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 236_093_000 picoseconds. - Weight::from_parts(238_513_328, 6721) - // Standard Error: 206 - .saturating_add(Weight::from_parts(328_899, 0).saturating_mul(r.into())) + // Minimum execution time: 289_286_000 picoseconds. + Weight::from_parts(290_983_861, 6721) + // Standard Error: 1_019 + .saturating_add(Weight::from_parts(334_654, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -554,10 +551,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 234_801_000 picoseconds. - Weight::from_parts(243_519_159, 6846) - // Standard Error: 1_367 - .saturating_add(Weight::from_parts(1_449_599, 0).saturating_mul(r.into())) + // Minimum execution time: 286_684_000 picoseconds. + Weight::from_parts(288_869_149, 6846) + // Standard Error: 2_427 + .saturating_add(Weight::from_parts(1_514_507, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -577,10 +574,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 236_765_000 picoseconds. - Weight::from_parts(237_843_244, 6741) - // Standard Error: 308 - .saturating_add(Weight::from_parts(329_911, 0).saturating_mul(r.into())) + // Minimum execution time: 286_945_000 picoseconds. + Weight::from_parts(291_658_888, 6741) + // Standard Error: 784 + .saturating_add(Weight::from_parts(326_072, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -600,10 +597,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 236_690_000 picoseconds. - Weight::from_parts(241_743_164, 6739) - // Standard Error: 333 - .saturating_add(Weight::from_parts(324_693, 0).saturating_mul(r.into())) + // Minimum execution time: 286_675_000 picoseconds. + Weight::from_parts(286_943_523, 6739) + // Standard Error: 663 + .saturating_add(Weight::from_parts(330_474, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -623,10 +620,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 236_149_000 picoseconds. - Weight::from_parts(239_090_707, 6737) - // Standard Error: 246 - .saturating_add(Weight::from_parts(344_488, 0).saturating_mul(r.into())) + // Minimum execution time: 286_793_000 picoseconds. + Weight::from_parts(291_610_546, 6737) + // Standard Error: 787 + .saturating_add(Weight::from_parts(321_984, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -646,10 +643,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 235_057_000 picoseconds. - Weight::from_parts(237_752_870, 6723) - // Standard Error: 236 - .saturating_add(Weight::from_parts(328_235, 0).saturating_mul(r.into())) + // Minimum execution time: 287_195_000 picoseconds. + Weight::from_parts(292_436_566, 6723) + // Standard Error: 655 + .saturating_add(Weight::from_parts(324_266, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -671,10 +668,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 234_995_000 picoseconds. - Weight::from_parts(246_473_554, 6796) - // Standard Error: 1_015 - .saturating_add(Weight::from_parts(1_337_653, 0).saturating_mul(r.into())) + // Minimum execution time: 286_521_000 picoseconds. + Weight::from_parts(301_288_810, 6796) + // Standard Error: 1_060 + .saturating_add(Weight::from_parts(1_341_241, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -694,10 +691,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 160_445_000 picoseconds. - Weight::from_parts(165_558_135, 6687) - // Standard Error: 234 - .saturating_add(Weight::from_parts(133_607, 0).saturating_mul(r.into())) + // Minimum execution time: 163_639_000 picoseconds. + Weight::from_parts(168_047_588, 6687) + // Standard Error: 280 + .saturating_add(Weight::from_parts(131_938, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -717,10 +714,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 235_065_000 picoseconds. - Weight::from_parts(237_797_177, 6724) - // Standard Error: 336 - .saturating_add(Weight::from_parts(267_302, 0).saturating_mul(r.into())) + // Minimum execution time: 286_853_000 picoseconds. + Weight::from_parts(290_619_643, 6724) + // Standard Error: 2_488 + .saturating_add(Weight::from_parts(283_378, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -740,10 +737,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 236_215_000 picoseconds. - Weight::from_parts(239_347_313, 6724) - // Standard Error: 0 - .saturating_add(Weight::from_parts(587, 0).saturating_mul(n.into())) + // Minimum execution time: 288_925_000 picoseconds. + Weight::from_parts(289_190_307, 6724) + // Standard Error: 1 + .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -762,10 +759,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 231_571_000 picoseconds. - Weight::from_parts(233_477_918, 6708) - // Standard Error: 95_776 - .saturating_add(Weight::from_parts(1_733_181, 0).saturating_mul(r.into())) + // Minimum execution time: 283_170_000 picoseconds. + Weight::from_parts(285_753_191, 6708) + // Standard Error: 439_986 + .saturating_add(Weight::from_parts(2_559_308, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -785,10 +782,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 234_956_000 picoseconds. - Weight::from_parts(236_785_051, 6731) + // Minimum execution time: 287_657_000 picoseconds. + Weight::from_parts(287_957_330, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(177, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(226, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -813,10 +810,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 234_275_000 picoseconds. - Weight::from_parts(236_776_769, 6750) - // Standard Error: 137_203 - .saturating_add(Weight::from_parts(110_758_930, 0).saturating_mul(r.into())) + // Minimum execution time: 286_218_000 picoseconds. + Weight::from_parts(287_973_685, 6750) + // Standard Error: 132_929 + .saturating_add(Weight::from_parts(113_477_614, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -840,10 +837,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 235_593_000 picoseconds. - Weight::from_parts(253_731_242, 6769) - // Standard Error: 2_129 - .saturating_add(Weight::from_parts(1_771_297, 0).saturating_mul(r.into())) + // Minimum execution time: 287_143_000 picoseconds. + Weight::from_parts(323_629_555, 6769) + // Standard Error: 4_493 + .saturating_add(Weight::from_parts(1_833_474, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -863,10 +860,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 232_124_000 picoseconds. - Weight::from_parts(245_904_447, 6723) - // Standard Error: 2_185 - .saturating_add(Weight::from_parts(3_470_410, 0).saturating_mul(r.into())) + // Minimum execution time: 284_483_000 picoseconds. + Weight::from_parts(319_237_262, 6723) + // Standard Error: 2_905 + .saturating_add(Weight::from_parts(3_545_601, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -887,12 +884,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 250_301_000 picoseconds. - Weight::from_parts(245_292_258, 6744) - // Standard Error: 29_864 - .saturating_add(Weight::from_parts(2_163_531, 0).saturating_mul(t.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(583, 0).saturating_mul(n.into())) + // Minimum execution time: 302_452_000 picoseconds. + Weight::from_parts(302_814_416, 6744) + // Standard Error: 220_671 + .saturating_add(Weight::from_parts(1_917_489, 0).saturating_mul(t.into())) + // Standard Error: 61 + .saturating_add(Weight::from_parts(330, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -914,10 +911,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 165_711_000 picoseconds. - Weight::from_parts(168_792_571, 6721) - // Standard Error: 216 - .saturating_add(Weight::from_parts(230_285, 0).saturating_mul(r.into())) + // Minimum execution time: 169_421_000 picoseconds. + Weight::from_parts(170_245_138, 6721) + // Standard Error: 2_909 + .saturating_add(Weight::from_parts(241_230, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -937,10 +934,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 348_928_000 picoseconds. - Weight::from_parts(352_224_793, 131670) - // Standard Error: 0 - .saturating_add(Weight::from_parts(731, 0).saturating_mul(i.into())) + // Minimum execution time: 412_961_000 picoseconds. + Weight::from_parts(421_952_796, 131670) + // Standard Error: 2 + .saturating_add(Weight::from_parts(780, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -951,10 +948,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 236_418_000 picoseconds. - Weight::from_parts(129_862_840, 843) - // Standard Error: 9_733 - .saturating_add(Weight::from_parts(6_005_187, 0).saturating_mul(r.into())) + // Minimum execution time: 287_519_000 picoseconds. + Weight::from_parts(186_499_884, 843) + // Standard Error: 9_607 + .saturating_add(Weight::from_parts(6_107_425, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -968,10 +965,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 251_599_000 picoseconds. - Weight::from_parts(285_284_665, 1280) - // Standard Error: 46 - .saturating_add(Weight::from_parts(410, 0).saturating_mul(n.into())) + // Minimum execution time: 303_427_000 picoseconds. + Weight::from_parts(337_154_389, 1280) + // Standard Error: 49 + .saturating_add(Weight::from_parts(540, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -982,10 +979,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 251_309_000 picoseconds. - Weight::from_parts(253_555_552, 1167) - // Standard Error: 9 - .saturating_add(Weight::from_parts(27, 0).saturating_mul(n.into())) + // Minimum execution time: 303_607_000 picoseconds. + Weight::from_parts(310_031_052, 1167) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -997,10 +992,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 235_441_000 picoseconds. - Weight::from_parts(132_980_942, 845) - // Standard Error: 9_421 - .saturating_add(Weight::from_parts(5_854_896, 0).saturating_mul(r.into())) + // Minimum execution time: 286_440_000 picoseconds. + Weight::from_parts(185_306_517, 845) + // Standard Error: 9_667 + .saturating_add(Weight::from_parts(5_978_509, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1014,10 +1009,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 249_967_000 picoseconds. - Weight::from_parts(252_122_186, 1163) - // Standard Error: 10 - .saturating_add(Weight::from_parts(74, 0).saturating_mul(n.into())) + // Minimum execution time: 301_474_000 picoseconds. + Weight::from_parts(303_507_876, 1163) + // Standard Error: 21 + .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1029,10 +1024,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 235_647_000 picoseconds. - Weight::from_parts(145_525_169, 840) - // Standard Error: 8_553 - .saturating_add(Weight::from_parts(4_948_021, 0).saturating_mul(r.into())) + // Minimum execution time: 287_458_000 picoseconds. + Weight::from_parts(198_932_702, 840) + // Standard Error: 9_573 + .saturating_add(Weight::from_parts(4_954_559, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1045,10 +1040,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 249_576_000 picoseconds. - Weight::from_parts(250_747_191, 1179) - // Standard Error: 8 - .saturating_add(Weight::from_parts(717, 0).saturating_mul(n.into())) + // Minimum execution time: 301_100_000 picoseconds. + Weight::from_parts(304_937_675, 1179) + // Standard Error: 41 + .saturating_add(Weight::from_parts(674, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1060,10 +1055,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 236_110_000 picoseconds. - Weight::from_parts(148_420_625, 857) - // Standard Error: 8_175 - .saturating_add(Weight::from_parts(4_684_126, 0).saturating_mul(r.into())) + // Minimum execution time: 288_014_000 picoseconds. + Weight::from_parts(204_067_757, 857) + // Standard Error: 8_223 + .saturating_add(Weight::from_parts(4_763_943, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1076,10 +1071,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 247_800_000 picoseconds. - Weight::from_parts(249_410_575, 1166) - // Standard Error: 6 - .saturating_add(Weight::from_parts(99, 0).saturating_mul(n.into())) + // Minimum execution time: 299_485_000 picoseconds. + Weight::from_parts(302_066_517, 1166) + // Standard Error: 26 + .saturating_add(Weight::from_parts(183, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1091,10 +1086,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 235_251_000 picoseconds. - Weight::from_parts(128_816_707, 836) - // Standard Error: 9_887 - .saturating_add(Weight::from_parts(6_167_176, 0).saturating_mul(r.into())) + // Minimum execution time: 286_733_000 picoseconds. + Weight::from_parts(182_822_600, 836) + // Standard Error: 10_229 + .saturating_add(Weight::from_parts(6_137_762, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1108,10 +1103,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 250_401_000 picoseconds. - Weight::from_parts(253_298_243, 1180) - // Standard Error: 9 - .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) + // Minimum execution time: 303_472_000 picoseconds. + Weight::from_parts(306_709_156, 1180) + // Standard Error: 114 + .saturating_add(Weight::from_parts(878, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1131,10 +1126,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 236_470_000 picoseconds. - Weight::from_parts(98_898_727, 7270) - // Standard Error: 33_316 - .saturating_add(Weight::from_parts(35_149_946, 0).saturating_mul(r.into())) + // Minimum execution time: 287_997_000 picoseconds. + Weight::from_parts(413_154_187, 7270) + // Standard Error: 50_335 + .saturating_add(Weight::from_parts(35_932_808, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1149,20 +1144,20 @@ impl WeightInfo for SubstrateWeight { /// Proof: Contracts CodeStorage (max_values: None, max_size: Some(126001), added: 128476, mode: Measured) /// Storage: Timestamp Now (r:1 w:0) /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) - /// Storage: System EventTopics (r:802 w:802) + /// Storage: System EventTopics (r:803 w:803) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) /// The range of component `r` is `[0, 800]`. fn seal_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` - // Estimated: `7125 + r * (2732 ±0)` - // Minimum execution time: 238_303_000 picoseconds. - Weight::from_parts(239_024_000, 7125) - // Standard Error: 65_907 - .saturating_add(Weight::from_parts(209_419_071, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Estimated: `9408 + r * (2732 ±0)` + // Minimum execution time: 288_697_000 picoseconds. + Weight::from_parts(289_497_000, 9408) + // Standard Error: 84_152 + .saturating_add(Weight::from_parts(264_273_999, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2732).saturating_mul(r.into())) } @@ -1181,10 +1176,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` // Estimated: `6727 + r * (2572 ±10)` - // Minimum execution time: 235_961_000 picoseconds. - Weight::from_parts(236_939_000, 6727) - // Standard Error: 83_087 - .saturating_add(Weight::from_parts(205_646_517, 0).saturating_mul(r.into())) + // Minimum execution time: 288_939_000 picoseconds. + Weight::from_parts(289_352_000, 6727) + // Standard Error: 89_294 + .saturating_add(Weight::from_parts(258_967_466, 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(3_u64)) @@ -1199,23 +1194,23 @@ impl WeightInfo for SubstrateWeight { /// Proof: Contracts CodeStorage (max_values: None, max_size: Some(126001), added: 128476, mode: Measured) /// Storage: Timestamp Now (r:1 w:0) /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) - /// Storage: System EventTopics (r:3 w:3) + /// Storage: System EventTopics (r:4 w:4) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) /// The range of component `t` is `[0, 1]`. /// The range of component `c` is `[0, 1048576]`. fn seal_call_per_transfer_clone_byte(t: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` - // Estimated: `9569 + t * (5154 ±0)` - // Minimum execution time: 410_156_000 picoseconds. - Weight::from_parts(378_378_143, 9569) - // Standard Error: 285_172 - .saturating_add(Weight::from_parts(34_736_740, 0).saturating_mul(t.into())) - // Standard Error: 0 - .saturating_add(Weight::from_parts(591, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(9_u64)) + // Estimated: `12044 + t * (5154 ±0)` + // Minimum execution time: 466_182_000 picoseconds. + Weight::from_parts(417_471_518, 12044) + // Standard Error: 1_324_392 + .saturating_add(Weight::from_parts(50_217_680, 0).saturating_mul(t.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(661, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into()))) - .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(t.into()))) .saturating_add(Weight::from_parts(0, 5154).saturating_mul(t.into())) } @@ -1238,10 +1233,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 236_748_000 picoseconds. - Weight::from_parts(237_129_000, 7131) - // Standard Error: 280_059 - .saturating_add(Weight::from_parts(341_428_013, 0).saturating_mul(r.into())) + // Minimum execution time: 288_768_000 picoseconds. + Weight::from_parts(289_564_000, 7131) + // Standard Error: 252_309 + .saturating_add(Weight::from_parts(397_797_262, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1269,14 +1264,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_613_796_000 picoseconds. - Weight::from_parts(340_002_206, 9492) - // Standard Error: 4_296_381 - .saturating_add(Weight::from_parts(115_239_834, 0).saturating_mul(t.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_145, 0).saturating_mul(i.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_315, 0).saturating_mul(s.into())) + // Minimum execution time: 1_718_177_000 picoseconds. + Weight::from_parts(373_356_266, 9492) + // Standard Error: 5_010_435 + .saturating_add(Weight::from_parts(127_043_740, 0).saturating_mul(t.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(i.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) @@ -1298,10 +1293,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 233_111_000 picoseconds. - Weight::from_parts(238_643_933, 6718) - // Standard Error: 184 - .saturating_add(Weight::from_parts(572_296, 0).saturating_mul(r.into())) + // Minimum execution time: 285_503_000 picoseconds. + Weight::from_parts(292_276_944, 6718) + // Standard Error: 1_121 + .saturating_add(Weight::from_parts(579_727, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1321,10 +1316,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 234_746_000 picoseconds. - Weight::from_parts(229_815_552, 6725) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_892, 0).saturating_mul(n.into())) + // Minimum execution time: 286_428_000 picoseconds. + Weight::from_parts(280_912_017, 6725) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_988, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1343,10 +1338,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 232_732_000 picoseconds. - Weight::from_parts(239_007_209, 6721) - // Standard Error: 256 - .saturating_add(Weight::from_parts(733_879, 0).saturating_mul(r.into())) + // Minimum execution time: 283_991_000 picoseconds. + Weight::from_parts(288_786_486, 6721) + // Standard Error: 865 + .saturating_add(Weight::from_parts(753_580, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1366,10 +1361,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 234_184_000 picoseconds. - Weight::from_parts(227_603_375, 6729) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_127, 0).saturating_mul(n.into())) + // Minimum execution time: 286_108_000 picoseconds. + Weight::from_parts(283_598_176, 6729) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_212, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1388,10 +1383,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 233_038_000 picoseconds. - Weight::from_parts(238_515_817, 6724) - // Standard Error: 255 - .saturating_add(Weight::from_parts(413_343, 0).saturating_mul(r.into())) + // Minimum execution time: 284_741_000 picoseconds. + Weight::from_parts(291_123_708, 6724) + // Standard Error: 1_833 + .saturating_add(Weight::from_parts(431_762, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1411,10 +1406,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 232_996_000 picoseconds. - Weight::from_parts(226_706_997, 6733) - // Standard Error: 1 - .saturating_add(Weight::from_parts(908, 0).saturating_mul(n.into())) + // Minimum execution time: 286_082_000 picoseconds. + Weight::from_parts(281_634_804, 6733) + // Standard Error: 2 + .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1433,10 +1428,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 232_292_000 picoseconds. - Weight::from_parts(237_997_001, 6725) - // Standard Error: 219 - .saturating_add(Weight::from_parts(410_177, 0).saturating_mul(r.into())) + // Minimum execution time: 283_632_000 picoseconds. + Weight::from_parts(289_666_460, 6725) + // Standard Error: 637 + .saturating_add(Weight::from_parts(422_999, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1456,10 +1451,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 234_815_000 picoseconds. - Weight::from_parts(226_317_150, 6727) - // Standard Error: 1 - .saturating_add(Weight::from_parts(911, 0).saturating_mul(n.into())) + // Minimum execution time: 285_963_000 picoseconds. + Weight::from_parts(275_886_416, 6727) + // Standard Error: 2 + .saturating_add(Weight::from_parts(974, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1477,11 +1472,11 @@ impl WeightInfo for SubstrateWeight { fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` - // Estimated: `6848 + n * (1 ±0)` - // Minimum execution time: 286_323_000 picoseconds. - Weight::from_parts(290_287_955, 6848) - // Standard Error: 1 - .saturating_add(Weight::from_parts(4_693, 0).saturating_mul(n.into())) + // Estimated: `6849 + n * (1 ±0)` + // Minimum execution time: 338_908_000 picoseconds. + Weight::from_parts(342_986_608, 6849) + // Standard Error: 8 + .saturating_add(Weight::from_parts(4_894, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1499,12 +1494,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 160]`. fn seal_sr25519_verify(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `727 + r * (112 ±0)` + // Measured: `722 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 235_938_000 picoseconds. - Weight::from_parts(242_728_358, 6666) - // Standard Error: 9_725 - .saturating_add(Weight::from_parts(47_527_740, 0).saturating_mul(r.into())) + // Minimum execution time: 288_881_000 picoseconds. + Weight::from_parts(293_510_765, 6666) + // Standard Error: 22_326 + .saturating_add(Weight::from_parts(48_206_988, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -1523,11 +1518,11 @@ impl WeightInfo for SubstrateWeight { fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `822 + r * (76 ±0)` - // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 236_108_000 picoseconds. - Weight::from_parts(248_577_226, 6716) - // Standard Error: 9_565 - .saturating_add(Weight::from_parts(36_733_552, 0).saturating_mul(r.into())) + // Estimated: `6717 + r * (77 ±0)` + // Minimum execution time: 288_232_000 picoseconds. + Weight::from_parts(302_410_889, 6717) + // Standard Error: 18_447 + .saturating_add(Weight::from_parts(37_715_119, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -1547,10 +1542,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 236_440_000 picoseconds. - Weight::from_parts(240_771_418, 6731) - // Standard Error: 1_849 - .saturating_add(Weight::from_parts(9_185_896, 0).saturating_mul(r.into())) + // Minimum execution time: 287_220_000 picoseconds. + Weight::from_parts(298_049_708, 6731) + // Standard Error: 12_619 + .saturating_add(Weight::from_parts(9_337_433, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -1571,11 +1566,11 @@ impl WeightInfo for SubstrateWeight { fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` - // Estimated: `8190 + r * (3090 ±10)` - // Minimum execution time: 235_056_000 picoseconds. - Weight::from_parts(235_743_000, 8190) - // Standard Error: 46_122 - .saturating_add(Weight::from_parts(21_447_984, 0).saturating_mul(r.into())) + // Estimated: `8190 + r * (3090 ±7)` + // Minimum execution time: 288_354_000 picoseconds. + Weight::from_parts(288_850_000, 8190) + // Standard Error: 51_911 + .saturating_add(Weight::from_parts(21_849_160, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1597,10 +1592,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 235_213_000 picoseconds. - Weight::from_parts(239_456_464, 6723) - // Standard Error: 130 - .saturating_add(Weight::from_parts(159_851, 0).saturating_mul(r.into())) + // Minimum execution time: 286_562_000 picoseconds. + Weight::from_parts(292_112_735, 6723) + // Standard Error: 468 + .saturating_add(Weight::from_parts(169_786, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1620,10 +1615,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 237_886_000 picoseconds. - Weight::from_parts(262_430_157, 7805) - // Standard Error: 939 - .saturating_add(Weight::from_parts(260_005, 0).saturating_mul(r.into())) + // Minimum execution time: 290_031_000 picoseconds. + Weight::from_parts(316_516_939, 7805) + // Standard Error: 975 + .saturating_add(Weight::from_parts(260_809, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -1645,10 +1640,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 234_014_000 picoseconds. - Weight::from_parts(240_042_671, 6723) - // Standard Error: 152 - .saturating_add(Weight::from_parts(138_382, 0).saturating_mul(r.into())) + // Minimum execution time: 285_777_000 picoseconds. + Weight::from_parts(292_816_667, 6723) + // Standard Error: 332 + .saturating_add(Weight::from_parts(139_265, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1658,510 +1653,508 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_533_000 picoseconds. - Weight::from_parts(1_846_015, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(2_935, 0).saturating_mul(r.into())) + // Minimum execution time: 1_740_000 picoseconds. + Weight::from_parts(1_962_394, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_997, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_671_000 picoseconds. - Weight::from_parts(2_197_197, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_335, 0).saturating_mul(r.into())) + // Minimum execution time: 1_849_000 picoseconds. + Weight::from_parts(2_212_786, 0) + // Standard Error: 177 + .saturating_add(Weight::from_parts(6_644, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_665_000 picoseconds. - Weight::from_parts(2_200_545, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_011, 0).saturating_mul(r.into())) + // Minimum execution time: 1_860_000 picoseconds. + Weight::from_parts(2_424_024, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(5_973, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_545_000 picoseconds. - Weight::from_parts(1_977_462, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(7_901, 0).saturating_mul(r.into())) + // Minimum execution time: 1_694_000 picoseconds. + Weight::from_parts(2_134_440, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(7_923, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_515_000 picoseconds. - Weight::from_parts(1_866_184, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_514, 0).saturating_mul(r.into())) + // Minimum execution time: 1_696_000 picoseconds. + Weight::from_parts(1_929_027, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(10_734, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_618_000 picoseconds. - Weight::from_parts(1_895_104, 0) + // Minimum execution time: 1_770_000 picoseconds. + Weight::from_parts(1_933_446, 0) // Standard Error: 12 - .saturating_add(Weight::from_parts(4_523, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(4_577, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_510_000 picoseconds. - Weight::from_parts(1_779_998, 0) - // Standard Error: 8 - .saturating_add(Weight::from_parts(6_832, 0).saturating_mul(r.into())) + // Minimum execution time: 1_718_000 picoseconds. + Weight::from_parts(1_708_252, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(7_045, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_529_000 picoseconds. - Weight::from_parts(1_726_996, 0) - // Standard Error: 26 - .saturating_add(Weight::from_parts(9_199, 0).saturating_mul(r.into())) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(1_390_869, 0) + // Standard Error: 32 + .saturating_add(Weight::from_parts(9_562, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(e: u32, ) -> Weight { + fn instr_br_table_per_entry(_e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_682_000 picoseconds. - Weight::from_parts(1_789_910, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(42, 0).saturating_mul(e.into())) + // Minimum execution time: 1_761_000 picoseconds. + Weight::from_parts(1_921_216, 0) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_539_000 picoseconds. - Weight::from_parts(2_093_056, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(18_917, 0).saturating_mul(r.into())) + // Minimum execution time: 1_718_000 picoseconds. + Weight::from_parts(2_117_970, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(18_027, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_851_000 picoseconds. - Weight::from_parts(3_134_610, 0) - // Standard Error: 34 - .saturating_add(Weight::from_parts(24_714, 0).saturating_mul(r.into())) + // Minimum execution time: 1_884_000 picoseconds. + Weight::from_parts(2_905_643, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(24_217, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_654_000 picoseconds. - Weight::from_parts(1_885_921, 0) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_243, 0).saturating_mul(l.into())) + // Minimum execution time: 1_800_000 picoseconds. + Weight::from_parts(2_020_935, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(2_038, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_744_000 picoseconds. - Weight::from_parts(3_014_725, 0) + // Minimum execution time: 3_931_000 picoseconds. + Weight::from_parts(4_180_543, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(2_447, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(2_499, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_881_000 picoseconds. - Weight::from_parts(3_137_711, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_608, 0).saturating_mul(r.into())) + // Minimum execution time: 3_858_000 picoseconds. + Weight::from_parts(3_918_410, 0) + // Standard Error: 89 + .saturating_add(Weight::from_parts(3_835, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_809_000 picoseconds. - Weight::from_parts(3_142_066, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_841, 0).saturating_mul(r.into())) + // Minimum execution time: 3_927_000 picoseconds. + Weight::from_parts(4_346_824, 0) + // Standard Error: 49 + .saturating_add(Weight::from_parts(3_932, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_704_000 picoseconds. - Weight::from_parts(2_083_619, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(8_366, 0).saturating_mul(r.into())) + // Minimum execution time: 1_797_000 picoseconds. + Weight::from_parts(2_208_746, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(8_415, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_652_000 picoseconds. - Weight::from_parts(2_048_256, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_826, 0).saturating_mul(r.into())) + // Minimum execution time: 1_817_000 picoseconds. + Weight::from_parts(2_518_846, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(8_760, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_671_000 picoseconds. - Weight::from_parts(1_924_626, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_746, 0).saturating_mul(r.into())) + // Minimum execution time: 1_750_000 picoseconds. + Weight::from_parts(2_098_522, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_841, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_585_000 picoseconds. - Weight::from_parts(490_856, 0) - // Standard Error: 133_673 - .saturating_add(Weight::from_parts(13_182_582, 0).saturating_mul(r.into())) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(1_077_693, 0) + // Standard Error: 136_255 + .saturating_add(Weight::from_parts(16_291_758, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_533_000 picoseconds. - Weight::from_parts(1_851_563, 0) + // Minimum execution time: 1_692_000 picoseconds. + Weight::from_parts(2_048_398, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_820, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(4_034, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_564_000 picoseconds. - Weight::from_parts(1_914_178, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_732, 0).saturating_mul(r.into())) + // Minimum execution time: 1_680_000 picoseconds. + Weight::from_parts(2_100_104, 0) + // Standard Error: 8 + .saturating_add(Weight::from_parts(3_742, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_559_000 picoseconds. - Weight::from_parts(1_886_992, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_731, 0).saturating_mul(r.into())) + // Minimum execution time: 1_692_000 picoseconds. + Weight::from_parts(2_962_271, 0) + // Standard Error: 56 + .saturating_add(Weight::from_parts(3_499, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_553_000 picoseconds. - Weight::from_parts(1_886_545, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_658, 0).saturating_mul(r.into())) + // Minimum execution time: 1_719_000 picoseconds. + Weight::from_parts(2_007_653, 0) + // Standard Error: 117 + .saturating_add(Weight::from_parts(3_738, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_507_000 picoseconds. - Weight::from_parts(1_853_647, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_852, 0).saturating_mul(r.into())) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(2_581_716, 0) + // Standard Error: 47 + .saturating_add(Weight::from_parts(3_830, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_554_000 picoseconds. - Weight::from_parts(1_868_877, 0) + // Minimum execution time: 1_685_000 picoseconds. + Weight::from_parts(2_051_006, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_806, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_825, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_514_000 picoseconds. - Weight::from_parts(1_882_233, 0) + // Minimum execution time: 1_729_000 picoseconds. + Weight::from_parts(2_029_724, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_700, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_740, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_529_000 picoseconds. - Weight::from_parts(1_897_247, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_955, 0).saturating_mul(r.into())) + // Minimum execution time: 1_684_000 picoseconds. + Weight::from_parts(2_022_264, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_513_000 picoseconds. - Weight::from_parts(1_922_333, 0) + // Minimum execution time: 1_737_000 picoseconds. + Weight::from_parts(2_051_138, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_933, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_942, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_512_000 picoseconds. - Weight::from_parts(1_848_668, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_966, 0).saturating_mul(r.into())) + // Minimum execution time: 1_708_000 picoseconds. + Weight::from_parts(2_272_874, 0) + // Standard Error: 36 + .saturating_add(Weight::from_parts(5_944, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_522_000 picoseconds. - Weight::from_parts(1_875_257, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_965, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(2_021_507, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_546_000 picoseconds. - Weight::from_parts(1_836_691, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_842, 0).saturating_mul(r.into())) + // Minimum execution time: 1_655_000 picoseconds. + Weight::from_parts(2_064_554, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_829, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_505_000 picoseconds. - Weight::from_parts(1_907_551, 0) + // Minimum execution time: 1_705_000 picoseconds. + Weight::from_parts(2_049_808, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_075, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_527_000 picoseconds. - Weight::from_parts(1_891_008, 0) + // Minimum execution time: 1_670_000 picoseconds. + Weight::from_parts(2_059_409, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_971, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_556_000 picoseconds. - Weight::from_parts(1_910_864, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_059, 0).saturating_mul(r.into())) + // Minimum execution time: 1_674_000 picoseconds. + Weight::from_parts(2_092_191, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(6_060, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_544_000 picoseconds. - Weight::from_parts(1_912_650, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_943, 0).saturating_mul(r.into())) + // Minimum execution time: 1_759_000 picoseconds. + Weight::from_parts(2_072_338, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_513_000 picoseconds. - Weight::from_parts(1_855_260, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_975, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(2_031_339, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_521_000 picoseconds. - Weight::from_parts(1_867_259, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_846, 0).saturating_mul(r.into())) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_337_573, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_509_000 picoseconds. - Weight::from_parts(1_893_018, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_096, 0).saturating_mul(r.into())) + // Minimum execution time: 1_750_000 picoseconds. + Weight::from_parts(3_030_041, 0) + // Standard Error: 43 + .saturating_add(Weight::from_parts(5_820, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_496_000 picoseconds. - Weight::from_parts(1_886_659, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_754, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_089_385, 0) + // Standard Error: 6 + .saturating_add(Weight::from_parts(5_707, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_527_000 picoseconds. - Weight::from_parts(1_890_548, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(11_842, 0).saturating_mul(r.into())) + // Minimum execution time: 1_703_000 picoseconds. + Weight::from_parts(2_079_766, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(11_840, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_518_000 picoseconds. - Weight::from_parts(1_891_903, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_613, 0).saturating_mul(r.into())) + // Minimum execution time: 1_762_000 picoseconds. + Weight::from_parts(2_058_839, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(10_618, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_504_000 picoseconds. - Weight::from_parts(1_632_694, 0) - // Standard Error: 7 - .saturating_add(Weight::from_parts(12_281, 0).saturating_mul(r.into())) + // Minimum execution time: 1_748_000 picoseconds. + Weight::from_parts(2_017_974, 0) + // Standard Error: 34 + .saturating_add(Weight::from_parts(12_233, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_507_000 picoseconds. - Weight::from_parts(1_878_413, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(10_737, 0).saturating_mul(r.into())) + // Minimum execution time: 1_701_000 picoseconds. + Weight::from_parts(2_043_265, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(10_660, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_534_000 picoseconds. - Weight::from_parts(1_898_519, 0) + // Minimum execution time: 1_712_000 picoseconds. + Weight::from_parts(2_017_661, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_645, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_663, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_503_000 picoseconds. - Weight::from_parts(1_895_532, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_745, 0).saturating_mul(r.into())) + // Minimum execution time: 1_703_000 picoseconds. + Weight::from_parts(2_224_375, 0) + // Standard Error: 31 + .saturating_add(Weight::from_parts(5_734, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_507_000 picoseconds. - Weight::from_parts(1_868_720, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_873, 0).saturating_mul(r.into())) + // Minimum execution time: 1_756_000 picoseconds. + Weight::from_parts(1_205_566, 0) + // Standard Error: 244 + .saturating_add(Weight::from_parts(6_434, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_513_000 picoseconds. - Weight::from_parts(1_894_207, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_843, 0).saturating_mul(r.into())) + // Minimum execution time: 1_771_000 picoseconds. + Weight::from_parts(2_166_320, 0) + // Standard Error: 81 + .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_473_000 picoseconds. - Weight::from_parts(1_880_224, 0) + // Minimum execution time: 1_700_000 picoseconds. + Weight::from_parts(2_023_771, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_107, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_105, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_447_000 picoseconds. - Weight::from_parts(1_884_551, 0) + // Minimum execution time: 1_739_000 picoseconds. + Weight::from_parts(2_038_607, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_849, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_538_000 picoseconds. - Weight::from_parts(1_908_813, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) + // Minimum execution time: 1_727_000 picoseconds. + Weight::from_parts(2_058_954, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(6_030, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_538_000 picoseconds. - Weight::from_parts(1_878_015, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_848, 0).saturating_mul(r.into())) + // Minimum execution time: 1_714_000 picoseconds. + Weight::from_parts(2_472_361, 0) + // Standard Error: 79 + .saturating_add(Weight::from_parts(5_834, 0).saturating_mul(r.into())) } } @@ -2173,8 +2166,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_565_000 picoseconds. - Weight::from_parts(2_759_000, 1594) + // Minimum execution time: 2_732_000 picoseconds. + Weight::from_parts(2_891_000, 1594) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -2184,10 +2177,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_480_000 picoseconds. - Weight::from_parts(10_153_869, 478) - // Standard Error: 427 - .saturating_add(Weight::from_parts(958_726, 0).saturating_mul(k.into())) + // Minimum execution time: 13_440_000 picoseconds. + Weight::from_parts(8_360_703, 478) + // Standard Error: 1_070 + .saturating_add(Weight::from_parts(968_976, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2203,10 +2196,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 30_406_000 picoseconds. - Weight::from_parts(28_467_370, 3708) - // Standard Error: 46 - .saturating_add(Weight::from_parts(53_724, 0).saturating_mul(c.into())) + // Minimum execution time: 38_480_000 picoseconds. + Weight::from_parts(37_986_449, 3708) + // Standard Error: 52 + .saturating_add(Weight::from_parts(54_436, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2226,10 +2219,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 263_198_000 picoseconds. - Weight::from_parts(276_162_279, 6656) - // Standard Error: 18 - .saturating_add(Weight::from_parts(37_378, 0).saturating_mul(c.into())) + // Minimum execution time: 317_858_000 picoseconds. + Weight::from_parts(316_836_827, 6656) + // Standard Error: 82 + .saturating_add(Weight::from_parts(38_240, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2257,14 +2250,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_132_259_000 picoseconds. - Weight::from_parts(513_284_834, 8659) - // Standard Error: 280 - .saturating_add(Weight::from_parts(106_723, 0).saturating_mul(c.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(i.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_436, 0).saturating_mul(s.into())) + // Minimum execution time: 3_287_137_000 picoseconds. + Weight::from_parts(628_452_802, 8659) + // Standard Error: 295 + .saturating_add(Weight::from_parts(108_579, 0).saturating_mul(c.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_174, 0).saturating_mul(i.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_488, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } @@ -2288,12 +2281,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_646_604_000 picoseconds. - Weight::from_parts(271_369_256, 6408) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_426, 0).saturating_mul(i.into())) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_438, 0).saturating_mul(s.into())) + // Minimum execution time: 1_697_157_000 picoseconds. + Weight::from_parts(263_863_134, 6408) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(i.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_514, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -2311,8 +2304,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 191_360_000 picoseconds. - Weight::from_parts(192_625_000, 6699) + // Minimum execution time: 192_637_000 picoseconds. + Weight::from_parts(193_909_000, 6699) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2329,10 +2322,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 245_207_000 picoseconds. - Weight::from_parts(244_703_457, 3574) - // Standard Error: 61 - .saturating_add(Weight::from_parts(106_850, 0).saturating_mul(c.into())) + // Minimum execution time: 303_462_000 picoseconds. + Weight::from_parts(333_144_274, 3574) + // Standard Error: 194 + .saturating_add(Weight::from_parts(107_349, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2348,8 +2341,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_560_000 picoseconds. - Weight::from_parts(33_833_000, 3720) + // Minimum execution time: 33_658_000 picoseconds. + Weight::from_parts(34_334_000, 3720) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2363,8 +2356,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_288_000 picoseconds. - Weight::from_parts(33_775_000, 8985) + // Minimum execution time: 33_847_000 picoseconds. + Weight::from_parts(34_250_000, 8985) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2383,10 +2376,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 234_292_000 picoseconds. - Weight::from_parts(235_941_911, 6722) - // Standard Error: 413 - .saturating_add(Weight::from_parts(339_913, 0).saturating_mul(r.into())) + // Minimum execution time: 286_676_000 picoseconds. + Weight::from_parts(289_046_797, 6722) + // Standard Error: 898 + .saturating_add(Weight::from_parts(342_636, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2406,10 +2399,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 236_273_000 picoseconds. - Weight::from_parts(74_380_906, 6743) - // Standard Error: 5_745 - .saturating_add(Weight::from_parts(3_331_781, 0).saturating_mul(r.into())) + // Minimum execution time: 287_691_000 picoseconds. + Weight::from_parts(126_218_824, 6743) + // Standard Error: 6_083 + .saturating_add(Weight::from_parts(3_300_296, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2430,10 +2423,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 236_573_000 picoseconds. - Weight::from_parts(82_473_906, 6747) - // Standard Error: 5_510 - .saturating_add(Weight::from_parts(4_131_820, 0).saturating_mul(r.into())) + // Minimum execution time: 288_223_000 picoseconds. + Weight::from_parts(138_731_429, 6747) + // Standard Error: 7_351 + .saturating_add(Weight::from_parts(4_180_670, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2454,10 +2447,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 235_878_000 picoseconds. - Weight::from_parts(238_387_359, 6730) - // Standard Error: 318 - .saturating_add(Weight::from_parts(409_923, 0).saturating_mul(r.into())) + // Minimum execution time: 287_955_000 picoseconds. + Weight::from_parts(292_151_471, 6730) + // Standard Error: 570 + .saturating_add(Weight::from_parts(408_585, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2477,17 +2470,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 233_476_000 picoseconds. - Weight::from_parts(238_014_452, 6723) - // Standard Error: 145 - .saturating_add(Weight::from_parts(165_823, 0).saturating_mul(r.into())) + // Minimum execution time: 284_091_000 picoseconds. + Weight::from_parts(289_062_398, 6723) + // Standard Error: 306 + .saturating_add(Weight::from_parts(179_413, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - fn seal_caller_is_root(_r: u32, ) -> Weight { - Weight::zero() - } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) @@ -2503,10 +2493,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 235_490_000 picoseconds. - Weight::from_parts(240_039_685, 6724) - // Standard Error: 330 - .saturating_add(Weight::from_parts(332_291, 0).saturating_mul(r.into())) + // Minimum execution time: 287_167_000 picoseconds. + Weight::from_parts(288_073_363, 6724) + // Standard Error: 618 + .saturating_add(Weight::from_parts(340_081, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2526,10 +2516,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 236_093_000 picoseconds. - Weight::from_parts(238_513_328, 6721) - // Standard Error: 206 - .saturating_add(Weight::from_parts(328_899, 0).saturating_mul(r.into())) + // Minimum execution time: 289_286_000 picoseconds. + Weight::from_parts(290_983_861, 6721) + // Standard Error: 1_019 + .saturating_add(Weight::from_parts(334_654, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2549,10 +2539,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 234_801_000 picoseconds. - Weight::from_parts(243_519_159, 6846) - // Standard Error: 1_367 - .saturating_add(Weight::from_parts(1_449_599, 0).saturating_mul(r.into())) + // Minimum execution time: 286_684_000 picoseconds. + Weight::from_parts(288_869_149, 6846) + // Standard Error: 2_427 + .saturating_add(Weight::from_parts(1_514_507, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2572,10 +2562,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 236_765_000 picoseconds. - Weight::from_parts(237_843_244, 6741) - // Standard Error: 308 - .saturating_add(Weight::from_parts(329_911, 0).saturating_mul(r.into())) + // Minimum execution time: 286_945_000 picoseconds. + Weight::from_parts(291_658_888, 6741) + // Standard Error: 784 + .saturating_add(Weight::from_parts(326_072, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2595,10 +2585,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 236_690_000 picoseconds. - Weight::from_parts(241_743_164, 6739) - // Standard Error: 333 - .saturating_add(Weight::from_parts(324_693, 0).saturating_mul(r.into())) + // Minimum execution time: 286_675_000 picoseconds. + Weight::from_parts(286_943_523, 6739) + // Standard Error: 663 + .saturating_add(Weight::from_parts(330_474, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2618,10 +2608,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 236_149_000 picoseconds. - Weight::from_parts(239_090_707, 6737) - // Standard Error: 246 - .saturating_add(Weight::from_parts(344_488, 0).saturating_mul(r.into())) + // Minimum execution time: 286_793_000 picoseconds. + Weight::from_parts(291_610_546, 6737) + // Standard Error: 787 + .saturating_add(Weight::from_parts(321_984, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2641,10 +2631,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 235_057_000 picoseconds. - Weight::from_parts(237_752_870, 6723) - // Standard Error: 236 - .saturating_add(Weight::from_parts(328_235, 0).saturating_mul(r.into())) + // Minimum execution time: 287_195_000 picoseconds. + Weight::from_parts(292_436_566, 6723) + // Standard Error: 655 + .saturating_add(Weight::from_parts(324_266, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2666,10 +2656,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 234_995_000 picoseconds. - Weight::from_parts(246_473_554, 6796) - // Standard Error: 1_015 - .saturating_add(Weight::from_parts(1_337_653, 0).saturating_mul(r.into())) + // Minimum execution time: 286_521_000 picoseconds. + Weight::from_parts(301_288_810, 6796) + // Standard Error: 1_060 + .saturating_add(Weight::from_parts(1_341_241, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2689,10 +2679,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 160_445_000 picoseconds. - Weight::from_parts(165_558_135, 6687) - // Standard Error: 234 - .saturating_add(Weight::from_parts(133_607, 0).saturating_mul(r.into())) + // Minimum execution time: 163_639_000 picoseconds. + Weight::from_parts(168_047_588, 6687) + // Standard Error: 280 + .saturating_add(Weight::from_parts(131_938, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -2712,10 +2702,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 235_065_000 picoseconds. - Weight::from_parts(237_797_177, 6724) - // Standard Error: 336 - .saturating_add(Weight::from_parts(267_302, 0).saturating_mul(r.into())) + // Minimum execution time: 286_853_000 picoseconds. + Weight::from_parts(290_619_643, 6724) + // Standard Error: 2_488 + .saturating_add(Weight::from_parts(283_378, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2735,10 +2725,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 236_215_000 picoseconds. - Weight::from_parts(239_347_313, 6724) - // Standard Error: 0 - .saturating_add(Weight::from_parts(587, 0).saturating_mul(n.into())) + // Minimum execution time: 288_925_000 picoseconds. + Weight::from_parts(289_190_307, 6724) + // Standard Error: 1 + .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2757,10 +2747,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 231_571_000 picoseconds. - Weight::from_parts(233_477_918, 6708) - // Standard Error: 95_776 - .saturating_add(Weight::from_parts(1_733_181, 0).saturating_mul(r.into())) + // Minimum execution time: 283_170_000 picoseconds. + Weight::from_parts(285_753_191, 6708) + // Standard Error: 439_986 + .saturating_add(Weight::from_parts(2_559_308, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -2780,10 +2770,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 234_956_000 picoseconds. - Weight::from_parts(236_785_051, 6731) + // Minimum execution time: 287_657_000 picoseconds. + Weight::from_parts(287_957_330, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(177, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(226, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2808,10 +2798,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 234_275_000 picoseconds. - Weight::from_parts(236_776_769, 6750) - // Standard Error: 137_203 - .saturating_add(Weight::from_parts(110_758_930, 0).saturating_mul(r.into())) + // Minimum execution time: 286_218_000 picoseconds. + Weight::from_parts(287_973_685, 6750) + // Standard Error: 132_929 + .saturating_add(Weight::from_parts(113_477_614, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2835,10 +2825,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 235_593_000 picoseconds. - Weight::from_parts(253_731_242, 6769) - // Standard Error: 2_129 - .saturating_add(Weight::from_parts(1_771_297, 0).saturating_mul(r.into())) + // Minimum execution time: 287_143_000 picoseconds. + Weight::from_parts(323_629_555, 6769) + // Standard Error: 4_493 + .saturating_add(Weight::from_parts(1_833_474, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2858,10 +2848,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 232_124_000 picoseconds. - Weight::from_parts(245_904_447, 6723) - // Standard Error: 2_185 - .saturating_add(Weight::from_parts(3_470_410, 0).saturating_mul(r.into())) + // Minimum execution time: 284_483_000 picoseconds. + Weight::from_parts(319_237_262, 6723) + // Standard Error: 2_905 + .saturating_add(Weight::from_parts(3_545_601, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2882,12 +2872,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 250_301_000 picoseconds. - Weight::from_parts(245_292_258, 6744) - // Standard Error: 29_864 - .saturating_add(Weight::from_parts(2_163_531, 0).saturating_mul(t.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(583, 0).saturating_mul(n.into())) + // Minimum execution time: 302_452_000 picoseconds. + Weight::from_parts(302_814_416, 6744) + // Standard Error: 220_671 + .saturating_add(Weight::from_parts(1_917_489, 0).saturating_mul(t.into())) + // Standard Error: 61 + .saturating_add(Weight::from_parts(330, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2909,10 +2899,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 165_711_000 picoseconds. - Weight::from_parts(168_792_571, 6721) - // Standard Error: 216 - .saturating_add(Weight::from_parts(230_285, 0).saturating_mul(r.into())) + // Minimum execution time: 169_421_000 picoseconds. + Weight::from_parts(170_245_138, 6721) + // Standard Error: 2_909 + .saturating_add(Weight::from_parts(241_230, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -2932,10 +2922,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 348_928_000 picoseconds. - Weight::from_parts(352_224_793, 131670) - // Standard Error: 0 - .saturating_add(Weight::from_parts(731, 0).saturating_mul(i.into())) + // Minimum execution time: 412_961_000 picoseconds. + Weight::from_parts(421_952_796, 131670) + // Standard Error: 2 + .saturating_add(Weight::from_parts(780, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2946,10 +2936,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 236_418_000 picoseconds. - Weight::from_parts(129_862_840, 843) - // Standard Error: 9_733 - .saturating_add(Weight::from_parts(6_005_187, 0).saturating_mul(r.into())) + // Minimum execution time: 287_519_000 picoseconds. + Weight::from_parts(186_499_884, 843) + // Standard Error: 9_607 + .saturating_add(Weight::from_parts(6_107_425, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2963,10 +2953,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 251_599_000 picoseconds. - Weight::from_parts(285_284_665, 1280) - // Standard Error: 46 - .saturating_add(Weight::from_parts(410, 0).saturating_mul(n.into())) + // Minimum execution time: 303_427_000 picoseconds. + Weight::from_parts(337_154_389, 1280) + // Standard Error: 49 + .saturating_add(Weight::from_parts(540, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2977,10 +2967,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 251_309_000 picoseconds. - Weight::from_parts(253_555_552, 1167) - // Standard Error: 9 - .saturating_add(Weight::from_parts(27, 0).saturating_mul(n.into())) + // Minimum execution time: 303_607_000 picoseconds. + Weight::from_parts(310_031_052, 1167) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2992,10 +2980,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 235_441_000 picoseconds. - Weight::from_parts(132_980_942, 845) - // Standard Error: 9_421 - .saturating_add(Weight::from_parts(5_854_896, 0).saturating_mul(r.into())) + // Minimum execution time: 286_440_000 picoseconds. + Weight::from_parts(185_306_517, 845) + // Standard Error: 9_667 + .saturating_add(Weight::from_parts(5_978_509, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3009,10 +2997,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 249_967_000 picoseconds. - Weight::from_parts(252_122_186, 1163) - // Standard Error: 10 - .saturating_add(Weight::from_parts(74, 0).saturating_mul(n.into())) + // Minimum execution time: 301_474_000 picoseconds. + Weight::from_parts(303_507_876, 1163) + // Standard Error: 21 + .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3024,10 +3012,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 235_647_000 picoseconds. - Weight::from_parts(145_525_169, 840) - // Standard Error: 8_553 - .saturating_add(Weight::from_parts(4_948_021, 0).saturating_mul(r.into())) + // Minimum execution time: 287_458_000 picoseconds. + Weight::from_parts(198_932_702, 840) + // Standard Error: 9_573 + .saturating_add(Weight::from_parts(4_954_559, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3040,10 +3028,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 249_576_000 picoseconds. - Weight::from_parts(250_747_191, 1179) - // Standard Error: 8 - .saturating_add(Weight::from_parts(717, 0).saturating_mul(n.into())) + // Minimum execution time: 301_100_000 picoseconds. + Weight::from_parts(304_937_675, 1179) + // Standard Error: 41 + .saturating_add(Weight::from_parts(674, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3055,10 +3043,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 236_110_000 picoseconds. - Weight::from_parts(148_420_625, 857) - // Standard Error: 8_175 - .saturating_add(Weight::from_parts(4_684_126, 0).saturating_mul(r.into())) + // Minimum execution time: 288_014_000 picoseconds. + Weight::from_parts(204_067_757, 857) + // Standard Error: 8_223 + .saturating_add(Weight::from_parts(4_763_943, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3071,10 +3059,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 247_800_000 picoseconds. - Weight::from_parts(249_410_575, 1166) - // Standard Error: 6 - .saturating_add(Weight::from_parts(99, 0).saturating_mul(n.into())) + // Minimum execution time: 299_485_000 picoseconds. + Weight::from_parts(302_066_517, 1166) + // Standard Error: 26 + .saturating_add(Weight::from_parts(183, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3086,10 +3074,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 235_251_000 picoseconds. - Weight::from_parts(128_816_707, 836) - // Standard Error: 9_887 - .saturating_add(Weight::from_parts(6_167_176, 0).saturating_mul(r.into())) + // Minimum execution time: 286_733_000 picoseconds. + Weight::from_parts(182_822_600, 836) + // Standard Error: 10_229 + .saturating_add(Weight::from_parts(6_137_762, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3103,10 +3091,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 250_401_000 picoseconds. - Weight::from_parts(253_298_243, 1180) - // Standard Error: 9 - .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) + // Minimum execution time: 303_472_000 picoseconds. + Weight::from_parts(306_709_156, 1180) + // Standard Error: 114 + .saturating_add(Weight::from_parts(878, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3126,10 +3114,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 236_470_000 picoseconds. - Weight::from_parts(98_898_727, 7270) - // Standard Error: 33_316 - .saturating_add(Weight::from_parts(35_149_946, 0).saturating_mul(r.into())) + // Minimum execution time: 287_997_000 picoseconds. + Weight::from_parts(413_154_187, 7270) + // Standard Error: 50_335 + .saturating_add(Weight::from_parts(35_932_808, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3144,20 +3132,20 @@ impl WeightInfo for () { /// Proof: Contracts CodeStorage (max_values: None, max_size: Some(126001), added: 128476, mode: Measured) /// Storage: Timestamp Now (r:1 w:0) /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) - /// Storage: System EventTopics (r:802 w:802) + /// Storage: System EventTopics (r:803 w:803) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) /// The range of component `r` is `[0, 800]`. fn seal_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` - // Estimated: `7125 + r * (2732 ±0)` - // Minimum execution time: 238_303_000 picoseconds. - Weight::from_parts(239_024_000, 7125) - // Standard Error: 65_907 - .saturating_add(Weight::from_parts(209_419_071, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Estimated: `9408 + r * (2732 ±0)` + // Minimum execution time: 288_697_000 picoseconds. + Weight::from_parts(289_497_000, 9408) + // Standard Error: 84_152 + .saturating_add(Weight::from_parts(264_273_999, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2732).saturating_mul(r.into())) } @@ -3176,10 +3164,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` // Estimated: `6727 + r * (2572 ±10)` - // Minimum execution time: 235_961_000 picoseconds. - Weight::from_parts(236_939_000, 6727) - // Standard Error: 83_087 - .saturating_add(Weight::from_parts(205_646_517, 0).saturating_mul(r.into())) + // Minimum execution time: 288_939_000 picoseconds. + Weight::from_parts(289_352_000, 6727) + // Standard Error: 89_294 + .saturating_add(Weight::from_parts(258_967_466, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3194,23 +3182,23 @@ impl WeightInfo for () { /// Proof: Contracts CodeStorage (max_values: None, max_size: Some(126001), added: 128476, mode: Measured) /// Storage: Timestamp Now (r:1 w:0) /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) - /// Storage: System EventTopics (r:3 w:3) + /// Storage: System EventTopics (r:4 w:4) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) /// The range of component `t` is `[0, 1]`. /// The range of component `c` is `[0, 1048576]`. fn seal_call_per_transfer_clone_byte(t: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` - // Estimated: `9569 + t * (5154 ±0)` - // Minimum execution time: 410_156_000 picoseconds. - Weight::from_parts(378_378_143, 9569) - // Standard Error: 285_172 - .saturating_add(Weight::from_parts(34_736_740, 0).saturating_mul(t.into())) - // Standard Error: 0 - .saturating_add(Weight::from_parts(591, 0).saturating_mul(c.into())) - .saturating_add(RocksDbWeight::get().reads(9_u64)) + // Estimated: `12044 + t * (5154 ±0)` + // Minimum execution time: 466_182_000 picoseconds. + Weight::from_parts(417_471_518, 12044) + // Standard Error: 1_324_392 + .saturating_add(Weight::from_parts(50_217_680, 0).saturating_mul(t.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(661, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into()))) - .saturating_add(RocksDbWeight::get().writes(5_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(t.into()))) .saturating_add(Weight::from_parts(0, 5154).saturating_mul(t.into())) } @@ -3233,10 +3221,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 236_748_000 picoseconds. - Weight::from_parts(237_129_000, 7131) - // Standard Error: 280_059 - .saturating_add(Weight::from_parts(341_428_013, 0).saturating_mul(r.into())) + // Minimum execution time: 288_768_000 picoseconds. + Weight::from_parts(289_564_000, 7131) + // Standard Error: 252_309 + .saturating_add(Weight::from_parts(397_797_262, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3264,14 +3252,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_613_796_000 picoseconds. - Weight::from_parts(340_002_206, 9492) - // Standard Error: 4_296_381 - .saturating_add(Weight::from_parts(115_239_834, 0).saturating_mul(t.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_145, 0).saturating_mul(i.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_315, 0).saturating_mul(s.into())) + // Minimum execution time: 1_718_177_000 picoseconds. + Weight::from_parts(373_356_266, 9492) + // Standard Error: 5_010_435 + .saturating_add(Weight::from_parts(127_043_740, 0).saturating_mul(t.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(i.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(10_u64)) @@ -3293,10 +3281,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 233_111_000 picoseconds. - Weight::from_parts(238_643_933, 6718) - // Standard Error: 184 - .saturating_add(Weight::from_parts(572_296, 0).saturating_mul(r.into())) + // Minimum execution time: 285_503_000 picoseconds. + Weight::from_parts(292_276_944, 6718) + // Standard Error: 1_121 + .saturating_add(Weight::from_parts(579_727, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3316,10 +3304,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 234_746_000 picoseconds. - Weight::from_parts(229_815_552, 6725) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_892, 0).saturating_mul(n.into())) + // Minimum execution time: 286_428_000 picoseconds. + Weight::from_parts(280_912_017, 6725) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_988, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3338,10 +3326,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 232_732_000 picoseconds. - Weight::from_parts(239_007_209, 6721) - // Standard Error: 256 - .saturating_add(Weight::from_parts(733_879, 0).saturating_mul(r.into())) + // Minimum execution time: 283_991_000 picoseconds. + Weight::from_parts(288_786_486, 6721) + // Standard Error: 865 + .saturating_add(Weight::from_parts(753_580, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3361,10 +3349,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 234_184_000 picoseconds. - Weight::from_parts(227_603_375, 6729) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_127, 0).saturating_mul(n.into())) + // Minimum execution time: 286_108_000 picoseconds. + Weight::from_parts(283_598_176, 6729) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_212, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3383,10 +3371,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 233_038_000 picoseconds. - Weight::from_parts(238_515_817, 6724) - // Standard Error: 255 - .saturating_add(Weight::from_parts(413_343, 0).saturating_mul(r.into())) + // Minimum execution time: 284_741_000 picoseconds. + Weight::from_parts(291_123_708, 6724) + // Standard Error: 1_833 + .saturating_add(Weight::from_parts(431_762, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3406,10 +3394,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 232_996_000 picoseconds. - Weight::from_parts(226_706_997, 6733) - // Standard Error: 1 - .saturating_add(Weight::from_parts(908, 0).saturating_mul(n.into())) + // Minimum execution time: 286_082_000 picoseconds. + Weight::from_parts(281_634_804, 6733) + // Standard Error: 2 + .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3428,10 +3416,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 232_292_000 picoseconds. - Weight::from_parts(237_997_001, 6725) - // Standard Error: 219 - .saturating_add(Weight::from_parts(410_177, 0).saturating_mul(r.into())) + // Minimum execution time: 283_632_000 picoseconds. + Weight::from_parts(289_666_460, 6725) + // Standard Error: 637 + .saturating_add(Weight::from_parts(422_999, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3451,10 +3439,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 234_815_000 picoseconds. - Weight::from_parts(226_317_150, 6727) - // Standard Error: 1 - .saturating_add(Weight::from_parts(911, 0).saturating_mul(n.into())) + // Minimum execution time: 285_963_000 picoseconds. + Weight::from_parts(275_886_416, 6727) + // Standard Error: 2 + .saturating_add(Weight::from_parts(974, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3472,11 +3460,11 @@ impl WeightInfo for () { fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` - // Estimated: `6848 + n * (1 ±0)` - // Minimum execution time: 286_323_000 picoseconds. - Weight::from_parts(290_287_955, 6848) - // Standard Error: 1 - .saturating_add(Weight::from_parts(4_693, 0).saturating_mul(n.into())) + // Estimated: `6849 + n * (1 ±0)` + // Minimum execution time: 338_908_000 picoseconds. + Weight::from_parts(342_986_608, 6849) + // Standard Error: 8 + .saturating_add(Weight::from_parts(4_894, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3494,12 +3482,12 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 160]`. fn seal_sr25519_verify(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `727 + r * (112 ±0)` + // Measured: `722 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 235_938_000 picoseconds. - Weight::from_parts(242_728_358, 6666) - // Standard Error: 9_725 - .saturating_add(Weight::from_parts(47_527_740, 0).saturating_mul(r.into())) + // Minimum execution time: 288_881_000 picoseconds. + Weight::from_parts(293_510_765, 6666) + // Standard Error: 22_326 + .saturating_add(Weight::from_parts(48_206_988, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -3518,11 +3506,11 @@ impl WeightInfo for () { fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `822 + r * (76 ±0)` - // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 236_108_000 picoseconds. - Weight::from_parts(248_577_226, 6716) - // Standard Error: 9_565 - .saturating_add(Weight::from_parts(36_733_552, 0).saturating_mul(r.into())) + // Estimated: `6717 + r * (77 ±0)` + // Minimum execution time: 288_232_000 picoseconds. + Weight::from_parts(302_410_889, 6717) + // Standard Error: 18_447 + .saturating_add(Weight::from_parts(37_715_119, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -3542,10 +3530,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 236_440_000 picoseconds. - Weight::from_parts(240_771_418, 6731) - // Standard Error: 1_849 - .saturating_add(Weight::from_parts(9_185_896, 0).saturating_mul(r.into())) + // Minimum execution time: 287_220_000 picoseconds. + Weight::from_parts(298_049_708, 6731) + // Standard Error: 12_619 + .saturating_add(Weight::from_parts(9_337_433, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -3566,11 +3554,11 @@ impl WeightInfo for () { fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` - // Estimated: `8190 + r * (3090 ±10)` - // Minimum execution time: 235_056_000 picoseconds. - Weight::from_parts(235_743_000, 8190) - // Standard Error: 46_122 - .saturating_add(Weight::from_parts(21_447_984, 0).saturating_mul(r.into())) + // Estimated: `8190 + r * (3090 ±7)` + // Minimum execution time: 288_354_000 picoseconds. + Weight::from_parts(288_850_000, 8190) + // Standard Error: 51_911 + .saturating_add(Weight::from_parts(21_849_160, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3592,10 +3580,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 235_213_000 picoseconds. - Weight::from_parts(239_456_464, 6723) - // Standard Error: 130 - .saturating_add(Weight::from_parts(159_851, 0).saturating_mul(r.into())) + // Minimum execution time: 286_562_000 picoseconds. + Weight::from_parts(292_112_735, 6723) + // Standard Error: 468 + .saturating_add(Weight::from_parts(169_786, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3615,10 +3603,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 237_886_000 picoseconds. - Weight::from_parts(262_430_157, 7805) - // Standard Error: 939 - .saturating_add(Weight::from_parts(260_005, 0).saturating_mul(r.into())) + // Minimum execution time: 290_031_000 picoseconds. + Weight::from_parts(316_516_939, 7805) + // Standard Error: 975 + .saturating_add(Weight::from_parts(260_809, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -3640,10 +3628,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 234_014_000 picoseconds. - Weight::from_parts(240_042_671, 6723) - // Standard Error: 152 - .saturating_add(Weight::from_parts(138_382, 0).saturating_mul(r.into())) + // Minimum execution time: 285_777_000 picoseconds. + Weight::from_parts(292_816_667, 6723) + // Standard Error: 332 + .saturating_add(Weight::from_parts(139_265, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3653,509 +3641,507 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_533_000 picoseconds. - Weight::from_parts(1_846_015, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(2_935, 0).saturating_mul(r.into())) + // Minimum execution time: 1_740_000 picoseconds. + Weight::from_parts(1_962_394, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_997, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_671_000 picoseconds. - Weight::from_parts(2_197_197, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_335, 0).saturating_mul(r.into())) + // Minimum execution time: 1_849_000 picoseconds. + Weight::from_parts(2_212_786, 0) + // Standard Error: 177 + .saturating_add(Weight::from_parts(6_644, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_665_000 picoseconds. - Weight::from_parts(2_200_545, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_011, 0).saturating_mul(r.into())) + // Minimum execution time: 1_860_000 picoseconds. + Weight::from_parts(2_424_024, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(5_973, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_545_000 picoseconds. - Weight::from_parts(1_977_462, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(7_901, 0).saturating_mul(r.into())) + // Minimum execution time: 1_694_000 picoseconds. + Weight::from_parts(2_134_440, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(7_923, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_515_000 picoseconds. - Weight::from_parts(1_866_184, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_514, 0).saturating_mul(r.into())) + // Minimum execution time: 1_696_000 picoseconds. + Weight::from_parts(1_929_027, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(10_734, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_618_000 picoseconds. - Weight::from_parts(1_895_104, 0) + // Minimum execution time: 1_770_000 picoseconds. + Weight::from_parts(1_933_446, 0) // Standard Error: 12 - .saturating_add(Weight::from_parts(4_523, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(4_577, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_510_000 picoseconds. - Weight::from_parts(1_779_998, 0) - // Standard Error: 8 - .saturating_add(Weight::from_parts(6_832, 0).saturating_mul(r.into())) + // Minimum execution time: 1_718_000 picoseconds. + Weight::from_parts(1_708_252, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(7_045, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_529_000 picoseconds. - Weight::from_parts(1_726_996, 0) - // Standard Error: 26 - .saturating_add(Weight::from_parts(9_199, 0).saturating_mul(r.into())) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(1_390_869, 0) + // Standard Error: 32 + .saturating_add(Weight::from_parts(9_562, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(e: u32, ) -> Weight { + fn instr_br_table_per_entry(_e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_682_000 picoseconds. - Weight::from_parts(1_789_910, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(42, 0).saturating_mul(e.into())) + // Minimum execution time: 1_761_000 picoseconds. + Weight::from_parts(1_921_216, 0) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_539_000 picoseconds. - Weight::from_parts(2_093_056, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(18_917, 0).saturating_mul(r.into())) + // Minimum execution time: 1_718_000 picoseconds. + Weight::from_parts(2_117_970, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(18_027, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_851_000 picoseconds. - Weight::from_parts(3_134_610, 0) - // Standard Error: 34 - .saturating_add(Weight::from_parts(24_714, 0).saturating_mul(r.into())) + // Minimum execution time: 1_884_000 picoseconds. + Weight::from_parts(2_905_643, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(24_217, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_654_000 picoseconds. - Weight::from_parts(1_885_921, 0) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_243, 0).saturating_mul(l.into())) + // Minimum execution time: 1_800_000 picoseconds. + Weight::from_parts(2_020_935, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(2_038, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_744_000 picoseconds. - Weight::from_parts(3_014_725, 0) + // Minimum execution time: 3_931_000 picoseconds. + Weight::from_parts(4_180_543, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(2_447, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(2_499, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_881_000 picoseconds. - Weight::from_parts(3_137_711, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_608, 0).saturating_mul(r.into())) + // Minimum execution time: 3_858_000 picoseconds. + Weight::from_parts(3_918_410, 0) + // Standard Error: 89 + .saturating_add(Weight::from_parts(3_835, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_809_000 picoseconds. - Weight::from_parts(3_142_066, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_841, 0).saturating_mul(r.into())) + // Minimum execution time: 3_927_000 picoseconds. + Weight::from_parts(4_346_824, 0) + // Standard Error: 49 + .saturating_add(Weight::from_parts(3_932, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_704_000 picoseconds. - Weight::from_parts(2_083_619, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(8_366, 0).saturating_mul(r.into())) + // Minimum execution time: 1_797_000 picoseconds. + Weight::from_parts(2_208_746, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(8_415, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_652_000 picoseconds. - Weight::from_parts(2_048_256, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_826, 0).saturating_mul(r.into())) + // Minimum execution time: 1_817_000 picoseconds. + Weight::from_parts(2_518_846, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(8_760, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_671_000 picoseconds. - Weight::from_parts(1_924_626, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_746, 0).saturating_mul(r.into())) + // Minimum execution time: 1_750_000 picoseconds. + Weight::from_parts(2_098_522, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_841, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_585_000 picoseconds. - Weight::from_parts(490_856, 0) - // Standard Error: 133_673 - .saturating_add(Weight::from_parts(13_182_582, 0).saturating_mul(r.into())) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(1_077_693, 0) + // Standard Error: 136_255 + .saturating_add(Weight::from_parts(16_291_758, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_533_000 picoseconds. - Weight::from_parts(1_851_563, 0) + // Minimum execution time: 1_692_000 picoseconds. + Weight::from_parts(2_048_398, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_820, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(4_034, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_564_000 picoseconds. - Weight::from_parts(1_914_178, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_732, 0).saturating_mul(r.into())) + // Minimum execution time: 1_680_000 picoseconds. + Weight::from_parts(2_100_104, 0) + // Standard Error: 8 + .saturating_add(Weight::from_parts(3_742, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_559_000 picoseconds. - Weight::from_parts(1_886_992, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_731, 0).saturating_mul(r.into())) + // Minimum execution time: 1_692_000 picoseconds. + Weight::from_parts(2_962_271, 0) + // Standard Error: 56 + .saturating_add(Weight::from_parts(3_499, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_553_000 picoseconds. - Weight::from_parts(1_886_545, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_658, 0).saturating_mul(r.into())) + // Minimum execution time: 1_719_000 picoseconds. + Weight::from_parts(2_007_653, 0) + // Standard Error: 117 + .saturating_add(Weight::from_parts(3_738, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_507_000 picoseconds. - Weight::from_parts(1_853_647, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_852, 0).saturating_mul(r.into())) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(2_581_716, 0) + // Standard Error: 47 + .saturating_add(Weight::from_parts(3_830, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_554_000 picoseconds. - Weight::from_parts(1_868_877, 0) + // Minimum execution time: 1_685_000 picoseconds. + Weight::from_parts(2_051_006, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_806, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_825, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_514_000 picoseconds. - Weight::from_parts(1_882_233, 0) + // Minimum execution time: 1_729_000 picoseconds. + Weight::from_parts(2_029_724, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_700, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_740, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_529_000 picoseconds. - Weight::from_parts(1_897_247, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_955, 0).saturating_mul(r.into())) + // Minimum execution time: 1_684_000 picoseconds. + Weight::from_parts(2_022_264, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_513_000 picoseconds. - Weight::from_parts(1_922_333, 0) + // Minimum execution time: 1_737_000 picoseconds. + Weight::from_parts(2_051_138, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_933, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_942, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_512_000 picoseconds. - Weight::from_parts(1_848_668, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_966, 0).saturating_mul(r.into())) + // Minimum execution time: 1_708_000 picoseconds. + Weight::from_parts(2_272_874, 0) + // Standard Error: 36 + .saturating_add(Weight::from_parts(5_944, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_522_000 picoseconds. - Weight::from_parts(1_875_257, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_965, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(2_021_507, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_546_000 picoseconds. - Weight::from_parts(1_836_691, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_842, 0).saturating_mul(r.into())) + // Minimum execution time: 1_655_000 picoseconds. + Weight::from_parts(2_064_554, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_829, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_505_000 picoseconds. - Weight::from_parts(1_907_551, 0) + // Minimum execution time: 1_705_000 picoseconds. + Weight::from_parts(2_049_808, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_075, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_527_000 picoseconds. - Weight::from_parts(1_891_008, 0) + // Minimum execution time: 1_670_000 picoseconds. + Weight::from_parts(2_059_409, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_971, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_556_000 picoseconds. - Weight::from_parts(1_910_864, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_059, 0).saturating_mul(r.into())) + // Minimum execution time: 1_674_000 picoseconds. + Weight::from_parts(2_092_191, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(6_060, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_544_000 picoseconds. - Weight::from_parts(1_912_650, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_943, 0).saturating_mul(r.into())) + // Minimum execution time: 1_759_000 picoseconds. + Weight::from_parts(2_072_338, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_513_000 picoseconds. - Weight::from_parts(1_855_260, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_975, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(2_031_339, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_521_000 picoseconds. - Weight::from_parts(1_867_259, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_846, 0).saturating_mul(r.into())) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_337_573, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_509_000 picoseconds. - Weight::from_parts(1_893_018, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_096, 0).saturating_mul(r.into())) + // Minimum execution time: 1_750_000 picoseconds. + Weight::from_parts(3_030_041, 0) + // Standard Error: 43 + .saturating_add(Weight::from_parts(5_820, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_496_000 picoseconds. - Weight::from_parts(1_886_659, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_754, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_089_385, 0) + // Standard Error: 6 + .saturating_add(Weight::from_parts(5_707, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_527_000 picoseconds. - Weight::from_parts(1_890_548, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(11_842, 0).saturating_mul(r.into())) + // Minimum execution time: 1_703_000 picoseconds. + Weight::from_parts(2_079_766, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(11_840, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_518_000 picoseconds. - Weight::from_parts(1_891_903, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_613, 0).saturating_mul(r.into())) + // Minimum execution time: 1_762_000 picoseconds. + Weight::from_parts(2_058_839, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(10_618, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_504_000 picoseconds. - Weight::from_parts(1_632_694, 0) - // Standard Error: 7 - .saturating_add(Weight::from_parts(12_281, 0).saturating_mul(r.into())) + // Minimum execution time: 1_748_000 picoseconds. + Weight::from_parts(2_017_974, 0) + // Standard Error: 34 + .saturating_add(Weight::from_parts(12_233, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_507_000 picoseconds. - Weight::from_parts(1_878_413, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(10_737, 0).saturating_mul(r.into())) + // Minimum execution time: 1_701_000 picoseconds. + Weight::from_parts(2_043_265, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(10_660, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_534_000 picoseconds. - Weight::from_parts(1_898_519, 0) + // Minimum execution time: 1_712_000 picoseconds. + Weight::from_parts(2_017_661, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_645, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_663, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_503_000 picoseconds. - Weight::from_parts(1_895_532, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_745, 0).saturating_mul(r.into())) + // Minimum execution time: 1_703_000 picoseconds. + Weight::from_parts(2_224_375, 0) + // Standard Error: 31 + .saturating_add(Weight::from_parts(5_734, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_507_000 picoseconds. - Weight::from_parts(1_868_720, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_873, 0).saturating_mul(r.into())) + // Minimum execution time: 1_756_000 picoseconds. + Weight::from_parts(1_205_566, 0) + // Standard Error: 244 + .saturating_add(Weight::from_parts(6_434, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_513_000 picoseconds. - Weight::from_parts(1_894_207, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_843, 0).saturating_mul(r.into())) + // Minimum execution time: 1_771_000 picoseconds. + Weight::from_parts(2_166_320, 0) + // Standard Error: 81 + .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_473_000 picoseconds. - Weight::from_parts(1_880_224, 0) + // Minimum execution time: 1_700_000 picoseconds. + Weight::from_parts(2_023_771, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_107, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_105, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_447_000 picoseconds. - Weight::from_parts(1_884_551, 0) + // Minimum execution time: 1_739_000 picoseconds. + Weight::from_parts(2_038_607, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_849, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_538_000 picoseconds. - Weight::from_parts(1_908_813, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) + // Minimum execution time: 1_727_000 picoseconds. + Weight::from_parts(2_058_954, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(6_030, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_538_000 picoseconds. - Weight::from_parts(1_878_015, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_848, 0).saturating_mul(r.into())) + // Minimum execution time: 1_714_000 picoseconds. + Weight::from_parts(2_472_361, 0) + // Standard Error: 79 + .saturating_add(Weight::from_parts(5_834, 0).saturating_mul(r.into())) } } From 33531bffeaf7c5c0f8411755476f563d1f17e5dc Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 17 Apr 2023 18:20:36 +0200 Subject: [PATCH 30/53] contracts: add caller_is_root benchmarking --- frame/contracts/src/benchmarking/mod.rs | 32 +++++++++++++++++++++++++ frame/contracts/src/wasm/mod.rs | 31 ++++++++++++++++++++++++ frame/contracts/src/weights.rs | 7 ++++++ 3 files changed, 70 insertions(+) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index 98a3dc36b7b68..1eeab523df2c2 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -534,6 +534,38 @@ benchmarks! { let origin = RawOrigin::Signed(instance.caller.clone()); }: call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]) + #[pov_mode = Measured] + seal_caller_is_root { + let r in 0 .. API_BENCHMARK_RUNS; + let o in 0 .. 1; + + let code = WasmModule::::from(ModuleDefinition { + memory: Some(ImportedMemory::max::()), + imported_functions: vec![ImportedFunction { + module: "seal0", + name: "seal_caller_is_root", + params: vec![], + return_type: Some(ValueType::I32), + }], + call_body: Some(body::repeated(r, &[ + Instruction::Call(0), + Instruction::Drop, + ])), + .. Default::default() + }); + let instance = Contract::::new(code, vec![])?; + let origins = vec![ + RawOrigin::Signed(instance.caller.clone()), + RawOrigin::Root, + ]; + let limits = vec![ + None, + Some(BalanceOf::::max_value().into()), + ]; + let origin = origins[o as usize].clone(); + let limit = limits[o as usize].clone(); + }: call(origin, instance.addr, 0u32.into(), Weight::MAX, limit, vec![]) + #[pov_mode = Measured] seal_address { let r in 0 .. API_BENCHMARK_RUNS; diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 1caa30f23af84..53f22b449742b 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -2986,6 +2986,37 @@ mod tests { assert_eq!(output, ExecReturnValue { flags: ReturnFlags::empty(), data: 0u32.encode() },); } + #[test] + fn caller_is_root_works() { + const CODE_CALLER_IS_ROOT: &str = r#" +;; This runs `caller_is_root` check on zero account address +(module + (import "seal0" "seal_caller_is_root" (func $seal_caller_is_root (result i32))) + (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) + (import "env" "memory" (memory 1 1)) + + ;; [0, 4) here the return code of the `seal_caller_is_root` will be stored + ;; we initialize it with non-zero value to be sure that it's being overwritten below + (data (i32.const 0) "\10\10\10\10") + + (func (export "deploy")) + + (func (export "call") + (i32.store + (i32.const 0) + (call $seal_caller_is_root) + ) + ;; exit with success and take `seal_caller_is_root` return code to the output buffer + (call $seal_return (i32.const 0) (i32.const 0) (i32.const 4)) + ) +) +"#; + let output = execute(CODE_CALLER_IS_ROOT, vec![], MockExt::default()).unwrap(); + + // The mock ext just always returns 0u32 (`false`) + assert_eq!(output, ExecReturnValue { flags: ReturnFlags::empty(), data: 0u32.encode() },); + } + #[test] fn set_code_hash() { const CODE: &str = r#" diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 57a963a63e68f..4f11826f10840 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -64,6 +64,7 @@ pub trait WeightInfo { fn seal_code_hash(r: u32, ) -> Weight; fn seal_own_code_hash(r: u32, ) -> Weight; fn seal_caller_is_origin(r: u32, ) -> Weight; + fn seal_caller_is_root(r: u32, ) -> Weight; fn seal_address(r: u32, ) -> Weight; fn seal_gas_left(r: u32, ) -> Weight; fn seal_balance(r: u32, ) -> Weight; @@ -490,6 +491,9 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } + fn seal_caller_is_root(_r: u32, ) -> Weight { + Weight::zero() + } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) @@ -2478,6 +2482,9 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } + fn seal_caller_is_root(_r: u32, ) -> Weight { + Weight::zero() + } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) From e615c54a28bccde643d385fd83a8d8a1e7dded6e Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Mon, 17 Apr 2023 17:50:33 +0000 Subject: [PATCH 31/53] ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts --- frame/contracts/src/weights.rs | 1892 ++++++++++++++++---------------- 1 file changed, 971 insertions(+), 921 deletions(-) diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 4f11826f10840..4a0ef83315869 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -64,7 +64,7 @@ pub trait WeightInfo { fn seal_code_hash(r: u32, ) -> Weight; fn seal_own_code_hash(r: u32, ) -> Weight; fn seal_caller_is_origin(r: u32, ) -> Weight; - fn seal_caller_is_root(r: u32, ) -> Weight; + fn seal_caller_is_root(r: u32, o: u32, ) -> Weight; fn seal_address(r: u32, ) -> Weight; fn seal_gas_left(r: u32, ) -> Weight; fn seal_balance(r: u32, ) -> Weight; @@ -179,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_732_000 picoseconds. - Weight::from_parts(2_891_000, 1594) + // Minimum execution time: 2_621_000 picoseconds. + Weight::from_parts(2_730_000, 1594) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -190,10 +190,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_440_000 picoseconds. - Weight::from_parts(8_360_703, 478) - // Standard Error: 1_070 - .saturating_add(Weight::from_parts(968_976, 0).saturating_mul(k.into())) + // Minimum execution time: 12_919_000 picoseconds. + Weight::from_parts(9_726_925, 478) + // Standard Error: 884 + .saturating_add(Weight::from_parts(972_485, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -209,10 +209,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 38_480_000 picoseconds. - Weight::from_parts(37_986_449, 3708) - // Standard Error: 52 - .saturating_add(Weight::from_parts(54_436, 0).saturating_mul(c.into())) + // Minimum execution time: 37_980_000 picoseconds. + Weight::from_parts(27_323_411, 3708) + // Standard Error: 99 + .saturating_add(Weight::from_parts(55_463, 0).saturating_mul(c.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(c.into())) @@ -232,10 +232,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 317_858_000 picoseconds. - Weight::from_parts(316_836_827, 6656) - // Standard Error: 82 - .saturating_add(Weight::from_parts(38_240, 0).saturating_mul(c.into())) + // Minimum execution time: 317_337_000 picoseconds. + Weight::from_parts(328_889_374, 6656) + // Standard Error: 27 + .saturating_add(Weight::from_parts(37_642, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -263,14 +263,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_287_137_000 picoseconds. - Weight::from_parts(628_452_802, 8659) - // Standard Error: 295 - .saturating_add(Weight::from_parts(108_579, 0).saturating_mul(c.into())) + // Minimum execution time: 3_295_088_000 picoseconds. + Weight::from_parts(690_340_900, 8659) + // Standard Error: 299 + .saturating_add(Weight::from_parts(106_925, 0).saturating_mul(c.into())) // Standard Error: 17 - .saturating_add(Weight::from_parts(1_174, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_173, 0).saturating_mul(i.into())) // Standard Error: 17 - .saturating_add(Weight::from_parts(1_488, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_461, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -294,12 +294,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_697_157_000 picoseconds. - Weight::from_parts(263_863_134, 6408) + // Minimum execution time: 1_699_132_000 picoseconds. + Weight::from_parts(276_257_020, 6408) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_489, 0).saturating_mul(i.into())) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_514, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -317,8 +317,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 192_637_000 picoseconds. - Weight::from_parts(193_909_000, 6699) + // Minimum execution time: 194_707_000 picoseconds. + Weight::from_parts(195_362_000, 6699) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -335,10 +335,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 303_462_000 picoseconds. - Weight::from_parts(333_144_274, 3574) - // Standard Error: 194 - .saturating_add(Weight::from_parts(107_349, 0).saturating_mul(c.into())) + // Minimum execution time: 302_388_000 picoseconds. + Weight::from_parts(350_690_834, 3574) + // Standard Error: 275 + .saturating_add(Weight::from_parts(107_481, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -354,8 +354,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_658_000 picoseconds. - Weight::from_parts(34_334_000, 3720) + // Minimum execution time: 33_408_000 picoseconds. + Weight::from_parts(34_293_000, 3720) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -369,8 +369,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_847_000 picoseconds. - Weight::from_parts(34_250_000, 8985) + // Minimum execution time: 33_141_000 picoseconds. + Weight::from_parts(33_894_000, 8985) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -389,10 +389,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 286_676_000 picoseconds. - Weight::from_parts(289_046_797, 6722) - // Standard Error: 898 - .saturating_add(Weight::from_parts(342_636, 0).saturating_mul(r.into())) + // Minimum execution time: 288_666_000 picoseconds. + Weight::from_parts(294_844_678, 6722) + // Standard Error: 679 + .saturating_add(Weight::from_parts(321_930, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -412,10 +412,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 287_691_000 picoseconds. - Weight::from_parts(126_218_824, 6743) - // Standard Error: 6_083 - .saturating_add(Weight::from_parts(3_300_296, 0).saturating_mul(r.into())) + // Minimum execution time: 290_442_000 picoseconds. + Weight::from_parts(93_573_954, 6743) + // Standard Error: 12_636 + .saturating_add(Weight::from_parts(3_412_632, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -436,10 +436,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 288_223_000 picoseconds. - Weight::from_parts(138_731_429, 6747) - // Standard Error: 7_351 - .saturating_add(Weight::from_parts(4_180_670, 0).saturating_mul(r.into())) + // Minimum execution time: 290_671_000 picoseconds. + Weight::from_parts(127_238_159, 6747) + // Standard Error: 6_438 + .saturating_add(Weight::from_parts(4_121_857, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -460,10 +460,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 287_955_000 picoseconds. - Weight::from_parts(292_151_471, 6730) - // Standard Error: 570 - .saturating_add(Weight::from_parts(408_585, 0).saturating_mul(r.into())) + // Minimum execution time: 289_331_000 picoseconds. + Weight::from_parts(293_392_135, 6730) + // Standard Error: 844 + .saturating_add(Weight::from_parts(403_982, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -483,16 +483,37 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 284_091_000 picoseconds. - Weight::from_parts(289_062_398, 6723) - // Standard Error: 306 - .saturating_add(Weight::from_parts(179_413, 0).saturating_mul(r.into())) + // Minimum execution time: 286_577_000 picoseconds. + Weight::from_parts(292_654_842, 6723) + // Standard Error: 527 + .saturating_add(Weight::from_parts(176_155, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - fn seal_caller_is_root(_r: u32, ) -> Weight { - Weight::zero() + /// Storage: Contracts ContractInfoOf (r:1 w:1) + /// Proof: Contracts ContractInfoOf (max_values: None, max_size: Some(290), added: 2765, mode: Measured) + /// Storage: Contracts CodeStorage (r:1 w:0) + /// Proof: Contracts CodeStorage (max_values: None, max_size: Some(126001), added: 128476, mode: Measured) + /// Storage: Timestamp Now (r:1 w:0) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) + /// Storage: System EventTopics (r:2 w:2) + /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) + /// Storage: System Account (r:1 w:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) + /// The range of component `r` is `[0, 1600]`. + /// The range of component `o` is `[0, 1]`. + fn seal_caller_is_root(r: u32, _o: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `776 + r * (3 ±0)` + // Estimated: `17460485980251150336 + r * (3 ±0)` + // Minimum execution time: 276_972_000 picoseconds. + Weight::from_parts(341_700_961, 17460485980251150336) + // Standard Error: 277 + .saturating_add(Weight::from_parts(145_543, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) @@ -509,10 +530,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 287_167_000 picoseconds. - Weight::from_parts(288_073_363, 6724) - // Standard Error: 618 - .saturating_add(Weight::from_parts(340_081, 0).saturating_mul(r.into())) + // Minimum execution time: 289_992_000 picoseconds. + Weight::from_parts(293_146_001, 6724) + // Standard Error: 730 + .saturating_add(Weight::from_parts(332_271, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -532,10 +553,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 289_286_000 picoseconds. - Weight::from_parts(290_983_861, 6721) - // Standard Error: 1_019 - .saturating_add(Weight::from_parts(334_654, 0).saturating_mul(r.into())) + // Minimum execution time: 288_892_000 picoseconds. + Weight::from_parts(294_620_306, 6721) + // Standard Error: 629 + .saturating_add(Weight::from_parts(317_098, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -555,10 +576,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 286_684_000 picoseconds. - Weight::from_parts(288_869_149, 6846) - // Standard Error: 2_427 - .saturating_add(Weight::from_parts(1_514_507, 0).saturating_mul(r.into())) + // Minimum execution time: 289_812_000 picoseconds. + Weight::from_parts(312_995_368, 6846) + // Standard Error: 2_248 + .saturating_add(Weight::from_parts(1_476_086, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -578,10 +599,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 286_945_000 picoseconds. - Weight::from_parts(291_658_888, 6741) - // Standard Error: 784 - .saturating_add(Weight::from_parts(326_072, 0).saturating_mul(r.into())) + // Minimum execution time: 290_086_000 picoseconds. + Weight::from_parts(292_623_199, 6741) + // Standard Error: 683 + .saturating_add(Weight::from_parts(316_376, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -601,10 +622,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 286_675_000 picoseconds. - Weight::from_parts(286_943_523, 6739) - // Standard Error: 663 - .saturating_add(Weight::from_parts(330_474, 0).saturating_mul(r.into())) + // Minimum execution time: 288_602_000 picoseconds. + Weight::from_parts(292_886_738, 6739) + // Standard Error: 2_252 + .saturating_add(Weight::from_parts(319_012, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -624,10 +645,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 286_793_000 picoseconds. - Weight::from_parts(291_610_546, 6737) - // Standard Error: 787 - .saturating_add(Weight::from_parts(321_984, 0).saturating_mul(r.into())) + // Minimum execution time: 290_367_000 picoseconds. + Weight::from_parts(286_283_010, 6737) + // Standard Error: 1_868 + .saturating_add(Weight::from_parts(338_721, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -647,10 +668,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 287_195_000 picoseconds. - Weight::from_parts(292_436_566, 6723) - // Standard Error: 655 - .saturating_add(Weight::from_parts(324_266, 0).saturating_mul(r.into())) + // Minimum execution time: 291_099_000 picoseconds. + Weight::from_parts(289_093_956, 6723) + // Standard Error: 1_675 + .saturating_add(Weight::from_parts(341_884, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -672,10 +693,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 286_521_000 picoseconds. - Weight::from_parts(301_288_810, 6796) - // Standard Error: 1_060 - .saturating_add(Weight::from_parts(1_341_241, 0).saturating_mul(r.into())) + // Minimum execution time: 291_179_000 picoseconds. + Weight::from_parts(303_534_913, 6796) + // Standard Error: 1_090 + .saturating_add(Weight::from_parts(1_334_135, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -695,10 +716,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 163_639_000 picoseconds. - Weight::from_parts(168_047_588, 6687) - // Standard Error: 280 - .saturating_add(Weight::from_parts(131_938, 0).saturating_mul(r.into())) + // Minimum execution time: 165_515_000 picoseconds. + Weight::from_parts(170_523_986, 6687) + // Standard Error: 226 + .saturating_add(Weight::from_parts(128_698, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -718,10 +739,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 286_853_000 picoseconds. - Weight::from_parts(290_619_643, 6724) - // Standard Error: 2_488 - .saturating_add(Weight::from_parts(283_378, 0).saturating_mul(r.into())) + // Minimum execution time: 290_256_000 picoseconds. + Weight::from_parts(291_556_626, 6724) + // Standard Error: 521 + .saturating_add(Weight::from_parts(273_212, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -741,10 +762,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 288_925_000 picoseconds. - Weight::from_parts(289_190_307, 6724) + // Minimum execution time: 290_731_000 picoseconds. + Weight::from_parts(295_398_963, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(638, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -763,10 +784,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 283_170_000 picoseconds. - Weight::from_parts(285_753_191, 6708) - // Standard Error: 439_986 - .saturating_add(Weight::from_parts(2_559_308, 0).saturating_mul(r.into())) + // Minimum execution time: 285_274_000 picoseconds. + Weight::from_parts(287_723_351, 6708) + // Standard Error: 330_733 + .saturating_add(Weight::from_parts(7_482_948, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -786,10 +807,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 287_657_000 picoseconds. - Weight::from_parts(287_957_330, 6731) + // Minimum execution time: 287_826_000 picoseconds. + Weight::from_parts(291_409_112, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(226, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(223, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -814,10 +835,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 286_218_000 picoseconds. - Weight::from_parts(287_973_685, 6750) - // Standard Error: 132_929 - .saturating_add(Weight::from_parts(113_477_614, 0).saturating_mul(r.into())) + // Minimum execution time: 288_598_000 picoseconds. + Weight::from_parts(290_981_916, 6750) + // Standard Error: 195_063 + .saturating_add(Weight::from_parts(111_143_683, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -841,10 +862,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 287_143_000 picoseconds. - Weight::from_parts(323_629_555, 6769) - // Standard Error: 4_493 - .saturating_add(Weight::from_parts(1_833_474, 0).saturating_mul(r.into())) + // Minimum execution time: 288_794_000 picoseconds. + Weight::from_parts(304_549_342, 6769) + // Standard Error: 1_470 + .saturating_add(Weight::from_parts(1_803_430, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -864,10 +885,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 284_483_000 picoseconds. - Weight::from_parts(319_237_262, 6723) - // Standard Error: 2_905 - .saturating_add(Weight::from_parts(3_545_601, 0).saturating_mul(r.into())) + // Minimum execution time: 286_652_000 picoseconds. + Weight::from_parts(302_675_592, 6723) + // Standard Error: 4_289 + .saturating_add(Weight::from_parts(3_464_282, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -888,12 +909,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 302_452_000 picoseconds. - Weight::from_parts(302_814_416, 6744) - // Standard Error: 220_671 - .saturating_add(Weight::from_parts(1_917_489, 0).saturating_mul(t.into())) - // Standard Error: 61 - .saturating_add(Weight::from_parts(330, 0).saturating_mul(n.into())) + // Minimum execution time: 305_535_000 picoseconds. + Weight::from_parts(296_553_947, 6744) + // Standard Error: 71_884 + .saturating_add(Weight::from_parts(2_769_460, 0).saturating_mul(t.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(798, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -915,10 +936,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 169_421_000 picoseconds. - Weight::from_parts(170_245_138, 6721) - // Standard Error: 2_909 - .saturating_add(Weight::from_parts(241_230, 0).saturating_mul(r.into())) + // Minimum execution time: 171_558_000 picoseconds. + Weight::from_parts(175_440_241, 6721) + // Standard Error: 405 + .saturating_add(Weight::from_parts(233_269, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -938,10 +959,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 412_961_000 picoseconds. - Weight::from_parts(421_952_796, 131670) - // Standard Error: 2 - .saturating_add(Weight::from_parts(780, 0).saturating_mul(i.into())) + // Minimum execution time: 416_833_000 picoseconds. + Weight::from_parts(419_217_757, 131670) + // Standard Error: 1 + .saturating_add(Weight::from_parts(786, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -952,10 +973,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 287_519_000 picoseconds. - Weight::from_parts(186_499_884, 843) - // Standard Error: 9_607 - .saturating_add(Weight::from_parts(6_107_425, 0).saturating_mul(r.into())) + // Minimum execution time: 290_743_000 picoseconds. + Weight::from_parts(187_199_190, 843) + // Standard Error: 10_468 + .saturating_add(Weight::from_parts(6_132_957, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -969,10 +990,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 303_427_000 picoseconds. - Weight::from_parts(337_154_389, 1280) - // Standard Error: 49 - .saturating_add(Weight::from_parts(540, 0).saturating_mul(n.into())) + // Minimum execution time: 305_047_000 picoseconds. + Weight::from_parts(338_579_691, 1280) + // Standard Error: 53 + .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -983,8 +1004,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 303_607_000 picoseconds. - Weight::from_parts(310_031_052, 1167) + // Minimum execution time: 304_554_000 picoseconds. + Weight::from_parts(307_725_252, 1167) + // Standard Error: 19 + .saturating_add(Weight::from_parts(54, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -996,10 +1019,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 286_440_000 picoseconds. - Weight::from_parts(185_306_517, 845) - // Standard Error: 9_667 - .saturating_add(Weight::from_parts(5_978_509, 0).saturating_mul(r.into())) + // Minimum execution time: 289_480_000 picoseconds. + Weight::from_parts(188_304_769, 845) + // Standard Error: 10_250 + .saturating_add(Weight::from_parts(5_961_560, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1013,10 +1036,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 301_474_000 picoseconds. - Weight::from_parts(303_507_876, 1163) - // Standard Error: 21 - .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) + // Minimum execution time: 306_269_000 picoseconds. + Weight::from_parts(309_777_309, 1163) + // Standard Error: 37 + .saturating_add(Weight::from_parts(56, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1028,10 +1051,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 287_458_000 picoseconds. - Weight::from_parts(198_932_702, 840) - // Standard Error: 9_573 - .saturating_add(Weight::from_parts(4_954_559, 0).saturating_mul(r.into())) + // Minimum execution time: 291_888_000 picoseconds. + Weight::from_parts(201_944_475, 840) + // Standard Error: 9_061 + .saturating_add(Weight::from_parts(4_922_092, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1044,10 +1067,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 301_100_000 picoseconds. - Weight::from_parts(304_937_675, 1179) - // Standard Error: 41 - .saturating_add(Weight::from_parts(674, 0).saturating_mul(n.into())) + // Minimum execution time: 304_681_000 picoseconds. + Weight::from_parts(307_242_988, 1179) + // Standard Error: 21 + .saturating_add(Weight::from_parts(731, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1059,10 +1082,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 288_014_000 picoseconds. - Weight::from_parts(204_067_757, 857) - // Standard Error: 8_223 - .saturating_add(Weight::from_parts(4_763_943, 0).saturating_mul(r.into())) + // Minimum execution time: 291_184_000 picoseconds. + Weight::from_parts(204_634_542, 857) + // Standard Error: 8_790 + .saturating_add(Weight::from_parts(4_747_440, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1075,10 +1098,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 299_485_000 picoseconds. - Weight::from_parts(302_066_517, 1166) - // Standard Error: 26 - .saturating_add(Weight::from_parts(183, 0).saturating_mul(n.into())) + // Minimum execution time: 302_210_000 picoseconds. + Weight::from_parts(303_527_777, 1166) + // Standard Error: 105 + .saturating_add(Weight::from_parts(430, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1090,10 +1113,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 286_733_000 picoseconds. - Weight::from_parts(182_822_600, 836) - // Standard Error: 10_229 - .saturating_add(Weight::from_parts(6_137_762, 0).saturating_mul(r.into())) + // Minimum execution time: 290_034_000 picoseconds. + Weight::from_parts(186_525_026, 836) + // Standard Error: 10_215 + .saturating_add(Weight::from_parts(6_196_660, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1107,10 +1130,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 303_472_000 picoseconds. - Weight::from_parts(306_709_156, 1180) - // Standard Error: 114 - .saturating_add(Weight::from_parts(878, 0).saturating_mul(n.into())) + // Minimum execution time: 307_181_000 picoseconds. + Weight::from_parts(310_026_414, 1180) + // Standard Error: 23 + .saturating_add(Weight::from_parts(686, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1130,10 +1153,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 287_997_000 picoseconds. - Weight::from_parts(413_154_187, 7270) - // Standard Error: 50_335 - .saturating_add(Weight::from_parts(35_932_808, 0).saturating_mul(r.into())) + // Minimum execution time: 292_708_000 picoseconds. + Weight::from_parts(122_335_036, 7270) + // Standard Error: 47_267 + .saturating_add(Weight::from_parts(36_139_651, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1155,10 +1178,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 288_697_000 picoseconds. - Weight::from_parts(289_497_000, 9408) - // Standard Error: 84_152 - .saturating_add(Weight::from_parts(264_273_999, 0).saturating_mul(r.into())) + // Minimum execution time: 291_399_000 picoseconds. + Weight::from_parts(291_866_000, 9408) + // Standard Error: 82_515 + .saturating_add(Weight::from_parts(266_037_975, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1179,11 +1202,11 @@ impl WeightInfo for SubstrateWeight { fn seal_delegate_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` - // Estimated: `6727 + r * (2572 ±10)` - // Minimum execution time: 288_939_000 picoseconds. - Weight::from_parts(289_352_000, 6727) - // Standard Error: 89_294 - .saturating_add(Weight::from_parts(258_967_466, 0).saturating_mul(r.into())) + // Estimated: `6727 + r * (2572 ±3)` + // Minimum execution time: 291_077_000 picoseconds. + Weight::from_parts(291_551_000, 6727) + // Standard Error: 122_042 + .saturating_add(Weight::from_parts(261_438_700, 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(3_u64)) @@ -1206,12 +1229,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 466_182_000 picoseconds. - Weight::from_parts(417_471_518, 12044) - // Standard Error: 1_324_392 - .saturating_add(Weight::from_parts(50_217_680, 0).saturating_mul(t.into())) - // Standard Error: 1 - .saturating_add(Weight::from_parts(661, 0).saturating_mul(c.into())) + // Minimum execution time: 469_595_000 picoseconds. + Weight::from_parts(442_686_481, 12044) + // Standard Error: 2_726_929 + .saturating_add(Weight::from_parts(41_734_267, 0).saturating_mul(t.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(640, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1237,10 +1260,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 288_768_000 picoseconds. - Weight::from_parts(289_564_000, 7131) - // Standard Error: 252_309 - .saturating_add(Weight::from_parts(397_797_262, 0).saturating_mul(r.into())) + // Minimum execution time: 292_747_000 picoseconds. + Weight::from_parts(293_438_000, 7131) + // Standard Error: 270_720 + .saturating_add(Weight::from_parts(400_084_403, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1268,14 +1291,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_718_177_000 picoseconds. - Weight::from_parts(373_356_266, 9492) - // Standard Error: 5_010_435 - .saturating_add(Weight::from_parts(127_043_740, 0).saturating_mul(t.into())) + // Minimum execution time: 1_716_280_000 picoseconds. + Weight::from_parts(391_302_250, 9492) + // Standard Error: 4_541_278 + .saturating_add(Weight::from_parts(123_043_757, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_211, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_382, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) @@ -1297,10 +1320,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 285_503_000 picoseconds. - Weight::from_parts(292_276_944, 6718) - // Standard Error: 1_121 - .saturating_add(Weight::from_parts(579_727, 0).saturating_mul(r.into())) + // Minimum execution time: 289_136_000 picoseconds. + Weight::from_parts(290_884_333, 6718) + // Standard Error: 879 + .saturating_add(Weight::from_parts(574_822, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1320,10 +1343,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 286_428_000 picoseconds. - Weight::from_parts(280_912_017, 6725) + // Minimum execution time: 289_137_000 picoseconds. + Weight::from_parts(282_552_030, 6725) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_988, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_980, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1342,10 +1365,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 283_991_000 picoseconds. - Weight::from_parts(288_786_486, 6721) - // Standard Error: 865 - .saturating_add(Weight::from_parts(753_580, 0).saturating_mul(r.into())) + // Minimum execution time: 286_471_000 picoseconds. + Weight::from_parts(289_159_864, 6721) + // Standard Error: 860 + .saturating_add(Weight::from_parts(745_304, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1365,10 +1388,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 286_108_000 picoseconds. - Weight::from_parts(283_598_176, 6729) + // Minimum execution time: 289_003_000 picoseconds. + Weight::from_parts(283_320_300, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_212, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_208, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1387,10 +1410,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 284_741_000 picoseconds. - Weight::from_parts(291_123_708, 6724) - // Standard Error: 1_833 - .saturating_add(Weight::from_parts(431_762, 0).saturating_mul(r.into())) + // Minimum execution time: 286_345_000 picoseconds. + Weight::from_parts(278_615_734, 6724) + // Standard Error: 5_532 + .saturating_add(Weight::from_parts(445_167, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1410,10 +1433,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 286_082_000 picoseconds. - Weight::from_parts(281_634_804, 6733) - // Standard Error: 2 - .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) + // Minimum execution time: 288_570_000 picoseconds. + Weight::from_parts(289_126_754, 6733) + // Standard Error: 3 + .saturating_add(Weight::from_parts(958, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1432,10 +1455,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 283_632_000 picoseconds. - Weight::from_parts(289_666_460, 6725) - // Standard Error: 637 - .saturating_add(Weight::from_parts(422_999, 0).saturating_mul(r.into())) + // Minimum execution time: 286_967_000 picoseconds. + Weight::from_parts(306_210_527, 6725) + // Standard Error: 5_583 + .saturating_add(Weight::from_parts(413_458, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1455,10 +1478,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 285_963_000 picoseconds. - Weight::from_parts(275_886_416, 6727) + // Minimum execution time: 287_687_000 picoseconds. + Weight::from_parts(285_021_722, 6727) // Standard Error: 2 - .saturating_add(Weight::from_parts(974, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1477,10 +1500,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` // Estimated: `6849 + n * (1 ±0)` - // Minimum execution time: 338_908_000 picoseconds. - Weight::from_parts(342_986_608, 6849) - // Standard Error: 8 - .saturating_add(Weight::from_parts(4_894, 0).saturating_mul(n.into())) + // Minimum execution time: 341_216_000 picoseconds. + Weight::from_parts(345_497_943, 6849) + // Standard Error: 9 + .saturating_add(Weight::from_parts(4_886, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1500,10 +1523,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `722 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 288_881_000 picoseconds. - Weight::from_parts(293_510_765, 6666) - // Standard Error: 22_326 - .saturating_add(Weight::from_parts(48_206_988, 0).saturating_mul(r.into())) + // Minimum execution time: 290_091_000 picoseconds. + Weight::from_parts(296_812_510, 6666) + // Standard Error: 21_841 + .saturating_add(Weight::from_parts(48_088_936, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -1522,11 +1545,11 @@ impl WeightInfo for SubstrateWeight { fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `822 + r * (76 ±0)` - // Estimated: `6717 + r * (77 ±0)` - // Minimum execution time: 288_232_000 picoseconds. - Weight::from_parts(302_410_889, 6717) - // Standard Error: 18_447 - .saturating_add(Weight::from_parts(37_715_119, 0).saturating_mul(r.into())) + // Estimated: `6716 + r * (77 ±0)` + // Minimum execution time: 289_970_000 picoseconds. + Weight::from_parts(307_137_014, 6716) + // Standard Error: 18_656 + .saturating_add(Weight::from_parts(37_701_116, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -1546,10 +1569,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 287_220_000 picoseconds. - Weight::from_parts(298_049_708, 6731) - // Standard Error: 12_619 - .saturating_add(Weight::from_parts(9_337_433, 0).saturating_mul(r.into())) + // Minimum execution time: 298_751_000 picoseconds. + Weight::from_parts(296_467_214, 6731) + // Standard Error: 10_566 + .saturating_add(Weight::from_parts(9_298_692, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -1571,10 +1594,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` // Estimated: `8190 + r * (3090 ±7)` - // Minimum execution time: 288_354_000 picoseconds. - Weight::from_parts(288_850_000, 8190) - // Standard Error: 51_911 - .saturating_add(Weight::from_parts(21_849_160, 0).saturating_mul(r.into())) + // Minimum execution time: 290_103_000 picoseconds. + Weight::from_parts(291_266_000, 8190) + // Standard Error: 46_431 + .saturating_add(Weight::from_parts(21_614_419, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1596,10 +1619,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 286_562_000 picoseconds. - Weight::from_parts(292_112_735, 6723) - // Standard Error: 468 - .saturating_add(Weight::from_parts(169_786, 0).saturating_mul(r.into())) + // Minimum execution time: 287_526_000 picoseconds. + Weight::from_parts(292_181_305, 6723) + // Standard Error: 418 + .saturating_add(Weight::from_parts(165_874, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1619,10 +1642,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 290_031_000 picoseconds. - Weight::from_parts(316_516_939, 7805) - // Standard Error: 975 - .saturating_add(Weight::from_parts(260_809, 0).saturating_mul(r.into())) + // Minimum execution time: 289_466_000 picoseconds. + Weight::from_parts(319_431_412, 7805) + // Standard Error: 1_084 + .saturating_add(Weight::from_parts(260_352, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -1644,10 +1667,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 285_777_000 picoseconds. - Weight::from_parts(292_816_667, 6723) - // Standard Error: 332 - .saturating_add(Weight::from_parts(139_265, 0).saturating_mul(r.into())) + // Minimum execution time: 288_583_000 picoseconds. + Weight::from_parts(285_400_895, 6723) + // Standard Error: 3_992 + .saturating_add(Weight::from_parts(162_784, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1657,508 +1680,510 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_740_000 picoseconds. - Weight::from_parts(1_962_394, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_997, 0).saturating_mul(r.into())) + // Minimum execution time: 1_688_000 picoseconds. + Weight::from_parts(1_975_285, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(2_985, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_849_000 picoseconds. - Weight::from_parts(2_212_786, 0) - // Standard Error: 177 - .saturating_add(Weight::from_parts(6_644, 0).saturating_mul(r.into())) + // Minimum execution time: 1_808_000 picoseconds. + Weight::from_parts(2_520_211, 0) + // Standard Error: 48 + .saturating_add(Weight::from_parts(6_394, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_860_000 picoseconds. - Weight::from_parts(2_424_024, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(5_973, 0).saturating_mul(r.into())) + // Minimum execution time: 1_791_000 picoseconds. + Weight::from_parts(2_982_175, 0) + // Standard Error: 63 + .saturating_add(Weight::from_parts(5_849, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_694_000 picoseconds. - Weight::from_parts(2_134_440, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(7_923, 0).saturating_mul(r.into())) + // Minimum execution time: 1_712_000 picoseconds. + Weight::from_parts(2_116_026, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(7_916, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_696_000 picoseconds. - Weight::from_parts(1_929_027, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(10_734, 0).saturating_mul(r.into())) + // Minimum execution time: 1_705_000 picoseconds. + Weight::from_parts(1_866_703, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(10_418, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_770_000 picoseconds. - Weight::from_parts(1_933_446, 0) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_577, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(1_775_389, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(4_668, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(1_708_252, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(7_045, 0).saturating_mul(r.into())) + // Minimum execution time: 1_688_000 picoseconds. + Weight::from_parts(2_371_112, 0) + // Standard Error: 67 + .saturating_add(Weight::from_parts(7_468, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(1_390_869, 0) - // Standard Error: 32 - .saturating_add(Weight::from_parts(9_562, 0).saturating_mul(r.into())) + // Minimum execution time: 1_686_000 picoseconds. + Weight::from_parts(1_464_378, 0) + // Standard Error: 31 + .saturating_add(Weight::from_parts(9_555, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(_e: u32, ) -> Weight { + fn instr_br_table_per_entry(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_761_000 picoseconds. - Weight::from_parts(1_921_216, 0) + // Minimum execution time: 1_767_000 picoseconds. + Weight::from_parts(1_876_710, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(220, 0).saturating_mul(e.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(2_117_970, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(18_027, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_137_774, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(18_546, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_884_000 picoseconds. - Weight::from_parts(2_905_643, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(24_217, 0).saturating_mul(r.into())) + // Minimum execution time: 1_978_000 picoseconds. + Weight::from_parts(2_637_716, 0) + // Standard Error: 66 + .saturating_add(Weight::from_parts(24_793, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_800_000 picoseconds. - Weight::from_parts(2_020_935, 0) - // Standard Error: 13 - .saturating_add(Weight::from_parts(2_038, 0).saturating_mul(l.into())) + // Minimum execution time: 1_833_000 picoseconds. + Weight::from_parts(1_953_065, 0) + // Standard Error: 49 + .saturating_add(Weight::from_parts(2_425, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_931_000 picoseconds. - Weight::from_parts(4_180_543, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_499, 0).saturating_mul(r.into())) + // Minimum execution time: 3_859_000 picoseconds. + Weight::from_parts(4_277_917, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(2_402, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_858_000 picoseconds. - Weight::from_parts(3_918_410, 0) - // Standard Error: 89 - .saturating_add(Weight::from_parts(3_835, 0).saturating_mul(r.into())) + // Minimum execution time: 3_930_000 picoseconds. + Weight::from_parts(4_156_656, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_616, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_927_000 picoseconds. - Weight::from_parts(4_346_824, 0) - // Standard Error: 49 - .saturating_add(Weight::from_parts(3_932, 0).saturating_mul(r.into())) + // Minimum execution time: 3_887_000 picoseconds. + Weight::from_parts(4_189_509, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_797_000 picoseconds. - Weight::from_parts(2_208_746, 0) + // Minimum execution time: 1_872_000 picoseconds. + Weight::from_parts(2_326_016, 0) // Standard Error: 5 - .saturating_add(Weight::from_parts(8_415, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(8_380, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_817_000 picoseconds. - Weight::from_parts(2_518_846, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(8_760, 0).saturating_mul(r.into())) + // Minimum execution time: 1_880_000 picoseconds. + Weight::from_parts(2_372_584, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(8_809, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_750_000 picoseconds. - Weight::from_parts(2_098_522, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_841, 0).saturating_mul(r.into())) + // Minimum execution time: 1_805_000 picoseconds. + Weight::from_parts(2_663_941, 0) + // Standard Error: 63 + .saturating_add(Weight::from_parts(3_613, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(1_077_693, 0) - // Standard Error: 136_255 - .saturating_add(Weight::from_parts(16_291_758, 0).saturating_mul(r.into())) + // Minimum execution time: 1_742_000 picoseconds. + Weight::from_parts(1_296_708, 0) + // Standard Error: 139_965 + .saturating_add(Weight::from_parts(16_273_249, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_692_000 picoseconds. - Weight::from_parts(2_048_398, 0) + // Minimum execution time: 1_710_000 picoseconds. + Weight::from_parts(2_031_637, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(4_034, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_912, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_680_000 picoseconds. - Weight::from_parts(2_100_104, 0) - // Standard Error: 8 - .saturating_add(Weight::from_parts(3_742, 0).saturating_mul(r.into())) + // Minimum execution time: 1_702_000 picoseconds. + Weight::from_parts(2_029_086, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_877, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_692_000 picoseconds. - Weight::from_parts(2_962_271, 0) - // Standard Error: 56 - .saturating_add(Weight::from_parts(3_499, 0).saturating_mul(r.into())) + // Minimum execution time: 1_725_000 picoseconds. + Weight::from_parts(2_024_772, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_879, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_719_000 picoseconds. - Weight::from_parts(2_007_653, 0) - // Standard Error: 117 - .saturating_add(Weight::from_parts(3_738, 0).saturating_mul(r.into())) + // Minimum execution time: 1_737_000 picoseconds. + Weight::from_parts(2_020_931, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_676, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(2_581_716, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(3_830, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(1_976_558, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_685_000 picoseconds. - Weight::from_parts(2_051_006, 0) + // Minimum execution time: 1_824_000 picoseconds. + Weight::from_parts(2_068_490, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_825, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_860, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_729_000 picoseconds. - Weight::from_parts(2_029_724, 0) + // Minimum execution time: 1_721_000 picoseconds. + Weight::from_parts(2_051_294, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_740, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_839, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_684_000 picoseconds. - Weight::from_parts(2_022_264, 0) + // Minimum execution time: 1_735_000 picoseconds. + Weight::from_parts(2_087_837, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_995, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_737_000 picoseconds. - Weight::from_parts(2_051_138, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_942, 0).saturating_mul(r.into())) + // Minimum execution time: 1_662_000 picoseconds. + Weight::from_parts(2_046_929, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_013, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_708_000 picoseconds. - Weight::from_parts(2_272_874, 0) - // Standard Error: 36 - .saturating_add(Weight::from_parts(5_944, 0).saturating_mul(r.into())) + // Minimum execution time: 1_697_000 picoseconds. + Weight::from_parts(2_043_696, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_009, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(2_021_507, 0) + // Minimum execution time: 1_670_000 picoseconds. + Weight::from_parts(2_101_582, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_999, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_655_000 picoseconds. - Weight::from_parts(2_064_554, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_829, 0).saturating_mul(r.into())) + // Minimum execution time: 1_656_000 picoseconds. + Weight::from_parts(2_049_341, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_812, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_705_000 picoseconds. - Weight::from_parts(2_049_808, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) + // Minimum execution time: 1_687_000 picoseconds. + Weight::from_parts(2_059_405, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(6_101, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_670_000 picoseconds. - Weight::from_parts(2_059_409, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) + // Minimum execution time: 1_706_000 picoseconds. + Weight::from_parts(2_032_138, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_674_000 picoseconds. - Weight::from_parts(2_092_191, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(6_060, 0).saturating_mul(r.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(2_077_404, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_088, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_759_000 picoseconds. - Weight::from_parts(2_072_338, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) + // Minimum execution time: 1_664_000 picoseconds. + Weight::from_parts(1_517_250, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(6_392, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(2_031_339, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) + // Minimum execution time: 1_682_000 picoseconds. + Weight::from_parts(2_419_495, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_745_000 picoseconds. - Weight::from_parts(2_337_573, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(2_071_649, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_855, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_750_000 picoseconds. - Weight::from_parts(3_030_041, 0) - // Standard Error: 43 - .saturating_add(Weight::from_parts(5_820, 0).saturating_mul(r.into())) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(2_125_462, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_121, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(2_089_385, 0) - // Standard Error: 6 - .saturating_add(Weight::from_parts(5_707, 0).saturating_mul(r.into())) + // Minimum execution time: 1_682_000 picoseconds. + Weight::from_parts(2_236_996, 0) + // Standard Error: 54 + .saturating_add(Weight::from_parts(5_672, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_703_000 picoseconds. - Weight::from_parts(2_079_766, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(11_840, 0).saturating_mul(r.into())) + // Minimum execution time: 1_686_000 picoseconds. + Weight::from_parts(2_069_904, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(11_777, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_762_000 picoseconds. - Weight::from_parts(2_058_839, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(10_618, 0).saturating_mul(r.into())) + // Minimum execution time: 1_665_000 picoseconds. + Weight::from_parts(2_449_446, 0) + // Standard Error: 71 + .saturating_add(Weight::from_parts(10_530, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_748_000 picoseconds. - Weight::from_parts(2_017_974, 0) - // Standard Error: 34 - .saturating_add(Weight::from_parts(12_233, 0).saturating_mul(r.into())) + // Minimum execution time: 1_723_000 picoseconds. + Weight::from_parts(2_170_990, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(11_739, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_701_000 picoseconds. - Weight::from_parts(2_043_265, 0) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(2_072_310, 0) // Standard Error: 4 - .saturating_add(Weight::from_parts(10_660, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(10_771, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_712_000 picoseconds. - Weight::from_parts(2_017_661, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_663, 0).saturating_mul(r.into())) + // Minimum execution time: 1_685_000 picoseconds. + Weight::from_parts(2_139_021, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(5_703, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_703_000 picoseconds. - Weight::from_parts(2_224_375, 0) - // Standard Error: 31 - .saturating_add(Weight::from_parts(5_734, 0).saturating_mul(r.into())) + // Minimum execution time: 1_686_000 picoseconds. + Weight::from_parts(1_959_726, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(5_847, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_756_000 picoseconds. - Weight::from_parts(1_205_566, 0) - // Standard Error: 244 - .saturating_add(Weight::from_parts(6_434, 0).saturating_mul(r.into())) + // Minimum execution time: 1_700_000 picoseconds. + Weight::from_parts(2_124_226, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_771_000 picoseconds. - Weight::from_parts(2_166_320, 0) - // Standard Error: 81 - .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) + // Minimum execution time: 1_660_000 picoseconds. + Weight::from_parts(2_022_785, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_700_000 picoseconds. - Weight::from_parts(2_023_771, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_105, 0).saturating_mul(r.into())) + // Minimum execution time: 1_673_000 picoseconds. + Weight::from_parts(2_790_542, 0) + // Standard Error: 43 + .saturating_add(Weight::from_parts(5_931, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_739_000 picoseconds. - Weight::from_parts(2_038_607, 0) + // Minimum execution time: 1_695_000 picoseconds. + Weight::from_parts(2_019_822, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_875, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_727_000 picoseconds. - Weight::from_parts(2_058_954, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(6_030, 0).saturating_mul(r.into())) + // Minimum execution time: 1_735_000 picoseconds. + Weight::from_parts(2_057_617, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_714_000 picoseconds. - Weight::from_parts(2_472_361, 0) - // Standard Error: 79 - .saturating_add(Weight::from_parts(5_834, 0).saturating_mul(r.into())) + // Minimum execution time: 1_712_000 picoseconds. + Weight::from_parts(2_026_675, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_863, 0).saturating_mul(r.into())) } } @@ -2170,8 +2195,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_732_000 picoseconds. - Weight::from_parts(2_891_000, 1594) + // Minimum execution time: 2_621_000 picoseconds. + Weight::from_parts(2_730_000, 1594) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -2181,10 +2206,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_440_000 picoseconds. - Weight::from_parts(8_360_703, 478) - // Standard Error: 1_070 - .saturating_add(Weight::from_parts(968_976, 0).saturating_mul(k.into())) + // Minimum execution time: 12_919_000 picoseconds. + Weight::from_parts(9_726_925, 478) + // Standard Error: 884 + .saturating_add(Weight::from_parts(972_485, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2200,10 +2225,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 38_480_000 picoseconds. - Weight::from_parts(37_986_449, 3708) - // Standard Error: 52 - .saturating_add(Weight::from_parts(54_436, 0).saturating_mul(c.into())) + // Minimum execution time: 37_980_000 picoseconds. + Weight::from_parts(27_323_411, 3708) + // Standard Error: 99 + .saturating_add(Weight::from_parts(55_463, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2223,10 +2248,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 317_858_000 picoseconds. - Weight::from_parts(316_836_827, 6656) - // Standard Error: 82 - .saturating_add(Weight::from_parts(38_240, 0).saturating_mul(c.into())) + // Minimum execution time: 317_337_000 picoseconds. + Weight::from_parts(328_889_374, 6656) + // Standard Error: 27 + .saturating_add(Weight::from_parts(37_642, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2254,14 +2279,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_287_137_000 picoseconds. - Weight::from_parts(628_452_802, 8659) - // Standard Error: 295 - .saturating_add(Weight::from_parts(108_579, 0).saturating_mul(c.into())) + // Minimum execution time: 3_295_088_000 picoseconds. + Weight::from_parts(690_340_900, 8659) + // Standard Error: 299 + .saturating_add(Weight::from_parts(106_925, 0).saturating_mul(c.into())) // Standard Error: 17 - .saturating_add(Weight::from_parts(1_174, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_173, 0).saturating_mul(i.into())) // Standard Error: 17 - .saturating_add(Weight::from_parts(1_488, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_461, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } @@ -2285,12 +2310,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_697_157_000 picoseconds. - Weight::from_parts(263_863_134, 6408) + // Minimum execution time: 1_699_132_000 picoseconds. + Weight::from_parts(276_257_020, 6408) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_489, 0).saturating_mul(i.into())) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_514, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -2308,8 +2333,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 192_637_000 picoseconds. - Weight::from_parts(193_909_000, 6699) + // Minimum execution time: 194_707_000 picoseconds. + Weight::from_parts(195_362_000, 6699) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2326,10 +2351,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 303_462_000 picoseconds. - Weight::from_parts(333_144_274, 3574) - // Standard Error: 194 - .saturating_add(Weight::from_parts(107_349, 0).saturating_mul(c.into())) + // Minimum execution time: 302_388_000 picoseconds. + Weight::from_parts(350_690_834, 3574) + // Standard Error: 275 + .saturating_add(Weight::from_parts(107_481, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2345,8 +2370,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_658_000 picoseconds. - Weight::from_parts(34_334_000, 3720) + // Minimum execution time: 33_408_000 picoseconds. + Weight::from_parts(34_293_000, 3720) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2360,8 +2385,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_847_000 picoseconds. - Weight::from_parts(34_250_000, 8985) + // Minimum execution time: 33_141_000 picoseconds. + Weight::from_parts(33_894_000, 8985) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2380,10 +2405,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 286_676_000 picoseconds. - Weight::from_parts(289_046_797, 6722) - // Standard Error: 898 - .saturating_add(Weight::from_parts(342_636, 0).saturating_mul(r.into())) + // Minimum execution time: 288_666_000 picoseconds. + Weight::from_parts(294_844_678, 6722) + // Standard Error: 679 + .saturating_add(Weight::from_parts(321_930, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2403,10 +2428,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 287_691_000 picoseconds. - Weight::from_parts(126_218_824, 6743) - // Standard Error: 6_083 - .saturating_add(Weight::from_parts(3_300_296, 0).saturating_mul(r.into())) + // Minimum execution time: 290_442_000 picoseconds. + Weight::from_parts(93_573_954, 6743) + // Standard Error: 12_636 + .saturating_add(Weight::from_parts(3_412_632, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2427,10 +2452,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 288_223_000 picoseconds. - Weight::from_parts(138_731_429, 6747) - // Standard Error: 7_351 - .saturating_add(Weight::from_parts(4_180_670, 0).saturating_mul(r.into())) + // Minimum execution time: 290_671_000 picoseconds. + Weight::from_parts(127_238_159, 6747) + // Standard Error: 6_438 + .saturating_add(Weight::from_parts(4_121_857, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2451,10 +2476,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 287_955_000 picoseconds. - Weight::from_parts(292_151_471, 6730) - // Standard Error: 570 - .saturating_add(Weight::from_parts(408_585, 0).saturating_mul(r.into())) + // Minimum execution time: 289_331_000 picoseconds. + Weight::from_parts(293_392_135, 6730) + // Standard Error: 844 + .saturating_add(Weight::from_parts(403_982, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2474,16 +2499,37 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 284_091_000 picoseconds. - Weight::from_parts(289_062_398, 6723) - // Standard Error: 306 - .saturating_add(Weight::from_parts(179_413, 0).saturating_mul(r.into())) + // Minimum execution time: 286_577_000 picoseconds. + Weight::from_parts(292_654_842, 6723) + // Standard Error: 527 + .saturating_add(Weight::from_parts(176_155, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - fn seal_caller_is_root(_r: u32, ) -> Weight { - Weight::zero() + /// Storage: Contracts ContractInfoOf (r:1 w:1) + /// Proof: Contracts ContractInfoOf (max_values: None, max_size: Some(290), added: 2765, mode: Measured) + /// Storage: Contracts CodeStorage (r:1 w:0) + /// Proof: Contracts CodeStorage (max_values: None, max_size: Some(126001), added: 128476, mode: Measured) + /// Storage: Timestamp Now (r:1 w:0) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) + /// Storage: System EventTopics (r:2 w:2) + /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) + /// Storage: System Account (r:1 w:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) + /// The range of component `r` is `[0, 1600]`. + /// The range of component `o` is `[0, 1]`. + fn seal_caller_is_root(r: u32, _o: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `776 + r * (3 ±0)` + // Estimated: `17460485980251150336 + r * (3 ±0)` + // Minimum execution time: 276_972_000 picoseconds. + Weight::from_parts(341_700_961, 17460485980251150336) + // Standard Error: 277 + .saturating_add(Weight::from_parts(145_543, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) @@ -2500,10 +2546,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 287_167_000 picoseconds. - Weight::from_parts(288_073_363, 6724) - // Standard Error: 618 - .saturating_add(Weight::from_parts(340_081, 0).saturating_mul(r.into())) + // Minimum execution time: 289_992_000 picoseconds. + Weight::from_parts(293_146_001, 6724) + // Standard Error: 730 + .saturating_add(Weight::from_parts(332_271, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2523,10 +2569,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 289_286_000 picoseconds. - Weight::from_parts(290_983_861, 6721) - // Standard Error: 1_019 - .saturating_add(Weight::from_parts(334_654, 0).saturating_mul(r.into())) + // Minimum execution time: 288_892_000 picoseconds. + Weight::from_parts(294_620_306, 6721) + // Standard Error: 629 + .saturating_add(Weight::from_parts(317_098, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2546,10 +2592,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 286_684_000 picoseconds. - Weight::from_parts(288_869_149, 6846) - // Standard Error: 2_427 - .saturating_add(Weight::from_parts(1_514_507, 0).saturating_mul(r.into())) + // Minimum execution time: 289_812_000 picoseconds. + Weight::from_parts(312_995_368, 6846) + // Standard Error: 2_248 + .saturating_add(Weight::from_parts(1_476_086, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2569,10 +2615,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 286_945_000 picoseconds. - Weight::from_parts(291_658_888, 6741) - // Standard Error: 784 - .saturating_add(Weight::from_parts(326_072, 0).saturating_mul(r.into())) + // Minimum execution time: 290_086_000 picoseconds. + Weight::from_parts(292_623_199, 6741) + // Standard Error: 683 + .saturating_add(Weight::from_parts(316_376, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2592,10 +2638,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 286_675_000 picoseconds. - Weight::from_parts(286_943_523, 6739) - // Standard Error: 663 - .saturating_add(Weight::from_parts(330_474, 0).saturating_mul(r.into())) + // Minimum execution time: 288_602_000 picoseconds. + Weight::from_parts(292_886_738, 6739) + // Standard Error: 2_252 + .saturating_add(Weight::from_parts(319_012, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2615,10 +2661,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 286_793_000 picoseconds. - Weight::from_parts(291_610_546, 6737) - // Standard Error: 787 - .saturating_add(Weight::from_parts(321_984, 0).saturating_mul(r.into())) + // Minimum execution time: 290_367_000 picoseconds. + Weight::from_parts(286_283_010, 6737) + // Standard Error: 1_868 + .saturating_add(Weight::from_parts(338_721, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2638,10 +2684,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 287_195_000 picoseconds. - Weight::from_parts(292_436_566, 6723) - // Standard Error: 655 - .saturating_add(Weight::from_parts(324_266, 0).saturating_mul(r.into())) + // Minimum execution time: 291_099_000 picoseconds. + Weight::from_parts(289_093_956, 6723) + // Standard Error: 1_675 + .saturating_add(Weight::from_parts(341_884, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2663,10 +2709,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 286_521_000 picoseconds. - Weight::from_parts(301_288_810, 6796) - // Standard Error: 1_060 - .saturating_add(Weight::from_parts(1_341_241, 0).saturating_mul(r.into())) + // Minimum execution time: 291_179_000 picoseconds. + Weight::from_parts(303_534_913, 6796) + // Standard Error: 1_090 + .saturating_add(Weight::from_parts(1_334_135, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2686,10 +2732,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 163_639_000 picoseconds. - Weight::from_parts(168_047_588, 6687) - // Standard Error: 280 - .saturating_add(Weight::from_parts(131_938, 0).saturating_mul(r.into())) + // Minimum execution time: 165_515_000 picoseconds. + Weight::from_parts(170_523_986, 6687) + // Standard Error: 226 + .saturating_add(Weight::from_parts(128_698, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -2709,10 +2755,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 286_853_000 picoseconds. - Weight::from_parts(290_619_643, 6724) - // Standard Error: 2_488 - .saturating_add(Weight::from_parts(283_378, 0).saturating_mul(r.into())) + // Minimum execution time: 290_256_000 picoseconds. + Weight::from_parts(291_556_626, 6724) + // Standard Error: 521 + .saturating_add(Weight::from_parts(273_212, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2732,10 +2778,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 288_925_000 picoseconds. - Weight::from_parts(289_190_307, 6724) + // Minimum execution time: 290_731_000 picoseconds. + Weight::from_parts(295_398_963, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(638, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2754,10 +2800,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 283_170_000 picoseconds. - Weight::from_parts(285_753_191, 6708) - // Standard Error: 439_986 - .saturating_add(Weight::from_parts(2_559_308, 0).saturating_mul(r.into())) + // Minimum execution time: 285_274_000 picoseconds. + Weight::from_parts(287_723_351, 6708) + // Standard Error: 330_733 + .saturating_add(Weight::from_parts(7_482_948, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -2777,10 +2823,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 287_657_000 picoseconds. - Weight::from_parts(287_957_330, 6731) + // Minimum execution time: 287_826_000 picoseconds. + Weight::from_parts(291_409_112, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(226, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(223, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2805,10 +2851,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 286_218_000 picoseconds. - Weight::from_parts(287_973_685, 6750) - // Standard Error: 132_929 - .saturating_add(Weight::from_parts(113_477_614, 0).saturating_mul(r.into())) + // Minimum execution time: 288_598_000 picoseconds. + Weight::from_parts(290_981_916, 6750) + // Standard Error: 195_063 + .saturating_add(Weight::from_parts(111_143_683, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2832,10 +2878,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 287_143_000 picoseconds. - Weight::from_parts(323_629_555, 6769) - // Standard Error: 4_493 - .saturating_add(Weight::from_parts(1_833_474, 0).saturating_mul(r.into())) + // Minimum execution time: 288_794_000 picoseconds. + Weight::from_parts(304_549_342, 6769) + // Standard Error: 1_470 + .saturating_add(Weight::from_parts(1_803_430, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2855,10 +2901,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 284_483_000 picoseconds. - Weight::from_parts(319_237_262, 6723) - // Standard Error: 2_905 - .saturating_add(Weight::from_parts(3_545_601, 0).saturating_mul(r.into())) + // Minimum execution time: 286_652_000 picoseconds. + Weight::from_parts(302_675_592, 6723) + // Standard Error: 4_289 + .saturating_add(Weight::from_parts(3_464_282, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2879,12 +2925,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 302_452_000 picoseconds. - Weight::from_parts(302_814_416, 6744) - // Standard Error: 220_671 - .saturating_add(Weight::from_parts(1_917_489, 0).saturating_mul(t.into())) - // Standard Error: 61 - .saturating_add(Weight::from_parts(330, 0).saturating_mul(n.into())) + // Minimum execution time: 305_535_000 picoseconds. + Weight::from_parts(296_553_947, 6744) + // Standard Error: 71_884 + .saturating_add(Weight::from_parts(2_769_460, 0).saturating_mul(t.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(798, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2906,10 +2952,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 169_421_000 picoseconds. - Weight::from_parts(170_245_138, 6721) - // Standard Error: 2_909 - .saturating_add(Weight::from_parts(241_230, 0).saturating_mul(r.into())) + // Minimum execution time: 171_558_000 picoseconds. + Weight::from_parts(175_440_241, 6721) + // Standard Error: 405 + .saturating_add(Weight::from_parts(233_269, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -2929,10 +2975,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 412_961_000 picoseconds. - Weight::from_parts(421_952_796, 131670) - // Standard Error: 2 - .saturating_add(Weight::from_parts(780, 0).saturating_mul(i.into())) + // Minimum execution time: 416_833_000 picoseconds. + Weight::from_parts(419_217_757, 131670) + // Standard Error: 1 + .saturating_add(Weight::from_parts(786, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2943,10 +2989,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 287_519_000 picoseconds. - Weight::from_parts(186_499_884, 843) - // Standard Error: 9_607 - .saturating_add(Weight::from_parts(6_107_425, 0).saturating_mul(r.into())) + // Minimum execution time: 290_743_000 picoseconds. + Weight::from_parts(187_199_190, 843) + // Standard Error: 10_468 + .saturating_add(Weight::from_parts(6_132_957, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2960,10 +3006,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 303_427_000 picoseconds. - Weight::from_parts(337_154_389, 1280) - // Standard Error: 49 - .saturating_add(Weight::from_parts(540, 0).saturating_mul(n.into())) + // Minimum execution time: 305_047_000 picoseconds. + Weight::from_parts(338_579_691, 1280) + // Standard Error: 53 + .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2974,8 +3020,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 303_607_000 picoseconds. - Weight::from_parts(310_031_052, 1167) + // Minimum execution time: 304_554_000 picoseconds. + Weight::from_parts(307_725_252, 1167) + // Standard Error: 19 + .saturating_add(Weight::from_parts(54, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2987,10 +3035,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 286_440_000 picoseconds. - Weight::from_parts(185_306_517, 845) - // Standard Error: 9_667 - .saturating_add(Weight::from_parts(5_978_509, 0).saturating_mul(r.into())) + // Minimum execution time: 289_480_000 picoseconds. + Weight::from_parts(188_304_769, 845) + // Standard Error: 10_250 + .saturating_add(Weight::from_parts(5_961_560, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3004,10 +3052,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 301_474_000 picoseconds. - Weight::from_parts(303_507_876, 1163) - // Standard Error: 21 - .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) + // Minimum execution time: 306_269_000 picoseconds. + Weight::from_parts(309_777_309, 1163) + // Standard Error: 37 + .saturating_add(Weight::from_parts(56, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3019,10 +3067,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 287_458_000 picoseconds. - Weight::from_parts(198_932_702, 840) - // Standard Error: 9_573 - .saturating_add(Weight::from_parts(4_954_559, 0).saturating_mul(r.into())) + // Minimum execution time: 291_888_000 picoseconds. + Weight::from_parts(201_944_475, 840) + // Standard Error: 9_061 + .saturating_add(Weight::from_parts(4_922_092, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3035,10 +3083,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 301_100_000 picoseconds. - Weight::from_parts(304_937_675, 1179) - // Standard Error: 41 - .saturating_add(Weight::from_parts(674, 0).saturating_mul(n.into())) + // Minimum execution time: 304_681_000 picoseconds. + Weight::from_parts(307_242_988, 1179) + // Standard Error: 21 + .saturating_add(Weight::from_parts(731, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3050,10 +3098,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 288_014_000 picoseconds. - Weight::from_parts(204_067_757, 857) - // Standard Error: 8_223 - .saturating_add(Weight::from_parts(4_763_943, 0).saturating_mul(r.into())) + // Minimum execution time: 291_184_000 picoseconds. + Weight::from_parts(204_634_542, 857) + // Standard Error: 8_790 + .saturating_add(Weight::from_parts(4_747_440, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3066,10 +3114,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 299_485_000 picoseconds. - Weight::from_parts(302_066_517, 1166) - // Standard Error: 26 - .saturating_add(Weight::from_parts(183, 0).saturating_mul(n.into())) + // Minimum execution time: 302_210_000 picoseconds. + Weight::from_parts(303_527_777, 1166) + // Standard Error: 105 + .saturating_add(Weight::from_parts(430, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3081,10 +3129,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 286_733_000 picoseconds. - Weight::from_parts(182_822_600, 836) - // Standard Error: 10_229 - .saturating_add(Weight::from_parts(6_137_762, 0).saturating_mul(r.into())) + // Minimum execution time: 290_034_000 picoseconds. + Weight::from_parts(186_525_026, 836) + // Standard Error: 10_215 + .saturating_add(Weight::from_parts(6_196_660, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3098,10 +3146,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 303_472_000 picoseconds. - Weight::from_parts(306_709_156, 1180) - // Standard Error: 114 - .saturating_add(Weight::from_parts(878, 0).saturating_mul(n.into())) + // Minimum execution time: 307_181_000 picoseconds. + Weight::from_parts(310_026_414, 1180) + // Standard Error: 23 + .saturating_add(Weight::from_parts(686, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3121,10 +3169,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 287_997_000 picoseconds. - Weight::from_parts(413_154_187, 7270) - // Standard Error: 50_335 - .saturating_add(Weight::from_parts(35_932_808, 0).saturating_mul(r.into())) + // Minimum execution time: 292_708_000 picoseconds. + Weight::from_parts(122_335_036, 7270) + // Standard Error: 47_267 + .saturating_add(Weight::from_parts(36_139_651, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3146,10 +3194,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 288_697_000 picoseconds. - Weight::from_parts(289_497_000, 9408) - // Standard Error: 84_152 - .saturating_add(Weight::from_parts(264_273_999, 0).saturating_mul(r.into())) + // Minimum execution time: 291_399_000 picoseconds. + Weight::from_parts(291_866_000, 9408) + // Standard Error: 82_515 + .saturating_add(Weight::from_parts(266_037_975, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3170,11 +3218,11 @@ impl WeightInfo for () { fn seal_delegate_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` - // Estimated: `6727 + r * (2572 ±10)` - // Minimum execution time: 288_939_000 picoseconds. - Weight::from_parts(289_352_000, 6727) - // Standard Error: 89_294 - .saturating_add(Weight::from_parts(258_967_466, 0).saturating_mul(r.into())) + // Estimated: `6727 + r * (2572 ±3)` + // Minimum execution time: 291_077_000 picoseconds. + Weight::from_parts(291_551_000, 6727) + // Standard Error: 122_042 + .saturating_add(Weight::from_parts(261_438_700, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3197,12 +3245,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 466_182_000 picoseconds. - Weight::from_parts(417_471_518, 12044) - // Standard Error: 1_324_392 - .saturating_add(Weight::from_parts(50_217_680, 0).saturating_mul(t.into())) - // Standard Error: 1 - .saturating_add(Weight::from_parts(661, 0).saturating_mul(c.into())) + // Minimum execution time: 469_595_000 picoseconds. + Weight::from_parts(442_686_481, 12044) + // Standard Error: 2_726_929 + .saturating_add(Weight::from_parts(41_734_267, 0).saturating_mul(t.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(640, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3228,10 +3276,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 288_768_000 picoseconds. - Weight::from_parts(289_564_000, 7131) - // Standard Error: 252_309 - .saturating_add(Weight::from_parts(397_797_262, 0).saturating_mul(r.into())) + // Minimum execution time: 292_747_000 picoseconds. + Weight::from_parts(293_438_000, 7131) + // Standard Error: 270_720 + .saturating_add(Weight::from_parts(400_084_403, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3259,14 +3307,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_718_177_000 picoseconds. - Weight::from_parts(373_356_266, 9492) - // Standard Error: 5_010_435 - .saturating_add(Weight::from_parts(127_043_740, 0).saturating_mul(t.into())) + // Minimum execution time: 1_716_280_000 picoseconds. + Weight::from_parts(391_302_250, 9492) + // Standard Error: 4_541_278 + .saturating_add(Weight::from_parts(123_043_757, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_211, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_398, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_382, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(10_u64)) @@ -3288,10 +3336,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 285_503_000 picoseconds. - Weight::from_parts(292_276_944, 6718) - // Standard Error: 1_121 - .saturating_add(Weight::from_parts(579_727, 0).saturating_mul(r.into())) + // Minimum execution time: 289_136_000 picoseconds. + Weight::from_parts(290_884_333, 6718) + // Standard Error: 879 + .saturating_add(Weight::from_parts(574_822, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3311,10 +3359,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 286_428_000 picoseconds. - Weight::from_parts(280_912_017, 6725) + // Minimum execution time: 289_137_000 picoseconds. + Weight::from_parts(282_552_030, 6725) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_988, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_980, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3333,10 +3381,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 283_991_000 picoseconds. - Weight::from_parts(288_786_486, 6721) - // Standard Error: 865 - .saturating_add(Weight::from_parts(753_580, 0).saturating_mul(r.into())) + // Minimum execution time: 286_471_000 picoseconds. + Weight::from_parts(289_159_864, 6721) + // Standard Error: 860 + .saturating_add(Weight::from_parts(745_304, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3356,10 +3404,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 286_108_000 picoseconds. - Weight::from_parts(283_598_176, 6729) + // Minimum execution time: 289_003_000 picoseconds. + Weight::from_parts(283_320_300, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_212, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_208, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3378,10 +3426,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 284_741_000 picoseconds. - Weight::from_parts(291_123_708, 6724) - // Standard Error: 1_833 - .saturating_add(Weight::from_parts(431_762, 0).saturating_mul(r.into())) + // Minimum execution time: 286_345_000 picoseconds. + Weight::from_parts(278_615_734, 6724) + // Standard Error: 5_532 + .saturating_add(Weight::from_parts(445_167, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3401,10 +3449,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 286_082_000 picoseconds. - Weight::from_parts(281_634_804, 6733) - // Standard Error: 2 - .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) + // Minimum execution time: 288_570_000 picoseconds. + Weight::from_parts(289_126_754, 6733) + // Standard Error: 3 + .saturating_add(Weight::from_parts(958, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3423,10 +3471,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 283_632_000 picoseconds. - Weight::from_parts(289_666_460, 6725) - // Standard Error: 637 - .saturating_add(Weight::from_parts(422_999, 0).saturating_mul(r.into())) + // Minimum execution time: 286_967_000 picoseconds. + Weight::from_parts(306_210_527, 6725) + // Standard Error: 5_583 + .saturating_add(Weight::from_parts(413_458, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3446,10 +3494,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 285_963_000 picoseconds. - Weight::from_parts(275_886_416, 6727) + // Minimum execution time: 287_687_000 picoseconds. + Weight::from_parts(285_021_722, 6727) // Standard Error: 2 - .saturating_add(Weight::from_parts(974, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3468,10 +3516,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` // Estimated: `6849 + n * (1 ±0)` - // Minimum execution time: 338_908_000 picoseconds. - Weight::from_parts(342_986_608, 6849) - // Standard Error: 8 - .saturating_add(Weight::from_parts(4_894, 0).saturating_mul(n.into())) + // Minimum execution time: 341_216_000 picoseconds. + Weight::from_parts(345_497_943, 6849) + // Standard Error: 9 + .saturating_add(Weight::from_parts(4_886, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3491,10 +3539,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `722 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 288_881_000 picoseconds. - Weight::from_parts(293_510_765, 6666) - // Standard Error: 22_326 - .saturating_add(Weight::from_parts(48_206_988, 0).saturating_mul(r.into())) + // Minimum execution time: 290_091_000 picoseconds. + Weight::from_parts(296_812_510, 6666) + // Standard Error: 21_841 + .saturating_add(Weight::from_parts(48_088_936, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -3513,11 +3561,11 @@ impl WeightInfo for () { fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `822 + r * (76 ±0)` - // Estimated: `6717 + r * (77 ±0)` - // Minimum execution time: 288_232_000 picoseconds. - Weight::from_parts(302_410_889, 6717) - // Standard Error: 18_447 - .saturating_add(Weight::from_parts(37_715_119, 0).saturating_mul(r.into())) + // Estimated: `6716 + r * (77 ±0)` + // Minimum execution time: 289_970_000 picoseconds. + Weight::from_parts(307_137_014, 6716) + // Standard Error: 18_656 + .saturating_add(Weight::from_parts(37_701_116, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -3537,10 +3585,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 287_220_000 picoseconds. - Weight::from_parts(298_049_708, 6731) - // Standard Error: 12_619 - .saturating_add(Weight::from_parts(9_337_433, 0).saturating_mul(r.into())) + // Minimum execution time: 298_751_000 picoseconds. + Weight::from_parts(296_467_214, 6731) + // Standard Error: 10_566 + .saturating_add(Weight::from_parts(9_298_692, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -3562,10 +3610,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` // Estimated: `8190 + r * (3090 ±7)` - // Minimum execution time: 288_354_000 picoseconds. - Weight::from_parts(288_850_000, 8190) - // Standard Error: 51_911 - .saturating_add(Weight::from_parts(21_849_160, 0).saturating_mul(r.into())) + // Minimum execution time: 290_103_000 picoseconds. + Weight::from_parts(291_266_000, 8190) + // Standard Error: 46_431 + .saturating_add(Weight::from_parts(21_614_419, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3587,10 +3635,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 286_562_000 picoseconds. - Weight::from_parts(292_112_735, 6723) - // Standard Error: 468 - .saturating_add(Weight::from_parts(169_786, 0).saturating_mul(r.into())) + // Minimum execution time: 287_526_000 picoseconds. + Weight::from_parts(292_181_305, 6723) + // Standard Error: 418 + .saturating_add(Weight::from_parts(165_874, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3610,10 +3658,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 290_031_000 picoseconds. - Weight::from_parts(316_516_939, 7805) - // Standard Error: 975 - .saturating_add(Weight::from_parts(260_809, 0).saturating_mul(r.into())) + // Minimum execution time: 289_466_000 picoseconds. + Weight::from_parts(319_431_412, 7805) + // Standard Error: 1_084 + .saturating_add(Weight::from_parts(260_352, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -3635,10 +3683,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 285_777_000 picoseconds. - Weight::from_parts(292_816_667, 6723) - // Standard Error: 332 - .saturating_add(Weight::from_parts(139_265, 0).saturating_mul(r.into())) + // Minimum execution time: 288_583_000 picoseconds. + Weight::from_parts(285_400_895, 6723) + // Standard Error: 3_992 + .saturating_add(Weight::from_parts(162_784, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3648,507 +3696,509 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_740_000 picoseconds. - Weight::from_parts(1_962_394, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_997, 0).saturating_mul(r.into())) + // Minimum execution time: 1_688_000 picoseconds. + Weight::from_parts(1_975_285, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(2_985, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_849_000 picoseconds. - Weight::from_parts(2_212_786, 0) - // Standard Error: 177 - .saturating_add(Weight::from_parts(6_644, 0).saturating_mul(r.into())) + // Minimum execution time: 1_808_000 picoseconds. + Weight::from_parts(2_520_211, 0) + // Standard Error: 48 + .saturating_add(Weight::from_parts(6_394, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_860_000 picoseconds. - Weight::from_parts(2_424_024, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(5_973, 0).saturating_mul(r.into())) + // Minimum execution time: 1_791_000 picoseconds. + Weight::from_parts(2_982_175, 0) + // Standard Error: 63 + .saturating_add(Weight::from_parts(5_849, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_694_000 picoseconds. - Weight::from_parts(2_134_440, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(7_923, 0).saturating_mul(r.into())) + // Minimum execution time: 1_712_000 picoseconds. + Weight::from_parts(2_116_026, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(7_916, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_696_000 picoseconds. - Weight::from_parts(1_929_027, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(10_734, 0).saturating_mul(r.into())) + // Minimum execution time: 1_705_000 picoseconds. + Weight::from_parts(1_866_703, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(10_418, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_770_000 picoseconds. - Weight::from_parts(1_933_446, 0) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_577, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(1_775_389, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(4_668, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(1_708_252, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(7_045, 0).saturating_mul(r.into())) + // Minimum execution time: 1_688_000 picoseconds. + Weight::from_parts(2_371_112, 0) + // Standard Error: 67 + .saturating_add(Weight::from_parts(7_468, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(1_390_869, 0) - // Standard Error: 32 - .saturating_add(Weight::from_parts(9_562, 0).saturating_mul(r.into())) + // Minimum execution time: 1_686_000 picoseconds. + Weight::from_parts(1_464_378, 0) + // Standard Error: 31 + .saturating_add(Weight::from_parts(9_555, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(_e: u32, ) -> Weight { + fn instr_br_table_per_entry(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_761_000 picoseconds. - Weight::from_parts(1_921_216, 0) + // Minimum execution time: 1_767_000 picoseconds. + Weight::from_parts(1_876_710, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(220, 0).saturating_mul(e.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(2_117_970, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(18_027, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_137_774, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(18_546, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_884_000 picoseconds. - Weight::from_parts(2_905_643, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(24_217, 0).saturating_mul(r.into())) + // Minimum execution time: 1_978_000 picoseconds. + Weight::from_parts(2_637_716, 0) + // Standard Error: 66 + .saturating_add(Weight::from_parts(24_793, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_800_000 picoseconds. - Weight::from_parts(2_020_935, 0) - // Standard Error: 13 - .saturating_add(Weight::from_parts(2_038, 0).saturating_mul(l.into())) + // Minimum execution time: 1_833_000 picoseconds. + Weight::from_parts(1_953_065, 0) + // Standard Error: 49 + .saturating_add(Weight::from_parts(2_425, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_931_000 picoseconds. - Weight::from_parts(4_180_543, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_499, 0).saturating_mul(r.into())) + // Minimum execution time: 3_859_000 picoseconds. + Weight::from_parts(4_277_917, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(2_402, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_858_000 picoseconds. - Weight::from_parts(3_918_410, 0) - // Standard Error: 89 - .saturating_add(Weight::from_parts(3_835, 0).saturating_mul(r.into())) + // Minimum execution time: 3_930_000 picoseconds. + Weight::from_parts(4_156_656, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_616, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_927_000 picoseconds. - Weight::from_parts(4_346_824, 0) - // Standard Error: 49 - .saturating_add(Weight::from_parts(3_932, 0).saturating_mul(r.into())) + // Minimum execution time: 3_887_000 picoseconds. + Weight::from_parts(4_189_509, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_797_000 picoseconds. - Weight::from_parts(2_208_746, 0) + // Minimum execution time: 1_872_000 picoseconds. + Weight::from_parts(2_326_016, 0) // Standard Error: 5 - .saturating_add(Weight::from_parts(8_415, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(8_380, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_817_000 picoseconds. - Weight::from_parts(2_518_846, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(8_760, 0).saturating_mul(r.into())) + // Minimum execution time: 1_880_000 picoseconds. + Weight::from_parts(2_372_584, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(8_809, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_750_000 picoseconds. - Weight::from_parts(2_098_522, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_841, 0).saturating_mul(r.into())) + // Minimum execution time: 1_805_000 picoseconds. + Weight::from_parts(2_663_941, 0) + // Standard Error: 63 + .saturating_add(Weight::from_parts(3_613, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(1_077_693, 0) - // Standard Error: 136_255 - .saturating_add(Weight::from_parts(16_291_758, 0).saturating_mul(r.into())) + // Minimum execution time: 1_742_000 picoseconds. + Weight::from_parts(1_296_708, 0) + // Standard Error: 139_965 + .saturating_add(Weight::from_parts(16_273_249, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_692_000 picoseconds. - Weight::from_parts(2_048_398, 0) + // Minimum execution time: 1_710_000 picoseconds. + Weight::from_parts(2_031_637, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(4_034, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_912, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_680_000 picoseconds. - Weight::from_parts(2_100_104, 0) - // Standard Error: 8 - .saturating_add(Weight::from_parts(3_742, 0).saturating_mul(r.into())) + // Minimum execution time: 1_702_000 picoseconds. + Weight::from_parts(2_029_086, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_877, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_692_000 picoseconds. - Weight::from_parts(2_962_271, 0) - // Standard Error: 56 - .saturating_add(Weight::from_parts(3_499, 0).saturating_mul(r.into())) + // Minimum execution time: 1_725_000 picoseconds. + Weight::from_parts(2_024_772, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_879, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_719_000 picoseconds. - Weight::from_parts(2_007_653, 0) - // Standard Error: 117 - .saturating_add(Weight::from_parts(3_738, 0).saturating_mul(r.into())) + // Minimum execution time: 1_737_000 picoseconds. + Weight::from_parts(2_020_931, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_676, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(2_581_716, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(3_830, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(1_976_558, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_685_000 picoseconds. - Weight::from_parts(2_051_006, 0) + // Minimum execution time: 1_824_000 picoseconds. + Weight::from_parts(2_068_490, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_825, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_860, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_729_000 picoseconds. - Weight::from_parts(2_029_724, 0) + // Minimum execution time: 1_721_000 picoseconds. + Weight::from_parts(2_051_294, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_740, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_839, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_684_000 picoseconds. - Weight::from_parts(2_022_264, 0) + // Minimum execution time: 1_735_000 picoseconds. + Weight::from_parts(2_087_837, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_995, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_737_000 picoseconds. - Weight::from_parts(2_051_138, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_942, 0).saturating_mul(r.into())) + // Minimum execution time: 1_662_000 picoseconds. + Weight::from_parts(2_046_929, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_013, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_708_000 picoseconds. - Weight::from_parts(2_272_874, 0) - // Standard Error: 36 - .saturating_add(Weight::from_parts(5_944, 0).saturating_mul(r.into())) + // Minimum execution time: 1_697_000 picoseconds. + Weight::from_parts(2_043_696, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_009, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(2_021_507, 0) + // Minimum execution time: 1_670_000 picoseconds. + Weight::from_parts(2_101_582, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_999, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_655_000 picoseconds. - Weight::from_parts(2_064_554, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_829, 0).saturating_mul(r.into())) + // Minimum execution time: 1_656_000 picoseconds. + Weight::from_parts(2_049_341, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_812, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_705_000 picoseconds. - Weight::from_parts(2_049_808, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) + // Minimum execution time: 1_687_000 picoseconds. + Weight::from_parts(2_059_405, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(6_101, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_670_000 picoseconds. - Weight::from_parts(2_059_409, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) + // Minimum execution time: 1_706_000 picoseconds. + Weight::from_parts(2_032_138, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_674_000 picoseconds. - Weight::from_parts(2_092_191, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(6_060, 0).saturating_mul(r.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(2_077_404, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_088, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_759_000 picoseconds. - Weight::from_parts(2_072_338, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) + // Minimum execution time: 1_664_000 picoseconds. + Weight::from_parts(1_517_250, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(6_392, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(2_031_339, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(5_987, 0).saturating_mul(r.into())) + // Minimum execution time: 1_682_000 picoseconds. + Weight::from_parts(2_419_495, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_745_000 picoseconds. - Weight::from_parts(2_337_573, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(2_071_649, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_855, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_750_000 picoseconds. - Weight::from_parts(3_030_041, 0) - // Standard Error: 43 - .saturating_add(Weight::from_parts(5_820, 0).saturating_mul(r.into())) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(2_125_462, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_121, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(2_089_385, 0) - // Standard Error: 6 - .saturating_add(Weight::from_parts(5_707, 0).saturating_mul(r.into())) + // Minimum execution time: 1_682_000 picoseconds. + Weight::from_parts(2_236_996, 0) + // Standard Error: 54 + .saturating_add(Weight::from_parts(5_672, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_703_000 picoseconds. - Weight::from_parts(2_079_766, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(11_840, 0).saturating_mul(r.into())) + // Minimum execution time: 1_686_000 picoseconds. + Weight::from_parts(2_069_904, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(11_777, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_762_000 picoseconds. - Weight::from_parts(2_058_839, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(10_618, 0).saturating_mul(r.into())) + // Minimum execution time: 1_665_000 picoseconds. + Weight::from_parts(2_449_446, 0) + // Standard Error: 71 + .saturating_add(Weight::from_parts(10_530, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_748_000 picoseconds. - Weight::from_parts(2_017_974, 0) - // Standard Error: 34 - .saturating_add(Weight::from_parts(12_233, 0).saturating_mul(r.into())) + // Minimum execution time: 1_723_000 picoseconds. + Weight::from_parts(2_170_990, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(11_739, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_701_000 picoseconds. - Weight::from_parts(2_043_265, 0) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(2_072_310, 0) // Standard Error: 4 - .saturating_add(Weight::from_parts(10_660, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(10_771, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_712_000 picoseconds. - Weight::from_parts(2_017_661, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_663, 0).saturating_mul(r.into())) + // Minimum execution time: 1_685_000 picoseconds. + Weight::from_parts(2_139_021, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(5_703, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_703_000 picoseconds. - Weight::from_parts(2_224_375, 0) - // Standard Error: 31 - .saturating_add(Weight::from_parts(5_734, 0).saturating_mul(r.into())) + // Minimum execution time: 1_686_000 picoseconds. + Weight::from_parts(1_959_726, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(5_847, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_756_000 picoseconds. - Weight::from_parts(1_205_566, 0) - // Standard Error: 244 - .saturating_add(Weight::from_parts(6_434, 0).saturating_mul(r.into())) + // Minimum execution time: 1_700_000 picoseconds. + Weight::from_parts(2_124_226, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_771_000 picoseconds. - Weight::from_parts(2_166_320, 0) - // Standard Error: 81 - .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) + // Minimum execution time: 1_660_000 picoseconds. + Weight::from_parts(2_022_785, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_700_000 picoseconds. - Weight::from_parts(2_023_771, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_105, 0).saturating_mul(r.into())) + // Minimum execution time: 1_673_000 picoseconds. + Weight::from_parts(2_790_542, 0) + // Standard Error: 43 + .saturating_add(Weight::from_parts(5_931, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_739_000 picoseconds. - Weight::from_parts(2_038_607, 0) + // Minimum execution time: 1_695_000 picoseconds. + Weight::from_parts(2_019_822, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_875, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_727_000 picoseconds. - Weight::from_parts(2_058_954, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(6_030, 0).saturating_mul(r.into())) + // Minimum execution time: 1_735_000 picoseconds. + Weight::from_parts(2_057_617, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_714_000 picoseconds. - Weight::from_parts(2_472_361, 0) - // Standard Error: 79 - .saturating_add(Weight::from_parts(5_834, 0).saturating_mul(r.into())) + // Minimum execution time: 1_712_000 picoseconds. + Weight::from_parts(2_026_675, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_863, 0).saturating_mul(r.into())) } } From 54540ddd57d94cf32a02e61dc6dbb851fffdae5b Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 18 Apr 2023 10:55:11 +0200 Subject: [PATCH 32/53] contracts: add caller_is_root benchmarking --- frame/contracts/src/benchmarking/mod.rs | 2 +- frame/contracts/src/exec.rs | 5 +---- frame/contracts/src/weights.rs | 6 +++--- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index 1eeab523df2c2..a15dab83ea1e7 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -537,7 +537,6 @@ benchmarks! { #[pov_mode = Measured] seal_caller_is_root { let r in 0 .. API_BENCHMARK_RUNS; - let o in 0 .. 1; let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), @@ -562,6 +561,7 @@ benchmarks! { None, Some(BalanceOf::::max_value().into()), ]; + let o = r % 2; let origin = origins[o as usize].clone(); let limit = limits[o as usize].clone(); }: call(origin, instance.addr, 0u32.into(), Weight::MAX, limit, vec![]) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 8f124672f0f65..b6b7317ad9198 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -1297,10 +1297,7 @@ where fn caller_is_root(&self) -> bool { // if the caller isn't origin, then it can't be root. - if !self.caller_is_origin() { - return false - } - matches!(self.origin, Origin::Root) + self.caller_is_origin() && self.origin == Origin::Root } fn balance(&self) -> BalanceOf { diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 4a0ef83315869..75e80835c7184 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -64,7 +64,7 @@ pub trait WeightInfo { fn seal_code_hash(r: u32, ) -> Weight; fn seal_own_code_hash(r: u32, ) -> Weight; fn seal_caller_is_origin(r: u32, ) -> Weight; - fn seal_caller_is_root(r: u32, o: u32, ) -> Weight; + fn seal_caller_is_root(r: u32, ) -> Weight; fn seal_address(r: u32, ) -> Weight; fn seal_gas_left(r: u32, ) -> Weight; fn seal_balance(r: u32, ) -> Weight; @@ -503,7 +503,7 @@ impl WeightInfo for SubstrateWeight { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// The range of component `r` is `[0, 1600]`. /// The range of component `o` is `[0, 1]`. - fn seal_caller_is_root(r: u32, _o: u32, ) -> Weight { + fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `17460485980251150336 + r * (3 ±0)` @@ -2519,7 +2519,7 @@ impl WeightInfo for () { /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// The range of component `r` is `[0, 1600]`. /// The range of component `o` is `[0, 1]`. - fn seal_caller_is_root(r: u32, _o: u32, ) -> Weight { + fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `17460485980251150336 + r * (3 ±0)` From f7bd9fe1fdc89f61dcfbda2186bfc2b3a7a18383 Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Tue, 18 Apr 2023 10:21:22 +0000 Subject: [PATCH 33/53] ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts --- frame/contracts/src/weights.rs | 1868 ++++++++++++++++---------------- 1 file changed, 931 insertions(+), 937 deletions(-) diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 75e80835c7184..85cd2850adeef 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_contracts //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-17, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -179,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_621_000 picoseconds. - Weight::from_parts(2_730_000, 1594) + // Minimum execution time: 2_600_000 picoseconds. + Weight::from_parts(2_715_000, 1594) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -190,10 +190,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 12_919_000 picoseconds. - Weight::from_parts(9_726_925, 478) - // Standard Error: 884 - .saturating_add(Weight::from_parts(972_485, 0).saturating_mul(k.into())) + // Minimum execution time: 13_433_000 picoseconds. + Weight::from_parts(9_206_955, 478) + // Standard Error: 1_428 + .saturating_add(Weight::from_parts(975_783, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -209,10 +209,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 37_980_000 picoseconds. - Weight::from_parts(27_323_411, 3708) - // Standard Error: 99 - .saturating_add(Weight::from_parts(55_463, 0).saturating_mul(c.into())) + // Minimum execution time: 30_877_000 picoseconds. + Weight::from_parts(24_692_209, 3708) + // Standard Error: 61 + .saturating_add(Weight::from_parts(56_159, 0).saturating_mul(c.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(c.into())) @@ -232,10 +232,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 317_337_000 picoseconds. - Weight::from_parts(328_889_374, 6656) - // Standard Error: 27 - .saturating_add(Weight::from_parts(37_642, 0).saturating_mul(c.into())) + // Minimum execution time: 264_158_000 picoseconds. + Weight::from_parts(270_385_802, 6656) + // Standard Error: 29 + .saturating_add(Weight::from_parts(38_112, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -263,14 +263,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_295_088_000 picoseconds. - Weight::from_parts(690_340_900, 8659) - // Standard Error: 299 - .saturating_add(Weight::from_parts(106_925, 0).saturating_mul(c.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_173, 0).saturating_mul(i.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_461, 0).saturating_mul(s.into())) + // Minimum execution time: 3_133_423_000 picoseconds. + Weight::from_parts(579_477_658, 8659) + // Standard Error: 276 + .saturating_add(Weight::from_parts(106_752, 0).saturating_mul(c.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_418, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -294,12 +294,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_699_132_000 picoseconds. - Weight::from_parts(276_257_020, 6408) + // Minimum execution time: 1_650_429_000 picoseconds. + Weight::from_parts(294_221_501, 6408) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_489, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_446, 0).saturating_mul(i.into())) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_433, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -317,8 +317,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 194_707_000 picoseconds. - Weight::from_parts(195_362_000, 6699) + // Minimum execution time: 191_782_000 picoseconds. + Weight::from_parts(192_980_000, 6699) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -335,10 +335,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 302_388_000 picoseconds. - Weight::from_parts(350_690_834, 3574) - // Standard Error: 275 - .saturating_add(Weight::from_parts(107_481, 0).saturating_mul(c.into())) + // Minimum execution time: 246_068_000 picoseconds. + Weight::from_parts(286_606_707, 3574) + // Standard Error: 89 + .saturating_add(Weight::from_parts(108_514, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -354,8 +354,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_408_000 picoseconds. - Weight::from_parts(34_293_000, 3720) + // Minimum execution time: 33_692_000 picoseconds. + Weight::from_parts(34_214_000, 3720) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -369,8 +369,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_141_000 picoseconds. - Weight::from_parts(33_894_000, 8985) + // Minimum execution time: 33_715_000 picoseconds. + Weight::from_parts(34_232_000, 8985) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -389,10 +389,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 288_666_000 picoseconds. - Weight::from_parts(294_844_678, 6722) - // Standard Error: 679 - .saturating_add(Weight::from_parts(321_930, 0).saturating_mul(r.into())) + // Minimum execution time: 235_571_000 picoseconds. + Weight::from_parts(235_995_099, 6722) + // Standard Error: 881 + .saturating_add(Weight::from_parts(343_678, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -412,10 +412,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 290_442_000 picoseconds. - Weight::from_parts(93_573_954, 6743) - // Standard Error: 12_636 - .saturating_add(Weight::from_parts(3_412_632, 0).saturating_mul(r.into())) + // Minimum execution time: 235_423_000 picoseconds. + Weight::from_parts(77_496_153, 6743) + // Standard Error: 6_327 + .saturating_add(Weight::from_parts(3_401_948, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -436,10 +436,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 290_671_000 picoseconds. - Weight::from_parts(127_238_159, 6747) - // Standard Error: 6_438 - .saturating_add(Weight::from_parts(4_121_857, 0).saturating_mul(r.into())) + // Minimum execution time: 238_449_000 picoseconds. + Weight::from_parts(75_802_338, 6747) + // Standard Error: 6_281 + .saturating_add(Weight::from_parts(4_173_432, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -460,10 +460,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 289_331_000 picoseconds. - Weight::from_parts(293_392_135, 6730) - // Standard Error: 844 - .saturating_add(Weight::from_parts(403_982, 0).saturating_mul(r.into())) + // Minimum execution time: 236_091_000 picoseconds. + Weight::from_parts(238_500_775, 6730) + // Standard Error: 784 + .saturating_add(Weight::from_parts(398_956, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -483,14 +483,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 286_577_000 picoseconds. - Weight::from_parts(292_654_842, 6723) - // Standard Error: 527 - .saturating_add(Weight::from_parts(176_155, 0).saturating_mul(r.into())) + // Minimum execution time: 233_566_000 picoseconds. + Weight::from_parts(239_002_284, 6723) + // Standard Error: 335 + .saturating_add(Weight::from_parts(164_563, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } + /// Storage: System Account (r:1 w:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) /// Proof: Contracts ContractInfoOf (max_values: None, max_size: Some(290), added: 2765, mode: Measured) /// Storage: Contracts CodeStorage (r:1 w:0) @@ -499,19 +501,16 @@ impl WeightInfo for SubstrateWeight { /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) /// Storage: System EventTopics (r:2 w:2) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// The range of component `r` is `[0, 1600]`. - /// The range of component `o` is `[0, 1]`. fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `776 + r * (3 ±0)` - // Estimated: `17460485980251150336 + r * (3 ±0)` - // Minimum execution time: 276_972_000 picoseconds. - Weight::from_parts(341_700_961, 17460485980251150336) - // Standard Error: 277 - .saturating_add(Weight::from_parts(145_543, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(6_u64)) + // Measured: `774 + r * (3 ±0)` + // Estimated: `6652 + r * (3 ±0)` + // Minimum execution time: 234_000_000 picoseconds. + Weight::from_parts(231_285_526, 6652) + // Standard Error: 1_854 + .saturating_add(Weight::from_parts(161_318, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } @@ -530,10 +529,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 289_992_000 picoseconds. - Weight::from_parts(293_146_001, 6724) - // Standard Error: 730 - .saturating_add(Weight::from_parts(332_271, 0).saturating_mul(r.into())) + // Minimum execution time: 236_478_000 picoseconds. + Weight::from_parts(238_040_595, 6724) + // Standard Error: 613 + .saturating_add(Weight::from_parts(319_183, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -553,10 +552,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 288_892_000 picoseconds. - Weight::from_parts(294_620_306, 6721) - // Standard Error: 629 - .saturating_add(Weight::from_parts(317_098, 0).saturating_mul(r.into())) + // Minimum execution time: 235_931_000 picoseconds. + Weight::from_parts(237_471_646, 6721) + // Standard Error: 467 + .saturating_add(Weight::from_parts(314_347, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -576,10 +575,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 289_812_000 picoseconds. - Weight::from_parts(312_995_368, 6846) - // Standard Error: 2_248 - .saturating_add(Weight::from_parts(1_476_086, 0).saturating_mul(r.into())) + // Minimum execution time: 236_712_000 picoseconds. + Weight::from_parts(244_060_767, 6846) + // Standard Error: 1_395 + .saturating_add(Weight::from_parts(1_475_685, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -599,10 +598,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 290_086_000 picoseconds. - Weight::from_parts(292_623_199, 6741) - // Standard Error: 683 - .saturating_add(Weight::from_parts(316_376, 0).saturating_mul(r.into())) + // Minimum execution time: 238_732_000 picoseconds. + Weight::from_parts(242_053_124, 6741) + // Standard Error: 1_087 + .saturating_add(Weight::from_parts(316_668, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -622,10 +621,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 288_602_000 picoseconds. - Weight::from_parts(292_886_738, 6739) - // Standard Error: 2_252 - .saturating_add(Weight::from_parts(319_012, 0).saturating_mul(r.into())) + // Minimum execution time: 234_851_000 picoseconds. + Weight::from_parts(237_432_075, 6739) + // Standard Error: 691 + .saturating_add(Weight::from_parts(317_388, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -645,10 +644,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 290_367_000 picoseconds. - Weight::from_parts(286_283_010, 6737) - // Standard Error: 1_868 - .saturating_add(Weight::from_parts(338_721, 0).saturating_mul(r.into())) + // Minimum execution time: 235_860_000 picoseconds. + Weight::from_parts(238_194_528, 6737) + // Standard Error: 593 + .saturating_add(Weight::from_parts(312_333, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -668,10 +667,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 291_099_000 picoseconds. - Weight::from_parts(289_093_956, 6723) - // Standard Error: 1_675 - .saturating_add(Weight::from_parts(341_884, 0).saturating_mul(r.into())) + // Minimum execution time: 235_508_000 picoseconds. + Weight::from_parts(239_774_719, 6723) + // Standard Error: 614 + .saturating_add(Weight::from_parts(312_177, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -693,10 +692,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 291_179_000 picoseconds. - Weight::from_parts(303_534_913, 6796) - // Standard Error: 1_090 - .saturating_add(Weight::from_parts(1_334_135, 0).saturating_mul(r.into())) + // Minimum execution time: 235_887_000 picoseconds. + Weight::from_parts(256_683_177, 6796) + // Standard Error: 2_084 + .saturating_add(Weight::from_parts(1_331_687, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -716,10 +715,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 165_515_000 picoseconds. - Weight::from_parts(170_523_986, 6687) - // Standard Error: 226 - .saturating_add(Weight::from_parts(128_698, 0).saturating_mul(r.into())) + // Minimum execution time: 162_104_000 picoseconds. + Weight::from_parts(165_122_621, 6687) + // Standard Error: 199 + .saturating_add(Weight::from_parts(130_093, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -739,10 +738,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 290_256_000 picoseconds. - Weight::from_parts(291_556_626, 6724) - // Standard Error: 521 - .saturating_add(Weight::from_parts(273_212, 0).saturating_mul(r.into())) + // Minimum execution time: 237_437_000 picoseconds. + Weight::from_parts(239_257_819, 6724) + // Standard Error: 455 + .saturating_add(Weight::from_parts(264_198, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -762,10 +761,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 290_731_000 picoseconds. - Weight::from_parts(295_398_963, 6724) + // Minimum execution time: 236_976_000 picoseconds. + Weight::from_parts(239_821_317, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(638, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(593, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -784,10 +783,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 285_274_000 picoseconds. - Weight::from_parts(287_723_351, 6708) - // Standard Error: 330_733 - .saturating_add(Weight::from_parts(7_482_948, 0).saturating_mul(r.into())) + // Minimum execution time: 232_513_000 picoseconds. + Weight::from_parts(234_557_653, 6708) + // Standard Error: 122_653 + .saturating_add(Weight::from_parts(6_579_246, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -807,10 +806,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 287_826_000 picoseconds. - Weight::from_parts(291_409_112, 6731) + // Minimum execution time: 235_970_000 picoseconds. + Weight::from_parts(236_571_619, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(223, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -835,10 +834,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 288_598_000 picoseconds. - Weight::from_parts(290_981_916, 6750) - // Standard Error: 195_063 - .saturating_add(Weight::from_parts(111_143_683, 0).saturating_mul(r.into())) + // Minimum execution time: 234_844_000 picoseconds. + Weight::from_parts(237_175_734, 6750) + // Standard Error: 248_496 + .saturating_add(Weight::from_parts(112_212_465, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -862,10 +861,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 288_794_000 picoseconds. - Weight::from_parts(304_549_342, 6769) - // Standard Error: 1_470 - .saturating_add(Weight::from_parts(1_803_430, 0).saturating_mul(r.into())) + // Minimum execution time: 236_228_000 picoseconds. + Weight::from_parts(249_625_033, 6769) + // Standard Error: 3_224 + .saturating_add(Weight::from_parts(1_815_617, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -885,10 +884,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 286_652_000 picoseconds. - Weight::from_parts(302_675_592, 6723) - // Standard Error: 4_289 - .saturating_add(Weight::from_parts(3_464_282, 0).saturating_mul(r.into())) + // Minimum execution time: 233_749_000 picoseconds. + Weight::from_parts(248_703_905, 6723) + // Standard Error: 3_350 + .saturating_add(Weight::from_parts(3_461_139, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -909,12 +908,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 305_535_000 picoseconds. - Weight::from_parts(296_553_947, 6744) - // Standard Error: 71_884 - .saturating_add(Weight::from_parts(2_769_460, 0).saturating_mul(t.into())) - // Standard Error: 20 - .saturating_add(Weight::from_parts(798, 0).saturating_mul(n.into())) + // Minimum execution time: 252_487_000 picoseconds. + Weight::from_parts(245_397_625, 6744) + // Standard Error: 36_993 + .saturating_add(Weight::from_parts(2_325_838, 0).saturating_mul(t.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(640, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -936,10 +935,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 171_558_000 picoseconds. - Weight::from_parts(175_440_241, 6721) - // Standard Error: 405 - .saturating_add(Weight::from_parts(233_269, 0).saturating_mul(r.into())) + // Minimum execution time: 164_234_000 picoseconds. + Weight::from_parts(169_906_692, 6721) + // Standard Error: 397 + .saturating_add(Weight::from_parts(234_001, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -959,10 +958,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 416_833_000 picoseconds. - Weight::from_parts(419_217_757, 131670) + // Minimum execution time: 350_437_000 picoseconds. + Weight::from_parts(353_969_730, 131670) // Standard Error: 1 - .saturating_add(Weight::from_parts(786, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(740, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -973,10 +972,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 290_743_000 picoseconds. - Weight::from_parts(187_199_190, 843) - // Standard Error: 10_468 - .saturating_add(Weight::from_parts(6_132_957, 0).saturating_mul(r.into())) + // Minimum execution time: 238_028_000 picoseconds. + Weight::from_parts(136_909_395, 843) + // Standard Error: 10_150 + .saturating_add(Weight::from_parts(6_109_652, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -990,10 +989,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 305_047_000 picoseconds. - Weight::from_parts(338_579_691, 1280) - // Standard Error: 53 - .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) + // Minimum execution time: 252_051_000 picoseconds. + Weight::from_parts(285_967_242, 1280) + // Standard Error: 55 + .saturating_add(Weight::from_parts(524, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -1004,10 +1003,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 304_554_000 picoseconds. - Weight::from_parts(307_725_252, 1167) - // Standard Error: 19 - .saturating_add(Weight::from_parts(54, 0).saturating_mul(n.into())) + // Minimum execution time: 252_269_000 picoseconds. + Weight::from_parts(255_074_775, 1167) + // Standard Error: 18 + .saturating_add(Weight::from_parts(15, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1019,10 +1018,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 289_480_000 picoseconds. - Weight::from_parts(188_304_769, 845) - // Standard Error: 10_250 - .saturating_add(Weight::from_parts(5_961_560, 0).saturating_mul(r.into())) + // Minimum execution time: 235_787_000 picoseconds. + Weight::from_parts(130_369_537, 845) + // Standard Error: 10_839 + .saturating_add(Weight::from_parts(5_950_753, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1036,10 +1035,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 306_269_000 picoseconds. - Weight::from_parts(309_777_309, 1163) - // Standard Error: 37 - .saturating_add(Weight::from_parts(56, 0).saturating_mul(n.into())) + // Minimum execution time: 251_156_000 picoseconds. + Weight::from_parts(253_747_923, 1163) + // Standard Error: 15 + .saturating_add(Weight::from_parts(50, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1051,10 +1050,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 291_888_000 picoseconds. - Weight::from_parts(201_944_475, 840) - // Standard Error: 9_061 - .saturating_add(Weight::from_parts(4_922_092, 0).saturating_mul(r.into())) + // Minimum execution time: 236_495_000 picoseconds. + Weight::from_parts(150_510_825, 840) + // Standard Error: 8_460 + .saturating_add(Weight::from_parts(4_939_505, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1067,10 +1066,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 304_681_000 picoseconds. - Weight::from_parts(307_242_988, 1179) - // Standard Error: 21 - .saturating_add(Weight::from_parts(731, 0).saturating_mul(n.into())) + // Minimum execution time: 250_613_000 picoseconds. + Weight::from_parts(253_574_859, 1179) + // Standard Error: 81 + .saturating_add(Weight::from_parts(717, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1082,10 +1081,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 291_184_000 picoseconds. - Weight::from_parts(204_634_542, 857) - // Standard Error: 8_790 - .saturating_add(Weight::from_parts(4_747_440, 0).saturating_mul(r.into())) + // Minimum execution time: 236_708_000 picoseconds. + Weight::from_parts(148_414_588, 857) + // Standard Error: 9_022 + .saturating_add(Weight::from_parts(4_747_502, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1098,10 +1097,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 302_210_000 picoseconds. - Weight::from_parts(303_527_777, 1166) - // Standard Error: 105 - .saturating_add(Weight::from_parts(430, 0).saturating_mul(n.into())) + // Minimum execution time: 250_111_000 picoseconds. + Weight::from_parts(253_321_958, 1166) + // Standard Error: 20 + .saturating_add(Weight::from_parts(79, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1113,10 +1112,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 290_034_000 picoseconds. - Weight::from_parts(186_525_026, 836) - // Standard Error: 10_215 - .saturating_add(Weight::from_parts(6_196_660, 0).saturating_mul(r.into())) + // Minimum execution time: 237_125_000 picoseconds. + Weight::from_parts(132_837_839, 836) + // Standard Error: 9_981 + .saturating_add(Weight::from_parts(6_121_252, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1130,10 +1129,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 307_181_000 picoseconds. - Weight::from_parts(310_026_414, 1180) - // Standard Error: 23 - .saturating_add(Weight::from_parts(686, 0).saturating_mul(n.into())) + // Minimum execution time: 253_361_000 picoseconds. + Weight::from_parts(255_205_458, 1180) + // Standard Error: 28 + .saturating_add(Weight::from_parts(718, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1153,10 +1152,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 292_708_000 picoseconds. - Weight::from_parts(122_335_036, 7270) - // Standard Error: 47_267 - .saturating_add(Weight::from_parts(36_139_651, 0).saturating_mul(r.into())) + // Minimum execution time: 236_830_000 picoseconds. + Weight::from_parts(237_822_000, 7270) + // Standard Error: 37_843 + .saturating_add(Weight::from_parts(35_902_173, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1178,10 +1177,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 291_399_000 picoseconds. - Weight::from_parts(291_866_000, 9408) - // Standard Error: 82_515 - .saturating_add(Weight::from_parts(266_037_975, 0).saturating_mul(r.into())) + // Minimum execution time: 237_103_000 picoseconds. + Weight::from_parts(238_035_000, 9408) + // Standard Error: 76_102 + .saturating_add(Weight::from_parts(212_124_187, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1203,10 +1202,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` // Estimated: `6727 + r * (2572 ±3)` - // Minimum execution time: 291_077_000 picoseconds. - Weight::from_parts(291_551_000, 6727) - // Standard Error: 122_042 - .saturating_add(Weight::from_parts(261_438_700, 0).saturating_mul(r.into())) + // Minimum execution time: 237_183_000 picoseconds. + Weight::from_parts(238_216_000, 6727) + // Standard Error: 102_939 + .saturating_add(Weight::from_parts(207_259_343, 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(3_u64)) @@ -1229,12 +1228,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 469_595_000 picoseconds. - Weight::from_parts(442_686_481, 12044) - // Standard Error: 2_726_929 - .saturating_add(Weight::from_parts(41_734_267, 0).saturating_mul(t.into())) + // Minimum execution time: 411_460_000 picoseconds. + Weight::from_parts(364_931_660, 12044) + // Standard Error: 2_437_565 + .saturating_add(Weight::from_parts(47_925_606, 0).saturating_mul(t.into())) // Standard Error: 3 - .saturating_add(Weight::from_parts(640, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(616, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1260,10 +1259,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 292_747_000 picoseconds. - Weight::from_parts(293_438_000, 7131) - // Standard Error: 270_720 - .saturating_add(Weight::from_parts(400_084_403, 0).saturating_mul(r.into())) + // Minimum execution time: 237_168_000 picoseconds. + Weight::from_parts(237_546_000, 7131) + // Standard Error: 234_330 + .saturating_add(Weight::from_parts(346_250_515, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1291,14 +1290,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_716_280_000 picoseconds. - Weight::from_parts(391_302_250, 9492) - // Standard Error: 4_541_278 - .saturating_add(Weight::from_parts(123_043_757, 0).saturating_mul(t.into())) + // Minimum execution time: 1_617_284_000 picoseconds. + Weight::from_parts(335_685_069, 9492) + // Standard Error: 4_437_347 + .saturating_add(Weight::from_parts(109_876_701, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_211, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_382, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_345, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) @@ -1320,10 +1319,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 289_136_000 picoseconds. - Weight::from_parts(290_884_333, 6718) - // Standard Error: 879 - .saturating_add(Weight::from_parts(574_822, 0).saturating_mul(r.into())) + // Minimum execution time: 234_247_000 picoseconds. + Weight::from_parts(239_124_638, 6718) + // Standard Error: 792 + .saturating_add(Weight::from_parts(568_017, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1343,10 +1342,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 289_137_000 picoseconds. - Weight::from_parts(282_552_030, 6725) + // Minimum execution time: 235_366_000 picoseconds. + Weight::from_parts(230_047_301, 6725) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_980, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1365,10 +1364,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 286_471_000 picoseconds. - Weight::from_parts(289_159_864, 6721) - // Standard Error: 860 - .saturating_add(Weight::from_parts(745_304, 0).saturating_mul(r.into())) + // Minimum execution time: 233_267_000 picoseconds. + Weight::from_parts(241_166_607, 6721) + // Standard Error: 1_052 + .saturating_add(Weight::from_parts(737_113, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1388,10 +1387,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 289_003_000 picoseconds. - Weight::from_parts(283_320_300, 6729) + // Minimum execution time: 235_713_000 picoseconds. + Weight::from_parts(227_374_343, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_208, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_170, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1410,10 +1409,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 286_345_000 picoseconds. - Weight::from_parts(278_615_734, 6724) - // Standard Error: 5_532 - .saturating_add(Weight::from_parts(445_167, 0).saturating_mul(r.into())) + // Minimum execution time: 234_917_000 picoseconds. + Weight::from_parts(238_898_846, 6724) + // Standard Error: 2_477 + .saturating_add(Weight::from_parts(414_604, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1433,10 +1432,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 288_570_000 picoseconds. - Weight::from_parts(289_126_754, 6733) - // Standard Error: 3 - .saturating_add(Weight::from_parts(958, 0).saturating_mul(n.into())) + // Minimum execution time: 234_981_000 picoseconds. + Weight::from_parts(227_027_028, 6733) + // Standard Error: 1 + .saturating_add(Weight::from_parts(921, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1455,10 +1454,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 286_967_000 picoseconds. - Weight::from_parts(306_210_527, 6725) - // Standard Error: 5_583 - .saturating_add(Weight::from_parts(413_458, 0).saturating_mul(r.into())) + // Minimum execution time: 235_175_000 picoseconds. + Weight::from_parts(239_420_314, 6725) + // Standard Error: 721 + .saturating_add(Weight::from_parts(412_430, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1478,10 +1477,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 287_687_000 picoseconds. - Weight::from_parts(285_021_722, 6727) - // Standard Error: 2 - .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) + // Minimum execution time: 236_534_000 picoseconds. + Weight::from_parts(226_888_935, 6727) + // Standard Error: 1 + .saturating_add(Weight::from_parts(919, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1500,10 +1499,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` // Estimated: `6849 + n * (1 ±0)` - // Minimum execution time: 341_216_000 picoseconds. - Weight::from_parts(345_497_943, 6849) + // Minimum execution time: 287_841_000 picoseconds. + Weight::from_parts(291_716_138, 6849) // Standard Error: 9 - .saturating_add(Weight::from_parts(4_886, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(4_784, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1523,10 +1522,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `722 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 290_091_000 picoseconds. - Weight::from_parts(296_812_510, 6666) - // Standard Error: 21_841 - .saturating_add(Weight::from_parts(48_088_936, 0).saturating_mul(r.into())) + // Minimum execution time: 236_849_000 picoseconds. + Weight::from_parts(249_609_479, 6666) + // Standard Error: 24_788 + .saturating_add(Weight::from_parts(48_092_283, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -1544,12 +1543,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `822 + r * (76 ±0)` + // Measured: `821 + r * (76 ±0)` // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 289_970_000 picoseconds. - Weight::from_parts(307_137_014, 6716) - // Standard Error: 18_656 - .saturating_add(Weight::from_parts(37_701_116, 0).saturating_mul(r.into())) + // Minimum execution time: 237_278_000 picoseconds. + Weight::from_parts(252_615_604, 6716) + // Standard Error: 19_873 + .saturating_add(Weight::from_parts(37_712_188, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -1569,10 +1568,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 298_751_000 picoseconds. - Weight::from_parts(296_467_214, 6731) - // Standard Error: 10_566 - .saturating_add(Weight::from_parts(9_298_692, 0).saturating_mul(r.into())) + // Minimum execution time: 236_522_000 picoseconds. + Weight::from_parts(240_006_598, 6731) + // Standard Error: 10_482 + .saturating_add(Weight::from_parts(9_328_637, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -1593,11 +1592,11 @@ impl WeightInfo for SubstrateWeight { fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` - // Estimated: `8190 + r * (3090 ±7)` - // Minimum execution time: 290_103_000 picoseconds. - Weight::from_parts(291_266_000, 8190) - // Standard Error: 46_431 - .saturating_add(Weight::from_parts(21_614_419, 0).saturating_mul(r.into())) + // Estimated: `8190 + r * (3090 ±10)` + // Minimum execution time: 236_235_000 picoseconds. + Weight::from_parts(237_074_000, 8190) + // Standard Error: 47_720 + .saturating_add(Weight::from_parts(21_775_911, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1619,10 +1618,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 287_526_000 picoseconds. - Weight::from_parts(292_181_305, 6723) - // Standard Error: 418 - .saturating_add(Weight::from_parts(165_874, 0).saturating_mul(r.into())) + // Minimum execution time: 237_550_000 picoseconds. + Weight::from_parts(240_098_295, 6723) + // Standard Error: 264 + .saturating_add(Weight::from_parts(158_581, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1642,10 +1641,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 289_466_000 picoseconds. - Weight::from_parts(319_431_412, 7805) - // Standard Error: 1_084 - .saturating_add(Weight::from_parts(260_352, 0).saturating_mul(r.into())) + // Minimum execution time: 237_404_000 picoseconds. + Weight::from_parts(269_172_982, 7805) + // Standard Error: 1_220 + .saturating_add(Weight::from_parts(265_048, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -1667,10 +1666,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 288_583_000 picoseconds. - Weight::from_parts(285_400_895, 6723) - // Standard Error: 3_992 - .saturating_add(Weight::from_parts(162_784, 0).saturating_mul(r.into())) + // Minimum execution time: 234_120_000 picoseconds. + Weight::from_parts(241_965_928, 6723) + // Standard Error: 350 + .saturating_add(Weight::from_parts(139_394, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1680,280 +1679,278 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_688_000 picoseconds. - Weight::from_parts(1_975_285, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(2_985, 0).saturating_mul(r.into())) + // Minimum execution time: 1_676_000 picoseconds. + Weight::from_parts(1_087_354, 0) + // Standard Error: 255 + .saturating_add(Weight::from_parts(3_818, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_808_000 picoseconds. - Weight::from_parts(2_520_211, 0) - // Standard Error: 48 - .saturating_add(Weight::from_parts(6_394, 0).saturating_mul(r.into())) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_346_191, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_446, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_791_000 picoseconds. - Weight::from_parts(2_982_175, 0) - // Standard Error: 63 - .saturating_add(Weight::from_parts(5_849, 0).saturating_mul(r.into())) + // Minimum execution time: 1_918_000 picoseconds. + Weight::from_parts(2_372_443, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_712_000 picoseconds. - Weight::from_parts(2_116_026, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(7_916, 0).saturating_mul(r.into())) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(2_104_310, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(7_931, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_705_000 picoseconds. - Weight::from_parts(1_866_703, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_418, 0).saturating_mul(r.into())) + // Minimum execution time: 1_702_000 picoseconds. + Weight::from_parts(1_891_822, 0) + // Standard Error: 6 + .saturating_add(Weight::from_parts(10_812, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(1_775_389, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(4_668, 0).saturating_mul(r.into())) + // Minimum execution time: 1_706_000 picoseconds. + Weight::from_parts(1_965_219, 0) + // Standard Error: 12 + .saturating_add(Weight::from_parts(4_550, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_688_000 picoseconds. - Weight::from_parts(2_371_112, 0) - // Standard Error: 67 - .saturating_add(Weight::from_parts(7_468, 0).saturating_mul(r.into())) + // Minimum execution time: 1_634_000 picoseconds. + Weight::from_parts(1_096_615, 0) + // Standard Error: 77 + .saturating_add(Weight::from_parts(8_104, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_686_000 picoseconds. - Weight::from_parts(1_464_378, 0) - // Standard Error: 31 - .saturating_add(Weight::from_parts(9_555, 0).saturating_mul(r.into())) + // Minimum execution time: 1_738_000 picoseconds. + Weight::from_parts(1_398_537, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(9_628, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(e: u32, ) -> Weight { + fn instr_br_table_per_entry(_e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_767_000 picoseconds. - Weight::from_parts(1_876_710, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(220, 0).saturating_mul(e.into())) + // Minimum execution time: 1_766_000 picoseconds. + Weight::from_parts(1_930_343, 0) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(2_137_774, 0) - // Standard Error: 9 - .saturating_add(Weight::from_parts(18_546, 0).saturating_mul(r.into())) + // Minimum execution time: 1_700_000 picoseconds. + Weight::from_parts(2_214_724, 0) + // Standard Error: 122 + .saturating_add(Weight::from_parts(18_040, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_978_000 picoseconds. - Weight::from_parts(2_637_716, 0) - // Standard Error: 66 - .saturating_add(Weight::from_parts(24_793, 0).saturating_mul(r.into())) + // Minimum execution time: 1_950_000 picoseconds. + Weight::from_parts(3_440_453, 0) + // Standard Error: 14 + .saturating_add(Weight::from_parts(24_264, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_833_000 picoseconds. - Weight::from_parts(1_953_065, 0) - // Standard Error: 49 - .saturating_add(Weight::from_parts(2_425, 0).saturating_mul(l.into())) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_034_196, 0) + // Standard Error: 30 + .saturating_add(Weight::from_parts(1_284, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_859_000 picoseconds. - Weight::from_parts(4_277_917, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(2_402, 0).saturating_mul(r.into())) + // Minimum execution time: 3_003_000 picoseconds. + Weight::from_parts(3_466_544, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(2_437, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_930_000 picoseconds. - Weight::from_parts(4_156_656, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_616, 0).saturating_mul(r.into())) + // Minimum execution time: 2_934_000 picoseconds. + Weight::from_parts(3_355_985, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(3_570, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_887_000 picoseconds. - Weight::from_parts(4_189_509, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) + // Minimum execution time: 2_915_000 picoseconds. + Weight::from_parts(3_789_121, 0) + // Standard Error: 68 + .saturating_add(Weight::from_parts(3_846, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_872_000 picoseconds. - Weight::from_parts(2_326_016, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_380, 0).saturating_mul(r.into())) + // Minimum execution time: 1_799_000 picoseconds. + Weight::from_parts(2_233_970, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(8_373, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_880_000 picoseconds. - Weight::from_parts(2_372_584, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(8_809, 0).saturating_mul(r.into())) + // Minimum execution time: 1_826_000 picoseconds. + Weight::from_parts(2_179_204, 0) + // Standard Error: 46 + .saturating_add(Weight::from_parts(8_911, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_805_000 picoseconds. - Weight::from_parts(2_663_941, 0) - // Standard Error: 63 - .saturating_add(Weight::from_parts(3_613, 0).saturating_mul(r.into())) + // Minimum execution time: 1_802_000 picoseconds. + Weight::from_parts(2_114_379, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_848, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_742_000 picoseconds. - Weight::from_parts(1_296_708, 0) - // Standard Error: 139_965 - .saturating_add(Weight::from_parts(16_273_249, 0).saturating_mul(r.into())) + // Minimum execution time: 1_751_000 picoseconds. + Weight::from_parts(728_495, 0) + // Standard Error: 137_129 + .saturating_add(Weight::from_parts(13_219_932, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_710_000 picoseconds. - Weight::from_parts(2_031_637, 0) + // Minimum execution time: 1_639_000 picoseconds. + Weight::from_parts(2_016_533, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_912, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_702_000 picoseconds. - Weight::from_parts(2_029_086, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_877, 0).saturating_mul(r.into())) + // Minimum execution time: 1_710_000 picoseconds. + Weight::from_parts(2_130_736, 0) + // Standard Error: 15 + .saturating_add(Weight::from_parts(3_747, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_725_000 picoseconds. - Weight::from_parts(2_024_772, 0) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_032_473, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_879, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_751, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_737_000 picoseconds. - Weight::from_parts(2_020_931, 0) + // Minimum execution time: 1_676_000 picoseconds. + Weight::from_parts(2_000_504, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_676, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_664, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(1_976_558, 0) + // Minimum execution time: 1_791_000 picoseconds. + Weight::from_parts(2_073_161, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_952, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_824_000 picoseconds. - Weight::from_parts(2_068_490, 0) + // Minimum execution time: 1_649_000 picoseconds. + Weight::from_parts(2_043_804, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_860, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_822, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_721_000 picoseconds. - Weight::from_parts(2_051_294, 0) + // Minimum execution time: 1_718_000 picoseconds. + Weight::from_parts(2_042_452, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_839, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_728, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_735_000 picoseconds. - Weight::from_parts(2_087_837, 0) + // Minimum execution time: 1_645_000 picoseconds. + Weight::from_parts(2_041_099, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_995, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_662_000 picoseconds. - Weight::from_parts(2_046_929, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_013, 0).saturating_mul(r.into())) + // Minimum execution time: 1_679_000 picoseconds. + Weight::from_parts(2_074_324, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_937, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { @@ -1961,229 +1958,229 @@ impl WeightInfo for SubstrateWeight { // Measured: `0` // Estimated: `0` // Minimum execution time: 1_697_000 picoseconds. - Weight::from_parts(2_043_696, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_009, 0).saturating_mul(r.into())) + Weight::from_parts(1_961_870, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(6_038, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_670_000 picoseconds. - Weight::from_parts(2_101_582, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_999, 0).saturating_mul(r.into())) + // Minimum execution time: 1_698_000 picoseconds. + Weight::from_parts(1_986_691, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_656_000 picoseconds. - Weight::from_parts(2_049_341, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_812, 0).saturating_mul(r.into())) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(2_297_073, 0) + // Standard Error: 91 + .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_687_000 picoseconds. - Weight::from_parts(2_059_405, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(6_101, 0).saturating_mul(r.into())) + // Minimum execution time: 1_669_000 picoseconds. + Weight::from_parts(2_050_538, 0) + // Standard Error: 7 + .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_706_000 picoseconds. - Weight::from_parts(2_032_138, 0) + // Minimum execution time: 1_630_000 picoseconds. + Weight::from_parts(2_030_064, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(2_077_404, 0) + // Minimum execution time: 1_694_000 picoseconds. + Weight::from_parts(1_958_600, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(6_088, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_115, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_664_000 picoseconds. - Weight::from_parts(1_517_250, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(6_392, 0).saturating_mul(r.into())) + // Minimum execution time: 1_632_000 picoseconds. + Weight::from_parts(2_023_441, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_682_000 picoseconds. - Weight::from_parts(2_419_495, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) + // Minimum execution time: 1_695_000 picoseconds. + Weight::from_parts(2_033_244, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_001, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_711_000 picoseconds. - Weight::from_parts(2_071_649, 0) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(2_028_827, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_855, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_891, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(2_125_462, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_121, 0).saturating_mul(r.into())) + // Minimum execution time: 1_672_000 picoseconds. + Weight::from_parts(1_389_135, 0) + // Standard Error: 65 + .saturating_add(Weight::from_parts(6_543, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_682_000 picoseconds. - Weight::from_parts(2_236_996, 0) - // Standard Error: 54 - .saturating_add(Weight::from_parts(5_672, 0).saturating_mul(r.into())) + // Minimum execution time: 1_739_000 picoseconds. + Weight::from_parts(2_406_725, 0) + // Standard Error: 21 + .saturating_add(Weight::from_parts(5_692, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_686_000 picoseconds. - Weight::from_parts(2_069_904, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(11_777, 0).saturating_mul(r.into())) + // Minimum execution time: 1_733_000 picoseconds. + Weight::from_parts(2_583_091, 0) + // Standard Error: 218 + .saturating_add(Weight::from_parts(11_841, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_665_000 picoseconds. - Weight::from_parts(2_449_446, 0) - // Standard Error: 71 - .saturating_add(Weight::from_parts(10_530, 0).saturating_mul(r.into())) + // Minimum execution time: 1_736_000 picoseconds. + Weight::from_parts(2_123_319, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(10_520, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_723_000 picoseconds. - Weight::from_parts(2_170_990, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(11_739, 0).saturating_mul(r.into())) + // Minimum execution time: 1_746_000 picoseconds. + Weight::from_parts(2_621_724, 0) + // Standard Error: 24 + .saturating_add(Weight::from_parts(11_885, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(2_072_310, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_771, 0).saturating_mul(r.into())) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(2_013_042, 0) + // Standard Error: 8 + .saturating_add(Weight::from_parts(10_673, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_685_000 picoseconds. - Weight::from_parts(2_139_021, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(5_703, 0).saturating_mul(r.into())) + // Minimum execution time: 1_675_000 picoseconds. + Weight::from_parts(2_155_962, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(5_619, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_686_000 picoseconds. - Weight::from_parts(1_959_726, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(5_847, 0).saturating_mul(r.into())) + // Minimum execution time: 1_651_000 picoseconds. + Weight::from_parts(2_009_049, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_757, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_700_000 picoseconds. - Weight::from_parts(2_124_226, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) + // Minimum execution time: 1_705_000 picoseconds. + Weight::from_parts(1_986_346, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_917, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_660_000 picoseconds. - Weight::from_parts(2_022_785, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) + // Minimum execution time: 1_669_000 picoseconds. + Weight::from_parts(2_023_827, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_941, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_673_000 picoseconds. - Weight::from_parts(2_790_542, 0) - // Standard Error: 43 - .saturating_add(Weight::from_parts(5_931, 0).saturating_mul(r.into())) + // Minimum execution time: 1_663_000 picoseconds. + Weight::from_parts(2_025_828, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_119, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_695_000 picoseconds. - Weight::from_parts(2_019_822, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_875, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(2_312_272, 0) + // Standard Error: 62 + .saturating_add(Weight::from_parts(5_856, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_735_000 picoseconds. - Weight::from_parts(2_057_617, 0) + // Minimum execution time: 1_795_000 picoseconds. + Weight::from_parts(2_094_996, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_981, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_712_000 picoseconds. - Weight::from_parts(2_026_675, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_863, 0).saturating_mul(r.into())) + // Minimum execution time: 1_713_000 picoseconds. + Weight::from_parts(2_118_369, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_833, 0).saturating_mul(r.into())) } } @@ -2195,8 +2192,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_621_000 picoseconds. - Weight::from_parts(2_730_000, 1594) + // Minimum execution time: 2_600_000 picoseconds. + Weight::from_parts(2_715_000, 1594) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -2206,10 +2203,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 12_919_000 picoseconds. - Weight::from_parts(9_726_925, 478) - // Standard Error: 884 - .saturating_add(Weight::from_parts(972_485, 0).saturating_mul(k.into())) + // Minimum execution time: 13_433_000 picoseconds. + Weight::from_parts(9_206_955, 478) + // Standard Error: 1_428 + .saturating_add(Weight::from_parts(975_783, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2225,10 +2222,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 37_980_000 picoseconds. - Weight::from_parts(27_323_411, 3708) - // Standard Error: 99 - .saturating_add(Weight::from_parts(55_463, 0).saturating_mul(c.into())) + // Minimum execution time: 30_877_000 picoseconds. + Weight::from_parts(24_692_209, 3708) + // Standard Error: 61 + .saturating_add(Weight::from_parts(56_159, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2248,10 +2245,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 317_337_000 picoseconds. - Weight::from_parts(328_889_374, 6656) - // Standard Error: 27 - .saturating_add(Weight::from_parts(37_642, 0).saturating_mul(c.into())) + // Minimum execution time: 264_158_000 picoseconds. + Weight::from_parts(270_385_802, 6656) + // Standard Error: 29 + .saturating_add(Weight::from_parts(38_112, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2279,14 +2276,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_295_088_000 picoseconds. - Weight::from_parts(690_340_900, 8659) - // Standard Error: 299 - .saturating_add(Weight::from_parts(106_925, 0).saturating_mul(c.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_173, 0).saturating_mul(i.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_461, 0).saturating_mul(s.into())) + // Minimum execution time: 3_133_423_000 picoseconds. + Weight::from_parts(579_477_658, 8659) + // Standard Error: 276 + .saturating_add(Weight::from_parts(106_752, 0).saturating_mul(c.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(1_418, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } @@ -2310,12 +2307,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_699_132_000 picoseconds. - Weight::from_parts(276_257_020, 6408) + // Minimum execution time: 1_650_429_000 picoseconds. + Weight::from_parts(294_221_501, 6408) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_489, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_446, 0).saturating_mul(i.into())) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_499, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_433, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -2333,8 +2330,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 194_707_000 picoseconds. - Weight::from_parts(195_362_000, 6699) + // Minimum execution time: 191_782_000 picoseconds. + Weight::from_parts(192_980_000, 6699) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2351,10 +2348,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 302_388_000 picoseconds. - Weight::from_parts(350_690_834, 3574) - // Standard Error: 275 - .saturating_add(Weight::from_parts(107_481, 0).saturating_mul(c.into())) + // Minimum execution time: 246_068_000 picoseconds. + Weight::from_parts(286_606_707, 3574) + // Standard Error: 89 + .saturating_add(Weight::from_parts(108_514, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2370,8 +2367,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_408_000 picoseconds. - Weight::from_parts(34_293_000, 3720) + // Minimum execution time: 33_692_000 picoseconds. + Weight::from_parts(34_214_000, 3720) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2385,8 +2382,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_141_000 picoseconds. - Weight::from_parts(33_894_000, 8985) + // Minimum execution time: 33_715_000 picoseconds. + Weight::from_parts(34_232_000, 8985) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2405,10 +2402,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 288_666_000 picoseconds. - Weight::from_parts(294_844_678, 6722) - // Standard Error: 679 - .saturating_add(Weight::from_parts(321_930, 0).saturating_mul(r.into())) + // Minimum execution time: 235_571_000 picoseconds. + Weight::from_parts(235_995_099, 6722) + // Standard Error: 881 + .saturating_add(Weight::from_parts(343_678, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2428,10 +2425,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 290_442_000 picoseconds. - Weight::from_parts(93_573_954, 6743) - // Standard Error: 12_636 - .saturating_add(Weight::from_parts(3_412_632, 0).saturating_mul(r.into())) + // Minimum execution time: 235_423_000 picoseconds. + Weight::from_parts(77_496_153, 6743) + // Standard Error: 6_327 + .saturating_add(Weight::from_parts(3_401_948, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2452,10 +2449,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 290_671_000 picoseconds. - Weight::from_parts(127_238_159, 6747) - // Standard Error: 6_438 - .saturating_add(Weight::from_parts(4_121_857, 0).saturating_mul(r.into())) + // Minimum execution time: 238_449_000 picoseconds. + Weight::from_parts(75_802_338, 6747) + // Standard Error: 6_281 + .saturating_add(Weight::from_parts(4_173_432, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2476,10 +2473,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 289_331_000 picoseconds. - Weight::from_parts(293_392_135, 6730) - // Standard Error: 844 - .saturating_add(Weight::from_parts(403_982, 0).saturating_mul(r.into())) + // Minimum execution time: 236_091_000 picoseconds. + Weight::from_parts(238_500_775, 6730) + // Standard Error: 784 + .saturating_add(Weight::from_parts(398_956, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2499,14 +2496,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 286_577_000 picoseconds. - Weight::from_parts(292_654_842, 6723) - // Standard Error: 527 - .saturating_add(Weight::from_parts(176_155, 0).saturating_mul(r.into())) + // Minimum execution time: 233_566_000 picoseconds. + Weight::from_parts(239_002_284, 6723) + // Standard Error: 335 + .saturating_add(Weight::from_parts(164_563, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } + /// Storage: System Account (r:1 w:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) /// Proof: Contracts ContractInfoOf (max_values: None, max_size: Some(290), added: 2765, mode: Measured) /// Storage: Contracts CodeStorage (r:1 w:0) @@ -2515,19 +2514,16 @@ impl WeightInfo for () { /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: Measured) /// Storage: System EventTopics (r:2 w:2) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// The range of component `r` is `[0, 1600]`. - /// The range of component `o` is `[0, 1]`. fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `776 + r * (3 ±0)` - // Estimated: `17460485980251150336 + r * (3 ±0)` - // Minimum execution time: 276_972_000 picoseconds. - Weight::from_parts(341_700_961, 17460485980251150336) - // Standard Error: 277 - .saturating_add(Weight::from_parts(145_543, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(6_u64)) + // Measured: `774 + r * (3 ±0)` + // Estimated: `6652 + r * (3 ±0)` + // Minimum execution time: 234_000_000 picoseconds. + Weight::from_parts(231_285_526, 6652) + // Standard Error: 1_854 + .saturating_add(Weight::from_parts(161_318, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } @@ -2546,10 +2542,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 289_992_000 picoseconds. - Weight::from_parts(293_146_001, 6724) - // Standard Error: 730 - .saturating_add(Weight::from_parts(332_271, 0).saturating_mul(r.into())) + // Minimum execution time: 236_478_000 picoseconds. + Weight::from_parts(238_040_595, 6724) + // Standard Error: 613 + .saturating_add(Weight::from_parts(319_183, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2569,10 +2565,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 288_892_000 picoseconds. - Weight::from_parts(294_620_306, 6721) - // Standard Error: 629 - .saturating_add(Weight::from_parts(317_098, 0).saturating_mul(r.into())) + // Minimum execution time: 235_931_000 picoseconds. + Weight::from_parts(237_471_646, 6721) + // Standard Error: 467 + .saturating_add(Weight::from_parts(314_347, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2592,10 +2588,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 289_812_000 picoseconds. - Weight::from_parts(312_995_368, 6846) - // Standard Error: 2_248 - .saturating_add(Weight::from_parts(1_476_086, 0).saturating_mul(r.into())) + // Minimum execution time: 236_712_000 picoseconds. + Weight::from_parts(244_060_767, 6846) + // Standard Error: 1_395 + .saturating_add(Weight::from_parts(1_475_685, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2615,10 +2611,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 290_086_000 picoseconds. - Weight::from_parts(292_623_199, 6741) - // Standard Error: 683 - .saturating_add(Weight::from_parts(316_376, 0).saturating_mul(r.into())) + // Minimum execution time: 238_732_000 picoseconds. + Weight::from_parts(242_053_124, 6741) + // Standard Error: 1_087 + .saturating_add(Weight::from_parts(316_668, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2638,10 +2634,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 288_602_000 picoseconds. - Weight::from_parts(292_886_738, 6739) - // Standard Error: 2_252 - .saturating_add(Weight::from_parts(319_012, 0).saturating_mul(r.into())) + // Minimum execution time: 234_851_000 picoseconds. + Weight::from_parts(237_432_075, 6739) + // Standard Error: 691 + .saturating_add(Weight::from_parts(317_388, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2661,10 +2657,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 290_367_000 picoseconds. - Weight::from_parts(286_283_010, 6737) - // Standard Error: 1_868 - .saturating_add(Weight::from_parts(338_721, 0).saturating_mul(r.into())) + // Minimum execution time: 235_860_000 picoseconds. + Weight::from_parts(238_194_528, 6737) + // Standard Error: 593 + .saturating_add(Weight::from_parts(312_333, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2684,10 +2680,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 291_099_000 picoseconds. - Weight::from_parts(289_093_956, 6723) - // Standard Error: 1_675 - .saturating_add(Weight::from_parts(341_884, 0).saturating_mul(r.into())) + // Minimum execution time: 235_508_000 picoseconds. + Weight::from_parts(239_774_719, 6723) + // Standard Error: 614 + .saturating_add(Weight::from_parts(312_177, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2709,10 +2705,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 291_179_000 picoseconds. - Weight::from_parts(303_534_913, 6796) - // Standard Error: 1_090 - .saturating_add(Weight::from_parts(1_334_135, 0).saturating_mul(r.into())) + // Minimum execution time: 235_887_000 picoseconds. + Weight::from_parts(256_683_177, 6796) + // Standard Error: 2_084 + .saturating_add(Weight::from_parts(1_331_687, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2732,10 +2728,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 165_515_000 picoseconds. - Weight::from_parts(170_523_986, 6687) - // Standard Error: 226 - .saturating_add(Weight::from_parts(128_698, 0).saturating_mul(r.into())) + // Minimum execution time: 162_104_000 picoseconds. + Weight::from_parts(165_122_621, 6687) + // Standard Error: 199 + .saturating_add(Weight::from_parts(130_093, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -2755,10 +2751,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 290_256_000 picoseconds. - Weight::from_parts(291_556_626, 6724) - // Standard Error: 521 - .saturating_add(Weight::from_parts(273_212, 0).saturating_mul(r.into())) + // Minimum execution time: 237_437_000 picoseconds. + Weight::from_parts(239_257_819, 6724) + // Standard Error: 455 + .saturating_add(Weight::from_parts(264_198, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2778,10 +2774,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 290_731_000 picoseconds. - Weight::from_parts(295_398_963, 6724) + // Minimum execution time: 236_976_000 picoseconds. + Weight::from_parts(239_821_317, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(638, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(593, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2800,10 +2796,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 285_274_000 picoseconds. - Weight::from_parts(287_723_351, 6708) - // Standard Error: 330_733 - .saturating_add(Weight::from_parts(7_482_948, 0).saturating_mul(r.into())) + // Minimum execution time: 232_513_000 picoseconds. + Weight::from_parts(234_557_653, 6708) + // Standard Error: 122_653 + .saturating_add(Weight::from_parts(6_579_246, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -2823,10 +2819,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 287_826_000 picoseconds. - Weight::from_parts(291_409_112, 6731) + // Minimum execution time: 235_970_000 picoseconds. + Weight::from_parts(236_571_619, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(223, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2851,10 +2847,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 288_598_000 picoseconds. - Weight::from_parts(290_981_916, 6750) - // Standard Error: 195_063 - .saturating_add(Weight::from_parts(111_143_683, 0).saturating_mul(r.into())) + // Minimum execution time: 234_844_000 picoseconds. + Weight::from_parts(237_175_734, 6750) + // Standard Error: 248_496 + .saturating_add(Weight::from_parts(112_212_465, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2878,10 +2874,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 288_794_000 picoseconds. - Weight::from_parts(304_549_342, 6769) - // Standard Error: 1_470 - .saturating_add(Weight::from_parts(1_803_430, 0).saturating_mul(r.into())) + // Minimum execution time: 236_228_000 picoseconds. + Weight::from_parts(249_625_033, 6769) + // Standard Error: 3_224 + .saturating_add(Weight::from_parts(1_815_617, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2901,10 +2897,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 286_652_000 picoseconds. - Weight::from_parts(302_675_592, 6723) - // Standard Error: 4_289 - .saturating_add(Weight::from_parts(3_464_282, 0).saturating_mul(r.into())) + // Minimum execution time: 233_749_000 picoseconds. + Weight::from_parts(248_703_905, 6723) + // Standard Error: 3_350 + .saturating_add(Weight::from_parts(3_461_139, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2925,12 +2921,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 305_535_000 picoseconds. - Weight::from_parts(296_553_947, 6744) - // Standard Error: 71_884 - .saturating_add(Weight::from_parts(2_769_460, 0).saturating_mul(t.into())) - // Standard Error: 20 - .saturating_add(Weight::from_parts(798, 0).saturating_mul(n.into())) + // Minimum execution time: 252_487_000 picoseconds. + Weight::from_parts(245_397_625, 6744) + // Standard Error: 36_993 + .saturating_add(Weight::from_parts(2_325_838, 0).saturating_mul(t.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(640, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2952,10 +2948,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 171_558_000 picoseconds. - Weight::from_parts(175_440_241, 6721) - // Standard Error: 405 - .saturating_add(Weight::from_parts(233_269, 0).saturating_mul(r.into())) + // Minimum execution time: 164_234_000 picoseconds. + Weight::from_parts(169_906_692, 6721) + // Standard Error: 397 + .saturating_add(Weight::from_parts(234_001, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -2975,10 +2971,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 416_833_000 picoseconds. - Weight::from_parts(419_217_757, 131670) + // Minimum execution time: 350_437_000 picoseconds. + Weight::from_parts(353_969_730, 131670) // Standard Error: 1 - .saturating_add(Weight::from_parts(786, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(740, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2989,10 +2985,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 290_743_000 picoseconds. - Weight::from_parts(187_199_190, 843) - // Standard Error: 10_468 - .saturating_add(Weight::from_parts(6_132_957, 0).saturating_mul(r.into())) + // Minimum execution time: 238_028_000 picoseconds. + Weight::from_parts(136_909_395, 843) + // Standard Error: 10_150 + .saturating_add(Weight::from_parts(6_109_652, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3006,10 +3002,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 305_047_000 picoseconds. - Weight::from_parts(338_579_691, 1280) - // Standard Error: 53 - .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) + // Minimum execution time: 252_051_000 picoseconds. + Weight::from_parts(285_967_242, 1280) + // Standard Error: 55 + .saturating_add(Weight::from_parts(524, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -3020,10 +3016,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 304_554_000 picoseconds. - Weight::from_parts(307_725_252, 1167) - // Standard Error: 19 - .saturating_add(Weight::from_parts(54, 0).saturating_mul(n.into())) + // Minimum execution time: 252_269_000 picoseconds. + Weight::from_parts(255_074_775, 1167) + // Standard Error: 18 + .saturating_add(Weight::from_parts(15, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3035,10 +3031,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 289_480_000 picoseconds. - Weight::from_parts(188_304_769, 845) - // Standard Error: 10_250 - .saturating_add(Weight::from_parts(5_961_560, 0).saturating_mul(r.into())) + // Minimum execution time: 235_787_000 picoseconds. + Weight::from_parts(130_369_537, 845) + // Standard Error: 10_839 + .saturating_add(Weight::from_parts(5_950_753, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3052,10 +3048,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 306_269_000 picoseconds. - Weight::from_parts(309_777_309, 1163) - // Standard Error: 37 - .saturating_add(Weight::from_parts(56, 0).saturating_mul(n.into())) + // Minimum execution time: 251_156_000 picoseconds. + Weight::from_parts(253_747_923, 1163) + // Standard Error: 15 + .saturating_add(Weight::from_parts(50, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3067,10 +3063,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 291_888_000 picoseconds. - Weight::from_parts(201_944_475, 840) - // Standard Error: 9_061 - .saturating_add(Weight::from_parts(4_922_092, 0).saturating_mul(r.into())) + // Minimum execution time: 236_495_000 picoseconds. + Weight::from_parts(150_510_825, 840) + // Standard Error: 8_460 + .saturating_add(Weight::from_parts(4_939_505, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3083,10 +3079,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 304_681_000 picoseconds. - Weight::from_parts(307_242_988, 1179) - // Standard Error: 21 - .saturating_add(Weight::from_parts(731, 0).saturating_mul(n.into())) + // Minimum execution time: 250_613_000 picoseconds. + Weight::from_parts(253_574_859, 1179) + // Standard Error: 81 + .saturating_add(Weight::from_parts(717, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3098,10 +3094,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 291_184_000 picoseconds. - Weight::from_parts(204_634_542, 857) - // Standard Error: 8_790 - .saturating_add(Weight::from_parts(4_747_440, 0).saturating_mul(r.into())) + // Minimum execution time: 236_708_000 picoseconds. + Weight::from_parts(148_414_588, 857) + // Standard Error: 9_022 + .saturating_add(Weight::from_parts(4_747_502, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3114,10 +3110,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 302_210_000 picoseconds. - Weight::from_parts(303_527_777, 1166) - // Standard Error: 105 - .saturating_add(Weight::from_parts(430, 0).saturating_mul(n.into())) + // Minimum execution time: 250_111_000 picoseconds. + Weight::from_parts(253_321_958, 1166) + // Standard Error: 20 + .saturating_add(Weight::from_parts(79, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3129,10 +3125,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 290_034_000 picoseconds. - Weight::from_parts(186_525_026, 836) - // Standard Error: 10_215 - .saturating_add(Weight::from_parts(6_196_660, 0).saturating_mul(r.into())) + // Minimum execution time: 237_125_000 picoseconds. + Weight::from_parts(132_837_839, 836) + // Standard Error: 9_981 + .saturating_add(Weight::from_parts(6_121_252, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3146,10 +3142,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 307_181_000 picoseconds. - Weight::from_parts(310_026_414, 1180) - // Standard Error: 23 - .saturating_add(Weight::from_parts(686, 0).saturating_mul(n.into())) + // Minimum execution time: 253_361_000 picoseconds. + Weight::from_parts(255_205_458, 1180) + // Standard Error: 28 + .saturating_add(Weight::from_parts(718, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3169,10 +3165,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 292_708_000 picoseconds. - Weight::from_parts(122_335_036, 7270) - // Standard Error: 47_267 - .saturating_add(Weight::from_parts(36_139_651, 0).saturating_mul(r.into())) + // Minimum execution time: 236_830_000 picoseconds. + Weight::from_parts(237_822_000, 7270) + // Standard Error: 37_843 + .saturating_add(Weight::from_parts(35_902_173, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3194,10 +3190,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 291_399_000 picoseconds. - Weight::from_parts(291_866_000, 9408) - // Standard Error: 82_515 - .saturating_add(Weight::from_parts(266_037_975, 0).saturating_mul(r.into())) + // Minimum execution time: 237_103_000 picoseconds. + Weight::from_parts(238_035_000, 9408) + // Standard Error: 76_102 + .saturating_add(Weight::from_parts(212_124_187, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3219,10 +3215,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` // Estimated: `6727 + r * (2572 ±3)` - // Minimum execution time: 291_077_000 picoseconds. - Weight::from_parts(291_551_000, 6727) - // Standard Error: 122_042 - .saturating_add(Weight::from_parts(261_438_700, 0).saturating_mul(r.into())) + // Minimum execution time: 237_183_000 picoseconds. + Weight::from_parts(238_216_000, 6727) + // Standard Error: 102_939 + .saturating_add(Weight::from_parts(207_259_343, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3245,12 +3241,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 469_595_000 picoseconds. - Weight::from_parts(442_686_481, 12044) - // Standard Error: 2_726_929 - .saturating_add(Weight::from_parts(41_734_267, 0).saturating_mul(t.into())) + // Minimum execution time: 411_460_000 picoseconds. + Weight::from_parts(364_931_660, 12044) + // Standard Error: 2_437_565 + .saturating_add(Weight::from_parts(47_925_606, 0).saturating_mul(t.into())) // Standard Error: 3 - .saturating_add(Weight::from_parts(640, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(616, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3276,10 +3272,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 292_747_000 picoseconds. - Weight::from_parts(293_438_000, 7131) - // Standard Error: 270_720 - .saturating_add(Weight::from_parts(400_084_403, 0).saturating_mul(r.into())) + // Minimum execution time: 237_168_000 picoseconds. + Weight::from_parts(237_546_000, 7131) + // Standard Error: 234_330 + .saturating_add(Weight::from_parts(346_250_515, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3307,14 +3303,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_716_280_000 picoseconds. - Weight::from_parts(391_302_250, 9492) - // Standard Error: 4_541_278 - .saturating_add(Weight::from_parts(123_043_757, 0).saturating_mul(t.into())) + // Minimum execution time: 1_617_284_000 picoseconds. + Weight::from_parts(335_685_069, 9492) + // Standard Error: 4_437_347 + .saturating_add(Weight::from_parts(109_876_701, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_211, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_382, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_345, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(10_u64)) @@ -3336,10 +3332,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 289_136_000 picoseconds. - Weight::from_parts(290_884_333, 6718) - // Standard Error: 879 - .saturating_add(Weight::from_parts(574_822, 0).saturating_mul(r.into())) + // Minimum execution time: 234_247_000 picoseconds. + Weight::from_parts(239_124_638, 6718) + // Standard Error: 792 + .saturating_add(Weight::from_parts(568_017, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3359,10 +3355,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 289_137_000 picoseconds. - Weight::from_parts(282_552_030, 6725) + // Minimum execution time: 235_366_000 picoseconds. + Weight::from_parts(230_047_301, 6725) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_980, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3381,10 +3377,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 286_471_000 picoseconds. - Weight::from_parts(289_159_864, 6721) - // Standard Error: 860 - .saturating_add(Weight::from_parts(745_304, 0).saturating_mul(r.into())) + // Minimum execution time: 233_267_000 picoseconds. + Weight::from_parts(241_166_607, 6721) + // Standard Error: 1_052 + .saturating_add(Weight::from_parts(737_113, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3404,10 +3400,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 289_003_000 picoseconds. - Weight::from_parts(283_320_300, 6729) + // Minimum execution time: 235_713_000 picoseconds. + Weight::from_parts(227_374_343, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_208, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_170, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3426,10 +3422,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 286_345_000 picoseconds. - Weight::from_parts(278_615_734, 6724) - // Standard Error: 5_532 - .saturating_add(Weight::from_parts(445_167, 0).saturating_mul(r.into())) + // Minimum execution time: 234_917_000 picoseconds. + Weight::from_parts(238_898_846, 6724) + // Standard Error: 2_477 + .saturating_add(Weight::from_parts(414_604, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3449,10 +3445,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 288_570_000 picoseconds. - Weight::from_parts(289_126_754, 6733) - // Standard Error: 3 - .saturating_add(Weight::from_parts(958, 0).saturating_mul(n.into())) + // Minimum execution time: 234_981_000 picoseconds. + Weight::from_parts(227_027_028, 6733) + // Standard Error: 1 + .saturating_add(Weight::from_parts(921, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3471,10 +3467,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 286_967_000 picoseconds. - Weight::from_parts(306_210_527, 6725) - // Standard Error: 5_583 - .saturating_add(Weight::from_parts(413_458, 0).saturating_mul(r.into())) + // Minimum execution time: 235_175_000 picoseconds. + Weight::from_parts(239_420_314, 6725) + // Standard Error: 721 + .saturating_add(Weight::from_parts(412_430, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3494,10 +3490,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 287_687_000 picoseconds. - Weight::from_parts(285_021_722, 6727) - // Standard Error: 2 - .saturating_add(Weight::from_parts(961, 0).saturating_mul(n.into())) + // Minimum execution time: 236_534_000 picoseconds. + Weight::from_parts(226_888_935, 6727) + // Standard Error: 1 + .saturating_add(Weight::from_parts(919, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3516,10 +3512,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` // Estimated: `6849 + n * (1 ±0)` - // Minimum execution time: 341_216_000 picoseconds. - Weight::from_parts(345_497_943, 6849) + // Minimum execution time: 287_841_000 picoseconds. + Weight::from_parts(291_716_138, 6849) // Standard Error: 9 - .saturating_add(Weight::from_parts(4_886, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(4_784, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3539,10 +3535,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `722 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 290_091_000 picoseconds. - Weight::from_parts(296_812_510, 6666) - // Standard Error: 21_841 - .saturating_add(Weight::from_parts(48_088_936, 0).saturating_mul(r.into())) + // Minimum execution time: 236_849_000 picoseconds. + Weight::from_parts(249_609_479, 6666) + // Standard Error: 24_788 + .saturating_add(Weight::from_parts(48_092_283, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -3560,12 +3556,12 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `822 + r * (76 ±0)` + // Measured: `821 + r * (76 ±0)` // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 289_970_000 picoseconds. - Weight::from_parts(307_137_014, 6716) - // Standard Error: 18_656 - .saturating_add(Weight::from_parts(37_701_116, 0).saturating_mul(r.into())) + // Minimum execution time: 237_278_000 picoseconds. + Weight::from_parts(252_615_604, 6716) + // Standard Error: 19_873 + .saturating_add(Weight::from_parts(37_712_188, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -3585,10 +3581,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 298_751_000 picoseconds. - Weight::from_parts(296_467_214, 6731) - // Standard Error: 10_566 - .saturating_add(Weight::from_parts(9_298_692, 0).saturating_mul(r.into())) + // Minimum execution time: 236_522_000 picoseconds. + Weight::from_parts(240_006_598, 6731) + // Standard Error: 10_482 + .saturating_add(Weight::from_parts(9_328_637, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -3609,11 +3605,11 @@ impl WeightInfo for () { fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` - // Estimated: `8190 + r * (3090 ±7)` - // Minimum execution time: 290_103_000 picoseconds. - Weight::from_parts(291_266_000, 8190) - // Standard Error: 46_431 - .saturating_add(Weight::from_parts(21_614_419, 0).saturating_mul(r.into())) + // Estimated: `8190 + r * (3090 ±10)` + // Minimum execution time: 236_235_000 picoseconds. + Weight::from_parts(237_074_000, 8190) + // Standard Error: 47_720 + .saturating_add(Weight::from_parts(21_775_911, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3635,10 +3631,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 287_526_000 picoseconds. - Weight::from_parts(292_181_305, 6723) - // Standard Error: 418 - .saturating_add(Weight::from_parts(165_874, 0).saturating_mul(r.into())) + // Minimum execution time: 237_550_000 picoseconds. + Weight::from_parts(240_098_295, 6723) + // Standard Error: 264 + .saturating_add(Weight::from_parts(158_581, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3658,10 +3654,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 289_466_000 picoseconds. - Weight::from_parts(319_431_412, 7805) - // Standard Error: 1_084 - .saturating_add(Weight::from_parts(260_352, 0).saturating_mul(r.into())) + // Minimum execution time: 237_404_000 picoseconds. + Weight::from_parts(269_172_982, 7805) + // Standard Error: 1_220 + .saturating_add(Weight::from_parts(265_048, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -3683,10 +3679,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 288_583_000 picoseconds. - Weight::from_parts(285_400_895, 6723) - // Standard Error: 3_992 - .saturating_add(Weight::from_parts(162_784, 0).saturating_mul(r.into())) + // Minimum execution time: 234_120_000 picoseconds. + Weight::from_parts(241_965_928, 6723) + // Standard Error: 350 + .saturating_add(Weight::from_parts(139_394, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3696,280 +3692,278 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_688_000 picoseconds. - Weight::from_parts(1_975_285, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(2_985, 0).saturating_mul(r.into())) + // Minimum execution time: 1_676_000 picoseconds. + Weight::from_parts(1_087_354, 0) + // Standard Error: 255 + .saturating_add(Weight::from_parts(3_818, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_808_000 picoseconds. - Weight::from_parts(2_520_211, 0) - // Standard Error: 48 - .saturating_add(Weight::from_parts(6_394, 0).saturating_mul(r.into())) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_346_191, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_446, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_791_000 picoseconds. - Weight::from_parts(2_982_175, 0) - // Standard Error: 63 - .saturating_add(Weight::from_parts(5_849, 0).saturating_mul(r.into())) + // Minimum execution time: 1_918_000 picoseconds. + Weight::from_parts(2_372_443, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_712_000 picoseconds. - Weight::from_parts(2_116_026, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(7_916, 0).saturating_mul(r.into())) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(2_104_310, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(7_931, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_705_000 picoseconds. - Weight::from_parts(1_866_703, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_418, 0).saturating_mul(r.into())) + // Minimum execution time: 1_702_000 picoseconds. + Weight::from_parts(1_891_822, 0) + // Standard Error: 6 + .saturating_add(Weight::from_parts(10_812, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(1_775_389, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(4_668, 0).saturating_mul(r.into())) + // Minimum execution time: 1_706_000 picoseconds. + Weight::from_parts(1_965_219, 0) + // Standard Error: 12 + .saturating_add(Weight::from_parts(4_550, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_688_000 picoseconds. - Weight::from_parts(2_371_112, 0) - // Standard Error: 67 - .saturating_add(Weight::from_parts(7_468, 0).saturating_mul(r.into())) + // Minimum execution time: 1_634_000 picoseconds. + Weight::from_parts(1_096_615, 0) + // Standard Error: 77 + .saturating_add(Weight::from_parts(8_104, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_686_000 picoseconds. - Weight::from_parts(1_464_378, 0) - // Standard Error: 31 - .saturating_add(Weight::from_parts(9_555, 0).saturating_mul(r.into())) + // Minimum execution time: 1_738_000 picoseconds. + Weight::from_parts(1_398_537, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(9_628, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(e: u32, ) -> Weight { + fn instr_br_table_per_entry(_e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_767_000 picoseconds. - Weight::from_parts(1_876_710, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(220, 0).saturating_mul(e.into())) + // Minimum execution time: 1_766_000 picoseconds. + Weight::from_parts(1_930_343, 0) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(2_137_774, 0) - // Standard Error: 9 - .saturating_add(Weight::from_parts(18_546, 0).saturating_mul(r.into())) + // Minimum execution time: 1_700_000 picoseconds. + Weight::from_parts(2_214_724, 0) + // Standard Error: 122 + .saturating_add(Weight::from_parts(18_040, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_978_000 picoseconds. - Weight::from_parts(2_637_716, 0) - // Standard Error: 66 - .saturating_add(Weight::from_parts(24_793, 0).saturating_mul(r.into())) + // Minimum execution time: 1_950_000 picoseconds. + Weight::from_parts(3_440_453, 0) + // Standard Error: 14 + .saturating_add(Weight::from_parts(24_264, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_833_000 picoseconds. - Weight::from_parts(1_953_065, 0) - // Standard Error: 49 - .saturating_add(Weight::from_parts(2_425, 0).saturating_mul(l.into())) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_034_196, 0) + // Standard Error: 30 + .saturating_add(Weight::from_parts(1_284, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_859_000 picoseconds. - Weight::from_parts(4_277_917, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(2_402, 0).saturating_mul(r.into())) + // Minimum execution time: 3_003_000 picoseconds. + Weight::from_parts(3_466_544, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(2_437, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_930_000 picoseconds. - Weight::from_parts(4_156_656, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_616, 0).saturating_mul(r.into())) + // Minimum execution time: 2_934_000 picoseconds. + Weight::from_parts(3_355_985, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(3_570, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_887_000 picoseconds. - Weight::from_parts(4_189_509, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) + // Minimum execution time: 2_915_000 picoseconds. + Weight::from_parts(3_789_121, 0) + // Standard Error: 68 + .saturating_add(Weight::from_parts(3_846, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_872_000 picoseconds. - Weight::from_parts(2_326_016, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_380, 0).saturating_mul(r.into())) + // Minimum execution time: 1_799_000 picoseconds. + Weight::from_parts(2_233_970, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(8_373, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_880_000 picoseconds. - Weight::from_parts(2_372_584, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(8_809, 0).saturating_mul(r.into())) + // Minimum execution time: 1_826_000 picoseconds. + Weight::from_parts(2_179_204, 0) + // Standard Error: 46 + .saturating_add(Weight::from_parts(8_911, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_805_000 picoseconds. - Weight::from_parts(2_663_941, 0) - // Standard Error: 63 - .saturating_add(Weight::from_parts(3_613, 0).saturating_mul(r.into())) + // Minimum execution time: 1_802_000 picoseconds. + Weight::from_parts(2_114_379, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_848, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_742_000 picoseconds. - Weight::from_parts(1_296_708, 0) - // Standard Error: 139_965 - .saturating_add(Weight::from_parts(16_273_249, 0).saturating_mul(r.into())) + // Minimum execution time: 1_751_000 picoseconds. + Weight::from_parts(728_495, 0) + // Standard Error: 137_129 + .saturating_add(Weight::from_parts(13_219_932, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_710_000 picoseconds. - Weight::from_parts(2_031_637, 0) + // Minimum execution time: 1_639_000 picoseconds. + Weight::from_parts(2_016_533, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_912, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_702_000 picoseconds. - Weight::from_parts(2_029_086, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_877, 0).saturating_mul(r.into())) + // Minimum execution time: 1_710_000 picoseconds. + Weight::from_parts(2_130_736, 0) + // Standard Error: 15 + .saturating_add(Weight::from_parts(3_747, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_725_000 picoseconds. - Weight::from_parts(2_024_772, 0) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_032_473, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_879, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_751, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_737_000 picoseconds. - Weight::from_parts(2_020_931, 0) + // Minimum execution time: 1_676_000 picoseconds. + Weight::from_parts(2_000_504, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_676, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_664, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(1_976_558, 0) + // Minimum execution time: 1_791_000 picoseconds. + Weight::from_parts(2_073_161, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_952, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_824_000 picoseconds. - Weight::from_parts(2_068_490, 0) + // Minimum execution time: 1_649_000 picoseconds. + Weight::from_parts(2_043_804, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_860, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_822, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_721_000 picoseconds. - Weight::from_parts(2_051_294, 0) + // Minimum execution time: 1_718_000 picoseconds. + Weight::from_parts(2_042_452, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_839, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_728, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_735_000 picoseconds. - Weight::from_parts(2_087_837, 0) + // Minimum execution time: 1_645_000 picoseconds. + Weight::from_parts(2_041_099, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_995, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_662_000 picoseconds. - Weight::from_parts(2_046_929, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_013, 0).saturating_mul(r.into())) + // Minimum execution time: 1_679_000 picoseconds. + Weight::from_parts(2_074_324, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_937, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { @@ -3977,228 +3971,228 @@ impl WeightInfo for () { // Measured: `0` // Estimated: `0` // Minimum execution time: 1_697_000 picoseconds. - Weight::from_parts(2_043_696, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_009, 0).saturating_mul(r.into())) + Weight::from_parts(1_961_870, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(6_038, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_670_000 picoseconds. - Weight::from_parts(2_101_582, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_999, 0).saturating_mul(r.into())) + // Minimum execution time: 1_698_000 picoseconds. + Weight::from_parts(1_986_691, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_656_000 picoseconds. - Weight::from_parts(2_049_341, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_812, 0).saturating_mul(r.into())) + // Minimum execution time: 1_709_000 picoseconds. + Weight::from_parts(2_297_073, 0) + // Standard Error: 91 + .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_687_000 picoseconds. - Weight::from_parts(2_059_405, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(6_101, 0).saturating_mul(r.into())) + // Minimum execution time: 1_669_000 picoseconds. + Weight::from_parts(2_050_538, 0) + // Standard Error: 7 + .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_706_000 picoseconds. - Weight::from_parts(2_032_138, 0) + // Minimum execution time: 1_630_000 picoseconds. + Weight::from_parts(2_030_064, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(2_077_404, 0) + // Minimum execution time: 1_694_000 picoseconds. + Weight::from_parts(1_958_600, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(6_088, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_115, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_664_000 picoseconds. - Weight::from_parts(1_517_250, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(6_392, 0).saturating_mul(r.into())) + // Minimum execution time: 1_632_000 picoseconds. + Weight::from_parts(2_023_441, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_682_000 picoseconds. - Weight::from_parts(2_419_495, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(5_963, 0).saturating_mul(r.into())) + // Minimum execution time: 1_695_000 picoseconds. + Weight::from_parts(2_033_244, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_001, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_711_000 picoseconds. - Weight::from_parts(2_071_649, 0) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(2_028_827, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_855, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_891, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(2_125_462, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_121, 0).saturating_mul(r.into())) + // Minimum execution time: 1_672_000 picoseconds. + Weight::from_parts(1_389_135, 0) + // Standard Error: 65 + .saturating_add(Weight::from_parts(6_543, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_682_000 picoseconds. - Weight::from_parts(2_236_996, 0) - // Standard Error: 54 - .saturating_add(Weight::from_parts(5_672, 0).saturating_mul(r.into())) + // Minimum execution time: 1_739_000 picoseconds. + Weight::from_parts(2_406_725, 0) + // Standard Error: 21 + .saturating_add(Weight::from_parts(5_692, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_686_000 picoseconds. - Weight::from_parts(2_069_904, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(11_777, 0).saturating_mul(r.into())) + // Minimum execution time: 1_733_000 picoseconds. + Weight::from_parts(2_583_091, 0) + // Standard Error: 218 + .saturating_add(Weight::from_parts(11_841, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_665_000 picoseconds. - Weight::from_parts(2_449_446, 0) - // Standard Error: 71 - .saturating_add(Weight::from_parts(10_530, 0).saturating_mul(r.into())) + // Minimum execution time: 1_736_000 picoseconds. + Weight::from_parts(2_123_319, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(10_520, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_723_000 picoseconds. - Weight::from_parts(2_170_990, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(11_739, 0).saturating_mul(r.into())) + // Minimum execution time: 1_746_000 picoseconds. + Weight::from_parts(2_621_724, 0) + // Standard Error: 24 + .saturating_add(Weight::from_parts(11_885, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(2_072_310, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_771, 0).saturating_mul(r.into())) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(2_013_042, 0) + // Standard Error: 8 + .saturating_add(Weight::from_parts(10_673, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_685_000 picoseconds. - Weight::from_parts(2_139_021, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(5_703, 0).saturating_mul(r.into())) + // Minimum execution time: 1_675_000 picoseconds. + Weight::from_parts(2_155_962, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(5_619, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_686_000 picoseconds. - Weight::from_parts(1_959_726, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(5_847, 0).saturating_mul(r.into())) + // Minimum execution time: 1_651_000 picoseconds. + Weight::from_parts(2_009_049, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_757, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_700_000 picoseconds. - Weight::from_parts(2_124_226, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) + // Minimum execution time: 1_705_000 picoseconds. + Weight::from_parts(1_986_346, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_917, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_660_000 picoseconds. - Weight::from_parts(2_022_785, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_861, 0).saturating_mul(r.into())) + // Minimum execution time: 1_669_000 picoseconds. + Weight::from_parts(2_023_827, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_941, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_673_000 picoseconds. - Weight::from_parts(2_790_542, 0) - // Standard Error: 43 - .saturating_add(Weight::from_parts(5_931, 0).saturating_mul(r.into())) + // Minimum execution time: 1_663_000 picoseconds. + Weight::from_parts(2_025_828, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_119, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_695_000 picoseconds. - Weight::from_parts(2_019_822, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_875, 0).saturating_mul(r.into())) + // Minimum execution time: 1_690_000 picoseconds. + Weight::from_parts(2_312_272, 0) + // Standard Error: 62 + .saturating_add(Weight::from_parts(5_856, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_735_000 picoseconds. - Weight::from_parts(2_057_617, 0) + // Minimum execution time: 1_795_000 picoseconds. + Weight::from_parts(2_094_996, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_981, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_712_000 picoseconds. - Weight::from_parts(2_026_675, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_863, 0).saturating_mul(r.into())) + // Minimum execution time: 1_713_000 picoseconds. + Weight::from_parts(2_118_369, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_833, 0).saturating_mul(r.into())) } } From d03987dce51347ff79e6de73d18a9caa58f9adc8 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 19 Apr 2023 16:41:56 +0200 Subject: [PATCH 34/53] contracts: add some minor improvements --- frame/contracts/src/exec.rs | 2 +- frame/contracts/src/wasm/runtime.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index b6b7317ad9198..7a27ae010769c 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -850,7 +850,7 @@ where &frame.account_id, frame.contract_info.get(&frame.account_id), )?; - }; + } // Every non delegate call or instantiate also optionally transfers the balance. self.initial_transfer()?; diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 0a513bebbcdf4..f6ae38ae63873 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1756,7 +1756,6 @@ pub mod env { /// and `false` indicates that the caller is a signed origin. /// /// Returned value is a `u32`-encoded boolean: (`0 = false`, `1 = true`). - #[prefixed_alias] fn caller_is_root(ctx: _, _memory: _) -> Result { ctx.charge_gas(RuntimeCosts::CallerIsRoot)?; Ok(ctx.ext.caller_is_root() as u32) From af14ee60090c375bb58dceec3ef0be18ad4730e6 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 19 Apr 2023 17:35:49 +0200 Subject: [PATCH 35/53] contracts: make caller_is_root runtime fn unstable --- frame/contracts/src/wasm/runtime.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index f6ae38ae63873..b1540c53d9b0d 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1756,6 +1756,7 @@ pub mod env { /// and `false` indicates that the caller is a signed origin. /// /// Returned value is a `u32`-encoded boolean: (`0 = false`, `1 = true`). + #[unstable] fn caller_is_root(ctx: _, _memory: _) -> Result { ctx.charge_gas(RuntimeCosts::CallerIsRoot)?; Ok(ctx.ext.caller_is_root() as u32) From c6cd8d98b7aa8f4111090b952c362428913f7f47 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Thu, 20 Apr 2023 16:50:59 +0200 Subject: [PATCH 36/53] contracts: fix failing wasm test --- frame/contracts/src/wasm/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index 53f22b449742b..4aa255bd85439 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -2991,11 +2991,11 @@ mod tests { const CODE_CALLER_IS_ROOT: &str = r#" ;; This runs `caller_is_root` check on zero account address (module - (import "seal0" "seal_caller_is_root" (func $seal_caller_is_root (result i32))) + (import "seal0" "caller_is_root" (func $caller_is_root (result i32))) (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) (import "env" "memory" (memory 1 1)) - ;; [0, 4) here the return code of the `seal_caller_is_root` will be stored + ;; [0, 4) here the return code of the `caller_is_root` will be stored ;; we initialize it with non-zero value to be sure that it's being overwritten below (data (i32.const 0) "\10\10\10\10") @@ -3004,9 +3004,9 @@ mod tests { (func (export "call") (i32.store (i32.const 0) - (call $seal_caller_is_root) + (call $caller_is_root) ) - ;; exit with success and take `seal_caller_is_root` return code to the output buffer + ;; exit with success and take `caller_is_root` return code to the output buffer (call $seal_return (i32.const 0) (i32.const 0) (i32.const 4)) ) ) From 2357c5c6992e289727350f091a0c787272dcd0ff Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 21 Apr 2023 10:09:33 +0200 Subject: [PATCH 37/53] contracts: update benchmarking for origin_is_root --- frame/contracts/src/benchmarking/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index a15dab83ea1e7..293fcef4ac075 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -542,7 +542,7 @@ benchmarks! { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { module: "seal0", - name: "seal_caller_is_root", + name: "caller_is_root", params: vec![], return_type: Some(ValueType::I32), }], From 99a42b1a8f261d15d4943235fc9811e67cb50642 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 24 Apr 2023 10:40:41 +0200 Subject: [PATCH 38/53] contracts: improve seal_caller_is_root benchmarking --- frame/contracts/src/benchmarking/mod.rs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index 293fcef4ac075..d29598e76822a 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -553,17 +553,8 @@ benchmarks! { .. Default::default() }); let instance = Contract::::new(code, vec![])?; - let origins = vec![ - RawOrigin::Signed(instance.caller.clone()), - RawOrigin::Root, - ]; - let limits = vec![ - None, - Some(BalanceOf::::max_value().into()), - ]; - let o = r % 2; - let origin = origins[o as usize].clone(); - let limit = limits[o as usize].clone(); + let origin = RawOrigin::Root; + let limit = Some(BalanceOf::::max_value().into()); }: call(origin, instance.addr, 0u32.into(), Weight::MAX, limit, vec![]) #[pov_mode = Measured] From 5dc6092e8c6c05ab2cbbd9cbdf6f28c0130ab5b3 Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Mon, 24 Apr 2023 10:07:45 +0000 Subject: [PATCH 39/53] ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts --- frame/contracts/src/weights.rs | 1870 ++++++++++++++++---------------- 1 file changed, 935 insertions(+), 935 deletions(-) diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 85cd2850adeef..8876bf6fdd480 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_contracts //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -179,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_600_000 picoseconds. - Weight::from_parts(2_715_000, 1594) + // Minimum execution time: 2_661_000 picoseconds. + Weight::from_parts(2_787_000, 1594) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -190,10 +190,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_433_000 picoseconds. - Weight::from_parts(9_206_955, 478) - // Standard Error: 1_428 - .saturating_add(Weight::from_parts(975_783, 0).saturating_mul(k.into())) + // Minimum execution time: 13_333_000 picoseconds. + Weight::from_parts(9_200_088, 478) + // Standard Error: 1_110 + .saturating_add(Weight::from_parts(978_387, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -209,10 +209,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 30_877_000 picoseconds. - Weight::from_parts(24_692_209, 3708) - // Standard Error: 61 - .saturating_add(Weight::from_parts(56_159, 0).saturating_mul(c.into())) + // Minimum execution time: 30_794_000 picoseconds. + Weight::from_parts(26_004_701, 3708) + // Standard Error: 57 + .saturating_add(Weight::from_parts(55_259, 0).saturating_mul(c.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(c.into())) @@ -232,10 +232,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 264_158_000 picoseconds. - Weight::from_parts(270_385_802, 6656) - // Standard Error: 29 - .saturating_add(Weight::from_parts(38_112, 0).saturating_mul(c.into())) + // Minimum execution time: 261_605_000 picoseconds. + Weight::from_parts(267_417_927, 6656) + // Standard Error: 30 + .saturating_add(Weight::from_parts(37_987, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -263,14 +263,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_133_423_000 picoseconds. - Weight::from_parts(579_477_658, 8659) - // Standard Error: 276 - .saturating_add(Weight::from_parts(106_752, 0).saturating_mul(c.into())) + // Minimum execution time: 3_158_042_000 picoseconds. + Weight::from_parts(619_625_354, 8659) + // Standard Error: 283 + .saturating_add(Weight::from_parts(106_531, 0).saturating_mul(c.into())) // Standard Error: 16 - .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_117, 0).saturating_mul(i.into())) // Standard Error: 16 - .saturating_add(Weight::from_parts(1_418, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_436, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -294,12 +294,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_650_429_000 picoseconds. - Weight::from_parts(294_221_501, 6408) + // Minimum execution time: 1_643_595_000 picoseconds. + Weight::from_parts(254_234_497, 6408) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_446, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_462, 0).saturating_mul(i.into())) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_433, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_456, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -317,8 +317,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 191_782_000 picoseconds. - Weight::from_parts(192_980_000, 6699) + // Minimum execution time: 190_529_000 picoseconds. + Weight::from_parts(191_707_000, 6699) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -335,10 +335,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 246_068_000 picoseconds. - Weight::from_parts(286_606_707, 3574) - // Standard Error: 89 - .saturating_add(Weight::from_parts(108_514, 0).saturating_mul(c.into())) + // Minimum execution time: 247_906_000 picoseconds. + Weight::from_parts(279_637_289, 3574) + // Standard Error: 95 + .saturating_add(Weight::from_parts(108_562, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -354,8 +354,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_692_000 picoseconds. - Weight::from_parts(34_214_000, 3720) + // Minimum execution time: 33_533_000 picoseconds. + Weight::from_parts(33_999_000, 3720) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -369,8 +369,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_715_000 picoseconds. - Weight::from_parts(34_232_000, 8985) + // Minimum execution time: 32_810_000 picoseconds. + Weight::from_parts(33_571_000, 8985) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -389,10 +389,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 235_571_000 picoseconds. - Weight::from_parts(235_995_099, 6722) - // Standard Error: 881 - .saturating_add(Weight::from_parts(343_678, 0).saturating_mul(r.into())) + // Minimum execution time: 233_387_000 picoseconds. + Weight::from_parts(234_921_537, 6722) + // Standard Error: 1_192 + .saturating_add(Weight::from_parts(332_647, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -412,10 +412,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 235_423_000 picoseconds. - Weight::from_parts(77_496_153, 6743) - // Standard Error: 6_327 - .saturating_add(Weight::from_parts(3_401_948, 0).saturating_mul(r.into())) + // Minimum execution time: 236_852_000 picoseconds. + Weight::from_parts(69_151_959, 6743) + // Standard Error: 6_662 + .saturating_add(Weight::from_parts(3_287_315, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -436,10 +436,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 238_449_000 picoseconds. - Weight::from_parts(75_802_338, 6747) - // Standard Error: 6_281 - .saturating_add(Weight::from_parts(4_173_432, 0).saturating_mul(r.into())) + // Minimum execution time: 235_205_000 picoseconds. + Weight::from_parts(79_396_834, 6747) + // Standard Error: 6_164 + .saturating_add(Weight::from_parts(4_074_268, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -460,10 +460,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 236_091_000 picoseconds. - Weight::from_parts(238_500_775, 6730) - // Standard Error: 784 - .saturating_add(Weight::from_parts(398_956, 0).saturating_mul(r.into())) + // Minimum execution time: 235_764_000 picoseconds. + Weight::from_parts(240_942_560, 6730) + // Standard Error: 929 + .saturating_add(Weight::from_parts(408_756, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -483,16 +483,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 233_566_000 picoseconds. - Weight::from_parts(239_002_284, 6723) - // Standard Error: 335 - .saturating_add(Weight::from_parts(164_563, 0).saturating_mul(r.into())) + // Minimum execution time: 231_845_000 picoseconds. + Weight::from_parts(238_194_676, 6723) + // Standard Error: 371 + .saturating_add(Weight::from_parts(174_006, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) /// Proof: Contracts ContractInfoOf (max_values: None, max_size: Some(290), added: 2765, mode: Measured) /// Storage: Contracts CodeStorage (r:1 w:0) @@ -504,12 +502,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1600]`. fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `774 + r * (3 ±0)` - // Estimated: `6652 + r * (3 ±0)` - // Minimum execution time: 234_000_000 picoseconds. - Weight::from_parts(231_285_526, 6652) - // Standard Error: 1_854 - .saturating_add(Weight::from_parts(161_318, 0).saturating_mul(r.into())) + // Measured: `668 + r * (3 ±0)` + // Estimated: `6608 + r * (3 ±0)` + // Minimum execution time: 222_659_000 picoseconds. + Weight::from_parts(235_813_742, 6608) + // Standard Error: 607 + .saturating_add(Weight::from_parts(138_487, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -529,10 +527,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 236_478_000 picoseconds. - Weight::from_parts(238_040_595, 6724) - // Standard Error: 613 - .saturating_add(Weight::from_parts(319_183, 0).saturating_mul(r.into())) + // Minimum execution time: 233_880_000 picoseconds. + Weight::from_parts(237_668_061, 6724) + // Standard Error: 575 + .saturating_add(Weight::from_parts(324_866, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -552,10 +550,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 235_931_000 picoseconds. - Weight::from_parts(237_471_646, 6721) - // Standard Error: 467 - .saturating_add(Weight::from_parts(314_347, 0).saturating_mul(r.into())) + // Minimum execution time: 235_520_000 picoseconds. + Weight::from_parts(241_766_962, 6721) + // Standard Error: 1_396 + .saturating_add(Weight::from_parts(315_306, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -575,10 +573,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 236_712_000 picoseconds. - Weight::from_parts(244_060_767, 6846) - // Standard Error: 1_395 - .saturating_add(Weight::from_parts(1_475_685, 0).saturating_mul(r.into())) + // Minimum execution time: 233_222_000 picoseconds. + Weight::from_parts(239_312_284, 6846) + // Standard Error: 1_532 + .saturating_add(Weight::from_parts(1_483_120, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -598,10 +596,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 238_732_000 picoseconds. - Weight::from_parts(242_053_124, 6741) - // Standard Error: 1_087 - .saturating_add(Weight::from_parts(316_668, 0).saturating_mul(r.into())) + // Minimum execution time: 233_662_000 picoseconds. + Weight::from_parts(236_485_627, 6741) + // Standard Error: 748 + .saturating_add(Weight::from_parts(322_657, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -621,10 +619,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 234_851_000 picoseconds. - Weight::from_parts(237_432_075, 6739) - // Standard Error: 691 - .saturating_add(Weight::from_parts(317_388, 0).saturating_mul(r.into())) + // Minimum execution time: 233_211_000 picoseconds. + Weight::from_parts(238_177_678, 6739) + // Standard Error: 595 + .saturating_add(Weight::from_parts(324_725, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -644,10 +642,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 235_860_000 picoseconds. - Weight::from_parts(238_194_528, 6737) - // Standard Error: 593 - .saturating_add(Weight::from_parts(312_333, 0).saturating_mul(r.into())) + // Minimum execution time: 233_563_000 picoseconds. + Weight::from_parts(245_395_891, 6737) + // Standard Error: 819 + .saturating_add(Weight::from_parts(307_701, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -667,10 +665,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 235_508_000 picoseconds. - Weight::from_parts(239_774_719, 6723) - // Standard Error: 614 - .saturating_add(Weight::from_parts(312_177, 0).saturating_mul(r.into())) + // Minimum execution time: 234_252_000 picoseconds. + Weight::from_parts(223_648_254, 6723) + // Standard Error: 4_056 + .saturating_add(Weight::from_parts(347_982, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -692,10 +690,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 235_887_000 picoseconds. - Weight::from_parts(256_683_177, 6796) - // Standard Error: 2_084 - .saturating_add(Weight::from_parts(1_331_687, 0).saturating_mul(r.into())) + // Minimum execution time: 238_102_000 picoseconds. + Weight::from_parts(239_749_728, 6796) + // Standard Error: 1_360 + .saturating_add(Weight::from_parts(1_316_355, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -715,10 +713,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 162_104_000 picoseconds. - Weight::from_parts(165_122_621, 6687) - // Standard Error: 199 - .saturating_add(Weight::from_parts(130_093, 0).saturating_mul(r.into())) + // Minimum execution time: 159_941_000 picoseconds. + Weight::from_parts(162_309_186, 6687) + // Standard Error: 287 + .saturating_add(Weight::from_parts(132_728, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -738,10 +736,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 237_437_000 picoseconds. - Weight::from_parts(239_257_819, 6724) - // Standard Error: 455 - .saturating_add(Weight::from_parts(264_198, 0).saturating_mul(r.into())) + // Minimum execution time: 234_050_000 picoseconds. + Weight::from_parts(238_613_120, 6724) + // Standard Error: 566 + .saturating_add(Weight::from_parts(270_500, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -761,10 +759,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 236_976_000 picoseconds. - Weight::from_parts(239_821_317, 6724) + // Minimum execution time: 234_536_000 picoseconds. + Weight::from_parts(237_085_631, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(593, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(594, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -783,10 +781,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 232_513_000 picoseconds. - Weight::from_parts(234_557_653, 6708) - // Standard Error: 122_653 - .saturating_add(Weight::from_parts(6_579_246, 0).saturating_mul(r.into())) + // Minimum execution time: 229_831_000 picoseconds. + Weight::from_parts(232_252_195, 6708) + // Standard Error: 185_133 + .saturating_add(Weight::from_parts(2_568_004, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -806,10 +804,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 235_970_000 picoseconds. - Weight::from_parts(236_571_619, 6731) + // Minimum execution time: 232_961_000 picoseconds. + Weight::from_parts(234_505_222, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(182, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -834,10 +832,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 234_844_000 picoseconds. - Weight::from_parts(237_175_734, 6750) - // Standard Error: 248_496 - .saturating_add(Weight::from_parts(112_212_465, 0).saturating_mul(r.into())) + // Minimum execution time: 232_108_000 picoseconds. + Weight::from_parts(234_419_967, 6750) + // Standard Error: 187_499 + .saturating_add(Weight::from_parts(111_606_232, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -861,10 +859,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 236_228_000 picoseconds. - Weight::from_parts(249_625_033, 6769) - // Standard Error: 3_224 - .saturating_add(Weight::from_parts(1_815_617, 0).saturating_mul(r.into())) + // Minimum execution time: 232_610_000 picoseconds. + Weight::from_parts(220_273_892, 6769) + // Standard Error: 8_615 + .saturating_add(Weight::from_parts(1_785_371, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -884,10 +882,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 233_749_000 picoseconds. - Weight::from_parts(248_703_905, 6723) - // Standard Error: 3_350 - .saturating_add(Weight::from_parts(3_461_139, 0).saturating_mul(r.into())) + // Minimum execution time: 235_643_000 picoseconds. + Weight::from_parts(236_073_438, 6723) + // Standard Error: 4_293 + .saturating_add(Weight::from_parts(3_522_474, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -908,12 +906,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 252_487_000 picoseconds. - Weight::from_parts(245_397_625, 6744) - // Standard Error: 36_993 - .saturating_add(Weight::from_parts(2_325_838, 0).saturating_mul(t.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(640, 0).saturating_mul(n.into())) + // Minimum execution time: 249_523_000 picoseconds. + Weight::from_parts(242_899_550, 6744) + // Standard Error: 128_273 + .saturating_add(Weight::from_parts(2_465_286, 0).saturating_mul(t.into())) + // Standard Error: 35 + .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -935,10 +933,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 164_234_000 picoseconds. - Weight::from_parts(169_906_692, 6721) - // Standard Error: 397 - .saturating_add(Weight::from_parts(234_001, 0).saturating_mul(r.into())) + // Minimum execution time: 168_506_000 picoseconds. + Weight::from_parts(170_965_622, 6721) + // Standard Error: 467 + .saturating_add(Weight::from_parts(229_178, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -958,10 +956,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 350_437_000 picoseconds. - Weight::from_parts(353_969_730, 131670) + // Minimum execution time: 348_623_000 picoseconds. + Weight::from_parts(351_973_362, 131670) // Standard Error: 1 - .saturating_add(Weight::from_parts(740, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(737, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -972,10 +970,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 238_028_000 picoseconds. - Weight::from_parts(136_909_395, 843) - // Standard Error: 10_150 - .saturating_add(Weight::from_parts(6_109_652, 0).saturating_mul(r.into())) + // Minimum execution time: 235_220_000 picoseconds. + Weight::from_parts(128_121_818, 843) + // Standard Error: 10_853 + .saturating_add(Weight::from_parts(6_068_708, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -989,10 +987,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 252_051_000 picoseconds. - Weight::from_parts(285_967_242, 1280) - // Standard Error: 55 - .saturating_add(Weight::from_parts(524, 0).saturating_mul(n.into())) + // Minimum execution time: 249_836_000 picoseconds. + Weight::from_parts(283_071_034, 1280) + // Standard Error: 53 + .saturating_add(Weight::from_parts(568, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -1003,10 +1001,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 252_269_000 picoseconds. - Weight::from_parts(255_074_775, 1167) - // Standard Error: 18 - .saturating_add(Weight::from_parts(15, 0).saturating_mul(n.into())) + // Minimum execution time: 249_863_000 picoseconds. + Weight::from_parts(251_254_415, 1167) + // Standard Error: 15 + .saturating_add(Weight::from_parts(188, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1018,10 +1016,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 235_787_000 picoseconds. - Weight::from_parts(130_369_537, 845) - // Standard Error: 10_839 - .saturating_add(Weight::from_parts(5_950_753, 0).saturating_mul(r.into())) + // Minimum execution time: 234_207_000 picoseconds. + Weight::from_parts(123_627_181, 845) + // Standard Error: 11_658 + .saturating_add(Weight::from_parts(5_965_477, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1035,10 +1033,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 251_156_000 picoseconds. - Weight::from_parts(253_747_923, 1163) - // Standard Error: 15 - .saturating_add(Weight::from_parts(50, 0).saturating_mul(n.into())) + // Minimum execution time: 249_192_000 picoseconds. + Weight::from_parts(251_416_488, 1163) + // Standard Error: 20 + .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1050,10 +1048,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 236_495_000 picoseconds. - Weight::from_parts(150_510_825, 840) - // Standard Error: 8_460 - .saturating_add(Weight::from_parts(4_939_505, 0).saturating_mul(r.into())) + // Minimum execution time: 234_625_000 picoseconds. + Weight::from_parts(152_907_247, 840) + // Standard Error: 8_450 + .saturating_add(Weight::from_parts(4_885_053, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1066,10 +1064,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 250_613_000 picoseconds. - Weight::from_parts(253_574_859, 1179) - // Standard Error: 81 - .saturating_add(Weight::from_parts(717, 0).saturating_mul(n.into())) + // Minimum execution time: 247_608_000 picoseconds. + Weight::from_parts(250_954_256, 1179) + // Standard Error: 18 + .saturating_add(Weight::from_parts(631, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1081,10 +1079,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 236_708_000 picoseconds. - Weight::from_parts(148_414_588, 857) - // Standard Error: 9_022 - .saturating_add(Weight::from_parts(4_747_502, 0).saturating_mul(r.into())) + // Minimum execution time: 234_627_000 picoseconds. + Weight::from_parts(151_776_174, 857) + // Standard Error: 8_477 + .saturating_add(Weight::from_parts(4_744_179, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1097,10 +1095,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 250_111_000 picoseconds. - Weight::from_parts(253_321_958, 1166) - // Standard Error: 20 - .saturating_add(Weight::from_parts(79, 0).saturating_mul(n.into())) + // Minimum execution time: 246_948_000 picoseconds. + Weight::from_parts(248_993_362, 1166) + // Standard Error: 13 + .saturating_add(Weight::from_parts(109, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1112,10 +1110,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 237_125_000 picoseconds. - Weight::from_parts(132_837_839, 836) - // Standard Error: 9_981 - .saturating_add(Weight::from_parts(6_121_252, 0).saturating_mul(r.into())) + // Minimum execution time: 234_041_000 picoseconds. + Weight::from_parts(132_346_798, 836) + // Standard Error: 10_502 + .saturating_add(Weight::from_parts(6_144_249, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1129,10 +1127,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 253_361_000 picoseconds. - Weight::from_parts(255_205_458, 1180) - // Standard Error: 28 - .saturating_add(Weight::from_parts(718, 0).saturating_mul(n.into())) + // Minimum execution time: 249_246_000 picoseconds. + Weight::from_parts(253_617_941, 1180) + // Standard Error: 18 + .saturating_add(Weight::from_parts(598, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1152,10 +1150,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 236_830_000 picoseconds. - Weight::from_parts(237_822_000, 7270) - // Standard Error: 37_843 - .saturating_add(Weight::from_parts(35_902_173, 0).saturating_mul(r.into())) + // Minimum execution time: 235_344_000 picoseconds. + Weight::from_parts(72_196_493, 7270) + // Standard Error: 42_917 + .saturating_add(Weight::from_parts(35_138_209, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1177,10 +1175,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 237_103_000 picoseconds. - Weight::from_parts(238_035_000, 9408) - // Standard Error: 76_102 - .saturating_add(Weight::from_parts(212_124_187, 0).saturating_mul(r.into())) + // Minimum execution time: 235_870_000 picoseconds. + Weight::from_parts(236_428_000, 9408) + // Standard Error: 83_578 + .saturating_add(Weight::from_parts(209_341_301, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1202,10 +1200,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` // Estimated: `6727 + r * (2572 ±3)` - // Minimum execution time: 237_183_000 picoseconds. - Weight::from_parts(238_216_000, 6727) - // Standard Error: 102_939 - .saturating_add(Weight::from_parts(207_259_343, 0).saturating_mul(r.into())) + // Minimum execution time: 235_444_000 picoseconds. + Weight::from_parts(235_953_000, 6727) + // Standard Error: 103_757 + .saturating_add(Weight::from_parts(204_940_640, 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(3_u64)) @@ -1228,12 +1226,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 411_460_000 picoseconds. - Weight::from_parts(364_931_660, 12044) - // Standard Error: 2_437_565 - .saturating_add(Weight::from_parts(47_925_606, 0).saturating_mul(t.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(616, 0).saturating_mul(c.into())) + // Minimum execution time: 408_108_000 picoseconds. + Weight::from_parts(373_220_662, 12044) + // Standard Error: 1_022_276 + .saturating_add(Weight::from_parts(35_858_434, 0).saturating_mul(t.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(604, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1259,10 +1257,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 237_168_000 picoseconds. - Weight::from_parts(237_546_000, 7131) - // Standard Error: 234_330 - .saturating_add(Weight::from_parts(346_250_515, 0).saturating_mul(r.into())) + // Minimum execution time: 236_618_000 picoseconds. + Weight::from_parts(237_531_000, 7131) + // Standard Error: 239_755 + .saturating_add(Weight::from_parts(340_894_468, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1290,14 +1288,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_617_284_000 picoseconds. - Weight::from_parts(335_685_069, 9492) - // Standard Error: 4_437_347 - .saturating_add(Weight::from_parts(109_876_701, 0).saturating_mul(t.into())) + // Minimum execution time: 1_612_127_000 picoseconds. + Weight::from_parts(332_415_772, 9492) + // Standard Error: 4_498_764 + .saturating_add(Weight::from_parts(116_134_047, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_345, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_338, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) @@ -1319,10 +1317,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 234_247_000 picoseconds. - Weight::from_parts(239_124_638, 6718) - // Standard Error: 792 - .saturating_add(Weight::from_parts(568_017, 0).saturating_mul(r.into())) + // Minimum execution time: 236_324_000 picoseconds. + Weight::from_parts(237_545_620, 6718) + // Standard Error: 4_111 + .saturating_add(Weight::from_parts(581_032, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1342,10 +1340,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 235_366_000 picoseconds. - Weight::from_parts(230_047_301, 6725) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(n.into())) + // Minimum execution time: 239_019_000 picoseconds. + Weight::from_parts(226_388_314, 6725) + // Standard Error: 6 + .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1364,10 +1362,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 233_267_000 picoseconds. - Weight::from_parts(241_166_607, 6721) - // Standard Error: 1_052 - .saturating_add(Weight::from_parts(737_113, 0).saturating_mul(r.into())) + // Minimum execution time: 231_134_000 picoseconds. + Weight::from_parts(229_987_227, 6721) + // Standard Error: 1_015 + .saturating_add(Weight::from_parts(759_186, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1387,10 +1385,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 235_713_000 picoseconds. - Weight::from_parts(227_374_343, 6729) + // Minimum execution time: 233_605_000 picoseconds. + Weight::from_parts(226_028_706, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_170, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_162, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1409,10 +1407,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 234_917_000 picoseconds. - Weight::from_parts(238_898_846, 6724) - // Standard Error: 2_477 - .saturating_add(Weight::from_parts(414_604, 0).saturating_mul(r.into())) + // Minimum execution time: 231_575_000 picoseconds. + Weight::from_parts(238_239_066, 6724) + // Standard Error: 648 + .saturating_add(Weight::from_parts(412_580, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1432,10 +1430,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 234_981_000 picoseconds. - Weight::from_parts(227_027_028, 6733) + // Minimum execution time: 232_423_000 picoseconds. + Weight::from_parts(228_059_920, 6733) // Standard Error: 1 - .saturating_add(Weight::from_parts(921, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(912, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1454,10 +1452,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 235_175_000 picoseconds. - Weight::from_parts(239_420_314, 6725) - // Standard Error: 721 - .saturating_add(Weight::from_parts(412_430, 0).saturating_mul(r.into())) + // Minimum execution time: 231_449_000 picoseconds. + Weight::from_parts(237_118_530, 6725) + // Standard Error: 515 + .saturating_add(Weight::from_parts(408_892, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1477,10 +1475,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 236_534_000 picoseconds. - Weight::from_parts(226_888_935, 6727) + // Minimum execution time: 232_162_000 picoseconds. + Weight::from_parts(227_593_235, 6727) // Standard Error: 1 - .saturating_add(Weight::from_parts(919, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(913, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1498,11 +1496,11 @@ impl WeightInfo for SubstrateWeight { fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` - // Estimated: `6849 + n * (1 ±0)` - // Minimum execution time: 287_841_000 picoseconds. - Weight::from_parts(291_716_138, 6849) - // Standard Error: 9 - .saturating_add(Weight::from_parts(4_784, 0).saturating_mul(n.into())) + // Estimated: `6848 + n * (1 ±0)` + // Minimum execution time: 285_765_000 picoseconds. + Weight::from_parts(290_167_447, 6848) + // Standard Error: 8 + .saturating_add(Weight::from_parts(4_735, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1520,12 +1518,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 160]`. fn seal_sr25519_verify(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `722 + r * (112 ±0)` + // Measured: `727 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 236_849_000 picoseconds. - Weight::from_parts(249_609_479, 6666) - // Standard Error: 24_788 - .saturating_add(Weight::from_parts(48_092_283, 0).saturating_mul(r.into())) + // Minimum execution time: 238_285_000 picoseconds. + Weight::from_parts(248_656_772, 6666) + // Standard Error: 20_024 + .saturating_add(Weight::from_parts(47_904_379, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -1543,12 +1541,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `821 + r * (76 ±0)` + // Measured: `822 + r * (76 ±0)` // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 237_278_000 picoseconds. - Weight::from_parts(252_615_604, 6716) - // Standard Error: 19_873 - .saturating_add(Weight::from_parts(37_712_188, 0).saturating_mul(r.into())) + // Minimum execution time: 234_996_000 picoseconds. + Weight::from_parts(253_874_757, 6716) + // Standard Error: 25_466 + .saturating_add(Weight::from_parts(37_685_695, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -1568,10 +1566,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 236_522_000 picoseconds. - Weight::from_parts(240_006_598, 6731) - // Standard Error: 10_482 - .saturating_add(Weight::from_parts(9_328_637, 0).saturating_mul(r.into())) + // Minimum execution time: 238_796_000 picoseconds. + Weight::from_parts(244_068_258, 6731) + // Standard Error: 9_796 + .saturating_add(Weight::from_parts(9_329_911, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -1592,11 +1590,11 @@ impl WeightInfo for SubstrateWeight { fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` - // Estimated: `8190 + r * (3090 ±10)` - // Minimum execution time: 236_235_000 picoseconds. - Weight::from_parts(237_074_000, 8190) - // Standard Error: 47_720 - .saturating_add(Weight::from_parts(21_775_911, 0).saturating_mul(r.into())) + // Estimated: `8190 + r * (3090 ±7)` + // Minimum execution time: 233_889_000 picoseconds. + Weight::from_parts(234_652_000, 8190) + // Standard Error: 47_936 + .saturating_add(Weight::from_parts(21_547_627, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1618,10 +1616,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 237_550_000 picoseconds. - Weight::from_parts(240_098_295, 6723) - // Standard Error: 264 - .saturating_add(Weight::from_parts(158_581, 0).saturating_mul(r.into())) + // Minimum execution time: 232_409_000 picoseconds. + Weight::from_parts(237_661_722, 6723) + // Standard Error: 333 + .saturating_add(Weight::from_parts(169_559, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1641,10 +1639,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 237_404_000 picoseconds. - Weight::from_parts(269_172_982, 7805) - // Standard Error: 1_220 - .saturating_add(Weight::from_parts(265_048, 0).saturating_mul(r.into())) + // Minimum execution time: 234_863_000 picoseconds. + Weight::from_parts(266_269_648, 7805) + // Standard Error: 1_151 + .saturating_add(Weight::from_parts(257_423, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -1666,10 +1664,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 234_120_000 picoseconds. - Weight::from_parts(241_965_928, 6723) - // Standard Error: 350 - .saturating_add(Weight::from_parts(139_394, 0).saturating_mul(r.into())) + // Minimum execution time: 232_127_000 picoseconds. + Weight::from_parts(238_881_294, 6723) + // Standard Error: 320 + .saturating_add(Weight::from_parts(137_690, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1679,508 +1677,510 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_676_000 picoseconds. - Weight::from_parts(1_087_354, 0) - // Standard Error: 255 - .saturating_add(Weight::from_parts(3_818, 0).saturating_mul(r.into())) + // Minimum execution time: 1_567_000 picoseconds. + Weight::from_parts(1_867_809, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_979, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_745_000 picoseconds. - Weight::from_parts(2_346_191, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(6_446, 0).saturating_mul(r.into())) + // Minimum execution time: 1_727_000 picoseconds. + Weight::from_parts(2_540_267, 0) + // Standard Error: 21 + .saturating_add(Weight::from_parts(6_350, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_918_000 picoseconds. - Weight::from_parts(2_372_443, 0) + // Minimum execution time: 1_704_000 picoseconds. + Weight::from_parts(2_273_303, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_711_000 picoseconds. - Weight::from_parts(2_104_310, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(7_931, 0).saturating_mul(r.into())) + // Minimum execution time: 1_601_000 picoseconds. + Weight::from_parts(2_011_513, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(7_902, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_702_000 picoseconds. - Weight::from_parts(1_891_822, 0) - // Standard Error: 6 - .saturating_add(Weight::from_parts(10_812, 0).saturating_mul(r.into())) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(1_796_890, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(10_478, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_706_000 picoseconds. - Weight::from_parts(1_965_219, 0) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_550, 0).saturating_mul(r.into())) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_880_527, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(4_538, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_634_000 picoseconds. - Weight::from_parts(1_096_615, 0) - // Standard Error: 77 - .saturating_add(Weight::from_parts(8_104, 0).saturating_mul(r.into())) + // Minimum execution time: 1_576_000 picoseconds. + Weight::from_parts(2_302_964, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(7_387, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_738_000 picoseconds. - Weight::from_parts(1_398_537, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(9_628, 0).saturating_mul(r.into())) + // Minimum execution time: 1_627_000 picoseconds. + Weight::from_parts(1_310_508, 0) + // Standard Error: 32 + .saturating_add(Weight::from_parts(9_631, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(_e: u32, ) -> Weight { + fn instr_br_table_per_entry(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_766_000 picoseconds. - Weight::from_parts(1_930_343, 0) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(1_822_862, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(94, 0).saturating_mul(e.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_700_000 picoseconds. - Weight::from_parts(2_214_724, 0) - // Standard Error: 122 - .saturating_add(Weight::from_parts(18_040, 0).saturating_mul(r.into())) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(2_039_870, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(17_894, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_950_000 picoseconds. - Weight::from_parts(3_440_453, 0) - // Standard Error: 14 - .saturating_add(Weight::from_parts(24_264, 0).saturating_mul(r.into())) + // Minimum execution time: 1_863_000 picoseconds. + Weight::from_parts(3_007_528, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(24_231, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_745_000 picoseconds. - Weight::from_parts(2_034_196, 0) - // Standard Error: 30 - .saturating_add(Weight::from_parts(1_284, 0).saturating_mul(l.into())) + // Minimum execution time: 1_759_000 picoseconds. + Weight::from_parts(1_957_927, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_156, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_003_000 picoseconds. - Weight::from_parts(3_466_544, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(2_437, 0).saturating_mul(r.into())) + // Minimum execution time: 2_857_000 picoseconds. + Weight::from_parts(3_122_604, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(2_442, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_934_000 picoseconds. - Weight::from_parts(3_355_985, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(3_570, 0).saturating_mul(r.into())) + // Minimum execution time: 2_914_000 picoseconds. + Weight::from_parts(3_127_079, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_639, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_915_000 picoseconds. - Weight::from_parts(3_789_121, 0) - // Standard Error: 68 - .saturating_add(Weight::from_parts(3_846, 0).saturating_mul(r.into())) + // Minimum execution time: 2_900_000 picoseconds. + Weight::from_parts(3_204_307, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_946, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_799_000 picoseconds. - Weight::from_parts(2_233_970, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(8_373, 0).saturating_mul(r.into())) + // Minimum execution time: 1_741_000 picoseconds. + Weight::from_parts(2_134_827, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(8_451, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_826_000 picoseconds. - Weight::from_parts(2_179_204, 0) - // Standard Error: 46 - .saturating_add(Weight::from_parts(8_911, 0).saturating_mul(r.into())) + // Minimum execution time: 1_721_000 picoseconds. + Weight::from_parts(2_167_053, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(8_992, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_802_000 picoseconds. - Weight::from_parts(2_114_379, 0) + // Minimum execution time: 1_706_000 picoseconds. + Weight::from_parts(1_991_162, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_848, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_755, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_751_000 picoseconds. - Weight::from_parts(728_495, 0) - // Standard Error: 137_129 - .saturating_add(Weight::from_parts(13_219_932, 0).saturating_mul(r.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(511_720, 0) + // Standard Error: 138_374 + .saturating_add(Weight::from_parts(13_203_324, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_639_000 picoseconds. - Weight::from_parts(2_016_533, 0) + // Minimum execution time: 1_661_000 picoseconds. + Weight::from_parts(1_929_686, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_917, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_710_000 picoseconds. - Weight::from_parts(2_130_736, 0) - // Standard Error: 15 - .saturating_add(Weight::from_parts(3_747, 0).saturating_mul(r.into())) + // Minimum execution time: 1_563_000 picoseconds. + Weight::from_parts(2_118_935, 0) + // Standard Error: 94 + .saturating_add(Weight::from_parts(3_940, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(2_032_473, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_751, 0).saturating_mul(r.into())) + // Minimum execution time: 1_588_000 picoseconds. + Weight::from_parts(2_258_140, 0) + // Standard Error: 121 + .saturating_add(Weight::from_parts(3_862, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_676_000 picoseconds. - Weight::from_parts(2_000_504, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_664, 0).saturating_mul(r.into())) + // Minimum execution time: 1_614_000 picoseconds. + Weight::from_parts(1_950_088, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(3_679, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_791_000 picoseconds. - Weight::from_parts(2_073_161, 0) + // Minimum execution time: 1_576_000 picoseconds. + Weight::from_parts(1_931_086, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_952, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_649_000 picoseconds. - Weight::from_parts(2_043_804, 0) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_919_264, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_822, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_875, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(2_042_452, 0) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_926_040, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_728, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_832, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_645_000 picoseconds. - Weight::from_parts(2_041_099, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_953_738, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_002, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_679_000 picoseconds. - Weight::from_parts(2_074_324, 0) + // Minimum execution time: 1_584_000 picoseconds. + Weight::from_parts(1_929_381, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_937, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_012, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_697_000 picoseconds. - Weight::from_parts(1_961_870, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(6_038, 0).saturating_mul(r.into())) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(1_946_745, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_698_000 picoseconds. - Weight::from_parts(1_986_691, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + // Minimum execution time: 1_626_000 picoseconds. + Weight::from_parts(1_955_848, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(2_297_073, 0) - // Standard Error: 91 - .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) + // Minimum execution time: 1_578_000 picoseconds. + Weight::from_parts(1_967_521, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(5_815, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_669_000 picoseconds. - Weight::from_parts(2_050_538, 0) - // Standard Error: 7 - .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) + // Minimum execution time: 1_619_000 picoseconds. + Weight::from_parts(1_937_179, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_079, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_630_000 picoseconds. - Weight::from_parts(2_030_064, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(1_973_996, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_694_000 picoseconds. - Weight::from_parts(1_958_600, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_115, 0).saturating_mul(r.into())) + // Minimum execution time: 1_594_000 picoseconds. + Weight::from_parts(1_968_872, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_085, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_632_000 picoseconds. - Weight::from_parts(2_023_441, 0) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(1_959_695, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_936, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_695_000 picoseconds. - Weight::from_parts(2_033_244, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_001, 0).saturating_mul(r.into())) + // Minimum execution time: 1_609_000 picoseconds. + Weight::from_parts(1_965_085, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(2_028_827, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_891, 0).saturating_mul(r.into())) + // Minimum execution time: 1_672_000 picoseconds. + Weight::from_parts(2_281_182, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_672_000 picoseconds. - Weight::from_parts(1_389_135, 0) - // Standard Error: 65 - .saturating_add(Weight::from_parts(6_543, 0).saturating_mul(r.into())) + // Minimum execution time: 1_605_000 picoseconds. + Weight::from_parts(1_947_972, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_136, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_739_000 picoseconds. - Weight::from_parts(2_406_725, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(5_692, 0).saturating_mul(r.into())) + // Minimum execution time: 1_556_000 picoseconds. + Weight::from_parts(1_968_588, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_711, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_733_000 picoseconds. - Weight::from_parts(2_583_091, 0) - // Standard Error: 218 - .saturating_add(Weight::from_parts(11_841, 0).saturating_mul(r.into())) + // Minimum execution time: 1_621_000 picoseconds. + Weight::from_parts(1_950_465, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(11_774, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_736_000 picoseconds. - Weight::from_parts(2_123_319, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_520, 0).saturating_mul(r.into())) + // Minimum execution time: 1_611_000 picoseconds. + Weight::from_parts(1_993_703, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(10_621, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_746_000 picoseconds. - Weight::from_parts(2_621_724, 0) - // Standard Error: 24 - .saturating_add(Weight::from_parts(11_885, 0).saturating_mul(r.into())) + // Minimum execution time: 1_535_000 picoseconds. + Weight::from_parts(2_811_668, 0) + // Standard Error: 108 + .saturating_add(Weight::from_parts(11_581, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_711_000 picoseconds. - Weight::from_parts(2_013_042, 0) - // Standard Error: 8 - .saturating_add(Weight::from_parts(10_673, 0).saturating_mul(r.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(1_980_289, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(10_752, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_675_000 picoseconds. - Weight::from_parts(2_155_962, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(5_619, 0).saturating_mul(r.into())) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(1_938_982, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_682, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_651_000 picoseconds. - Weight::from_parts(2_009_049, 0) + // Minimum execution time: 1_600_000 picoseconds. + Weight::from_parts(1_957_896, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_757, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_756, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_705_000 picoseconds. - Weight::from_parts(1_986_346, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_917, 0).saturating_mul(r.into())) + // Minimum execution time: 1_615_000 picoseconds. + Weight::from_parts(1_993_774, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_669_000 picoseconds. - Weight::from_parts(2_023_827, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_941, 0).saturating_mul(r.into())) + // Minimum execution time: 1_610_000 picoseconds. + Weight::from_parts(1_938_640, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_846, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_663_000 picoseconds. - Weight::from_parts(2_025_828, 0) + // Minimum execution time: 1_617_000 picoseconds. + Weight::from_parts(1_935_145, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_119, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_140, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(2_312_272, 0) - // Standard Error: 62 - .saturating_add(Weight::from_parts(5_856, 0).saturating_mul(r.into())) + // Minimum execution time: 1_600_000 picoseconds. + Weight::from_parts(1_949_145, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_854, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_795_000 picoseconds. - Weight::from_parts(2_094_996, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_981, 0).saturating_mul(r.into())) + // Minimum execution time: 1_630_000 picoseconds. + Weight::from_parts(2_001_185, 0) + // Standard Error: 192 + .saturating_add(Weight::from_parts(6_148, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_713_000 picoseconds. - Weight::from_parts(2_118_369, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_833, 0).saturating_mul(r.into())) + // Minimum execution time: 1_590_000 picoseconds. + Weight::from_parts(2_224_670, 0) + // Standard Error: 47 + .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) } } @@ -2192,8 +2192,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_600_000 picoseconds. - Weight::from_parts(2_715_000, 1594) + // Minimum execution time: 2_661_000 picoseconds. + Weight::from_parts(2_787_000, 1594) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -2203,10 +2203,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_433_000 picoseconds. - Weight::from_parts(9_206_955, 478) - // Standard Error: 1_428 - .saturating_add(Weight::from_parts(975_783, 0).saturating_mul(k.into())) + // Minimum execution time: 13_333_000 picoseconds. + Weight::from_parts(9_200_088, 478) + // Standard Error: 1_110 + .saturating_add(Weight::from_parts(978_387, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2222,10 +2222,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 30_877_000 picoseconds. - Weight::from_parts(24_692_209, 3708) - // Standard Error: 61 - .saturating_add(Weight::from_parts(56_159, 0).saturating_mul(c.into())) + // Minimum execution time: 30_794_000 picoseconds. + Weight::from_parts(26_004_701, 3708) + // Standard Error: 57 + .saturating_add(Weight::from_parts(55_259, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2245,10 +2245,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 264_158_000 picoseconds. - Weight::from_parts(270_385_802, 6656) - // Standard Error: 29 - .saturating_add(Weight::from_parts(38_112, 0).saturating_mul(c.into())) + // Minimum execution time: 261_605_000 picoseconds. + Weight::from_parts(267_417_927, 6656) + // Standard Error: 30 + .saturating_add(Weight::from_parts(37_987, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2276,14 +2276,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_133_423_000 picoseconds. - Weight::from_parts(579_477_658, 8659) - // Standard Error: 276 - .saturating_add(Weight::from_parts(106_752, 0).saturating_mul(c.into())) + // Minimum execution time: 3_158_042_000 picoseconds. + Weight::from_parts(619_625_354, 8659) + // Standard Error: 283 + .saturating_add(Weight::from_parts(106_531, 0).saturating_mul(c.into())) // Standard Error: 16 - .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_117, 0).saturating_mul(i.into())) // Standard Error: 16 - .saturating_add(Weight::from_parts(1_418, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_436, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } @@ -2307,12 +2307,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_650_429_000 picoseconds. - Weight::from_parts(294_221_501, 6408) + // Minimum execution time: 1_643_595_000 picoseconds. + Weight::from_parts(254_234_497, 6408) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_446, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_462, 0).saturating_mul(i.into())) // Standard Error: 8 - .saturating_add(Weight::from_parts(1_433, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_456, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -2330,8 +2330,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 191_782_000 picoseconds. - Weight::from_parts(192_980_000, 6699) + // Minimum execution time: 190_529_000 picoseconds. + Weight::from_parts(191_707_000, 6699) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2348,10 +2348,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 246_068_000 picoseconds. - Weight::from_parts(286_606_707, 3574) - // Standard Error: 89 - .saturating_add(Weight::from_parts(108_514, 0).saturating_mul(c.into())) + // Minimum execution time: 247_906_000 picoseconds. + Weight::from_parts(279_637_289, 3574) + // Standard Error: 95 + .saturating_add(Weight::from_parts(108_562, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2367,8 +2367,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_692_000 picoseconds. - Weight::from_parts(34_214_000, 3720) + // Minimum execution time: 33_533_000 picoseconds. + Weight::from_parts(33_999_000, 3720) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2382,8 +2382,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 33_715_000 picoseconds. - Weight::from_parts(34_232_000, 8985) + // Minimum execution time: 32_810_000 picoseconds. + Weight::from_parts(33_571_000, 8985) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2402,10 +2402,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 235_571_000 picoseconds. - Weight::from_parts(235_995_099, 6722) - // Standard Error: 881 - .saturating_add(Weight::from_parts(343_678, 0).saturating_mul(r.into())) + // Minimum execution time: 233_387_000 picoseconds. + Weight::from_parts(234_921_537, 6722) + // Standard Error: 1_192 + .saturating_add(Weight::from_parts(332_647, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2425,10 +2425,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 235_423_000 picoseconds. - Weight::from_parts(77_496_153, 6743) - // Standard Error: 6_327 - .saturating_add(Weight::from_parts(3_401_948, 0).saturating_mul(r.into())) + // Minimum execution time: 236_852_000 picoseconds. + Weight::from_parts(69_151_959, 6743) + // Standard Error: 6_662 + .saturating_add(Weight::from_parts(3_287_315, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2449,10 +2449,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 238_449_000 picoseconds. - Weight::from_parts(75_802_338, 6747) - // Standard Error: 6_281 - .saturating_add(Weight::from_parts(4_173_432, 0).saturating_mul(r.into())) + // Minimum execution time: 235_205_000 picoseconds. + Weight::from_parts(79_396_834, 6747) + // Standard Error: 6_164 + .saturating_add(Weight::from_parts(4_074_268, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2473,10 +2473,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 236_091_000 picoseconds. - Weight::from_parts(238_500_775, 6730) - // Standard Error: 784 - .saturating_add(Weight::from_parts(398_956, 0).saturating_mul(r.into())) + // Minimum execution time: 235_764_000 picoseconds. + Weight::from_parts(240_942_560, 6730) + // Standard Error: 929 + .saturating_add(Weight::from_parts(408_756, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2496,16 +2496,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 233_566_000 picoseconds. - Weight::from_parts(239_002_284, 6723) - // Standard Error: 335 - .saturating_add(Weight::from_parts(164_563, 0).saturating_mul(r.into())) + // Minimum execution time: 231_845_000 picoseconds. + Weight::from_parts(238_194_676, 6723) + // Standard Error: 371 + .saturating_add(Weight::from_parts(174_006, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) /// Storage: Contracts ContractInfoOf (r:1 w:1) /// Proof: Contracts ContractInfoOf (max_values: None, max_size: Some(290), added: 2765, mode: Measured) /// Storage: Contracts CodeStorage (r:1 w:0) @@ -2517,12 +2515,12 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1600]`. fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `774 + r * (3 ±0)` - // Estimated: `6652 + r * (3 ±0)` - // Minimum execution time: 234_000_000 picoseconds. - Weight::from_parts(231_285_526, 6652) - // Standard Error: 1_854 - .saturating_add(Weight::from_parts(161_318, 0).saturating_mul(r.into())) + // Measured: `668 + r * (3 ±0)` + // Estimated: `6608 + r * (3 ±0)` + // Minimum execution time: 222_659_000 picoseconds. + Weight::from_parts(235_813_742, 6608) + // Standard Error: 607 + .saturating_add(Weight::from_parts(138_487, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -2542,10 +2540,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 236_478_000 picoseconds. - Weight::from_parts(238_040_595, 6724) - // Standard Error: 613 - .saturating_add(Weight::from_parts(319_183, 0).saturating_mul(r.into())) + // Minimum execution time: 233_880_000 picoseconds. + Weight::from_parts(237_668_061, 6724) + // Standard Error: 575 + .saturating_add(Weight::from_parts(324_866, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2565,10 +2563,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `783 + r * (6 ±0)` // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 235_931_000 picoseconds. - Weight::from_parts(237_471_646, 6721) - // Standard Error: 467 - .saturating_add(Weight::from_parts(314_347, 0).saturating_mul(r.into())) + // Minimum execution time: 235_520_000 picoseconds. + Weight::from_parts(241_766_962, 6721) + // Standard Error: 1_396 + .saturating_add(Weight::from_parts(315_306, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2588,10 +2586,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 236_712_000 picoseconds. - Weight::from_parts(244_060_767, 6846) - // Standard Error: 1_395 - .saturating_add(Weight::from_parts(1_475_685, 0).saturating_mul(r.into())) + // Minimum execution time: 233_222_000 picoseconds. + Weight::from_parts(239_312_284, 6846) + // Standard Error: 1_532 + .saturating_add(Weight::from_parts(1_483_120, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2611,10 +2609,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 238_732_000 picoseconds. - Weight::from_parts(242_053_124, 6741) - // Standard Error: 1_087 - .saturating_add(Weight::from_parts(316_668, 0).saturating_mul(r.into())) + // Minimum execution time: 233_662_000 picoseconds. + Weight::from_parts(236_485_627, 6741) + // Standard Error: 748 + .saturating_add(Weight::from_parts(322_657, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2634,10 +2632,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 234_851_000 picoseconds. - Weight::from_parts(237_432_075, 6739) - // Standard Error: 691 - .saturating_add(Weight::from_parts(317_388, 0).saturating_mul(r.into())) + // Minimum execution time: 233_211_000 picoseconds. + Weight::from_parts(238_177_678, 6739) + // Standard Error: 595 + .saturating_add(Weight::from_parts(324_725, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2657,10 +2655,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 235_860_000 picoseconds. - Weight::from_parts(238_194_528, 6737) - // Standard Error: 593 - .saturating_add(Weight::from_parts(312_333, 0).saturating_mul(r.into())) + // Minimum execution time: 233_563_000 picoseconds. + Weight::from_parts(245_395_891, 6737) + // Standard Error: 819 + .saturating_add(Weight::from_parts(307_701, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2680,10 +2678,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 235_508_000 picoseconds. - Weight::from_parts(239_774_719, 6723) - // Standard Error: 614 - .saturating_add(Weight::from_parts(312_177, 0).saturating_mul(r.into())) + // Minimum execution time: 234_252_000 picoseconds. + Weight::from_parts(223_648_254, 6723) + // Standard Error: 4_056 + .saturating_add(Weight::from_parts(347_982, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2705,10 +2703,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (10 ±0)` // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 235_887_000 picoseconds. - Weight::from_parts(256_683_177, 6796) - // Standard Error: 2_084 - .saturating_add(Weight::from_parts(1_331_687, 0).saturating_mul(r.into())) + // Minimum execution time: 238_102_000 picoseconds. + Weight::from_parts(239_749_728, 6796) + // Standard Error: 1_360 + .saturating_add(Weight::from_parts(1_316_355, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2728,10 +2726,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 162_104_000 picoseconds. - Weight::from_parts(165_122_621, 6687) - // Standard Error: 199 - .saturating_add(Weight::from_parts(130_093, 0).saturating_mul(r.into())) + // Minimum execution time: 159_941_000 picoseconds. + Weight::from_parts(162_309_186, 6687) + // Standard Error: 287 + .saturating_add(Weight::from_parts(132_728, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -2751,10 +2749,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 237_437_000 picoseconds. - Weight::from_parts(239_257_819, 6724) - // Standard Error: 455 - .saturating_add(Weight::from_parts(264_198, 0).saturating_mul(r.into())) + // Minimum execution time: 234_050_000 picoseconds. + Weight::from_parts(238_613_120, 6724) + // Standard Error: 566 + .saturating_add(Weight::from_parts(270_500, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2774,10 +2772,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 236_976_000 picoseconds. - Weight::from_parts(239_821_317, 6724) + // Minimum execution time: 234_536_000 picoseconds. + Weight::from_parts(237_085_631, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(593, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(594, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2796,10 +2794,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 232_513_000 picoseconds. - Weight::from_parts(234_557_653, 6708) - // Standard Error: 122_653 - .saturating_add(Weight::from_parts(6_579_246, 0).saturating_mul(r.into())) + // Minimum execution time: 229_831_000 picoseconds. + Weight::from_parts(232_252_195, 6708) + // Standard Error: 185_133 + .saturating_add(Weight::from_parts(2_568_004, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -2819,10 +2817,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 235_970_000 picoseconds. - Weight::from_parts(236_571_619, 6731) + // Minimum execution time: 232_961_000 picoseconds. + Weight::from_parts(234_505_222, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(182, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2847,10 +2845,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 234_844_000 picoseconds. - Weight::from_parts(237_175_734, 6750) - // Standard Error: 248_496 - .saturating_add(Weight::from_parts(112_212_465, 0).saturating_mul(r.into())) + // Minimum execution time: 232_108_000 picoseconds. + Weight::from_parts(234_419_967, 6750) + // Standard Error: 187_499 + .saturating_add(Weight::from_parts(111_606_232, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2874,10 +2872,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 236_228_000 picoseconds. - Weight::from_parts(249_625_033, 6769) - // Standard Error: 3_224 - .saturating_add(Weight::from_parts(1_815_617, 0).saturating_mul(r.into())) + // Minimum execution time: 232_610_000 picoseconds. + Weight::from_parts(220_273_892, 6769) + // Standard Error: 8_615 + .saturating_add(Weight::from_parts(1_785_371, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2897,10 +2895,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 233_749_000 picoseconds. - Weight::from_parts(248_703_905, 6723) - // Standard Error: 3_350 - .saturating_add(Weight::from_parts(3_461_139, 0).saturating_mul(r.into())) + // Minimum execution time: 235_643_000 picoseconds. + Weight::from_parts(236_073_438, 6723) + // Standard Error: 4_293 + .saturating_add(Weight::from_parts(3_522_474, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2921,12 +2919,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 252_487_000 picoseconds. - Weight::from_parts(245_397_625, 6744) - // Standard Error: 36_993 - .saturating_add(Weight::from_parts(2_325_838, 0).saturating_mul(t.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(640, 0).saturating_mul(n.into())) + // Minimum execution time: 249_523_000 picoseconds. + Weight::from_parts(242_899_550, 6744) + // Standard Error: 128_273 + .saturating_add(Weight::from_parts(2_465_286, 0).saturating_mul(t.into())) + // Standard Error: 35 + .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2948,10 +2946,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 164_234_000 picoseconds. - Weight::from_parts(169_906_692, 6721) - // Standard Error: 397 - .saturating_add(Weight::from_parts(234_001, 0).saturating_mul(r.into())) + // Minimum execution time: 168_506_000 picoseconds. + Weight::from_parts(170_965_622, 6721) + // Standard Error: 467 + .saturating_add(Weight::from_parts(229_178, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -2971,10 +2969,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 350_437_000 picoseconds. - Weight::from_parts(353_969_730, 131670) + // Minimum execution time: 348_623_000 picoseconds. + Weight::from_parts(351_973_362, 131670) // Standard Error: 1 - .saturating_add(Weight::from_parts(740, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(737, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2985,10 +2983,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 238_028_000 picoseconds. - Weight::from_parts(136_909_395, 843) - // Standard Error: 10_150 - .saturating_add(Weight::from_parts(6_109_652, 0).saturating_mul(r.into())) + // Minimum execution time: 235_220_000 picoseconds. + Weight::from_parts(128_121_818, 843) + // Standard Error: 10_853 + .saturating_add(Weight::from_parts(6_068_708, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3002,10 +3000,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 252_051_000 picoseconds. - Weight::from_parts(285_967_242, 1280) - // Standard Error: 55 - .saturating_add(Weight::from_parts(524, 0).saturating_mul(n.into())) + // Minimum execution time: 249_836_000 picoseconds. + Weight::from_parts(283_071_034, 1280) + // Standard Error: 53 + .saturating_add(Weight::from_parts(568, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -3016,10 +3014,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 252_269_000 picoseconds. - Weight::from_parts(255_074_775, 1167) - // Standard Error: 18 - .saturating_add(Weight::from_parts(15, 0).saturating_mul(n.into())) + // Minimum execution time: 249_863_000 picoseconds. + Weight::from_parts(251_254_415, 1167) + // Standard Error: 15 + .saturating_add(Weight::from_parts(188, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3031,10 +3029,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 235_787_000 picoseconds. - Weight::from_parts(130_369_537, 845) - // Standard Error: 10_839 - .saturating_add(Weight::from_parts(5_950_753, 0).saturating_mul(r.into())) + // Minimum execution time: 234_207_000 picoseconds. + Weight::from_parts(123_627_181, 845) + // Standard Error: 11_658 + .saturating_add(Weight::from_parts(5_965_477, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3048,10 +3046,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 251_156_000 picoseconds. - Weight::from_parts(253_747_923, 1163) - // Standard Error: 15 - .saturating_add(Weight::from_parts(50, 0).saturating_mul(n.into())) + // Minimum execution time: 249_192_000 picoseconds. + Weight::from_parts(251_416_488, 1163) + // Standard Error: 20 + .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3063,10 +3061,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 236_495_000 picoseconds. - Weight::from_parts(150_510_825, 840) - // Standard Error: 8_460 - .saturating_add(Weight::from_parts(4_939_505, 0).saturating_mul(r.into())) + // Minimum execution time: 234_625_000 picoseconds. + Weight::from_parts(152_907_247, 840) + // Standard Error: 8_450 + .saturating_add(Weight::from_parts(4_885_053, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3079,10 +3077,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 250_613_000 picoseconds. - Weight::from_parts(253_574_859, 1179) - // Standard Error: 81 - .saturating_add(Weight::from_parts(717, 0).saturating_mul(n.into())) + // Minimum execution time: 247_608_000 picoseconds. + Weight::from_parts(250_954_256, 1179) + // Standard Error: 18 + .saturating_add(Weight::from_parts(631, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3094,10 +3092,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 236_708_000 picoseconds. - Weight::from_parts(148_414_588, 857) - // Standard Error: 9_022 - .saturating_add(Weight::from_parts(4_747_502, 0).saturating_mul(r.into())) + // Minimum execution time: 234_627_000 picoseconds. + Weight::from_parts(151_776_174, 857) + // Standard Error: 8_477 + .saturating_add(Weight::from_parts(4_744_179, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3110,10 +3108,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 250_111_000 picoseconds. - Weight::from_parts(253_321_958, 1166) - // Standard Error: 20 - .saturating_add(Weight::from_parts(79, 0).saturating_mul(n.into())) + // Minimum execution time: 246_948_000 picoseconds. + Weight::from_parts(248_993_362, 1166) + // Standard Error: 13 + .saturating_add(Weight::from_parts(109, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3125,10 +3123,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 237_125_000 picoseconds. - Weight::from_parts(132_837_839, 836) - // Standard Error: 9_981 - .saturating_add(Weight::from_parts(6_121_252, 0).saturating_mul(r.into())) + // Minimum execution time: 234_041_000 picoseconds. + Weight::from_parts(132_346_798, 836) + // Standard Error: 10_502 + .saturating_add(Weight::from_parts(6_144_249, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3142,10 +3140,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 253_361_000 picoseconds. - Weight::from_parts(255_205_458, 1180) - // Standard Error: 28 - .saturating_add(Weight::from_parts(718, 0).saturating_mul(n.into())) + // Minimum execution time: 249_246_000 picoseconds. + Weight::from_parts(253_617_941, 1180) + // Standard Error: 18 + .saturating_add(Weight::from_parts(598, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3165,10 +3163,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 236_830_000 picoseconds. - Weight::from_parts(237_822_000, 7270) - // Standard Error: 37_843 - .saturating_add(Weight::from_parts(35_902_173, 0).saturating_mul(r.into())) + // Minimum execution time: 235_344_000 picoseconds. + Weight::from_parts(72_196_493, 7270) + // Standard Error: 42_917 + .saturating_add(Weight::from_parts(35_138_209, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3190,10 +3188,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1237 + r * (256 ±0)` // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 237_103_000 picoseconds. - Weight::from_parts(238_035_000, 9408) - // Standard Error: 76_102 - .saturating_add(Weight::from_parts(212_124_187, 0).saturating_mul(r.into())) + // Minimum execution time: 235_870_000 picoseconds. + Weight::from_parts(236_428_000, 9408) + // Standard Error: 83_578 + .saturating_add(Weight::from_parts(209_341_301, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3215,10 +3213,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` // Estimated: `6727 + r * (2572 ±3)` - // Minimum execution time: 237_183_000 picoseconds. - Weight::from_parts(238_216_000, 6727) - // Standard Error: 102_939 - .saturating_add(Weight::from_parts(207_259_343, 0).saturating_mul(r.into())) + // Minimum execution time: 235_444_000 picoseconds. + Weight::from_parts(235_953_000, 6727) + // Standard Error: 103_757 + .saturating_add(Weight::from_parts(204_940_640, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3241,12 +3239,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 411_460_000 picoseconds. - Weight::from_parts(364_931_660, 12044) - // Standard Error: 2_437_565 - .saturating_add(Weight::from_parts(47_925_606, 0).saturating_mul(t.into())) - // Standard Error: 3 - .saturating_add(Weight::from_parts(616, 0).saturating_mul(c.into())) + // Minimum execution time: 408_108_000 picoseconds. + Weight::from_parts(373_220_662, 12044) + // Standard Error: 1_022_276 + .saturating_add(Weight::from_parts(35_858_434, 0).saturating_mul(t.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(604, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3272,10 +3270,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1301 + r * (254 ±0)` // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 237_168_000 picoseconds. - Weight::from_parts(237_546_000, 7131) - // Standard Error: 234_330 - .saturating_add(Weight::from_parts(346_250_515, 0).saturating_mul(r.into())) + // Minimum execution time: 236_618_000 picoseconds. + Weight::from_parts(237_531_000, 7131) + // Standard Error: 239_755 + .saturating_add(Weight::from_parts(340_894_468, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3303,14 +3301,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_617_284_000 picoseconds. - Weight::from_parts(335_685_069, 9492) - // Standard Error: 4_437_347 - .saturating_add(Weight::from_parts(109_876_701, 0).saturating_mul(t.into())) + // Minimum execution time: 1_612_127_000 picoseconds. + Weight::from_parts(332_415_772, 9492) + // Standard Error: 4_498_764 + .saturating_add(Weight::from_parts(116_134_047, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_170, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_345, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_338, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(10_u64)) @@ -3332,10 +3330,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 234_247_000 picoseconds. - Weight::from_parts(239_124_638, 6718) - // Standard Error: 792 - .saturating_add(Weight::from_parts(568_017, 0).saturating_mul(r.into())) + // Minimum execution time: 236_324_000 picoseconds. + Weight::from_parts(237_545_620, 6718) + // Standard Error: 4_111 + .saturating_add(Weight::from_parts(581_032, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3355,10 +3353,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 235_366_000 picoseconds. - Weight::from_parts(230_047_301, 6725) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(n.into())) + // Minimum execution time: 239_019_000 picoseconds. + Weight::from_parts(226_388_314, 6725) + // Standard Error: 6 + .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3377,10 +3375,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 233_267_000 picoseconds. - Weight::from_parts(241_166_607, 6721) - // Standard Error: 1_052 - .saturating_add(Weight::from_parts(737_113, 0).saturating_mul(r.into())) + // Minimum execution time: 231_134_000 picoseconds. + Weight::from_parts(229_987_227, 6721) + // Standard Error: 1_015 + .saturating_add(Weight::from_parts(759_186, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3400,10 +3398,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 235_713_000 picoseconds. - Weight::from_parts(227_374_343, 6729) + // Minimum execution time: 233_605_000 picoseconds. + Weight::from_parts(226_028_706, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_170, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_162, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3422,10 +3420,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 234_917_000 picoseconds. - Weight::from_parts(238_898_846, 6724) - // Standard Error: 2_477 - .saturating_add(Weight::from_parts(414_604, 0).saturating_mul(r.into())) + // Minimum execution time: 231_575_000 picoseconds. + Weight::from_parts(238_239_066, 6724) + // Standard Error: 648 + .saturating_add(Weight::from_parts(412_580, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3445,10 +3443,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 234_981_000 picoseconds. - Weight::from_parts(227_027_028, 6733) + // Minimum execution time: 232_423_000 picoseconds. + Weight::from_parts(228_059_920, 6733) // Standard Error: 1 - .saturating_add(Weight::from_parts(921, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(912, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3467,10 +3465,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 235_175_000 picoseconds. - Weight::from_parts(239_420_314, 6725) - // Standard Error: 721 - .saturating_add(Weight::from_parts(412_430, 0).saturating_mul(r.into())) + // Minimum execution time: 231_449_000 picoseconds. + Weight::from_parts(237_118_530, 6725) + // Standard Error: 515 + .saturating_add(Weight::from_parts(408_892, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3490,10 +3488,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 236_534_000 picoseconds. - Weight::from_parts(226_888_935, 6727) + // Minimum execution time: 232_162_000 picoseconds. + Weight::from_parts(227_593_235, 6727) // Standard Error: 1 - .saturating_add(Weight::from_parts(919, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(913, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3511,11 +3509,11 @@ impl WeightInfo for () { fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` - // Estimated: `6849 + n * (1 ±0)` - // Minimum execution time: 287_841_000 picoseconds. - Weight::from_parts(291_716_138, 6849) - // Standard Error: 9 - .saturating_add(Weight::from_parts(4_784, 0).saturating_mul(n.into())) + // Estimated: `6848 + n * (1 ±0)` + // Minimum execution time: 285_765_000 picoseconds. + Weight::from_parts(290_167_447, 6848) + // Standard Error: 8 + .saturating_add(Weight::from_parts(4_735, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3533,12 +3531,12 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 160]`. fn seal_sr25519_verify(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `722 + r * (112 ±0)` + // Measured: `727 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 236_849_000 picoseconds. - Weight::from_parts(249_609_479, 6666) - // Standard Error: 24_788 - .saturating_add(Weight::from_parts(48_092_283, 0).saturating_mul(r.into())) + // Minimum execution time: 238_285_000 picoseconds. + Weight::from_parts(248_656_772, 6666) + // Standard Error: 20_024 + .saturating_add(Weight::from_parts(47_904_379, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -3556,12 +3554,12 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `821 + r * (76 ±0)` + // Measured: `822 + r * (76 ±0)` // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 237_278_000 picoseconds. - Weight::from_parts(252_615_604, 6716) - // Standard Error: 19_873 - .saturating_add(Weight::from_parts(37_712_188, 0).saturating_mul(r.into())) + // Minimum execution time: 234_996_000 picoseconds. + Weight::from_parts(253_874_757, 6716) + // Standard Error: 25_466 + .saturating_add(Weight::from_parts(37_685_695, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -3581,10 +3579,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 236_522_000 picoseconds. - Weight::from_parts(240_006_598, 6731) - // Standard Error: 10_482 - .saturating_add(Weight::from_parts(9_328_637, 0).saturating_mul(r.into())) + // Minimum execution time: 238_796_000 picoseconds. + Weight::from_parts(244_068_258, 6731) + // Standard Error: 9_796 + .saturating_add(Weight::from_parts(9_329_911, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -3605,11 +3603,11 @@ impl WeightInfo for () { fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` - // Estimated: `8190 + r * (3090 ±10)` - // Minimum execution time: 236_235_000 picoseconds. - Weight::from_parts(237_074_000, 8190) - // Standard Error: 47_720 - .saturating_add(Weight::from_parts(21_775_911, 0).saturating_mul(r.into())) + // Estimated: `8190 + r * (3090 ±7)` + // Minimum execution time: 233_889_000 picoseconds. + Weight::from_parts(234_652_000, 8190) + // Standard Error: 47_936 + .saturating_add(Weight::from_parts(21_547_627, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3631,10 +3629,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 237_550_000 picoseconds. - Weight::from_parts(240_098_295, 6723) - // Standard Error: 264 - .saturating_add(Weight::from_parts(158_581, 0).saturating_mul(r.into())) + // Minimum execution time: 232_409_000 picoseconds. + Weight::from_parts(237_661_722, 6723) + // Standard Error: 333 + .saturating_add(Weight::from_parts(169_559, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3654,10 +3652,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 237_404_000 picoseconds. - Weight::from_parts(269_172_982, 7805) - // Standard Error: 1_220 - .saturating_add(Weight::from_parts(265_048, 0).saturating_mul(r.into())) + // Minimum execution time: 234_863_000 picoseconds. + Weight::from_parts(266_269_648, 7805) + // Standard Error: 1_151 + .saturating_add(Weight::from_parts(257_423, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -3679,10 +3677,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 234_120_000 picoseconds. - Weight::from_parts(241_965_928, 6723) - // Standard Error: 350 - .saturating_add(Weight::from_parts(139_394, 0).saturating_mul(r.into())) + // Minimum execution time: 232_127_000 picoseconds. + Weight::from_parts(238_881_294, 6723) + // Standard Error: 320 + .saturating_add(Weight::from_parts(137_690, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3692,507 +3690,509 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_676_000 picoseconds. - Weight::from_parts(1_087_354, 0) - // Standard Error: 255 - .saturating_add(Weight::from_parts(3_818, 0).saturating_mul(r.into())) + // Minimum execution time: 1_567_000 picoseconds. + Weight::from_parts(1_867_809, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_979, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_745_000 picoseconds. - Weight::from_parts(2_346_191, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(6_446, 0).saturating_mul(r.into())) + // Minimum execution time: 1_727_000 picoseconds. + Weight::from_parts(2_540_267, 0) + // Standard Error: 21 + .saturating_add(Weight::from_parts(6_350, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_918_000 picoseconds. - Weight::from_parts(2_372_443, 0) + // Minimum execution time: 1_704_000 picoseconds. + Weight::from_parts(2_273_303, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_711_000 picoseconds. - Weight::from_parts(2_104_310, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(7_931, 0).saturating_mul(r.into())) + // Minimum execution time: 1_601_000 picoseconds. + Weight::from_parts(2_011_513, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(7_902, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_702_000 picoseconds. - Weight::from_parts(1_891_822, 0) - // Standard Error: 6 - .saturating_add(Weight::from_parts(10_812, 0).saturating_mul(r.into())) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(1_796_890, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(10_478, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_706_000 picoseconds. - Weight::from_parts(1_965_219, 0) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_550, 0).saturating_mul(r.into())) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_880_527, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(4_538, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_634_000 picoseconds. - Weight::from_parts(1_096_615, 0) - // Standard Error: 77 - .saturating_add(Weight::from_parts(8_104, 0).saturating_mul(r.into())) + // Minimum execution time: 1_576_000 picoseconds. + Weight::from_parts(2_302_964, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(7_387, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_738_000 picoseconds. - Weight::from_parts(1_398_537, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(9_628, 0).saturating_mul(r.into())) + // Minimum execution time: 1_627_000 picoseconds. + Weight::from_parts(1_310_508, 0) + // Standard Error: 32 + .saturating_add(Weight::from_parts(9_631, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. - fn instr_br_table_per_entry(_e: u32, ) -> Weight { + fn instr_br_table_per_entry(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_766_000 picoseconds. - Weight::from_parts(1_930_343, 0) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(1_822_862, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(94, 0).saturating_mul(e.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_700_000 picoseconds. - Weight::from_parts(2_214_724, 0) - // Standard Error: 122 - .saturating_add(Weight::from_parts(18_040, 0).saturating_mul(r.into())) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(2_039_870, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(17_894, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_950_000 picoseconds. - Weight::from_parts(3_440_453, 0) - // Standard Error: 14 - .saturating_add(Weight::from_parts(24_264, 0).saturating_mul(r.into())) + // Minimum execution time: 1_863_000 picoseconds. + Weight::from_parts(3_007_528, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(24_231, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_745_000 picoseconds. - Weight::from_parts(2_034_196, 0) - // Standard Error: 30 - .saturating_add(Weight::from_parts(1_284, 0).saturating_mul(l.into())) + // Minimum execution time: 1_759_000 picoseconds. + Weight::from_parts(1_957_927, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_156, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_003_000 picoseconds. - Weight::from_parts(3_466_544, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(2_437, 0).saturating_mul(r.into())) + // Minimum execution time: 2_857_000 picoseconds. + Weight::from_parts(3_122_604, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(2_442, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_934_000 picoseconds. - Weight::from_parts(3_355_985, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(3_570, 0).saturating_mul(r.into())) + // Minimum execution time: 2_914_000 picoseconds. + Weight::from_parts(3_127_079, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_639, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_915_000 picoseconds. - Weight::from_parts(3_789_121, 0) - // Standard Error: 68 - .saturating_add(Weight::from_parts(3_846, 0).saturating_mul(r.into())) + // Minimum execution time: 2_900_000 picoseconds. + Weight::from_parts(3_204_307, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_946, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_799_000 picoseconds. - Weight::from_parts(2_233_970, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(8_373, 0).saturating_mul(r.into())) + // Minimum execution time: 1_741_000 picoseconds. + Weight::from_parts(2_134_827, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(8_451, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_826_000 picoseconds. - Weight::from_parts(2_179_204, 0) - // Standard Error: 46 - .saturating_add(Weight::from_parts(8_911, 0).saturating_mul(r.into())) + // Minimum execution time: 1_721_000 picoseconds. + Weight::from_parts(2_167_053, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(8_992, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_802_000 picoseconds. - Weight::from_parts(2_114_379, 0) + // Minimum execution time: 1_706_000 picoseconds. + Weight::from_parts(1_991_162, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_848, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_755, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_751_000 picoseconds. - Weight::from_parts(728_495, 0) - // Standard Error: 137_129 - .saturating_add(Weight::from_parts(13_219_932, 0).saturating_mul(r.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(511_720, 0) + // Standard Error: 138_374 + .saturating_add(Weight::from_parts(13_203_324, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_639_000 picoseconds. - Weight::from_parts(2_016_533, 0) + // Minimum execution time: 1_661_000 picoseconds. + Weight::from_parts(1_929_686, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_917, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_710_000 picoseconds. - Weight::from_parts(2_130_736, 0) - // Standard Error: 15 - .saturating_add(Weight::from_parts(3_747, 0).saturating_mul(r.into())) + // Minimum execution time: 1_563_000 picoseconds. + Weight::from_parts(2_118_935, 0) + // Standard Error: 94 + .saturating_add(Weight::from_parts(3_940, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_678_000 picoseconds. - Weight::from_parts(2_032_473, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_751, 0).saturating_mul(r.into())) + // Minimum execution time: 1_588_000 picoseconds. + Weight::from_parts(2_258_140, 0) + // Standard Error: 121 + .saturating_add(Weight::from_parts(3_862, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_676_000 picoseconds. - Weight::from_parts(2_000_504, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_664, 0).saturating_mul(r.into())) + // Minimum execution time: 1_614_000 picoseconds. + Weight::from_parts(1_950_088, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(3_679, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_791_000 picoseconds. - Weight::from_parts(2_073_161, 0) + // Minimum execution time: 1_576_000 picoseconds. + Weight::from_parts(1_931_086, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_952, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_649_000 picoseconds. - Weight::from_parts(2_043_804, 0) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_919_264, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_822, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_875, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(2_042_452, 0) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_926_040, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_728, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_832, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_645_000 picoseconds. - Weight::from_parts(2_041_099, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_953_738, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_002, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_679_000 picoseconds. - Weight::from_parts(2_074_324, 0) + // Minimum execution time: 1_584_000 picoseconds. + Weight::from_parts(1_929_381, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_937, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_012, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_697_000 picoseconds. - Weight::from_parts(1_961_870, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(6_038, 0).saturating_mul(r.into())) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(1_946_745, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_698_000 picoseconds. - Weight::from_parts(1_986_691, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + // Minimum execution time: 1_626_000 picoseconds. + Weight::from_parts(1_955_848, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_709_000 picoseconds. - Weight::from_parts(2_297_073, 0) - // Standard Error: 91 - .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) + // Minimum execution time: 1_578_000 picoseconds. + Weight::from_parts(1_967_521, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(5_815, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_669_000 picoseconds. - Weight::from_parts(2_050_538, 0) - // Standard Error: 7 - .saturating_add(Weight::from_parts(6_110, 0).saturating_mul(r.into())) + // Minimum execution time: 1_619_000 picoseconds. + Weight::from_parts(1_937_179, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_079, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_630_000 picoseconds. - Weight::from_parts(2_030_064, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_986, 0).saturating_mul(r.into())) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(1_973_996, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_694_000 picoseconds. - Weight::from_parts(1_958_600, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_115, 0).saturating_mul(r.into())) + // Minimum execution time: 1_594_000 picoseconds. + Weight::from_parts(1_968_872, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_085, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_632_000 picoseconds. - Weight::from_parts(2_023_441, 0) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(1_959_695, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_948, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_936, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_695_000 picoseconds. - Weight::from_parts(2_033_244, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(6_001, 0).saturating_mul(r.into())) + // Minimum execution time: 1_609_000 picoseconds. + Weight::from_parts(1_965_085, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(2_028_827, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_891, 0).saturating_mul(r.into())) + // Minimum execution time: 1_672_000 picoseconds. + Weight::from_parts(2_281_182, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_672_000 picoseconds. - Weight::from_parts(1_389_135, 0) - // Standard Error: 65 - .saturating_add(Weight::from_parts(6_543, 0).saturating_mul(r.into())) + // Minimum execution time: 1_605_000 picoseconds. + Weight::from_parts(1_947_972, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(6_136, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_739_000 picoseconds. - Weight::from_parts(2_406_725, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(5_692, 0).saturating_mul(r.into())) + // Minimum execution time: 1_556_000 picoseconds. + Weight::from_parts(1_968_588, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_711, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_733_000 picoseconds. - Weight::from_parts(2_583_091, 0) - // Standard Error: 218 - .saturating_add(Weight::from_parts(11_841, 0).saturating_mul(r.into())) + // Minimum execution time: 1_621_000 picoseconds. + Weight::from_parts(1_950_465, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(11_774, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_736_000 picoseconds. - Weight::from_parts(2_123_319, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(10_520, 0).saturating_mul(r.into())) + // Minimum execution time: 1_611_000 picoseconds. + Weight::from_parts(1_993_703, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(10_621, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_746_000 picoseconds. - Weight::from_parts(2_621_724, 0) - // Standard Error: 24 - .saturating_add(Weight::from_parts(11_885, 0).saturating_mul(r.into())) + // Minimum execution time: 1_535_000 picoseconds. + Weight::from_parts(2_811_668, 0) + // Standard Error: 108 + .saturating_add(Weight::from_parts(11_581, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_711_000 picoseconds. - Weight::from_parts(2_013_042, 0) - // Standard Error: 8 - .saturating_add(Weight::from_parts(10_673, 0).saturating_mul(r.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(1_980_289, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(10_752, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_675_000 picoseconds. - Weight::from_parts(2_155_962, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(5_619, 0).saturating_mul(r.into())) + // Minimum execution time: 1_608_000 picoseconds. + Weight::from_parts(1_938_982, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_682, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_651_000 picoseconds. - Weight::from_parts(2_009_049, 0) + // Minimum execution time: 1_600_000 picoseconds. + Weight::from_parts(1_957_896, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_757, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_756, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64xor(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_705_000 picoseconds. - Weight::from_parts(1_986_346, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_917, 0).saturating_mul(r.into())) + // Minimum execution time: 1_615_000 picoseconds. + Weight::from_parts(1_993_774, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_669_000 picoseconds. - Weight::from_parts(2_023_827, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_941, 0).saturating_mul(r.into())) + // Minimum execution time: 1_610_000 picoseconds. + Weight::from_parts(1_938_640, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_846, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_663_000 picoseconds. - Weight::from_parts(2_025_828, 0) + // Minimum execution time: 1_617_000 picoseconds. + Weight::from_parts(1_935_145, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_119, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_140, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(2_312_272, 0) - // Standard Error: 62 - .saturating_add(Weight::from_parts(5_856, 0).saturating_mul(r.into())) + // Minimum execution time: 1_600_000 picoseconds. + Weight::from_parts(1_949_145, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_854, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_795_000 picoseconds. - Weight::from_parts(2_094_996, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_981, 0).saturating_mul(r.into())) + // Minimum execution time: 1_630_000 picoseconds. + Weight::from_parts(2_001_185, 0) + // Standard Error: 192 + .saturating_add(Weight::from_parts(6_148, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_713_000 picoseconds. - Weight::from_parts(2_118_369, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_833, 0).saturating_mul(r.into())) + // Minimum execution time: 1_590_000 picoseconds. + Weight::from_parts(2_224_670, 0) + // Standard Error: 47 + .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) } } From 1b85d3a92a5a9f8e3b2e726d08e28d5bf8c89fdd Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 26 Apr 2023 15:45:04 +0200 Subject: [PATCH 40/53] contracts: add small pr improvements --- frame/contracts/src/exec.rs | 11 ++++++----- frame/contracts/src/lib.rs | 3 +-- frame/contracts/src/wasm/runtime.rs | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 7a27ae010769c..b78574eb49488 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -372,13 +372,14 @@ pub trait Executable: Sized { /// This type implements `Ext` and by that exposes the business logic of contract execution to /// the runtime module which interfaces with the contract (the wasm blob) itself. pub struct Stack<'a, T: Config, E> { - /// The account id of a plain account that initiated the call stack. + /// The origin that initiated the call stack. It could either be a Signed plain account that + /// holds an account id or Root. /// /// # Note /// - /// Please note that it is possible that the id belongs to a contract rather than a plain - /// account when being called through one of the contract RPCs where the client can freely - /// choose the origin. This usually makes no sense but is still possible. + /// Please note that it is possible that the id of a Signed origin belongs to a contract rather + /// than a plain account when being called through one of the contract RPCs where the + /// client can freely choose the origin. This usually makes no sense but is still possible. origin: Origin, /// The cost schedule used when charging from the gas meter. schedule: &'a Schedule, @@ -1059,7 +1060,7 @@ where let value = frame.value_transferred; - // Get the account id from the Caller. + // Get the account id from the caller. // If the caller is root there is no account to transfer from, and therefore we can't take // any `value` other than 0. let caller = match self.caller() { diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 7773748e0d3a5..1869f78203b91 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -932,8 +932,7 @@ impl Origin { } impl Origin { - /// Returns the account id of the caller if it has one. - /// It errors otherwise. + /// Returns the AccountId of a Signed Origin or an error if the origin is Root. pub fn account_id(&self) -> Result<&T::AccountId, DispatchError> { match self { Origin::Signed(id) => Ok(id), diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index b1540c53d9b0d..83f74256ed15a 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -191,7 +191,7 @@ pub enum RuntimeCosts { OwnCodeHash, /// Weight of calling `seal_caller_is_origin`. CallerIsOrigin, - /// Weight of calling `seal_caller_is_root`. + /// Weight of calling `caller_is_root`. CallerIsRoot, /// Weight of calling `seal_address`. Address, From 87d42b9b68e80b02b6de873b7496aee1251cd5fe Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 26 Apr 2023 17:03:22 +0200 Subject: [PATCH 41/53] contracts: fix broken tests after master merge --- frame/contracts/src/storage/meter.rs | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index 33237898f8f07..e347a8950065c 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -901,19 +901,6 @@ mod tests { nested0.enforce_limit(Some(&mut nested1_info)).unwrap(); nested0.absorb(nested1, DepositAccount(CHARLIE), None); - let mut nested1_info = new_info(StorageInfo { - bytes: 100, - items: 10, - bytes_deposit: 100, - items_deposit: 20, - }); - let mut nested1 = nested0.nested(BalanceOf::::zero()); - nested1.charge(&Diff { items_removed: 5, ..Default::default() }); - nested1.charge(&Diff { bytes_added: 20, ..Default::default() }); - nested1.terminate(&nested1_info); - nested0.enforce_limit(Some(&mut nested1_info)).unwrap(); - nested0.absorb(nested1, DepositAccount(CHARLIE), None); - meter.absorb(nested0, DepositAccount(BOB), None); assert_eq!(meter.into_deposit(&test_case.origin), test_case.deposit); From e8f4af202d9bf39946fe04c53f2d43ad2f40f57c Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 26 Apr 2023 17:26:24 +0200 Subject: [PATCH 42/53] contracts: acknowledge the default storage deposit limit --- frame/contracts/src/benchmarking/mod.rs | 3 +-- frame/contracts/src/lib.rs | 2 -- frame/contracts/src/storage/meter.rs | 14 ++++---------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index e0aa52ba15091..2c60c1501df7a 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -554,8 +554,7 @@ benchmarks! { }); let instance = Contract::::new(code, vec![])?; let origin = RawOrigin::Root; - let limit = Some(BalanceOf::::max_value().into()); - }: call(origin, instance.addr, 0u32.into(), Weight::MAX, limit, vec![]) + }: call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]) #[pov_mode = Measured] seal_address { diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 2d30641a0fa40..0e5f104a619fb 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -847,8 +847,6 @@ pub mod pallet { StorageDepositNotEnoughFunds, /// More storage was created than allowed by the storage deposit limit. StorageDepositLimitExhausted, - /// The storage deposit limit needs to be specified. - StorageDepositLimitRequired, /// Code removal was denied because the code is still in use by at least one contract. CodeInUse, /// The contract ran to completion but decided to revert its storage changes. diff --git a/frame/contracts/src/storage/meter.rs b/frame/contracts/src/storage/meter.rs index e347a8950065c..e828f75136f9b 100644 --- a/frame/contracts/src/storage/meter.rs +++ b/frame/contracts/src/storage/meter.rs @@ -358,16 +358,10 @@ where ) -> Result { // Check the limit only if the origin is not root. return match origin { - Origin::Root => { - match limit { - // We don't have a way to check the root's limit as there isn't an account - // associated with it. Therefore, whatever the specified limit is, that will be - // the root's limit. Following this criteria, when the caller is root we need - // the limit parameter to be specified. - Some(l) => Ok(Self { limit: l, ..Default::default() }), - None => Err(>::StorageDepositLimitRequired.into()), - } - }, + Origin::Root => Ok(Self { + limit: limit.unwrap_or(T::DefaultDepositLimit::get()), + ..Default::default() + }), Origin::Signed(o) => { let limit = E::check_limit(o, limit, min_leftover)?; Ok(Self { limit, ..Default::default() }) From aecd9f7336e841914914451595ddc9da400c3a30 Mon Sep 17 00:00:00 2001 From: command-bot <> Date: Thu, 27 Apr 2023 03:44:35 +0000 Subject: [PATCH 43/53] ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts --- frame/contracts/src/weights.rs | 1903 ++++++++++++++++---------------- 1 file changed, 950 insertions(+), 953 deletions(-) diff --git a/frame/contracts/src/weights.rs b/frame/contracts/src/weights.rs index 8876bf6fdd480..0a7f3ddf1ca4f 100644 --- a/frame/contracts/src/weights.rs +++ b/frame/contracts/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_contracts //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -43,6 +43,7 @@ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; @@ -179,8 +180,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_661_000 picoseconds. - Weight::from_parts(2_787_000, 1594) + // Minimum execution time: 2_627_000 picoseconds. + Weight::from_parts(2_748_000, 1594) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -190,10 +191,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_333_000 picoseconds. - Weight::from_parts(9_200_088, 478) - // Standard Error: 1_110 - .saturating_add(Weight::from_parts(978_387, 0).saturating_mul(k.into())) + // Minimum execution time: 13_607_000 picoseconds. + Weight::from_parts(8_026_118, 478) + // Standard Error: 1_323 + .saturating_add(Weight::from_parts(980_583, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -209,10 +210,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 30_794_000 picoseconds. - Weight::from_parts(26_004_701, 3708) - // Standard Error: 57 - .saturating_add(Weight::from_parts(55_259, 0).saturating_mul(c.into())) + // Minimum execution time: 30_563_000 picoseconds. + Weight::from_parts(22_292_544, 3708) + // Standard Error: 60 + .saturating_add(Weight::from_parts(54_541, 0).saturating_mul(c.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(c.into())) @@ -232,10 +233,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 261_605_000 picoseconds. - Weight::from_parts(267_417_927, 6656) - // Standard Error: 30 - .saturating_add(Weight::from_parts(37_987, 0).saturating_mul(c.into())) + // Minimum execution time: 268_884_000 picoseconds. + Weight::from_parts(277_799_331, 6656) + // Standard Error: 23 + .saturating_add(Weight::from_parts(37_876, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -263,14 +264,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_158_042_000 picoseconds. - Weight::from_parts(619_625_354, 8659) - // Standard Error: 283 - .saturating_add(Weight::from_parts(106_531, 0).saturating_mul(c.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_117, 0).saturating_mul(i.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_436, 0).saturating_mul(s.into())) + // Minimum execution time: 3_159_921_000 picoseconds. + Weight::from_parts(594_826_134, 8659) + // Standard Error: 290 + .saturating_add(Weight::from_parts(106_471, 0).saturating_mul(c.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_160, 0).saturating_mul(i.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -294,12 +295,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_643_595_000 picoseconds. - Weight::from_parts(254_234_497, 6408) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_462, 0).saturating_mul(i.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_456, 0).saturating_mul(s.into())) + // Minimum execution time: 1_653_811_000 picoseconds. + Weight::from_parts(296_038_081, 6408) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_461, 0).saturating_mul(i.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_430, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -317,8 +318,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 190_529_000 picoseconds. - Weight::from_parts(191_707_000, 6699) + // Minimum execution time: 195_916_000 picoseconds. + Weight::from_parts(196_706_000, 6699) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -335,10 +336,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 247_906_000 picoseconds. - Weight::from_parts(279_637_289, 3574) - // Standard Error: 95 - .saturating_add(Weight::from_parts(108_562, 0).saturating_mul(c.into())) + // Minimum execution time: 251_137_000 picoseconds. + Weight::from_parts(252_985_435, 3574) + // Standard Error: 88 + .saturating_add(Weight::from_parts(108_141, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -354,8 +355,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_533_000 picoseconds. - Weight::from_parts(33_999_000, 3720) + // Minimum execution time: 33_521_000 picoseconds. + Weight::from_parts(34_039_000, 3720) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -369,8 +370,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 32_810_000 picoseconds. - Weight::from_parts(33_571_000, 8985) + // Minimum execution time: 33_477_000 picoseconds. + Weight::from_parts(33_890_000, 8985) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -389,10 +390,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 233_387_000 picoseconds. - Weight::from_parts(234_921_537, 6722) - // Standard Error: 1_192 - .saturating_add(Weight::from_parts(332_647, 0).saturating_mul(r.into())) + // Minimum execution time: 239_374_000 picoseconds. + Weight::from_parts(246_017_099, 6722) + // Standard Error: 539 + .saturating_add(Weight::from_parts(323_826, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -412,10 +413,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 236_852_000 picoseconds. - Weight::from_parts(69_151_959, 6743) - // Standard Error: 6_662 - .saturating_add(Weight::from_parts(3_287_315, 0).saturating_mul(r.into())) + // Minimum execution time: 240_656_000 picoseconds. + Weight::from_parts(87_361_934, 6743) + // Standard Error: 5_912 + .saturating_add(Weight::from_parts(3_329_840, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -436,10 +437,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 235_205_000 picoseconds. - Weight::from_parts(79_396_834, 6747) - // Standard Error: 6_164 - .saturating_add(Weight::from_parts(4_074_268, 0).saturating_mul(r.into())) + // Minimum execution time: 243_026_000 picoseconds. + Weight::from_parts(76_953_007, 6747) + // Standard Error: 6_640 + .saturating_add(Weight::from_parts(4_132_521, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -460,10 +461,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 235_764_000 picoseconds. - Weight::from_parts(240_942_560, 6730) - // Standard Error: 929 - .saturating_add(Weight::from_parts(408_756, 0).saturating_mul(r.into())) + // Minimum execution time: 242_736_000 picoseconds. + Weight::from_parts(243_136_007, 6730) + // Standard Error: 912 + .saturating_add(Weight::from_parts(414_717, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -483,10 +484,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 231_845_000 picoseconds. - Weight::from_parts(238_194_676, 6723) - // Standard Error: 371 - .saturating_add(Weight::from_parts(174_006, 0).saturating_mul(r.into())) + // Minimum execution time: 240_130_000 picoseconds. + Weight::from_parts(244_517_187, 6723) + // Standard Error: 384 + .saturating_add(Weight::from_parts(167_431, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -504,10 +505,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `668 + r * (3 ±0)` // Estimated: `6608 + r * (3 ±0)` - // Minimum execution time: 222_659_000 picoseconds. - Weight::from_parts(235_813_742, 6608) - // Standard Error: 607 - .saturating_add(Weight::from_parts(138_487, 0).saturating_mul(r.into())) + // Minimum execution time: 228_022_000 picoseconds. + Weight::from_parts(232_385_198, 6608) + // Standard Error: 300 + .saturating_add(Weight::from_parts(145_143, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -527,10 +528,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 233_880_000 picoseconds. - Weight::from_parts(237_668_061, 6724) - // Standard Error: 575 - .saturating_add(Weight::from_parts(324_866, 0).saturating_mul(r.into())) + // Minimum execution time: 240_250_000 picoseconds. + Weight::from_parts(240_268_824, 6724) + // Standard Error: 945 + .saturating_add(Weight::from_parts(329_577, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -548,12 +549,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1600]`. fn seal_gas_left(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `783 + r * (6 ±0)` - // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 235_520_000 picoseconds. - Weight::from_parts(241_766_962, 6721) - // Standard Error: 1_396 - .saturating_add(Weight::from_parts(315_306, 0).saturating_mul(r.into())) + // Measured: `778 + r * (6 ±0)` + // Estimated: `6719 + r * (6 ±0)` + // Minimum execution time: 242_370_000 picoseconds. + Weight::from_parts(242_389_500, 6719) + // Standard Error: 712 + .saturating_add(Weight::from_parts(518_380, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -573,10 +574,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 233_222_000 picoseconds. - Weight::from_parts(239_312_284, 6846) - // Standard Error: 1_532 - .saturating_add(Weight::from_parts(1_483_120, 0).saturating_mul(r.into())) + // Minimum execution time: 238_563_000 picoseconds. + Weight::from_parts(253_511_314, 6846) + // Standard Error: 1_571 + .saturating_add(Weight::from_parts(1_454_089, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -596,10 +597,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 233_662_000 picoseconds. - Weight::from_parts(236_485_627, 6741) - // Standard Error: 748 - .saturating_add(Weight::from_parts(322_657, 0).saturating_mul(r.into())) + // Minimum execution time: 242_995_000 picoseconds. + Weight::from_parts(240_061_456, 6741) + // Standard Error: 2_650 + .saturating_add(Weight::from_parts(326_813, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -619,10 +620,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 233_211_000 picoseconds. - Weight::from_parts(238_177_678, 6739) - // Standard Error: 595 - .saturating_add(Weight::from_parts(324_725, 0).saturating_mul(r.into())) + // Minimum execution time: 241_342_000 picoseconds. + Weight::from_parts(240_875_314, 6739) + // Standard Error: 669 + .saturating_add(Weight::from_parts(324_519, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -642,10 +643,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 233_563_000 picoseconds. - Weight::from_parts(245_395_891, 6737) - // Standard Error: 819 - .saturating_add(Weight::from_parts(307_701, 0).saturating_mul(r.into())) + // Minimum execution time: 238_954_000 picoseconds. + Weight::from_parts(242_269_896, 6737) + // Standard Error: 1_453 + .saturating_add(Weight::from_parts(317_998, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -665,10 +666,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 234_252_000 picoseconds. - Weight::from_parts(223_648_254, 6723) - // Standard Error: 4_056 - .saturating_add(Weight::from_parts(347_982, 0).saturating_mul(r.into())) + // Minimum execution time: 240_935_000 picoseconds. + Weight::from_parts(242_938_271, 6723) + // Standard Error: 792 + .saturating_add(Weight::from_parts(316_782, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -688,15 +689,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1600]`. fn seal_weight_to_fee(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `856 + r * (10 ±0)` - // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 238_102_000 picoseconds. - Weight::from_parts(239_749_728, 6796) - // Standard Error: 1_360 - .saturating_add(Weight::from_parts(1_316_355, 0).saturating_mul(r.into())) + // Measured: `852 + r * (14 ±0)` + // Estimated: `6785 + r * (14 ±0)` + // Minimum execution time: 240_142_000 picoseconds. + Weight::from_parts(241_386_730, 6785) + // Standard Error: 2_116 + .saturating_add(Weight::from_parts(1_387_202, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 14).saturating_mul(r.into())) } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) @@ -713,10 +714,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 159_941_000 picoseconds. - Weight::from_parts(162_309_186, 6687) - // Standard Error: 287 - .saturating_add(Weight::from_parts(132_728, 0).saturating_mul(r.into())) + // Minimum execution time: 165_617_000 picoseconds. + Weight::from_parts(170_794_127, 6687) + // Standard Error: 209 + .saturating_add(Weight::from_parts(127_931, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -736,10 +737,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 234_050_000 picoseconds. - Weight::from_parts(238_613_120, 6724) - // Standard Error: 566 - .saturating_add(Weight::from_parts(270_500, 0).saturating_mul(r.into())) + // Minimum execution time: 238_832_000 picoseconds. + Weight::from_parts(237_110_694, 6724) + // Standard Error: 539 + .saturating_add(Weight::from_parts(280_610, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -759,10 +760,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 234_536_000 picoseconds. - Weight::from_parts(237_085_631, 6724) + // Minimum execution time: 241_070_000 picoseconds. + Weight::from_parts(242_162_279, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(594, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -781,10 +782,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 229_831_000 picoseconds. - Weight::from_parts(232_252_195, 6708) - // Standard Error: 185_133 - .saturating_add(Weight::from_parts(2_568_004, 0).saturating_mul(r.into())) + // Minimum execution time: 236_337_000 picoseconds. + Weight::from_parts(238_883_828, 6708) + // Standard Error: 188_978 + .saturating_add(Weight::from_parts(926_671, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -804,10 +805,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 232_961_000 picoseconds. - Weight::from_parts(234_505_222, 6731) + // Minimum execution time: 239_103_000 picoseconds. + Weight::from_parts(240_382_910, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(182, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(181, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -832,10 +833,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 232_108_000 picoseconds. - Weight::from_parts(234_419_967, 6750) - // Standard Error: 187_499 - .saturating_add(Weight::from_parts(111_606_232, 0).saturating_mul(r.into())) + // Minimum execution time: 238_739_000 picoseconds. + Weight::from_parts(241_041_330, 6750) + // Standard Error: 176_820 + .saturating_add(Weight::from_parts(115_332_869, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -859,10 +860,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 232_610_000 picoseconds. - Weight::from_parts(220_273_892, 6769) - // Standard Error: 8_615 - .saturating_add(Weight::from_parts(1_785_371, 0).saturating_mul(r.into())) + // Minimum execution time: 240_888_000 picoseconds. + Weight::from_parts(259_901_113, 6769) + // Standard Error: 5_935 + .saturating_add(Weight::from_parts(1_764_269, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -882,10 +883,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 235_643_000 picoseconds. - Weight::from_parts(236_073_438, 6723) - // Standard Error: 4_293 - .saturating_add(Weight::from_parts(3_522_474, 0).saturating_mul(r.into())) + // Minimum execution time: 237_478_000 picoseconds. + Weight::from_parts(264_915_436, 6723) + // Standard Error: 4_644 + .saturating_add(Weight::from_parts(3_452_918, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -906,12 +907,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 249_523_000 picoseconds. - Weight::from_parts(242_899_550, 6744) - // Standard Error: 128_273 - .saturating_add(Weight::from_parts(2_465_286, 0).saturating_mul(t.into())) - // Standard Error: 35 - .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) + // Minimum execution time: 255_720_000 picoseconds. + Weight::from_parts(247_945_758, 6744) + // Standard Error: 73_390 + .saturating_add(Weight::from_parts(2_483_239, 0).saturating_mul(t.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(756, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -933,10 +934,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 168_506_000 picoseconds. - Weight::from_parts(170_965_622, 6721) - // Standard Error: 467 - .saturating_add(Weight::from_parts(229_178, 0).saturating_mul(r.into())) + // Minimum execution time: 172_214_000 picoseconds. + Weight::from_parts(177_306_567, 6721) + // Standard Error: 839 + .saturating_add(Weight::from_parts(230_558, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -956,9 +957,9 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 348_623_000 picoseconds. - Weight::from_parts(351_973_362, 131670) - // Standard Error: 1 + // Minimum execution time: 354_105_000 picoseconds. + Weight::from_parts(360_649_854, 131670) + // Standard Error: 2 .saturating_add(Weight::from_parts(737, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -970,10 +971,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 235_220_000 picoseconds. - Weight::from_parts(128_121_818, 843) - // Standard Error: 10_853 - .saturating_add(Weight::from_parts(6_068_708, 0).saturating_mul(r.into())) + // Minimum execution time: 239_637_000 picoseconds. + Weight::from_parts(136_431_436, 843) + // Standard Error: 10_238 + .saturating_add(Weight::from_parts(6_070_221, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -987,10 +988,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 249_836_000 picoseconds. - Weight::from_parts(283_071_034, 1280) - // Standard Error: 53 - .saturating_add(Weight::from_parts(568, 0).saturating_mul(n.into())) + // Minimum execution time: 256_198_000 picoseconds. + Weight::from_parts(289_972_802, 1280) + // Standard Error: 54 + .saturating_add(Weight::from_parts(438, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -1001,10 +1002,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 249_863_000 picoseconds. - Weight::from_parts(251_254_415, 1167) - // Standard Error: 15 - .saturating_add(Weight::from_parts(188, 0).saturating_mul(n.into())) + // Minimum execution time: 255_519_000 picoseconds. + Weight::from_parts(257_668_217, 1167) + // Standard Error: 19 + .saturating_add(Weight::from_parts(105, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1016,10 +1017,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 234_207_000 picoseconds. - Weight::from_parts(123_627_181, 845) - // Standard Error: 11_658 - .saturating_add(Weight::from_parts(5_965_477, 0).saturating_mul(r.into())) + // Minimum execution time: 239_461_000 picoseconds. + Weight::from_parts(131_630_528, 845) + // Standard Error: 10_483 + .saturating_add(Weight::from_parts(5_910_066, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1033,10 +1034,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 249_192_000 picoseconds. - Weight::from_parts(251_416_488, 1163) - // Standard Error: 20 - .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) + // Minimum execution time: 254_904_000 picoseconds. + Weight::from_parts(261_213_399, 1163) + // Standard Error: 178 + .saturating_add(Weight::from_parts(125, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1048,10 +1049,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 234_625_000 picoseconds. - Weight::from_parts(152_907_247, 840) - // Standard Error: 8_450 - .saturating_add(Weight::from_parts(4_885_053, 0).saturating_mul(r.into())) + // Minimum execution time: 239_995_000 picoseconds. + Weight::from_parts(151_326_508, 840) + // Standard Error: 8_960 + .saturating_add(Weight::from_parts(4_937_728, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1064,10 +1065,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 247_608_000 picoseconds. - Weight::from_parts(250_954_256, 1179) - // Standard Error: 18 - .saturating_add(Weight::from_parts(631, 0).saturating_mul(n.into())) + // Minimum execution time: 254_515_000 picoseconds. + Weight::from_parts(256_728_817, 1179) + // Standard Error: 22 + .saturating_add(Weight::from_parts(706, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1079,10 +1080,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 234_627_000 picoseconds. - Weight::from_parts(151_776_174, 857) - // Standard Error: 8_477 - .saturating_add(Weight::from_parts(4_744_179, 0).saturating_mul(r.into())) + // Minimum execution time: 240_601_000 picoseconds. + Weight::from_parts(154_476_561, 857) + // Standard Error: 8_872 + .saturating_add(Weight::from_parts(4_805_043, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1095,10 +1096,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 246_948_000 picoseconds. - Weight::from_parts(248_993_362, 1166) - // Standard Error: 13 - .saturating_add(Weight::from_parts(109, 0).saturating_mul(n.into())) + // Minimum execution time: 253_654_000 picoseconds. + Weight::from_parts(257_288_586, 1166) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1110,10 +1109,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 234_041_000 picoseconds. - Weight::from_parts(132_346_798, 836) - // Standard Error: 10_502 - .saturating_add(Weight::from_parts(6_144_249, 0).saturating_mul(r.into())) + // Minimum execution time: 239_869_000 picoseconds. + Weight::from_parts(135_258_204, 836) + // Standard Error: 10_378 + .saturating_add(Weight::from_parts(6_144_770, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1127,10 +1126,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 249_246_000 picoseconds. - Weight::from_parts(253_617_941, 1180) - // Standard Error: 18 - .saturating_add(Weight::from_parts(598, 0).saturating_mul(n.into())) + // Minimum execution time: 258_153_000 picoseconds. + Weight::from_parts(260_068_186, 1180) + // Standard Error: 25 + .saturating_add(Weight::from_parts(744, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1150,10 +1149,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 235_344_000 picoseconds. - Weight::from_parts(72_196_493, 7270) - // Standard Error: 42_917 - .saturating_add(Weight::from_parts(35_138_209, 0).saturating_mul(r.into())) + // Minimum execution time: 243_189_000 picoseconds. + Weight::from_parts(243_465_000, 7270) + // Standard Error: 30_961 + .saturating_add(Weight::from_parts(35_376_623, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1173,17 +1172,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 800]`. fn seal_call(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1237 + r * (256 ±0)` - // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 235_870_000 picoseconds. - Weight::from_parts(236_428_000, 9408) - // Standard Error: 83_578 - .saturating_add(Weight::from_parts(209_341_301, 0).saturating_mul(r.into())) + // Measured: `1140 + r * (276 ±0)` + // Estimated: `9332 + r * (2752 ±0)` + // Minimum execution time: 243_656_000 picoseconds. + Weight::from_parts(244_221_000, 9332) + // Standard Error: 69_762 + .saturating_add(Weight::from_parts(216_905_619, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2732).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2752).saturating_mul(r.into())) } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) @@ -1199,11 +1198,11 @@ impl WeightInfo for SubstrateWeight { fn seal_delegate_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` - // Estimated: `6727 + r * (2572 ±3)` - // Minimum execution time: 235_444_000 picoseconds. - Weight::from_parts(235_953_000, 6727) - // Standard Error: 103_757 - .saturating_add(Weight::from_parts(204_940_640, 0).saturating_mul(r.into())) + // Estimated: `6727 + r * (2572 ±10)` + // Minimum execution time: 242_632_000 picoseconds. + Weight::from_parts(243_068_000, 6727) + // Standard Error: 126_218 + .saturating_add(Weight::from_parts(213_096_291, 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(3_u64)) @@ -1226,12 +1225,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 408_108_000 picoseconds. - Weight::from_parts(373_220_662, 12044) - // Standard Error: 1_022_276 - .saturating_add(Weight::from_parts(35_858_434, 0).saturating_mul(t.into())) + // Minimum execution time: 421_691_000 picoseconds. + Weight::from_parts(394_587_369, 12044) + // Standard Error: 1_104_014 + .saturating_add(Weight::from_parts(30_461_758, 0).saturating_mul(t.into())) // Standard Error: 1 - .saturating_add(Weight::from_parts(604, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(601, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1252,15 +1251,15 @@ impl WeightInfo for SubstrateWeight { /// Proof: Contracts OwnerInfoOf (max_values: None, max_size: Some(88), added: 2563, mode: Measured) /// Storage: System EventTopics (r:802 w:802) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) - /// The range of component `r` is `[0, 800]`. + /// The range of component `r` is `[1, 800]`. fn seal_instantiate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1301 + r * (254 ±0)` - // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 236_618_000 picoseconds. - Weight::from_parts(237_531_000, 7131) - // Standard Error: 239_755 - .saturating_add(Weight::from_parts(340_894_468, 0).saturating_mul(r.into())) + // Measured: `1322 + r * (254 ±0)` + // Estimated: `7146 + r * (5205 ±0)` + // Minimum execution time: 581_252_000 picoseconds. + Weight::from_parts(582_275_000, 7146) + // Standard Error: 279_771 + .saturating_add(Weight::from_parts(349_770_967, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1288,14 +1287,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_612_127_000 picoseconds. - Weight::from_parts(332_415_772, 9492) - // Standard Error: 4_498_764 - .saturating_add(Weight::from_parts(116_134_047, 0).saturating_mul(t.into())) + // Minimum execution time: 1_623_241_000 picoseconds. + Weight::from_parts(317_076_173, 9492) + // Standard Error: 4_549_416 + .saturating_add(Weight::from_parts(125_360_446, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_183, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_338, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_352, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) @@ -1317,10 +1316,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 236_324_000 picoseconds. - Weight::from_parts(237_545_620, 6718) - // Standard Error: 4_111 - .saturating_add(Weight::from_parts(581_032, 0).saturating_mul(r.into())) + // Minimum execution time: 238_262_000 picoseconds. + Weight::from_parts(243_093_288, 6718) + // Standard Error: 870 + .saturating_add(Weight::from_parts(573_939, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1340,10 +1339,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 239_019_000 picoseconds. - Weight::from_parts(226_388_314, 6725) - // Standard Error: 6 - .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(n.into())) + // Minimum execution time: 239_888_000 picoseconds. + Weight::from_parts(242_849_333, 6725) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_949, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1362,10 +1361,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 231_134_000 picoseconds. - Weight::from_parts(229_987_227, 6721) - // Standard Error: 1_015 - .saturating_add(Weight::from_parts(759_186, 0).saturating_mul(r.into())) + // Minimum execution time: 237_288_000 picoseconds. + Weight::from_parts(242_510_631, 6721) + // Standard Error: 977 + .saturating_add(Weight::from_parts(742_726, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1385,10 +1384,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 233_605_000 picoseconds. - Weight::from_parts(226_028_706, 6729) + // Minimum execution time: 240_006_000 picoseconds. + Weight::from_parts(233_802_510, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_162, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_161, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1407,10 +1406,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 231_575_000 picoseconds. - Weight::from_parts(238_239_066, 6724) - // Standard Error: 648 - .saturating_add(Weight::from_parts(412_580, 0).saturating_mul(r.into())) + // Minimum execution time: 237_532_000 picoseconds. + Weight::from_parts(243_087_565, 6724) + // Standard Error: 656 + .saturating_add(Weight::from_parts(417_850, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1430,10 +1429,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 232_423_000 picoseconds. - Weight::from_parts(228_059_920, 6733) + // Minimum execution time: 241_429_000 picoseconds. + Weight::from_parts(233_528_258, 6733) // Standard Error: 1 - .saturating_add(Weight::from_parts(912, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(913, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1452,10 +1451,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 231_449_000 picoseconds. - Weight::from_parts(237_118_530, 6725) - // Standard Error: 515 - .saturating_add(Weight::from_parts(408_892, 0).saturating_mul(r.into())) + // Minimum execution time: 237_622_000 picoseconds. + Weight::from_parts(240_476_401, 6725) + // Standard Error: 795 + .saturating_add(Weight::from_parts(416_869, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -1475,10 +1474,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 232_162_000 picoseconds. - Weight::from_parts(227_593_235, 6727) - // Standard Error: 1 - .saturating_add(Weight::from_parts(913, 0).saturating_mul(n.into())) + // Minimum execution time: 241_134_000 picoseconds. + Weight::from_parts(234_043_271, 6727) + // Standard Error: 3 + .saturating_add(Weight::from_parts(919, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1496,11 +1495,11 @@ impl WeightInfo for SubstrateWeight { fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` - // Estimated: `6848 + n * (1 ±0)` - // Minimum execution time: 285_765_000 picoseconds. - Weight::from_parts(290_167_447, 6848) - // Standard Error: 8 - .saturating_add(Weight::from_parts(4_735, 0).saturating_mul(n.into())) + // Estimated: `6849 + n * (1 ±0)` + // Minimum execution time: 292_699_000 picoseconds. + Weight::from_parts(301_523_608, 6849) + // Standard Error: 14 + .saturating_add(Weight::from_parts(4_676, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1520,10 +1519,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `727 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 238_285_000 picoseconds. - Weight::from_parts(248_656_772, 6666) - // Standard Error: 20_024 - .saturating_add(Weight::from_parts(47_904_379, 0).saturating_mul(r.into())) + // Minimum execution time: 241_126_000 picoseconds. + Weight::from_parts(248_796_458, 6666) + // Standard Error: 21_501 + .saturating_add(Weight::from_parts(48_091_265, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -1542,11 +1541,11 @@ impl WeightInfo for SubstrateWeight { fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `822 + r * (76 ±0)` - // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 234_996_000 picoseconds. - Weight::from_parts(253_874_757, 6716) - // Standard Error: 25_466 - .saturating_add(Weight::from_parts(37_685_695, 0).saturating_mul(r.into())) + // Estimated: `6717 + r * (77 ±0)` + // Minimum execution time: 242_379_000 picoseconds. + Weight::from_parts(261_355_525, 6717) + // Standard Error: 18_862 + .saturating_add(Weight::from_parts(37_603_073, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -1566,10 +1565,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 238_796_000 picoseconds. - Weight::from_parts(244_068_258, 6731) - // Standard Error: 9_796 - .saturating_add(Weight::from_parts(9_329_911, 0).saturating_mul(r.into())) + // Minimum execution time: 241_270_000 picoseconds. + Weight::from_parts(245_135_291, 6731) + // Standard Error: 10_757 + .saturating_add(Weight::from_parts(9_344_876, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -1591,10 +1590,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` // Estimated: `8190 + r * (3090 ±7)` - // Minimum execution time: 233_889_000 picoseconds. - Weight::from_parts(234_652_000, 8190) - // Standard Error: 47_936 - .saturating_add(Weight::from_parts(21_547_627, 0).saturating_mul(r.into())) + // Minimum execution time: 240_506_000 picoseconds. + Weight::from_parts(241_653_000, 8190) + // Standard Error: 46_785 + .saturating_add(Weight::from_parts(22_107_816, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1616,10 +1615,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 232_409_000 picoseconds. - Weight::from_parts(237_661_722, 6723) - // Standard Error: 333 - .saturating_add(Weight::from_parts(169_559, 0).saturating_mul(r.into())) + // Minimum execution time: 241_539_000 picoseconds. + Weight::from_parts(245_471_045, 6723) + // Standard Error: 416 + .saturating_add(Weight::from_parts(159_577, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1639,10 +1638,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 234_863_000 picoseconds. - Weight::from_parts(266_269_648, 7805) - // Standard Error: 1_151 - .saturating_add(Weight::from_parts(257_423, 0).saturating_mul(r.into())) + // Minimum execution time: 242_702_000 picoseconds. + Weight::from_parts(274_518_595, 7805) + // Standard Error: 1_138 + .saturating_add(Weight::from_parts(256_973, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -1664,10 +1663,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 232_127_000 picoseconds. - Weight::from_parts(238_881_294, 6723) - // Standard Error: 320 - .saturating_add(Weight::from_parts(137_690, 0).saturating_mul(r.into())) + // Minimum execution time: 239_360_000 picoseconds. + Weight::from_parts(245_990_810, 6723) + // Standard Error: 3_188 + .saturating_add(Weight::from_parts(143_408, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -1677,449 +1676,449 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_567_000 picoseconds. - Weight::from_parts(1_867_809, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_979, 0).saturating_mul(r.into())) + // Minimum execution time: 1_617_000 picoseconds. + Weight::from_parts(1_900_268, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(2_950, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_727_000 picoseconds. - Weight::from_parts(2_540_267, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(6_350, 0).saturating_mul(r.into())) + // Minimum execution time: 1_739_000 picoseconds. + Weight::from_parts(2_109_373, 0) + // Standard Error: 43 + .saturating_add(Weight::from_parts(6_586, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_704_000 picoseconds. - Weight::from_parts(2_273_303, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) + // Minimum execution time: 1_726_000 picoseconds. + Weight::from_parts(2_268_507, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_022, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_601_000 picoseconds. - Weight::from_parts(2_011_513, 0) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(2_042_521, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(7_902, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(7_935, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_628_000 picoseconds. - Weight::from_parts(1_796_890, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(10_478, 0).saturating_mul(r.into())) + // Minimum execution time: 1_648_000 picoseconds. + Weight::from_parts(1_902_691, 0) + // Standard Error: 7 + .saturating_add(Weight::from_parts(10_572, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_606_000 picoseconds. - Weight::from_parts(1_880_527, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(4_538, 0).saturating_mul(r.into())) + // Minimum execution time: 1_626_000 picoseconds. + Weight::from_parts(1_891_843, 0) + // Standard Error: 14 + .saturating_add(Weight::from_parts(4_612, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_576_000 picoseconds. - Weight::from_parts(2_302_964, 0) - // Standard Error: 72 - .saturating_add(Weight::from_parts(7_387, 0).saturating_mul(r.into())) + // Minimum execution time: 1_581_000 picoseconds. + Weight::from_parts(1_139_823, 0) + // Standard Error: 74 + .saturating_add(Weight::from_parts(8_008, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_627_000 picoseconds. - Weight::from_parts(1_310_508, 0) - // Standard Error: 32 - .saturating_add(Weight::from_parts(9_631, 0).saturating_mul(r.into())) + // Minimum execution time: 1_591_000 picoseconds. + Weight::from_parts(1_258_400, 0) + // Standard Error: 34 + .saturating_add(Weight::from_parts(9_706, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. fn instr_br_table_per_entry(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(1_822_862, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(94, 0).saturating_mul(e.into())) + // Minimum execution time: 1_701_000 picoseconds. + Weight::from_parts(1_876_118, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(4, 0).saturating_mul(e.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_628_000 picoseconds. - Weight::from_parts(2_039_870, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(17_894, 0).saturating_mul(r.into())) + // Minimum execution time: 1_617_000 picoseconds. + Weight::from_parts(1_565_613, 0) + // Standard Error: 629 + .saturating_add(Weight::from_parts(19_575, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_863_000 picoseconds. - Weight::from_parts(3_007_528, 0) - // Standard Error: 9 - .saturating_add(Weight::from_parts(24_231, 0).saturating_mul(r.into())) + // Minimum execution time: 1_875_000 picoseconds. + Weight::from_parts(4_549_584, 0) + // Standard Error: 278 + .saturating_add(Weight::from_parts(24_336, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_759_000 picoseconds. - Weight::from_parts(1_957_927, 0) - // Standard Error: 13 - .saturating_add(Weight::from_parts(1_156, 0).saturating_mul(l.into())) + // Minimum execution time: 1_742_000 picoseconds. + Weight::from_parts(2_087_387, 0) + // Standard Error: 26 + .saturating_add(Weight::from_parts(1_041, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_857_000 picoseconds. - Weight::from_parts(3_122_604, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(2_442, 0).saturating_mul(r.into())) + // Minimum execution time: 2_861_000 picoseconds. + Weight::from_parts(3_552_428, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(2_339, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_914_000 picoseconds. - Weight::from_parts(3_127_079, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_639, 0).saturating_mul(r.into())) + // Minimum execution time: 2_866_000 picoseconds. + Weight::from_parts(3_151_948, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(3_667, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_900_000 picoseconds. - Weight::from_parts(3_204_307, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_946, 0).saturating_mul(r.into())) + // Minimum execution time: 2_919_000 picoseconds. + Weight::from_parts(3_214_587, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(3_867, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_741_000 picoseconds. - Weight::from_parts(2_134_827, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_451, 0).saturating_mul(r.into())) + // Minimum execution time: 1_764_000 picoseconds. + Weight::from_parts(1_815_683, 0) + // Standard Error: 123 + .saturating_add(Weight::from_parts(8_733, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_721_000 picoseconds. - Weight::from_parts(2_167_053, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_992, 0).saturating_mul(r.into())) + // Minimum execution time: 1_783_000 picoseconds. + Weight::from_parts(2_437_152, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(8_839, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_706_000 picoseconds. - Weight::from_parts(1_991_162, 0) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_018_078, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_755, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_756, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(511_720, 0) - // Standard Error: 138_374 - .saturating_add(Weight::from_parts(13_203_324, 0).saturating_mul(r.into())) + // Minimum execution time: 1_648_000 picoseconds. + Weight::from_parts(648_059, 0) + // Standard Error: 142_299 + .saturating_add(Weight::from_parts(13_313_060, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_661_000 picoseconds. - Weight::from_parts(1_929_686, 0) + // Minimum execution time: 1_652_000 picoseconds. + Weight::from_parts(1_953_179, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_917, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_828, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_563_000 picoseconds. - Weight::from_parts(2_118_935, 0) - // Standard Error: 94 - .saturating_add(Weight::from_parts(3_940, 0).saturating_mul(r.into())) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_924_759, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_762, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_588_000 picoseconds. - Weight::from_parts(2_258_140, 0) - // Standard Error: 121 - .saturating_add(Weight::from_parts(3_862, 0).saturating_mul(r.into())) + // Minimum execution time: 1_687_000 picoseconds. + Weight::from_parts(1_959_683, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_754, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_614_000 picoseconds. - Weight::from_parts(1_950_088, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(3_679, 0).saturating_mul(r.into())) + // Minimum execution time: 1_641_000 picoseconds. + Weight::from_parts(1_975_838, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_681, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_576_000 picoseconds. - Weight::from_parts(1_931_086, 0) + // Minimum execution time: 1_689_000 picoseconds. + Weight::from_parts(1_980_109, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_880, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_606_000 picoseconds. - Weight::from_parts(1_919_264, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_875, 0).saturating_mul(r.into())) + // Minimum execution time: 1_671_000 picoseconds. + Weight::from_parts(1_912_089, 0) + // Standard Error: 29 + .saturating_add(Weight::from_parts(3_896, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_607_000 picoseconds. - Weight::from_parts(1_926_040, 0) + // Minimum execution time: 1_643_000 picoseconds. + Weight::from_parts(1_951_485, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_832, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_725, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_607_000 picoseconds. - Weight::from_parts(1_953_738, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_002, 0).saturating_mul(r.into())) + // Minimum execution time: 1_649_000 picoseconds. + Weight::from_parts(1_937_598, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_045, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_584_000 picoseconds. - Weight::from_parts(1_929_381, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_012, 0).saturating_mul(r.into())) + // Minimum execution time: 1_651_000 picoseconds. + Weight::from_parts(2_202_977, 0) + // Standard Error: 313 + .saturating_add(Weight::from_parts(6_299, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_628_000 picoseconds. - Weight::from_parts(1_946_745, 0) + // Minimum execution time: 1_589_000 picoseconds. + Weight::from_parts(1_946_304, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_019, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_626_000 picoseconds. - Weight::from_parts(1_955_848, 0) + // Minimum execution time: 1_614_000 picoseconds. + Weight::from_parts(1_933_375, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_020, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_578_000 picoseconds. - Weight::from_parts(1_967_521, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(5_815, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_003_850, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_816, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_619_000 picoseconds. - Weight::from_parts(1_937_179, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(6_079, 0).saturating_mul(r.into())) + // Minimum execution time: 1_651_000 picoseconds. + Weight::from_parts(1_971_321, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_114, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(1_973_996, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) + // Minimum execution time: 1_647_000 picoseconds. + Weight::from_parts(2_017_232, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_990, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_594_000 picoseconds. - Weight::from_parts(1_968_872, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_085, 0).saturating_mul(r.into())) + // Minimum execution time: 1_635_000 picoseconds. + Weight::from_parts(3_232_848, 0) + // Standard Error: 105 + .saturating_add(Weight::from_parts(5_816, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(1_959_695, 0) + // Minimum execution time: 1_623_000 picoseconds. + Weight::from_parts(1_996_165, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_936, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_964, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_609_000 picoseconds. - Weight::from_parts(1_965_085, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + // Minimum execution time: 1_668_000 picoseconds. + Weight::from_parts(1_973_238, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(6_021, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_672_000 picoseconds. - Weight::from_parts(2_281_182, 0) - // Standard Error: 72 - .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) + // Minimum execution time: 1_674_000 picoseconds. + Weight::from_parts(1_981_762, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_898, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_605_000 picoseconds. - Weight::from_parts(1_947_972, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_136, 0).saturating_mul(r.into())) + // Minimum execution time: 1_632_000 picoseconds. + Weight::from_parts(1_935_700, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_154, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_556_000 picoseconds. - Weight::from_parts(1_968_588, 0) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_942_734, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_711, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_797, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_621_000 picoseconds. - Weight::from_parts(1_950_465, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(11_774, 0).saturating_mul(r.into())) + // Minimum execution time: 1_611_000 picoseconds. + Weight::from_parts(2_960_454, 0) + // Standard Error: 177 + .saturating_add(Weight::from_parts(11_666, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_611_000 picoseconds. - Weight::from_parts(1_993_703, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(10_621, 0).saturating_mul(r.into())) + // Minimum execution time: 1_641_000 picoseconds. + Weight::from_parts(2_104_200, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(10_540, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_535_000 picoseconds. - Weight::from_parts(2_811_668, 0) - // Standard Error: 108 - .saturating_add(Weight::from_parts(11_581, 0).saturating_mul(r.into())) + // Minimum execution time: 1_643_000 picoseconds. + Weight::from_parts(2_602_908, 0) + // Standard Error: 24 + .saturating_add(Weight::from_parts(11_900, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(1_980_289, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(10_752, 0).saturating_mul(r.into())) + // Minimum execution time: 1_584_000 picoseconds. + Weight::from_parts(2_056_817, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(10_722, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(1_938_982, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_682, 0).saturating_mul(r.into())) + // Minimum execution time: 1_652_000 picoseconds. + Weight::from_parts(1_988_892, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_683, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_600_000 picoseconds. - Weight::from_parts(1_957_896, 0) - // Standard Error: 2 + // Minimum execution time: 1_660_000 picoseconds. + Weight::from_parts(2_148_537, 0) + // Standard Error: 38 .saturating_add(Weight::from_parts(5_756, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. @@ -2127,60 +2126,60 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_615_000 picoseconds. - Weight::from_parts(1_993_774, 0) + // Minimum execution time: 1_629_000 picoseconds. + Weight::from_parts(1_955_010, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_931, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_610_000 picoseconds. - Weight::from_parts(1_938_640, 0) + // Minimum execution time: 1_569_000 picoseconds. + Weight::from_parts(1_982_403, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_846, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_867, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_617_000 picoseconds. - Weight::from_parts(1_935_145, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_140, 0).saturating_mul(r.into())) + // Minimum execution time: 1_615_000 picoseconds. + Weight::from_parts(1_989_920, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_137, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_600_000 picoseconds. - Weight::from_parts(1_949_145, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_854, 0).saturating_mul(r.into())) + // Minimum execution time: 1_646_000 picoseconds. + Weight::from_parts(2_020_935, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_863, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_630_000 picoseconds. - Weight::from_parts(2_001_185, 0) - // Standard Error: 192 - .saturating_add(Weight::from_parts(6_148, 0).saturating_mul(r.into())) + // Minimum execution time: 1_661_000 picoseconds. + Weight::from_parts(2_320_710, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(5_922, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_590_000 picoseconds. - Weight::from_parts(2_224_670, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) + // Minimum execution time: 1_674_000 picoseconds. + Weight::from_parts(2_044_188, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_855, 0).saturating_mul(r.into())) } } @@ -2192,8 +2191,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `1594` - // Minimum execution time: 2_661_000 picoseconds. - Weight::from_parts(2_787_000, 1594) + // Minimum execution time: 2_627_000 picoseconds. + Weight::from_parts(2_748_000, 1594) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: Skipped Metadata (r:0 w:0) @@ -2203,10 +2202,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `488 + k * (69 ±0)` // Estimated: `478 + k * (70 ±0)` - // Minimum execution time: 13_333_000 picoseconds. - Weight::from_parts(9_200_088, 478) - // Standard Error: 1_110 - .saturating_add(Weight::from_parts(978_387, 0).saturating_mul(k.into())) + // Minimum execution time: 13_607_000 picoseconds. + Weight::from_parts(8_026_118, 478) + // Standard Error: 1_323 + .saturating_add(Weight::from_parts(980_583, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2222,10 +2221,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `238 + c * (1 ±0)` // Estimated: `3708 + c * (1 ±0)` - // Minimum execution time: 30_794_000 picoseconds. - Weight::from_parts(26_004_701, 3708) - // Standard Error: 57 - .saturating_add(Weight::from_parts(55_259, 0).saturating_mul(c.into())) + // Minimum execution time: 30_563_000 picoseconds. + Weight::from_parts(22_292_544, 3708) + // Standard Error: 60 + .saturating_add(Weight::from_parts(54_541, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2245,10 +2244,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `707` // Estimated: `6656 + c * (1 ±0)` - // Minimum execution time: 261_605_000 picoseconds. - Weight::from_parts(267_417_927, 6656) - // Standard Error: 30 - .saturating_add(Weight::from_parts(37_987, 0).saturating_mul(c.into())) + // Minimum execution time: 268_884_000 picoseconds. + Weight::from_parts(277_799_331, 6656) + // Standard Error: 23 + .saturating_add(Weight::from_parts(37_876, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2276,14 +2275,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `270` // Estimated: `8659` - // Minimum execution time: 3_158_042_000 picoseconds. - Weight::from_parts(619_625_354, 8659) - // Standard Error: 283 - .saturating_add(Weight::from_parts(106_531, 0).saturating_mul(c.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_117, 0).saturating_mul(i.into())) - // Standard Error: 16 - .saturating_add(Weight::from_parts(1_436, 0).saturating_mul(s.into())) + // Minimum execution time: 3_159_921_000 picoseconds. + Weight::from_parts(594_826_134, 8659) + // Standard Error: 290 + .saturating_add(Weight::from_parts(106_471, 0).saturating_mul(c.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_160, 0).saturating_mul(i.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } @@ -2307,12 +2306,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482` // Estimated: `6408` - // Minimum execution time: 1_643_595_000 picoseconds. - Weight::from_parts(254_234_497, 6408) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_462, 0).saturating_mul(i.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_456, 0).saturating_mul(s.into())) + // Minimum execution time: 1_653_811_000 picoseconds. + Weight::from_parts(296_038_081, 6408) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_461, 0).saturating_mul(i.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_430, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -2330,8 +2329,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6699` - // Minimum execution time: 190_529_000 picoseconds. - Weight::from_parts(191_707_000, 6699) + // Minimum execution time: 195_916_000 picoseconds. + Weight::from_parts(196_706_000, 6699) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2348,10 +2347,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3574` - // Minimum execution time: 247_906_000 picoseconds. - Weight::from_parts(279_637_289, 3574) - // Standard Error: 95 - .saturating_add(Weight::from_parts(108_562, 0).saturating_mul(c.into())) + // Minimum execution time: 251_137_000 picoseconds. + Weight::from_parts(252_985_435, 3574) + // Standard Error: 88 + .saturating_add(Weight::from_parts(108_141, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2367,8 +2366,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 33_533_000 picoseconds. - Weight::from_parts(33_999_000, 3720) + // Minimum execution time: 33_521_000 picoseconds. + Weight::from_parts(34_039_000, 3720) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2382,8 +2381,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `570` // Estimated: `8985` - // Minimum execution time: 32_810_000 picoseconds. - Weight::from_parts(33_571_000, 8985) + // Minimum execution time: 33_477_000 picoseconds. + Weight::from_parts(33_890_000, 8985) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -2402,10 +2401,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `781 + r * (6 ±0)` // Estimated: `6722 + r * (6 ±0)` - // Minimum execution time: 233_387_000 picoseconds. - Weight::from_parts(234_921_537, 6722) - // Standard Error: 1_192 - .saturating_add(Weight::from_parts(332_647, 0).saturating_mul(r.into())) + // Minimum execution time: 239_374_000 picoseconds. + Weight::from_parts(246_017_099, 6722) + // Standard Error: 539 + .saturating_add(Weight::from_parts(323_826, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2425,10 +2424,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `839 + r * (240 ±0)` // Estimated: `6743 + r * (2715 ±0)` - // Minimum execution time: 236_852_000 picoseconds. - Weight::from_parts(69_151_959, 6743) - // Standard Error: 6_662 - .saturating_add(Weight::from_parts(3_287_315, 0).saturating_mul(r.into())) + // Minimum execution time: 240_656_000 picoseconds. + Weight::from_parts(87_361_934, 6743) + // Standard Error: 5_912 + .saturating_add(Weight::from_parts(3_329_840, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2449,10 +2448,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `831 + r * (244 ±0)` // Estimated: `6747 + r * (2719 ±0)` - // Minimum execution time: 235_205_000 picoseconds. - Weight::from_parts(79_396_834, 6747) - // Standard Error: 6_164 - .saturating_add(Weight::from_parts(4_074_268, 0).saturating_mul(r.into())) + // Minimum execution time: 243_026_000 picoseconds. + Weight::from_parts(76_953_007, 6747) + // Standard Error: 6_640 + .saturating_add(Weight::from_parts(4_132_521, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2473,10 +2472,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `788 + r * (6 ±0)` // Estimated: `6730 + r * (6 ±0)` - // Minimum execution time: 235_764_000 picoseconds. - Weight::from_parts(240_942_560, 6730) - // Standard Error: 929 - .saturating_add(Weight::from_parts(408_756, 0).saturating_mul(r.into())) + // Minimum execution time: 242_736_000 picoseconds. + Weight::from_parts(243_136_007, 6730) + // Standard Error: 912 + .saturating_add(Weight::from_parts(414_717, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2496,10 +2495,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 231_845_000 picoseconds. - Weight::from_parts(238_194_676, 6723) - // Standard Error: 371 - .saturating_add(Weight::from_parts(174_006, 0).saturating_mul(r.into())) + // Minimum execution time: 240_130_000 picoseconds. + Weight::from_parts(244_517_187, 6723) + // Standard Error: 384 + .saturating_add(Weight::from_parts(167_431, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -2517,10 +2516,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `668 + r * (3 ±0)` // Estimated: `6608 + r * (3 ±0)` - // Minimum execution time: 222_659_000 picoseconds. - Weight::from_parts(235_813_742, 6608) - // Standard Error: 607 - .saturating_add(Weight::from_parts(138_487, 0).saturating_mul(r.into())) + // Minimum execution time: 228_022_000 picoseconds. + Weight::from_parts(232_385_198, 6608) + // Standard Error: 300 + .saturating_add(Weight::from_parts(145_143, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -2540,10 +2539,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `782 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 233_880_000 picoseconds. - Weight::from_parts(237_668_061, 6724) - // Standard Error: 575 - .saturating_add(Weight::from_parts(324_866, 0).saturating_mul(r.into())) + // Minimum execution time: 240_250_000 picoseconds. + Weight::from_parts(240_268_824, 6724) + // Standard Error: 945 + .saturating_add(Weight::from_parts(329_577, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2561,12 +2560,12 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1600]`. fn seal_gas_left(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `783 + r * (6 ±0)` - // Estimated: `6721 + r * (6 ±0)` - // Minimum execution time: 235_520_000 picoseconds. - Weight::from_parts(241_766_962, 6721) - // Standard Error: 1_396 - .saturating_add(Weight::from_parts(315_306, 0).saturating_mul(r.into())) + // Measured: `778 + r * (6 ±0)` + // Estimated: `6719 + r * (6 ±0)` + // Minimum execution time: 242_370_000 picoseconds. + Weight::from_parts(242_389_500, 6719) + // Standard Error: 712 + .saturating_add(Weight::from_parts(518_380, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2586,10 +2585,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `922 + r * (6 ±0)` // Estimated: `6846 + r * (6 ±0)` - // Minimum execution time: 233_222_000 picoseconds. - Weight::from_parts(239_312_284, 6846) - // Standard Error: 1_532 - .saturating_add(Weight::from_parts(1_483_120, 0).saturating_mul(r.into())) + // Minimum execution time: 238_563_000 picoseconds. + Weight::from_parts(253_511_314, 6846) + // Standard Error: 1_571 + .saturating_add(Weight::from_parts(1_454_089, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2609,10 +2608,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (6 ±0)` // Estimated: `6741 + r * (6 ±0)` - // Minimum execution time: 233_662_000 picoseconds. - Weight::from_parts(236_485_627, 6741) - // Standard Error: 748 - .saturating_add(Weight::from_parts(322_657, 0).saturating_mul(r.into())) + // Minimum execution time: 242_995_000 picoseconds. + Weight::from_parts(240_061_456, 6741) + // Standard Error: 2_650 + .saturating_add(Weight::from_parts(326_813, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2632,10 +2631,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `790 + r * (6 ±0)` // Estimated: `6739 + r * (6 ±0)` - // Minimum execution time: 233_211_000 picoseconds. - Weight::from_parts(238_177_678, 6739) - // Standard Error: 595 - .saturating_add(Weight::from_parts(324_725, 0).saturating_mul(r.into())) + // Minimum execution time: 241_342_000 picoseconds. + Weight::from_parts(240_875_314, 6739) + // Standard Error: 669 + .saturating_add(Weight::from_parts(324_519, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2655,10 +2654,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787 + r * (6 ±0)` // Estimated: `6737 + r * (6 ±0)` - // Minimum execution time: 233_563_000 picoseconds. - Weight::from_parts(245_395_891, 6737) - // Standard Error: 819 - .saturating_add(Weight::from_parts(307_701, 0).saturating_mul(r.into())) + // Minimum execution time: 238_954_000 picoseconds. + Weight::from_parts(242_269_896, 6737) + // Standard Error: 1_453 + .saturating_add(Weight::from_parts(317_998, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2678,10 +2677,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (6 ±0)` // Estimated: `6723 + r * (6 ±0)` - // Minimum execution time: 234_252_000 picoseconds. - Weight::from_parts(223_648_254, 6723) - // Standard Error: 4_056 - .saturating_add(Weight::from_parts(347_982, 0).saturating_mul(r.into())) + // Minimum execution time: 240_935_000 picoseconds. + Weight::from_parts(242_938_271, 6723) + // Standard Error: 792 + .saturating_add(Weight::from_parts(316_782, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2701,15 +2700,15 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1600]`. fn seal_weight_to_fee(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `856 + r * (10 ±0)` - // Estimated: `6796 + r * (10 ±0)` - // Minimum execution time: 238_102_000 picoseconds. - Weight::from_parts(239_749_728, 6796) - // Standard Error: 1_360 - .saturating_add(Weight::from_parts(1_316_355, 0).saturating_mul(r.into())) + // Measured: `852 + r * (14 ±0)` + // Estimated: `6785 + r * (14 ±0)` + // Minimum execution time: 240_142_000 picoseconds. + Weight::from_parts(241_386_730, 6785) + // Standard Error: 2_116 + .saturating_add(Weight::from_parts(1_387_202, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 14).saturating_mul(r.into())) } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) @@ -2726,10 +2725,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `745 + r * (4 ±0)` // Estimated: `6687 + r * (4 ±0)` - // Minimum execution time: 159_941_000 picoseconds. - Weight::from_parts(162_309_186, 6687) - // Standard Error: 287 - .saturating_add(Weight::from_parts(132_728, 0).saturating_mul(r.into())) + // Minimum execution time: 165_617_000 picoseconds. + Weight::from_parts(170_794_127, 6687) + // Standard Error: 209 + .saturating_add(Weight::from_parts(127_931, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 4).saturating_mul(r.into())) @@ -2749,10 +2748,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `780 + r * (6 ±0)` // Estimated: `6724 + r * (6 ±0)` - // Minimum execution time: 234_050_000 picoseconds. - Weight::from_parts(238_613_120, 6724) - // Standard Error: 566 - .saturating_add(Weight::from_parts(270_500, 0).saturating_mul(r.into())) + // Minimum execution time: 238_832_000 picoseconds. + Weight::from_parts(237_110_694, 6724) + // Standard Error: 539 + .saturating_add(Weight::from_parts(280_610, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) @@ -2772,10 +2771,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `784` // Estimated: `6724` - // Minimum execution time: 234_536_000 picoseconds. - Weight::from_parts(237_085_631, 6724) + // Minimum execution time: 241_070_000 picoseconds. + Weight::from_parts(242_162_279, 6724) // Standard Error: 1 - .saturating_add(Weight::from_parts(594, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2794,10 +2793,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `768 + r * (45 ±0)` // Estimated: `6708 + r * (45 ±0)` - // Minimum execution time: 229_831_000 picoseconds. - Weight::from_parts(232_252_195, 6708) - // Standard Error: 185_133 - .saturating_add(Weight::from_parts(2_568_004, 0).saturating_mul(r.into())) + // Minimum execution time: 236_337_000 picoseconds. + Weight::from_parts(238_883_828, 6708) + // Standard Error: 188_978 + .saturating_add(Weight::from_parts(926_671, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) @@ -2817,10 +2816,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778` // Estimated: `6731` - // Minimum execution time: 232_961_000 picoseconds. - Weight::from_parts(234_505_222, 6731) + // Minimum execution time: 239_103_000 picoseconds. + Weight::from_parts(240_382_910, 6731) // Standard Error: 0 - .saturating_add(Weight::from_parts(182, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(181, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2845,10 +2844,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `810 + r * (356 ±0)` // Estimated: `6750 + r * (7781 ±0)` - // Minimum execution time: 232_108_000 picoseconds. - Weight::from_parts(234_419_967, 6750) - // Standard Error: 187_499 - .saturating_add(Weight::from_parts(111_606_232, 0).saturating_mul(r.into())) + // Minimum execution time: 238_739_000 picoseconds. + Weight::from_parts(241_041_330, 6750) + // Standard Error: 176_820 + .saturating_add(Weight::from_parts(115_332_869, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2872,10 +2871,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `825 + r * (10 ±0)` // Estimated: `6769 + r * (10 ±0)` - // Minimum execution time: 232_610_000 picoseconds. - Weight::from_parts(220_273_892, 6769) - // Standard Error: 8_615 - .saturating_add(Weight::from_parts(1_785_371, 0).saturating_mul(r.into())) + // Minimum execution time: 240_888_000 picoseconds. + Weight::from_parts(259_901_113, 6769) + // Standard Error: 5_935 + .saturating_add(Weight::from_parts(1_764_269, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2895,10 +2894,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `778 + r * (10 ±0)` // Estimated: `6723 + r * (10 ±0)` - // Minimum execution time: 235_643_000 picoseconds. - Weight::from_parts(236_073_438, 6723) - // Standard Error: 4_293 - .saturating_add(Weight::from_parts(3_522_474, 0).saturating_mul(r.into())) + // Minimum execution time: 237_478_000 picoseconds. + Weight::from_parts(264_915_436, 6723) + // Standard Error: 4_644 + .saturating_add(Weight::from_parts(3_452_918, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) @@ -2919,12 +2918,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797 + t * (32 ±0)` // Estimated: `6744 + t * (2508 ±0)` - // Minimum execution time: 249_523_000 picoseconds. - Weight::from_parts(242_899_550, 6744) - // Standard Error: 128_273 - .saturating_add(Weight::from_parts(2_465_286, 0).saturating_mul(t.into())) - // Standard Error: 35 - .saturating_add(Weight::from_parts(643, 0).saturating_mul(n.into())) + // Minimum execution time: 255_720_000 picoseconds. + Weight::from_parts(247_945_758, 6744) + // Standard Error: 73_390 + .saturating_add(Weight::from_parts(2_483_239, 0).saturating_mul(t.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(756, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2946,10 +2945,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (7 ±0)` // Estimated: `6721 + r * (7 ±0)` - // Minimum execution time: 168_506_000 picoseconds. - Weight::from_parts(170_965_622, 6721) - // Standard Error: 467 - .saturating_add(Weight::from_parts(229_178, 0).saturating_mul(r.into())) + // Minimum execution time: 172_214_000 picoseconds. + Weight::from_parts(177_306_567, 6721) + // Standard Error: 839 + .saturating_add(Weight::from_parts(230_558, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) @@ -2969,9 +2968,9 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `125728` // Estimated: `131670` - // Minimum execution time: 348_623_000 picoseconds. - Weight::from_parts(351_973_362, 131670) - // Standard Error: 1 + // Minimum execution time: 354_105_000 picoseconds. + Weight::from_parts(360_649_854, 131670) + // Standard Error: 2 .saturating_add(Weight::from_parts(737, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -2983,10 +2982,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `845 + r * (292 ±0)` // Estimated: `843 + r * (293 ±0)` - // Minimum execution time: 235_220_000 picoseconds. - Weight::from_parts(128_121_818, 843) - // Standard Error: 10_853 - .saturating_add(Weight::from_parts(6_068_708, 0).saturating_mul(r.into())) + // Minimum execution time: 239_637_000 picoseconds. + Weight::from_parts(136_431_436, 843) + // Standard Error: 10_238 + .saturating_add(Weight::from_parts(6_070_221, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3000,10 +2999,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1304` // Estimated: `1280` - // Minimum execution time: 249_836_000 picoseconds. - Weight::from_parts(283_071_034, 1280) - // Standard Error: 53 - .saturating_add(Weight::from_parts(568, 0).saturating_mul(n.into())) + // Minimum execution time: 256_198_000 picoseconds. + Weight::from_parts(289_972_802, 1280) + // Standard Error: 54 + .saturating_add(Weight::from_parts(438, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -3014,10 +3013,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1167 + n * (1 ±0)` // Estimated: `1167 + n * (1 ±0)` - // Minimum execution time: 249_863_000 picoseconds. - Weight::from_parts(251_254_415, 1167) - // Standard Error: 15 - .saturating_add(Weight::from_parts(188, 0).saturating_mul(n.into())) + // Minimum execution time: 255_519_000 picoseconds. + Weight::from_parts(257_668_217, 1167) + // Standard Error: 19 + .saturating_add(Weight::from_parts(105, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3029,10 +3028,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `841 + r * (288 ±0)` // Estimated: `845 + r * (289 ±0)` - // Minimum execution time: 234_207_000 picoseconds. - Weight::from_parts(123_627_181, 845) - // Standard Error: 11_658 - .saturating_add(Weight::from_parts(5_965_477, 0).saturating_mul(r.into())) + // Minimum execution time: 239_461_000 picoseconds. + Weight::from_parts(131_630_528, 845) + // Standard Error: 10_483 + .saturating_add(Weight::from_parts(5_910_066, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3046,10 +3045,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1163 + n * (1 ±0)` // Estimated: `1163 + n * (1 ±0)` - // Minimum execution time: 249_192_000 picoseconds. - Weight::from_parts(251_416_488, 1163) - // Standard Error: 20 - .saturating_add(Weight::from_parts(179, 0).saturating_mul(n.into())) + // Minimum execution time: 254_904_000 picoseconds. + Weight::from_parts(261_213_399, 1163) + // Standard Error: 178 + .saturating_add(Weight::from_parts(125, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3061,10 +3060,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `835 + r * (296 ±0)` // Estimated: `840 + r * (297 ±0)` - // Minimum execution time: 234_625_000 picoseconds. - Weight::from_parts(152_907_247, 840) - // Standard Error: 8_450 - .saturating_add(Weight::from_parts(4_885_053, 0).saturating_mul(r.into())) + // Minimum execution time: 239_995_000 picoseconds. + Weight::from_parts(151_326_508, 840) + // Standard Error: 8_960 + .saturating_add(Weight::from_parts(4_937_728, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3077,10 +3076,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1179 + n * (1 ±0)` // Estimated: `1179 + n * (1 ±0)` - // Minimum execution time: 247_608_000 picoseconds. - Weight::from_parts(250_954_256, 1179) - // Standard Error: 18 - .saturating_add(Weight::from_parts(631, 0).saturating_mul(n.into())) + // Minimum execution time: 254_515_000 picoseconds. + Weight::from_parts(256_728_817, 1179) + // Standard Error: 22 + .saturating_add(Weight::from_parts(706, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3092,10 +3091,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `856 + r * (288 ±0)` // Estimated: `857 + r * (289 ±0)` - // Minimum execution time: 234_627_000 picoseconds. - Weight::from_parts(151_776_174, 857) - // Standard Error: 8_477 - .saturating_add(Weight::from_parts(4_744_179, 0).saturating_mul(r.into())) + // Minimum execution time: 240_601_000 picoseconds. + Weight::from_parts(154_476_561, 857) + // Standard Error: 8_872 + .saturating_add(Weight::from_parts(4_805_043, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3108,10 +3107,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1166 + n * (1 ±0)` // Estimated: `1166 + n * (1 ±0)` - // Minimum execution time: 246_948_000 picoseconds. - Weight::from_parts(248_993_362, 1166) - // Standard Error: 13 - .saturating_add(Weight::from_parts(109, 0).saturating_mul(n.into())) + // Minimum execution time: 253_654_000 picoseconds. + Weight::from_parts(257_288_586, 1166) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3123,10 +3120,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `829 + r * (296 ±0)` // Estimated: `836 + r * (297 ±0)` - // Minimum execution time: 234_041_000 picoseconds. - Weight::from_parts(132_346_798, 836) - // Standard Error: 10_502 - .saturating_add(Weight::from_parts(6_144_249, 0).saturating_mul(r.into())) + // Minimum execution time: 239_869_000 picoseconds. + Weight::from_parts(135_258_204, 836) + // Standard Error: 10_378 + .saturating_add(Weight::from_parts(6_144_770, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3140,10 +3137,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1180 + n * (1 ±0)` // Estimated: `1180 + n * (1 ±0)` - // Minimum execution time: 249_246_000 picoseconds. - Weight::from_parts(253_617_941, 1180) - // Standard Error: 18 - .saturating_add(Weight::from_parts(598, 0).saturating_mul(n.into())) + // Minimum execution time: 258_153_000 picoseconds. + Weight::from_parts(260_068_186, 1180) + // Standard Error: 25 + .saturating_add(Weight::from_parts(744, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3163,10 +3160,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1373 + r * (45 ±0)` // Estimated: `7270 + r * (2520 ±0)` - // Minimum execution time: 235_344_000 picoseconds. - Weight::from_parts(72_196_493, 7270) - // Standard Error: 42_917 - .saturating_add(Weight::from_parts(35_138_209, 0).saturating_mul(r.into())) + // Minimum execution time: 243_189_000 picoseconds. + Weight::from_parts(243_465_000, 7270) + // Standard Error: 30_961 + .saturating_add(Weight::from_parts(35_376_623, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -3186,17 +3183,17 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 800]`. fn seal_call(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1237 + r * (256 ±0)` - // Estimated: `9408 + r * (2732 ±0)` - // Minimum execution time: 235_870_000 picoseconds. - Weight::from_parts(236_428_000, 9408) - // Standard Error: 83_578 - .saturating_add(Weight::from_parts(209_341_301, 0).saturating_mul(r.into())) + // Measured: `1140 + r * (276 ±0)` + // Estimated: `9332 + r * (2752 ±0)` + // Minimum execution time: 243_656_000 picoseconds. + Weight::from_parts(244_221_000, 9332) + // Standard Error: 69_762 + .saturating_add(Weight::from_parts(216_905_619, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2732).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2752).saturating_mul(r.into())) } /// Storage: System Account (r:1 w:0) /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: Measured) @@ -3212,11 +3209,11 @@ impl WeightInfo for () { fn seal_delegate_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + r * (502 ±0)` - // Estimated: `6727 + r * (2572 ±3)` - // Minimum execution time: 235_444_000 picoseconds. - Weight::from_parts(235_953_000, 6727) - // Standard Error: 103_757 - .saturating_add(Weight::from_parts(204_940_640, 0).saturating_mul(r.into())) + // Estimated: `6727 + r * (2572 ±10)` + // Minimum execution time: 242_632_000 picoseconds. + Weight::from_parts(243_068_000, 6727) + // Standard Error: 126_218 + .saturating_add(Weight::from_parts(213_096_291, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3239,12 +3236,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1154 + t * (204 ±0)` // Estimated: `12044 + t * (5154 ±0)` - // Minimum execution time: 408_108_000 picoseconds. - Weight::from_parts(373_220_662, 12044) - // Standard Error: 1_022_276 - .saturating_add(Weight::from_parts(35_858_434, 0).saturating_mul(t.into())) + // Minimum execution time: 421_691_000 picoseconds. + Weight::from_parts(394_587_369, 12044) + // Standard Error: 1_104_014 + .saturating_add(Weight::from_parts(30_461_758, 0).saturating_mul(t.into())) // Standard Error: 1 - .saturating_add(Weight::from_parts(604, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(601, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3265,15 +3262,15 @@ impl WeightInfo for () { /// Proof: Contracts OwnerInfoOf (max_values: None, max_size: Some(88), added: 2563, mode: Measured) /// Storage: System EventTopics (r:802 w:802) /// Proof Skipped: System EventTopics (max_values: None, max_size: None, mode: Measured) - /// The range of component `r` is `[0, 800]`. + /// The range of component `r` is `[1, 800]`. fn seal_instantiate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1301 + r * (254 ±0)` - // Estimated: `7131 + r * (5205 ±0)` - // Minimum execution time: 236_618_000 picoseconds. - Weight::from_parts(237_531_000, 7131) - // Standard Error: 239_755 - .saturating_add(Weight::from_parts(340_894_468, 0).saturating_mul(r.into())) + // Measured: `1322 + r * (254 ±0)` + // Estimated: `7146 + r * (5205 ±0)` + // Minimum execution time: 581_252_000 picoseconds. + Weight::from_parts(582_275_000, 7146) + // Standard Error: 279_771 + .saturating_add(Weight::from_parts(349_770_967, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -3301,14 +3298,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1071 + t * (187 ±0)` // Estimated: `9492 + t * (2634 ±2)` - // Minimum execution time: 1_612_127_000 picoseconds. - Weight::from_parts(332_415_772, 9492) - // Standard Error: 4_498_764 - .saturating_add(Weight::from_parts(116_134_047, 0).saturating_mul(t.into())) + // Minimum execution time: 1_623_241_000 picoseconds. + Weight::from_parts(317_076_173, 9492) + // Standard Error: 4_549_416 + .saturating_add(Weight::from_parts(125_360_446, 0).saturating_mul(t.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_183, 0).saturating_mul(i.into())) // Standard Error: 7 - .saturating_add(Weight::from_parts(1_338, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_352, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(10_u64)) @@ -3330,10 +3327,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `777 + r * (8 ±0)` // Estimated: `6718 + r * (8 ±0)` - // Minimum execution time: 236_324_000 picoseconds. - Weight::from_parts(237_545_620, 6718) - // Standard Error: 4_111 - .saturating_add(Weight::from_parts(581_032, 0).saturating_mul(r.into())) + // Minimum execution time: 238_262_000 picoseconds. + Weight::from_parts(243_093_288, 6718) + // Standard Error: 870 + .saturating_add(Weight::from_parts(573_939, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3353,10 +3350,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `785` // Estimated: `6725` - // Minimum execution time: 239_019_000 picoseconds. - Weight::from_parts(226_388_314, 6725) - // Standard Error: 6 - .saturating_add(Weight::from_parts(3_964, 0).saturating_mul(n.into())) + // Minimum execution time: 239_888_000 picoseconds. + Weight::from_parts(242_849_333, 6725) + // Standard Error: 3 + .saturating_add(Weight::from_parts(3_949, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3375,10 +3372,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6721 + r * (8 ±0)` - // Minimum execution time: 231_134_000 picoseconds. - Weight::from_parts(229_987_227, 6721) - // Standard Error: 1_015 - .saturating_add(Weight::from_parts(759_186, 0).saturating_mul(r.into())) + // Minimum execution time: 237_288_000 picoseconds. + Weight::from_parts(242_510_631, 6721) + // Standard Error: 977 + .saturating_add(Weight::from_parts(742_726, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3398,10 +3395,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6729` - // Minimum execution time: 233_605_000 picoseconds. - Weight::from_parts(226_028_706, 6729) + // Minimum execution time: 240_006_000 picoseconds. + Weight::from_parts(233_802_510, 6729) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_162, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_161, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3420,10 +3417,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6724 + r * (8 ±0)` - // Minimum execution time: 231_575_000 picoseconds. - Weight::from_parts(238_239_066, 6724) - // Standard Error: 648 - .saturating_add(Weight::from_parts(412_580, 0).saturating_mul(r.into())) + // Minimum execution time: 237_532_000 picoseconds. + Weight::from_parts(243_087_565, 6724) + // Standard Error: 656 + .saturating_add(Weight::from_parts(417_850, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3443,10 +3440,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6733` - // Minimum execution time: 232_423_000 picoseconds. - Weight::from_parts(228_059_920, 6733) + // Minimum execution time: 241_429_000 picoseconds. + Weight::from_parts(233_528_258, 6733) // Standard Error: 1 - .saturating_add(Weight::from_parts(912, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(913, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3465,10 +3462,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `779 + r * (8 ±0)` // Estimated: `6725 + r * (8 ±0)` - // Minimum execution time: 231_449_000 picoseconds. - Weight::from_parts(237_118_530, 6725) - // Standard Error: 515 - .saturating_add(Weight::from_parts(408_892, 0).saturating_mul(r.into())) + // Minimum execution time: 237_622_000 picoseconds. + Weight::from_parts(240_476_401, 6725) + // Standard Error: 795 + .saturating_add(Weight::from_parts(416_869, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) @@ -3488,10 +3485,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `787` // Estimated: `6727` - // Minimum execution time: 232_162_000 picoseconds. - Weight::from_parts(227_593_235, 6727) - // Standard Error: 1 - .saturating_add(Weight::from_parts(913, 0).saturating_mul(n.into())) + // Minimum execution time: 241_134_000 picoseconds. + Weight::from_parts(234_043_271, 6727) + // Standard Error: 3 + .saturating_add(Weight::from_parts(919, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -3509,11 +3506,11 @@ impl WeightInfo for () { fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `912 + n * (1 ±0)` - // Estimated: `6848 + n * (1 ±0)` - // Minimum execution time: 285_765_000 picoseconds. - Weight::from_parts(290_167_447, 6848) - // Standard Error: 8 - .saturating_add(Weight::from_parts(4_735, 0).saturating_mul(n.into())) + // Estimated: `6849 + n * (1 ±0)` + // Minimum execution time: 292_699_000 picoseconds. + Weight::from_parts(301_523_608, 6849) + // Standard Error: 14 + .saturating_add(Weight::from_parts(4_676, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -3533,10 +3530,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `727 + r * (112 ±0)` // Estimated: `6666 + r * (112 ±0)` - // Minimum execution time: 238_285_000 picoseconds. - Weight::from_parts(248_656_772, 6666) - // Standard Error: 20_024 - .saturating_add(Weight::from_parts(47_904_379, 0).saturating_mul(r.into())) + // Minimum execution time: 241_126_000 picoseconds. + Weight::from_parts(248_796_458, 6666) + // Standard Error: 21_501 + .saturating_add(Weight::from_parts(48_091_265, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) @@ -3555,11 +3552,11 @@ impl WeightInfo for () { fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `822 + r * (76 ±0)` - // Estimated: `6716 + r * (77 ±0)` - // Minimum execution time: 234_996_000 picoseconds. - Weight::from_parts(253_874_757, 6716) - // Standard Error: 25_466 - .saturating_add(Weight::from_parts(37_685_695, 0).saturating_mul(r.into())) + // Estimated: `6717 + r * (77 ±0)` + // Minimum execution time: 242_379_000 picoseconds. + Weight::from_parts(261_355_525, 6717) + // Standard Error: 18_862 + .saturating_add(Weight::from_parts(37_603_073, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) @@ -3579,10 +3576,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `792 + r * (42 ±0)` // Estimated: `6731 + r * (42 ±0)` - // Minimum execution time: 238_796_000 picoseconds. - Weight::from_parts(244_068_258, 6731) - // Standard Error: 9_796 - .saturating_add(Weight::from_parts(9_329_911, 0).saturating_mul(r.into())) + // Minimum execution time: 241_270_000 picoseconds. + Weight::from_parts(245_135_291, 6731) + // Standard Error: 10_757 + .saturating_add(Weight::from_parts(9_344_876, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) @@ -3604,10 +3601,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + r * (964 ±0)` // Estimated: `8190 + r * (3090 ±7)` - // Minimum execution time: 233_889_000 picoseconds. - Weight::from_parts(234_652_000, 8190) - // Standard Error: 47_936 - .saturating_add(Weight::from_parts(21_547_627, 0).saturating_mul(r.into())) + // Minimum execution time: 240_506_000 picoseconds. + Weight::from_parts(241_653_000, 8190) + // Standard Error: 46_785 + .saturating_add(Weight::from_parts(22_107_816, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -3629,10 +3626,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `773 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 232_409_000 picoseconds. - Weight::from_parts(237_661_722, 6723) - // Standard Error: 333 - .saturating_add(Weight::from_parts(169_559, 0).saturating_mul(r.into())) + // Minimum execution time: 241_539_000 picoseconds. + Weight::from_parts(245_471_045, 6723) + // Standard Error: 416 + .saturating_add(Weight::from_parts(159_577, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3652,10 +3649,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1975 + r * (39 ±0)` // Estimated: `7805 + r * (40 ±0)` - // Minimum execution time: 234_863_000 picoseconds. - Weight::from_parts(266_269_648, 7805) - // Standard Error: 1_151 - .saturating_add(Weight::from_parts(257_423, 0).saturating_mul(r.into())) + // Minimum execution time: 242_702_000 picoseconds. + Weight::from_parts(274_518_595, 7805) + // Standard Error: 1_138 + .saturating_add(Weight::from_parts(256_973, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) @@ -3677,10 +3674,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `776 + r * (3 ±0)` // Estimated: `6723 + r * (3 ±0)` - // Minimum execution time: 232_127_000 picoseconds. - Weight::from_parts(238_881_294, 6723) - // Standard Error: 320 - .saturating_add(Weight::from_parts(137_690, 0).saturating_mul(r.into())) + // Minimum execution time: 239_360_000 picoseconds. + Weight::from_parts(245_990_810, 6723) + // Standard Error: 3_188 + .saturating_add(Weight::from_parts(143_408, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) @@ -3690,449 +3687,449 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_567_000 picoseconds. - Weight::from_parts(1_867_809, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(2_979, 0).saturating_mul(r.into())) + // Minimum execution time: 1_617_000 picoseconds. + Weight::from_parts(1_900_268, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(2_950, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64load(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_727_000 picoseconds. - Weight::from_parts(2_540_267, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(6_350, 0).saturating_mul(r.into())) + // Minimum execution time: 1_739_000 picoseconds. + Weight::from_parts(2_109_373, 0) + // Standard Error: 43 + .saturating_add(Weight::from_parts(6_586, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_704_000 picoseconds. - Weight::from_parts(2_273_303, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_984, 0).saturating_mul(r.into())) + // Minimum execution time: 1_726_000 picoseconds. + Weight::from_parts(2_268_507, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_022, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_select(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_601_000 picoseconds. - Weight::from_parts(2_011_513, 0) + // Minimum execution time: 1_628_000 picoseconds. + Weight::from_parts(2_042_521, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(7_902, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(7_935, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_628_000 picoseconds. - Weight::from_parts(1_796_890, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(10_478, 0).saturating_mul(r.into())) + // Minimum execution time: 1_648_000 picoseconds. + Weight::from_parts(1_902_691, 0) + // Standard Error: 7 + .saturating_add(Weight::from_parts(10_572, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_606_000 picoseconds. - Weight::from_parts(1_880_527, 0) - // Standard Error: 11 - .saturating_add(Weight::from_parts(4_538, 0).saturating_mul(r.into())) + // Minimum execution time: 1_626_000 picoseconds. + Weight::from_parts(1_891_843, 0) + // Standard Error: 14 + .saturating_add(Weight::from_parts(4_612, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_if(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_576_000 picoseconds. - Weight::from_parts(2_302_964, 0) - // Standard Error: 72 - .saturating_add(Weight::from_parts(7_387, 0).saturating_mul(r.into())) + // Minimum execution time: 1_581_000 picoseconds. + Weight::from_parts(1_139_823, 0) + // Standard Error: 74 + .saturating_add(Weight::from_parts(8_008, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_br_table(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_627_000 picoseconds. - Weight::from_parts(1_310_508, 0) - // Standard Error: 32 - .saturating_add(Weight::from_parts(9_631, 0).saturating_mul(r.into())) + // Minimum execution time: 1_591_000 picoseconds. + Weight::from_parts(1_258_400, 0) + // Standard Error: 34 + .saturating_add(Weight::from_parts(9_706, 0).saturating_mul(r.into())) } /// The range of component `e` is `[1, 256]`. fn instr_br_table_per_entry(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(1_822_862, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(94, 0).saturating_mul(e.into())) + // Minimum execution time: 1_701_000 picoseconds. + Weight::from_parts(1_876_118, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(4, 0).saturating_mul(e.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_628_000 picoseconds. - Weight::from_parts(2_039_870, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(17_894, 0).saturating_mul(r.into())) + // Minimum execution time: 1_617_000 picoseconds. + Weight::from_parts(1_565_613, 0) + // Standard Error: 629 + .saturating_add(Weight::from_parts(19_575, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_call_indirect(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_863_000 picoseconds. - Weight::from_parts(3_007_528, 0) - // Standard Error: 9 - .saturating_add(Weight::from_parts(24_231, 0).saturating_mul(r.into())) + // Minimum execution time: 1_875_000 picoseconds. + Weight::from_parts(4_549_584, 0) + // Standard Error: 278 + .saturating_add(Weight::from_parts(24_336, 0).saturating_mul(r.into())) } /// The range of component `l` is `[0, 1024]`. fn instr_call_per_local(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_759_000 picoseconds. - Weight::from_parts(1_957_927, 0) - // Standard Error: 13 - .saturating_add(Weight::from_parts(1_156, 0).saturating_mul(l.into())) + // Minimum execution time: 1_742_000 picoseconds. + Weight::from_parts(2_087_387, 0) + // Standard Error: 26 + .saturating_add(Weight::from_parts(1_041, 0).saturating_mul(l.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_857_000 picoseconds. - Weight::from_parts(3_122_604, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(2_442, 0).saturating_mul(r.into())) + // Minimum execution time: 2_861_000 picoseconds. + Weight::from_parts(3_552_428, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(2_339, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_914_000 picoseconds. - Weight::from_parts(3_127_079, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_639, 0).saturating_mul(r.into())) + // Minimum execution time: 2_866_000 picoseconds. + Weight::from_parts(3_151_948, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(3_667, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_local_tee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_900_000 picoseconds. - Weight::from_parts(3_204_307, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(3_946, 0).saturating_mul(r.into())) + // Minimum execution time: 2_919_000 picoseconds. + Weight::from_parts(3_214_587, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(3_867, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_get(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_741_000 picoseconds. - Weight::from_parts(2_134_827, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_451, 0).saturating_mul(r.into())) + // Minimum execution time: 1_764_000 picoseconds. + Weight::from_parts(1_815_683, 0) + // Standard Error: 123 + .saturating_add(Weight::from_parts(8_733, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_global_set(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_721_000 picoseconds. - Weight::from_parts(2_167_053, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(8_992, 0).saturating_mul(r.into())) + // Minimum execution time: 1_783_000 picoseconds. + Weight::from_parts(2_437_152, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(8_839, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_memory_current(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_706_000 picoseconds. - Weight::from_parts(1_991_162, 0) + // Minimum execution time: 1_745_000 picoseconds. + Weight::from_parts(2_018_078, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_755, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_756, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 16]`. fn instr_memory_grow(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(511_720, 0) - // Standard Error: 138_374 - .saturating_add(Weight::from_parts(13_203_324, 0).saturating_mul(r.into())) + // Minimum execution time: 1_648_000 picoseconds. + Weight::from_parts(648_059, 0) + // Standard Error: 142_299 + .saturating_add(Weight::from_parts(13_313_060, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64clz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_661_000 picoseconds. - Weight::from_parts(1_929_686, 0) + // Minimum execution time: 1_652_000 picoseconds. + Weight::from_parts(1_953_179, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_917, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_828, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ctz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_563_000 picoseconds. - Weight::from_parts(2_118_935, 0) - // Standard Error: 94 - .saturating_add(Weight::from_parts(3_940, 0).saturating_mul(r.into())) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_924_759, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_762, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64popcnt(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_588_000 picoseconds. - Weight::from_parts(2_258_140, 0) - // Standard Error: 121 - .saturating_add(Weight::from_parts(3_862, 0).saturating_mul(r.into())) + // Minimum execution time: 1_687_000 picoseconds. + Weight::from_parts(1_959_683, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_754, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eqz(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_614_000 picoseconds. - Weight::from_parts(1_950_088, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(3_679, 0).saturating_mul(r.into())) + // Minimum execution time: 1_641_000 picoseconds. + Weight::from_parts(1_975_838, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_681, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendsi32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_576_000 picoseconds. - Weight::from_parts(1_931_086, 0) + // Minimum execution time: 1_689_000 picoseconds. + Weight::from_parts(1_980_109, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_937, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_880, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64extendui32(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_606_000 picoseconds. - Weight::from_parts(1_919_264, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_875, 0).saturating_mul(r.into())) + // Minimum execution time: 1_671_000 picoseconds. + Weight::from_parts(1_912_089, 0) + // Standard Error: 29 + .saturating_add(Weight::from_parts(3_896, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i32wrapi64(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_607_000 picoseconds. - Weight::from_parts(1_926_040, 0) + // Minimum execution time: 1_643_000 picoseconds. + Weight::from_parts(1_951_485, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(3_832, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(3_725, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64eq(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_607_000 picoseconds. - Weight::from_parts(1_953_738, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_002, 0).saturating_mul(r.into())) + // Minimum execution time: 1_649_000 picoseconds. + Weight::from_parts(1_937_598, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(6_045, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ne(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_584_000 picoseconds. - Weight::from_parts(1_929_381, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_012, 0).saturating_mul(r.into())) + // Minimum execution time: 1_651_000 picoseconds. + Weight::from_parts(2_202_977, 0) + // Standard Error: 313 + .saturating_add(Weight::from_parts(6_299, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64lts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_628_000 picoseconds. - Weight::from_parts(1_946_745, 0) + // Minimum execution time: 1_589_000 picoseconds. + Weight::from_parts(1_946_304, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_019, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ltu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_626_000 picoseconds. - Weight::from_parts(1_955_848, 0) + // Minimum execution time: 1_614_000 picoseconds. + Weight::from_parts(1_933_375, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(6_005, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_020, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gts(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_578_000 picoseconds. - Weight::from_parts(1_967_521, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(5_815, 0).saturating_mul(r.into())) + // Minimum execution time: 1_678_000 picoseconds. + Weight::from_parts(2_003_850, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_816, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64gtu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_619_000 picoseconds. - Weight::from_parts(1_937_179, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(6_079, 0).saturating_mul(r.into())) + // Minimum execution time: 1_651_000 picoseconds. + Weight::from_parts(1_971_321, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_114, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64les(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(1_973_996, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_991, 0).saturating_mul(r.into())) + // Minimum execution time: 1_647_000 picoseconds. + Weight::from_parts(2_017_232, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_990, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64leu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_594_000 picoseconds. - Weight::from_parts(1_968_872, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_085, 0).saturating_mul(r.into())) + // Minimum execution time: 1_635_000 picoseconds. + Weight::from_parts(3_232_848, 0) + // Standard Error: 105 + .saturating_add(Weight::from_parts(5_816, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64ges(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(1_959_695, 0) + // Minimum execution time: 1_623_000 picoseconds. + Weight::from_parts(1_996_165, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_936, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_964, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64geu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_609_000 picoseconds. - Weight::from_parts(1_965_085, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_006, 0).saturating_mul(r.into())) + // Minimum execution time: 1_668_000 picoseconds. + Weight::from_parts(1_973_238, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(6_021, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64add(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_672_000 picoseconds. - Weight::from_parts(2_281_182, 0) - // Standard Error: 72 - .saturating_add(Weight::from_parts(5_765, 0).saturating_mul(r.into())) + // Minimum execution time: 1_674_000 picoseconds. + Weight::from_parts(1_981_762, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(5_898, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64sub(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_605_000 picoseconds. - Weight::from_parts(1_947_972, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_136, 0).saturating_mul(r.into())) + // Minimum execution time: 1_632_000 picoseconds. + Weight::from_parts(1_935_700, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_154, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64mul(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_556_000 picoseconds. - Weight::from_parts(1_968_588, 0) + // Minimum execution time: 1_607_000 picoseconds. + Weight::from_parts(1_942_734, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_711, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_797, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_621_000 picoseconds. - Weight::from_parts(1_950_465, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(11_774, 0).saturating_mul(r.into())) + // Minimum execution time: 1_611_000 picoseconds. + Weight::from_parts(2_960_454, 0) + // Standard Error: 177 + .saturating_add(Weight::from_parts(11_666, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64divu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_611_000 picoseconds. - Weight::from_parts(1_993_703, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(10_621, 0).saturating_mul(r.into())) + // Minimum execution time: 1_641_000 picoseconds. + Weight::from_parts(2_104_200, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(10_540, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rems(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_535_000 picoseconds. - Weight::from_parts(2_811_668, 0) - // Standard Error: 108 - .saturating_add(Weight::from_parts(11_581, 0).saturating_mul(r.into())) + // Minimum execution time: 1_643_000 picoseconds. + Weight::from_parts(2_602_908, 0) + // Standard Error: 24 + .saturating_add(Weight::from_parts(11_900, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64remu(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(1_980_289, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(10_752, 0).saturating_mul(r.into())) + // Minimum execution time: 1_584_000 picoseconds. + Weight::from_parts(2_056_817, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(10_722, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64and(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_608_000 picoseconds. - Weight::from_parts(1_938_982, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(5_682, 0).saturating_mul(r.into())) + // Minimum execution time: 1_652_000 picoseconds. + Weight::from_parts(1_988_892, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_683, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64or(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_600_000 picoseconds. - Weight::from_parts(1_957_896, 0) - // Standard Error: 2 + // Minimum execution time: 1_660_000 picoseconds. + Weight::from_parts(2_148_537, 0) + // Standard Error: 38 .saturating_add(Weight::from_parts(5_756, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. @@ -4140,59 +4137,59 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_615_000 picoseconds. - Weight::from_parts(1_993_774, 0) + // Minimum execution time: 1_629_000 picoseconds. + Weight::from_parts(1_955_010, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(5_857, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_931, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_610_000 picoseconds. - Weight::from_parts(1_938_640, 0) + // Minimum execution time: 1_569_000 picoseconds. + Weight::from_parts(1_982_403, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(5_846, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(5_867, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shrs(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_617_000 picoseconds. - Weight::from_parts(1_935_145, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(6_140, 0).saturating_mul(r.into())) + // Minimum execution time: 1_615_000 picoseconds. + Weight::from_parts(1_989_920, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(6_137, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64shru(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_600_000 picoseconds. - Weight::from_parts(1_949_145, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(5_854, 0).saturating_mul(r.into())) + // Minimum execution time: 1_646_000 picoseconds. + Weight::from_parts(2_020_935, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_863, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotl(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_630_000 picoseconds. - Weight::from_parts(2_001_185, 0) - // Standard Error: 192 - .saturating_add(Weight::from_parts(6_148, 0).saturating_mul(r.into())) + // Minimum execution time: 1_661_000 picoseconds. + Weight::from_parts(2_320_710, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(5_922, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 5000]`. fn instr_i64rotr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_590_000 picoseconds. - Weight::from_parts(2_224_670, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(5_784, 0).saturating_mul(r.into())) + // Minimum execution time: 1_674_000 picoseconds. + Weight::from_parts(2_044_188, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(5_855, 0).saturating_mul(r.into())) } } From 80b103ff554869b54d96dcb0e2063ea33314fb2d Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Wed, 26 Apr 2023 19:04:50 +0200 Subject: [PATCH 44/53] contracts: move origin to CommonInput --- frame/contracts/src/lib.rs | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 0e5f104a619fb..1dfef85ea1914 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -117,7 +117,7 @@ use frame_support::{ weights::Weight, BoundedVec, RuntimeDebugNoBound, WeakBoundedVec, }; -use frame_system::{ensure_signed_or_root, Pallet as System}; +use frame_system::{ensure_signed, ensure_signed_or_root, Pallet as System}; use pallet_contracts_primitives::{ Code, CodeUploadResult, CodeUploadReturnValue, ContractAccessError, ContractExecResult, ContractInstantiateResult, ExecReturnValue, GetStorageResult, InstantiateReturnValue, @@ -592,14 +592,15 @@ pub mod pallet { }; let dest = T::Lookup::lookup(dest)?; let common = CommonInput { + origin, value, data, gas_limit, storage_deposit_limit: storage_deposit_limit.map(Into::into), debug_message: None, }; - let mut output = CallInput:: { origin, dest, determinism: Determinism::Enforced } - .run_guarded(common); + let mut output = + CallInput:: { dest, determinism: Determinism::Enforced }.run_guarded(common); if let Ok(retval) = &output.result { if retval.did_revert() { output.result = Err(>::ContractReverted.into()); @@ -653,14 +654,15 @@ pub mod pallet { let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { + origin: Origin::from_account_id(origin), value, data, gas_limit, storage_deposit_limit: storage_deposit_limit.map(Into::into), debug_message: None, }; - let mut output = InstantiateInput:: { origin, code: Code::Upload(code), salt } - .run_guarded(common); + let mut output = + InstantiateInput:: { code: Code::Upload(code), salt }.run_guarded(common); if let Ok(retval) = &output.result { if retval.1.did_revert() { output.result = Err(>::ContractReverted.into()); @@ -694,6 +696,7 @@ pub mod pallet { let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { + origin: Origin::from_account_id(origin), value, data, gas_limit, @@ -701,8 +704,7 @@ pub mod pallet { debug_message: None, }; let mut output = - InstantiateInput:: { origin, code: Code::Existing(code_hash), salt } - .run_guarded(common); + InstantiateInput:: { code: Code::Existing(code_hash), salt }.run_guarded(common); if let Ok(retval) = &output.result { if retval.1.did_revert() { output.result = Err(>::ContractReverted.into()); @@ -952,6 +954,7 @@ impl Origin { /// Context of a contract invocation. struct CommonInput<'a, T: Config> { + origin: Origin, value: BalanceOf, data: Vec, gas_limit: Weight, @@ -961,14 +964,12 @@ struct CommonInput<'a, T: Config> { /// Input specific to a call into contract. struct CallInput { - origin: Origin, dest: T::AccountId, determinism: Determinism, } /// Input specific to a contract instantiation invocation. struct InstantiateInput { - origin: T::AccountId, code: Code>, salt: Vec, } @@ -1047,7 +1048,8 @@ impl Invokable for CallInput { common: CommonInput, mut gas_meter: GasMeter, ) -> InternalOutput { - let CallInput { origin, dest, determinism } = self; + let CallInput { dest, determinism } = self; + let CommonInput { origin, value, data, debug_message, .. } = common; let mut storage_meter = match StorageMeter::new(&origin, common.storage_deposit_limit, common.value) { Ok(meter) => meter, @@ -1059,7 +1061,6 @@ impl Invokable for CallInput { }, }; let schedule = T::Schedule::get(); - let CommonInput { value, data, debug_message, .. } = common; let result = ExecStack::>::run_call( origin.clone(), dest.clone(), @@ -1086,7 +1087,9 @@ impl Invokable for InstantiateInput { let mut storage_deposit = Default::default(); let try_exec = || { let schedule = T::Schedule::get(); - let InstantiateInput { origin, salt, .. } = self; + let InstantiateInput { salt, .. } = self; + let CommonInput { origin: contract_origin, .. } = common; + let origin = contract_origin.account_id()?; let (extra_deposit, executable) = match &self.code { Code::Upload(binary) => { let executable = PrefabWasmModule::from_code( @@ -1120,7 +1123,6 @@ impl Invokable for InstantiateInput { common.storage_deposit_limit, common.value.saturating_add(extra_deposit), )?; - let CommonInput { value, data, debug_message, .. } = common; let result = ExecStack::>::run_instantiate( origin.clone(), @@ -1168,13 +1170,14 @@ impl Pallet { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; let origin = Origin::from_account_id(origin); let common = CommonInput { + origin, value, data, gas_limit, storage_deposit_limit, debug_message: debug_message.as_mut(), }; - let output = CallInput:: { origin, dest, determinism }.run_guarded(common); + let output = CallInput:: { dest, determinism }.run_guarded(common); ContractExecResult { result: output.result.map_err(|r| r.error), gas_consumed: output.gas_meter.gas_consumed(), @@ -1208,13 +1211,14 @@ impl Pallet { ) -> ContractInstantiateResult> { let mut debug_message = if debug { Some(DebugBufferVec::::default()) } else { None }; let common = CommonInput { + origin: Origin::from_account_id(origin), value, data, gas_limit, storage_deposit_limit, debug_message: debug_message.as_mut(), }; - let output = InstantiateInput:: { origin, code, salt }.run_guarded(common); + let output = InstantiateInput:: { code, salt }.run_guarded(common); ContractInstantiateResult { result: output .result From 28fba0314f1ff61b756484d6b0fa8c873c8d5e8d Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Thu, 27 Apr 2023 11:21:26 +0200 Subject: [PATCH 45/53] contracts: add some extra tests --- frame/contracts/src/lib.rs | 2 +- frame/contracts/src/tests.rs | 121 ++++++++++++++++++++++++++++++++++- 2 files changed, 121 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 1dfef85ea1914..e56101fd278b2 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -584,13 +584,13 @@ pub mod pallet { storage_deposit_limit: Option< as codec::HasCompact>::Type>, data: Vec, ) -> DispatchResultWithPostInfo { - let gas_limit: Weight = gas_limit.into(); // Ensure that the origin is either a signed extrinsic or root. let origin = match ensure_signed_or_root(origin)? { Some(t) => Origin::Signed(t), None => Origin::Root, }; let dest = T::Lookup::lookup(dest)?; + let gas_limit: Weight = gas_limit.into(); let common = CommonInput { origin, value, diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index 4601f494cf511..f3ec1d706f906 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -34,7 +34,7 @@ use assert_matches::assert_matches; use codec::Encode; use frame_support::{ assert_err, assert_err_ignore_postinfo, assert_noop, assert_ok, - dispatch::{DispatchErrorWithPostInfo, PostDispatchInfo}, + dispatch::{DispatchError, DispatchErrorWithPostInfo, PostDispatchInfo}, parameter_types, storage::child, traits::{ @@ -4874,3 +4874,122 @@ fn account_reentrance_count_works() { assert_eq!(result2.data, 0.encode()); }); } + +#[test] +fn root_cannot_upload_code() { + let (wasm, _) = compile_module::("dummy").unwrap(); + + ExtBuilder::default().build().execute_with(|| { + assert_noop!( + Contracts::upload_code(RuntimeOrigin::root(), wasm, None, Determinism::Enforced), + DispatchError::BadOrigin, + ); + }); +} + +#[test] +fn root_cannot_remove_code() { + let (_, code_hash) = compile_module::("dummy").unwrap(); + + ExtBuilder::default().build().execute_with(|| { + assert_noop!( + Contracts::remove_code(RuntimeOrigin::root(), code_hash), + DispatchError::BadOrigin, + ); + }); +} + +#[test] +fn signed_cannot_set_code() { + let (_, code_hash) = compile_module::("dummy").unwrap(); + + ExtBuilder::default().build().execute_with(|| { + assert_noop!( + Contracts::set_code(RuntimeOrigin::signed(ALICE), BOB, code_hash), + DispatchError::BadOrigin, + ); + }); +} + +#[test] +fn none_cannot_call_code() { + ExtBuilder::default().build().execute_with(|| { + assert_noop!( + Contracts::call(RuntimeOrigin::none(), BOB, 0, GAS_LIMIT, None, Vec::new()), + DispatchError::BadOrigin, + ); + }); +} + +#[test] +fn root_can_call() { + let (wasm, _) = compile_module::("dummy").unwrap(); + + ExtBuilder::default().existential_deposit(100).build().execute_with(|| { + let _ = Balances::deposit_creating(&ALICE, 1_000_000); + + let addr = Contracts::bare_instantiate( + ALICE, + 0, + GAS_LIMIT, + None, + Code::Upload(wasm), + vec![], + vec![], + false, + ) + .result + .unwrap() + .account_id; + + // Call the contract. + assert_ok!(Contracts::call( + RuntimeOrigin::root(), + addr.clone(), + 0, + GAS_LIMIT, + None, + vec![] + )); + }); +} + +#[test] +fn root_cannot_instantiate_with_code() { + let (wasm, _) = compile_module::("dummy").unwrap(); + + ExtBuilder::default().build().execute_with(|| { + assert_noop!( + Contracts::instantiate_with_code( + RuntimeOrigin::root(), + 0, + GAS_LIMIT, + None, + wasm, + vec![], + vec![], + ), + DispatchError::BadOrigin, + ); + }); +} + +#[test] +fn root_cannot_instantiate() { + let (_, code_hash) = compile_module::("dummy").unwrap(); + + ExtBuilder::default().build().execute_with(|| { + assert_noop!( + Contracts::instantiate( + RuntimeOrigin::root(), + 0, + GAS_LIMIT, + None, + code_hash, + vec![], + vec![], + ), + DispatchError::BadOrigin, + ); + }); +} From 0630f4a944ae9dc7a6a965d8ee71d92a72f00e47 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Fri, 28 Apr 2023 11:15:43 +0200 Subject: [PATCH 46/53] contracts: move ensure origin logic inside invokable::run_guarded --- frame/contracts/src/exec.rs | 2 +- frame/contracts/src/lib.rs | 69 ++++++++++++++++++++++++++---------- frame/contracts/src/tests.rs | 8 ++--- 3 files changed, 55 insertions(+), 24 deletions(-) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 56f4b1f822670..86c67a106f8d0 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -447,7 +447,7 @@ pub struct Frame { struct DelegatedCall { /// The executable which is run instead of the contracts own `executable`. executable: E, - /// The account id of the caller contract. + /// The caller of the contract stack. caller: Origin, } diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index e56101fd278b2..6e13cfea4d739 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -97,7 +97,6 @@ pub mod weights; #[cfg(test)] mod tests; - use crate::{ exec::{AccountIdOf, ErrorOrigin, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -108,8 +107,9 @@ use crate::{ use codec::{Codec, Decode, Encode, HasCompact}; use environmental::*; use frame_support::{ - dispatch::{DispatchError, Dispatchable, GetDispatchInfo, Pays, PostDispatchInfo}, + dispatch::{DispatchError, Dispatchable, GetDispatchInfo, Pays, PostDispatchInfo, RawOrigin}, ensure, + error::BadOrigin, traits::{ tokens::fungible::Inspect, ConstU32, Contains, Currency, Get, Randomness, ReservableCurrency, Time, @@ -117,7 +117,7 @@ use frame_support::{ weights::Weight, BoundedVec, RuntimeDebugNoBound, WeakBoundedVec, }; -use frame_system::{ensure_signed, ensure_signed_or_root, Pallet as System}; +use frame_system::{ensure_signed, pallet_prelude::OriginFor, Pallet as System}; use pallet_contracts_primitives::{ Code, CodeUploadResult, CodeUploadReturnValue, ContractAccessError, ContractExecResult, ContractInstantiateResult, ExecReturnValue, GetStorageResult, InstantiateReturnValue, @@ -584,21 +584,15 @@ pub mod pallet { storage_deposit_limit: Option< as codec::HasCompact>::Type>, data: Vec, ) -> DispatchResultWithPostInfo { - // Ensure that the origin is either a signed extrinsic or root. - let origin = match ensure_signed_or_root(origin)? { - Some(t) => Origin::Signed(t), - None => Origin::Root, - }; - let dest = T::Lookup::lookup(dest)?; - let gas_limit: Weight = gas_limit.into(); let common = CommonInput { - origin, + origin: Origin::from_origin_for(origin)?, value, data, - gas_limit, + gas_limit: gas_limit.into(), storage_deposit_limit: storage_deposit_limit.map(Into::into), debug_message: None, }; + let dest = T::Lookup::lookup(dest)?; let mut output = CallInput:: { dest, determinism: Determinism::Enforced }.run_guarded(common); if let Ok(retval) = &output.result { @@ -649,12 +643,11 @@ pub mod pallet { data: Vec, salt: Vec, ) -> DispatchResultWithPostInfo { - let origin = ensure_signed(origin)?; let code_len = code.len() as u32; let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { - origin: Origin::from_account_id(origin), + origin: Origin::from_origin_for(origin)?, value, data, gas_limit, @@ -692,11 +685,10 @@ pub mod pallet { data: Vec, salt: Vec, ) -> DispatchResultWithPostInfo { - let origin = ensure_signed(origin)?; let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { - origin: Origin::from_account_id(origin), + origin: Origin::from_origin_for(origin)?, value, data, gas_limit, @@ -940,9 +932,14 @@ impl Origin { pub fn from_account_id(account_id: T::AccountId) -> Self { Origin::Signed(account_id) } -} - -impl Origin { + /// Creates a new Origin from a OriginFor + pub fn from_origin_for(o: OriginFor) -> Result { + match o.into() { + Ok(RawOrigin::Root) => Ok(Self::Root), + Ok(RawOrigin::Signed(t)) => Ok(Self::Signed(t)), + _ => Err(BadOrigin.into()), + } + } /// Returns the AccountId of a Signed Origin or an error if the origin is Root. pub fn account_id(&self) -> Result<&T::AccountId, DispatchError> { match self { @@ -1003,6 +1000,16 @@ trait Invokable { environmental!(executing_contract: bool); let gas_limit = common.gas_limit; + + // Check whether the origin is allowed here. + if let Err(e) = self.ensure_origin(common.origin.clone()) { + return InternalOutput { + gas_meter: GasMeter::new(gas_limit), + storage_deposit: Default::default(), + result: Err(ExecError { error: e.into(), origin: ErrorOrigin::Caller }), + } + } + executing_contract::using_once(&mut false, || { executing_contract::with(|f| { // Fail if already entered contract execution @@ -1038,6 +1045,16 @@ trait Invokable { common: CommonInput, gas_meter: GasMeter, ) -> InternalOutput; + + /// This function ensures that the given `origin` is allowed to invoke the current `Invokable`. + /// + /// Called by dispatchables and public functions through the [`Invokable::run_guarded`]. + fn ensure_origin(&self, origin: Origin) -> Result, DispatchError> { + match origin { + Origin::Signed(t) => Ok(Some(t)), + _ => Err(DispatchError::BadOrigin), + } + } } impl Invokable for CallInput { @@ -1074,6 +1091,13 @@ impl Invokable for CallInput { ); InternalOutput { gas_meter, storage_deposit: storage_meter.into_deposit(&origin), result } } + + fn ensure_origin(&self, origin: Origin) -> Result, DispatchError> { + match origin { + Origin::Signed(t) => Ok(Some(t)), + Origin::Root => Ok(None), + } + } } impl Invokable for InstantiateInput { @@ -1142,6 +1166,13 @@ impl Invokable for InstantiateInput { }; InternalOutput { result: try_exec(), gas_meter, storage_deposit } } + + fn ensure_origin(&self, origin: Origin) -> Result, DispatchError> { + match origin { + Origin::Signed(t) => Ok(Some(t)), + Origin::Root => Err(DispatchError::RootNotAllowed), + } + } } impl Pallet { diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index f3ec1d706f906..e8695a34c2834 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -4959,7 +4959,7 @@ fn root_cannot_instantiate_with_code() { let (wasm, _) = compile_module::("dummy").unwrap(); ExtBuilder::default().build().execute_with(|| { - assert_noop!( + assert_err_ignore_postinfo!( Contracts::instantiate_with_code( RuntimeOrigin::root(), 0, @@ -4969,7 +4969,7 @@ fn root_cannot_instantiate_with_code() { vec![], vec![], ), - DispatchError::BadOrigin, + DispatchError::RootNotAllowed, ); }); } @@ -4979,7 +4979,7 @@ fn root_cannot_instantiate() { let (_, code_hash) = compile_module::("dummy").unwrap(); ExtBuilder::default().build().execute_with(|| { - assert_noop!( + assert_err_ignore_postinfo!( Contracts::instantiate( RuntimeOrigin::root(), 0, @@ -4989,7 +4989,7 @@ fn root_cannot_instantiate() { vec![], vec![], ), - DispatchError::BadOrigin, + DispatchError::RootNotAllowed ); }); } From 0d361269956bd1949b1fc4282d0de65f11780e88 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 1 May 2023 12:31:14 +0200 Subject: [PATCH 47/53] contracts: add minor improvements --- frame/contracts/src/benchmarking/mod.rs | 19 +++----------- frame/contracts/src/exec.rs | 10 ++++---- frame/contracts/src/lib.rs | 33 +++++++++++-------------- frame/contracts/src/tests.rs | 5 ++++ frame/contracts/src/wasm/mod.rs | 16 +++++++++--- frame/contracts/src/wasm/runtime.rs | 3 ++- 6 files changed, 41 insertions(+), 45 deletions(-) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index 2c60c1501df7a..6345f0911060a 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -537,22 +537,9 @@ benchmarks! { #[pov_mode = Measured] seal_caller_is_root { let r in 0 .. API_BENCHMARK_RUNS; - - let code = WasmModule::::from(ModuleDefinition { - memory: Some(ImportedMemory::max::()), - imported_functions: vec![ImportedFunction { - module: "seal0", - name: "caller_is_root", - params: vec![], - return_type: Some(ValueType::I32), - }], - call_body: Some(body::repeated(r, &[ - Instruction::Call(0), - Instruction::Drop, - ])), - .. Default::default() - }); - let instance = Contract::::new(code, vec![])?; + let instance = Contract::::new(WasmModule::getter( + "seal0", "caller_is_root", r + ), vec![])?; let origin = RawOrigin::Root; }: call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]) diff --git a/frame/contracts/src/exec.rs b/frame/contracts/src/exec.rs index 86c67a106f8d0..a81a633f740ab 100644 --- a/frame/contracts/src/exec.rs +++ b/frame/contracts/src/exec.rs @@ -447,7 +447,7 @@ pub struct Frame { struct DelegatedCall { /// The executable which is run instead of the contracts own `executable`. executable: E, - /// The caller of the contract stack. + /// The caller of the contract. caller: Origin, } @@ -1088,7 +1088,7 @@ where // any `value` other than 0. let caller = match self.caller() { Origin::Signed(caller) => caller, - Origin::Root if value == 0u32.into() => return Ok(()), + Origin::Root if value.is_zero() => return Ok(()), Origin::Root => return DispatchError::RootNotAllowed.into(), }; Self::transfer(ExistenceRequirement::KeepAlive, &caller, &frame.account_id, value) @@ -1202,7 +1202,7 @@ where FrameArgs::Call { dest: account_id, cached_info: Some(contract_info), - delegated_call: Some(DelegatedCall { executable, caller: self.caller() }), + delegated_call: Some(DelegatedCall { executable, caller: self.caller().clone() }), }, value, Weight::zero(), @@ -1303,7 +1303,7 @@ where } else { self.frames() .nth(1) - .map(|f| Origin::Signed(f.account_id.clone())) + .map(|f| Origin::from_account_id(f.account_id.clone())) .unwrap_or(self.origin.clone()) } } @@ -1321,7 +1321,7 @@ where } fn caller_is_origin(&self) -> bool { - &self.origin == &self.caller() + self.origin == self.caller() } fn caller_is_root(&self) -> bool { diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 6e13cfea4d739..94bde8277fa9b 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -585,7 +585,7 @@ pub mod pallet { data: Vec, ) -> DispatchResultWithPostInfo { let common = CommonInput { - origin: Origin::from_origin_for(origin)?, + origin: Origin::from_runtime_origin(origin)?, value, data, gas_limit: gas_limit.into(), @@ -647,7 +647,7 @@ pub mod pallet { let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { - origin: Origin::from_origin_for(origin)?, + origin: Origin::from_runtime_origin(origin)?, value, data, gas_limit, @@ -688,7 +688,7 @@ pub mod pallet { let data_len = data.len() as u32; let salt_len = salt.len() as u32; let common = CommonInput { - origin: Origin::from_origin_for(origin)?, + origin: Origin::from_runtime_origin(origin)?, value, data, gas_limit, @@ -932,8 +932,8 @@ impl Origin { pub fn from_account_id(account_id: T::AccountId) -> Self { Origin::Signed(account_id) } - /// Creates a new Origin from a OriginFor - pub fn from_origin_for(o: OriginFor) -> Result { + /// Creates a new Origin from a `RuntimeOrigin`. + pub fn from_runtime_origin(o: OriginFor) -> Result { match o.into() { Ok(RawOrigin::Root) => Ok(Self::Root), Ok(RawOrigin::Signed(t)) => Ok(Self::Signed(t)), @@ -1001,7 +1001,10 @@ trait Invokable { let gas_limit = common.gas_limit; - // Check whether the origin is allowed here. + // Check whether the origin is allowed here. The responsibility of making this decision is + // delegated to `ensure_origin`, this could vary for different implementations of this + // trait. For example, some actions might not allow Root origin as they could require an + // AccountId associated with the origin. if let Err(e) = self.ensure_origin(common.origin.clone()) { return InternalOutput { gas_meter: GasMeter::new(gas_limit), @@ -1049,12 +1052,7 @@ trait Invokable { /// This function ensures that the given `origin` is allowed to invoke the current `Invokable`. /// /// Called by dispatchables and public functions through the [`Invokable::run_guarded`]. - fn ensure_origin(&self, origin: Origin) -> Result, DispatchError> { - match origin { - Origin::Signed(t) => Ok(Some(t)), - _ => Err(DispatchError::BadOrigin), - } - } + fn ensure_origin(&self, origin: Origin) -> Result<(), DispatchError>; } impl Invokable for CallInput { @@ -1092,11 +1090,8 @@ impl Invokable for CallInput { InternalOutput { gas_meter, storage_deposit: storage_meter.into_deposit(&origin), result } } - fn ensure_origin(&self, origin: Origin) -> Result, DispatchError> { - match origin { - Origin::Signed(t) => Ok(Some(t)), - Origin::Root => Ok(None), - } + fn ensure_origin(&self, _origin: Origin) -> Result<(), DispatchError> { + Ok(()) } } @@ -1167,9 +1162,9 @@ impl Invokable for InstantiateInput { InternalOutput { result: try_exec(), gas_meter, storage_deposit } } - fn ensure_origin(&self, origin: Origin) -> Result, DispatchError> { + fn ensure_origin(&self, origin: Origin) -> Result<(), DispatchError> { match origin { - Origin::Signed(t) => Ok(Some(t)), + Origin::Signed(_) => Ok(()), Origin::Root => Err(DispatchError::RootNotAllowed), } } diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs index e8695a34c2834..cceada7887a6d 100644 --- a/frame/contracts/src/tests.rs +++ b/frame/contracts/src/tests.rs @@ -500,6 +500,11 @@ impl<'a> From> for Vec { } } +impl Default for Origin { + fn default() -> Self { + Self::Signed(ALICE) + } +} // Perform a call to a plain account. // The actual transfer fails because we can only call contracts. // Then we check that at least the base costs where charged (no runtime gas costs.) diff --git a/frame/contracts/src/wasm/mod.rs b/frame/contracts/src/wasm/mod.rs index ff509966e81cf..224c116946aa4 100644 --- a/frame/contracts/src/wasm/mod.rs +++ b/frame/contracts/src/wasm/mod.rs @@ -460,7 +460,7 @@ mod tests { gas_meter: GasMeter::new(Weight::from_parts(10_000_000_000, 10 * 1024 * 1024)), debug_buffer: Default::default(), ecdsa_recover: Default::default(), - caller: Origin::Signed(ALICE), + caller: Default::default(), sr25519_verify: Default::default(), } } @@ -564,7 +564,7 @@ mod tests { false } fn caller_is_root(&self) -> bool { - false + &self.caller == &Origin::Root } fn address(&self) -> &AccountIdOf { &BOB @@ -3017,10 +3017,18 @@ mod tests { ) ) "#; + // The default `caller` is ALICE. Therefore not root. let output = execute(CODE_CALLER_IS_ROOT, vec![], MockExt::default()).unwrap(); - - // The mock ext just always returns 0u32 (`false`) assert_eq!(output, ExecReturnValue { flags: ReturnFlags::empty(), data: 0u32.encode() },); + + // The caller is forced to be root instead of using the default ALICE. + let output = execute( + CODE_CALLER_IS_ROOT, + vec![], + MockExt { caller: Origin::Root, ..MockExt::default() }, + ) + .unwrap(); + assert_eq!(output, ExecReturnValue { flags: ReturnFlags::empty(), data: 1u32.encode() },); } #[test] diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 9c172342280c8..54763daddf4fa 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1865,7 +1865,8 @@ pub mod env { /// Checks whether the caller of the current contract is root. /// - /// Note that this is only possible when root is the origin of the whole call stack. + /// Note that only the origin can be root. Hence this function implies that the caller is being + /// called by the origin. /// /// A return value of `true` indicates that this contract is being called by a root origin /// and `false` indicates that the caller is a signed origin. From 25235f60345a550ae5063093cec1c5b9a55dbfab Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Mon, 1 May 2023 17:12:48 +0200 Subject: [PATCH 48/53] contracts: fix caller_is_root benchmarking --- frame/contracts/src/benchmarking/mod.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/frame/contracts/src/benchmarking/mod.rs b/frame/contracts/src/benchmarking/mod.rs index 6345f0911060a..2c60c1501df7a 100644 --- a/frame/contracts/src/benchmarking/mod.rs +++ b/frame/contracts/src/benchmarking/mod.rs @@ -537,9 +537,22 @@ benchmarks! { #[pov_mode = Measured] seal_caller_is_root { let r in 0 .. API_BENCHMARK_RUNS; - let instance = Contract::::new(WasmModule::getter( - "seal0", "caller_is_root", r - ), vec![])?; + + let code = WasmModule::::from(ModuleDefinition { + memory: Some(ImportedMemory::max::()), + imported_functions: vec![ImportedFunction { + module: "seal0", + name: "caller_is_root", + params: vec![], + return_type: Some(ValueType::I32), + }], + call_body: Some(body::repeated(r, &[ + Instruction::Call(0), + Instruction::Drop, + ])), + .. Default::default() + }); + let instance = Contract::::new(code, vec![])?; let origin = RawOrigin::Root; }: call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]) From a2e76f7a973cd244768c2a62e30d15013ac2ee71 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 2 May 2023 10:33:19 +0200 Subject: [PATCH 49/53] contracts: improve function description --- frame/contracts/src/wasm/runtime.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 54763daddf4fa..1ddd8273c5512 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1865,8 +1865,8 @@ pub mod env { /// Checks whether the caller of the current contract is root. /// - /// Note that only the origin can be root. Hence this function implies that the caller is being - /// called by the origin. + /// Note that only the origin can be root. Hence this function returning `true` implies that the + /// caller is being called by the origin. /// /// A return value of `true` indicates that this contract is being called by a root origin /// and `false` indicates that the caller is a signed origin. From 32de5183c95aaa84a486a8cae62602067a97b5a1 Mon Sep 17 00:00:00 2001 From: juangirini Date: Tue, 2 May 2023 12:16:57 +0200 Subject: [PATCH 50/53] Update frame/contracts/src/lib.rs Co-authored-by: Sasha Gryaznov --- frame/contracts/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index 3665bb6eaa763..f067160ee91a7 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -1001,8 +1001,8 @@ trait Invokable { let gas_limit = common.gas_limit; - // Check whether the origin is allowed here. The responsibility of making this decision is - // delegated to `ensure_origin`, this could vary for different implementations of this + // Check whether the origin is allowed here. The logic of the access rules + // is in the `ensure_origin`, this could vary for different implementations of this // trait. For example, some actions might not allow Root origin as they could require an // AccountId associated with the origin. if let Err(e) = self.ensure_origin(common.origin.clone()) { From da9d6d8e38b893240f1e67f1b6d867cafdc76a8f Mon Sep 17 00:00:00 2001 From: juangirini Date: Tue, 2 May 2023 12:18:33 +0200 Subject: [PATCH 51/53] Update frame/contracts/src/lib.rs Co-authored-by: Sasha Gryaznov --- frame/contracts/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/contracts/src/lib.rs b/frame/contracts/src/lib.rs index f067160ee91a7..97fa284577d47 100644 --- a/frame/contracts/src/lib.rs +++ b/frame/contracts/src/lib.rs @@ -1049,7 +1049,7 @@ trait Invokable { gas_meter: GasMeter, ) -> InternalOutput; - /// This function ensures that the given `origin` is allowed to invoke the current `Invokable`. + /// This method ensures that the given `origin` is allowed to invoke the current `Invokable`. /// /// Called by dispatchables and public functions through the [`Invokable::run_guarded`]. fn ensure_origin(&self, origin: Origin) -> Result<(), DispatchError>; From 225c8d48f7810c27ee1e6004d4fe09cd9d47da14 Mon Sep 17 00:00:00 2001 From: juangirini Date: Tue, 2 May 2023 12:23:41 +0200 Subject: [PATCH 52/53] Update frame/contracts/src/wasm/runtime.rs Co-authored-by: Sasha Gryaznov --- frame/contracts/src/wasm/runtime.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index 1ddd8273c5512..be2f317a2503d 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1868,7 +1868,7 @@ pub mod env { /// Note that only the origin can be root. Hence this function returning `true` implies that the /// caller is being called by the origin. /// - /// A return value of `true` indicates that this contract is being called by a root origin + /// A return value of `true` indicates that this contract is being called by a root origin, /// and `false` indicates that the caller is a signed origin. /// /// Returned value is a `u32`-encoded boolean: (`0 = false`, `1 = true`). From b3c8445029aba776fb82ef6aac22140387621df2 Mon Sep 17 00:00:00 2001 From: Juan Girini Date: Tue, 2 May 2023 12:35:34 +0200 Subject: [PATCH 53/53] contracts: improve function description --- frame/contracts/src/wasm/runtime.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/contracts/src/wasm/runtime.rs b/frame/contracts/src/wasm/runtime.rs index be2f317a2503d..330bf19d65232 100644 --- a/frame/contracts/src/wasm/runtime.rs +++ b/frame/contracts/src/wasm/runtime.rs @@ -1865,8 +1865,8 @@ pub mod env { /// Checks whether the caller of the current contract is root. /// - /// Note that only the origin can be root. Hence this function returning `true` implies that the - /// caller is being called by the origin. + /// Note that only the origin of the call stack can be root. Hence this function returning + /// `true` implies that the contract is being called by the origin. /// /// A return value of `true` indicates that this contract is being called by a root origin, /// and `false` indicates that the caller is a signed origin.