mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-20 11:41:02 +00:00
Weight v1.5: Opaque Struct (#12138)
* initial idea * update frame_support * update a bunch more * add ord * adjust RuntimeDbWeight * frame_system builds * re-export * frame_support tests pass * frame_executive compile * frame_executive builds * frame_system tests passing * pallet-utility tests pass * fix a bunch of pallets * more * phragmen * state-trie-migration * scheduler and referenda * pallet-election-provider-multi-phase * aura * staking * more * babe * balances * bunch more * sudo * transaction-payment * asset-tx-payment * last pallets * fix alliance merge * fix node template runtime * fix pallet-contracts cc @athei * fix node runtime * fix compile on runtime-benchmarks feature * comment * fix frame-support-test * fix more tests * weight regex * frame system works * fix a bunch * more * more * more * more * more * more fixes * update templates * fix contracts benchmarks * Update lib.rs * Update lib.rs * fix ui * make scalar saturating mul const * more const functions * scalar div * refactor using constant functions * move impl * fix overhead template * use compactas * Update lib.rs
This commit is contained in:
@@ -218,14 +218,16 @@ impl<T: Config> Token<T> for CodeToken {
|
||||
// contract code. This is why we subtract `T::*::(0)`. We need to do this at this
|
||||
// point because when charging the general weight for calling the contract we not know the
|
||||
// size of the contract.
|
||||
match *self {
|
||||
let ref_time_weight = match *self {
|
||||
Reinstrument(len) => T::WeightInfo::reinstrument(len),
|
||||
Load(len) => {
|
||||
let computation = T::WeightInfo::call_with_code_per_byte(len)
|
||||
.saturating_sub(T::WeightInfo::call_with_code_per_byte(0));
|
||||
let bandwidth = T::ContractAccessWeight::get().saturating_mul(len.into());
|
||||
let bandwidth = T::ContractAccessWeight::get().scalar_saturating_mul(len as u64);
|
||||
computation.max(bandwidth)
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
ref_time_weight
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@ mod tests {
|
||||
events: Default::default(),
|
||||
runtime_calls: Default::default(),
|
||||
schedule: Default::default(),
|
||||
gas_meter: GasMeter::new(10_000_000_000),
|
||||
gas_meter: GasMeter::new(Weight::from_ref_time(10_000_000_000)),
|
||||
debug_buffer: Default::default(),
|
||||
ecdsa_recover: Default::default(),
|
||||
}
|
||||
@@ -406,7 +406,7 @@ mod tests {
|
||||
code_hash,
|
||||
value,
|
||||
data: data.to_vec(),
|
||||
gas_left: gas_limit,
|
||||
gas_left: gas_limit.ref_time(),
|
||||
salt: salt.to_vec(),
|
||||
});
|
||||
Ok((
|
||||
@@ -520,7 +520,7 @@ mod tests {
|
||||
16_384
|
||||
}
|
||||
fn get_weight_price(&self, weight: Weight) -> BalanceOf<Self::T> {
|
||||
BalanceOf::<Self::T>::from(1312_u32).saturating_mul(weight.into())
|
||||
BalanceOf::<Self::T>::from(1312_u32).saturating_mul(weight.ref_time().into())
|
||||
}
|
||||
fn schedule(&self) -> &Schedule<Self::T> {
|
||||
&self.schedule
|
||||
@@ -1911,7 +1911,7 @@ mod tests {
|
||||
)]
|
||||
);
|
||||
|
||||
assert!(mock_ext.gas_meter.gas_left() > 0);
|
||||
assert!(mock_ext.gas_meter.gas_left() > Weight::zero());
|
||||
}
|
||||
|
||||
const CODE_DEPOSIT_EVENT_MAX_TOPICS: &str = r#"
|
||||
|
||||
@@ -327,14 +327,14 @@ impl RuntimeCosts {
|
||||
EcdsaRecovery => s.ecdsa_recover,
|
||||
ChainExtension(amount) => amount,
|
||||
#[cfg(feature = "unstable-interface")]
|
||||
CallRuntime(weight) => weight,
|
||||
CallRuntime(weight) => weight.ref_time(),
|
||||
SetCodeHash => s.set_code_hash,
|
||||
EcdsaToEthAddress => s.ecdsa_to_eth_address,
|
||||
};
|
||||
RuntimeToken {
|
||||
#[cfg(test)]
|
||||
_created_from: *self,
|
||||
weight,
|
||||
weight: Weight::from_ref_time(weight),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -857,7 +857,7 @@ where
|
||||
self.charge_gas(RuntimeCosts::CallSurchargeTransfer)?;
|
||||
}
|
||||
self.ext.call(
|
||||
gas,
|
||||
Weight::from_ref_time(gas),
|
||||
callee,
|
||||
value,
|
||||
input_data,
|
||||
@@ -906,6 +906,7 @@ where
|
||||
salt_ptr: u32,
|
||||
salt_len: u32,
|
||||
) -> Result<ReturnCode, TrapReason> {
|
||||
let gas = Weight::from_ref_time(gas);
|
||||
self.charge_gas(RuntimeCosts::InstantiateBase { input_data_len, salt_len })?;
|
||||
let value: BalanceOf<<E as Ext>::T> = self.read_sandbox_memory_as(value_ptr)?;
|
||||
if value > 0u32.into() {
|
||||
@@ -1704,6 +1705,7 @@ pub mod env {
|
||||
out_ptr: u32,
|
||||
out_len_ptr: u32,
|
||||
) -> Result<(), TrapReason> {
|
||||
let gas = Weight::from_ref_time(gas);
|
||||
ctx.charge_gas(RuntimeCosts::WeightToFee)?;
|
||||
Ok(ctx.write_sandbox_output(
|
||||
out_ptr,
|
||||
|
||||
Reference in New Issue
Block a user