mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-28 07:27:55 +00:00
contracts: Improve contract address derivation (#12883)
* Add prefix to address derivation * Extend benchmark * Fix node test * ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts * Adapt to new benchmark * Update dispatchable benchmarks * ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts * Use benchmark results * Apply suggestions from code review Co-authored-by: Sasha Gryaznov <hi@agryaznov.com> * Don't use T::AdressGenerator directly * Rename constructor_args to input_data Co-authored-by: command-bot <> Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>
This commit is contained in:
committed by
GitHub
parent
af15848be0
commit
4083b5358a
@@ -29,7 +29,6 @@ use codec::{Decode, DecodeLimit, Encode, MaxEncodedLen};
|
||||
use frame_support::{dispatch::DispatchError, ensure, traits::Get, weights::Weight, RuntimeDebug};
|
||||
use pallet_contracts_primitives::{ExecReturnValue, ReturnFlags};
|
||||
use pallet_contracts_proc_macro::define_env;
|
||||
use sp_core::crypto::UncheckedFrom;
|
||||
use sp_io::hashing::{blake2_128, blake2_256, keccak_256, sha2_256};
|
||||
use sp_runtime::traits::{Bounded, Zero};
|
||||
use sp_std::{fmt, prelude::*};
|
||||
@@ -270,11 +269,7 @@ pub enum RuntimeCosts {
|
||||
}
|
||||
|
||||
impl RuntimeCosts {
|
||||
fn token<T>(&self, s: &HostFnWeights<T>) -> RuntimeToken
|
||||
where
|
||||
T: Config,
|
||||
T::AccountId: UncheckedFrom<T::Hash> + AsRef<[u8]>,
|
||||
{
|
||||
fn token<T: Config>(&self, s: &HostFnWeights<T>) -> RuntimeToken {
|
||||
use self::RuntimeCosts::*;
|
||||
let weight = match *self {
|
||||
MeteringBlock(amount) => s.gas.saturating_add(amount),
|
||||
@@ -324,7 +319,7 @@ impl RuntimeCosts {
|
||||
CallInputCloned(len) => s.call_per_cloned_byte.saturating_mul(len.into()),
|
||||
InstantiateBase { input_data_len, salt_len } => s
|
||||
.instantiate
|
||||
.saturating_add(s.return_per_byte.saturating_mul(input_data_len.into()))
|
||||
.saturating_add(s.instantiate_per_input_byte.saturating_mul(input_data_len.into()))
|
||||
.saturating_add(s.instantiate_per_salt_byte.saturating_mul(salt_len.into())),
|
||||
InstantiateSurchargeTransfer => s.instantiate_transfer_surcharge,
|
||||
HashSha256(len) => s
|
||||
@@ -375,11 +370,7 @@ struct RuntimeToken {
|
||||
weight: Weight,
|
||||
}
|
||||
|
||||
impl<T> Token<T> for RuntimeToken
|
||||
where
|
||||
T: Config,
|
||||
T::AccountId: UncheckedFrom<T::Hash> + AsRef<[u8]>,
|
||||
{
|
||||
impl<T: Config> Token<T> for RuntimeToken {
|
||||
fn weight(&self) -> Weight {
|
||||
self.weight
|
||||
}
|
||||
@@ -463,12 +454,7 @@ pub struct Runtime<'a, E: Ext + 'a> {
|
||||
chain_extension: Option<Box<<E::T as Config>::ChainExtension>>,
|
||||
}
|
||||
|
||||
impl<'a, E> Runtime<'a, E>
|
||||
where
|
||||
E: Ext + 'a,
|
||||
<E::T as frame_system::Config>::AccountId:
|
||||
UncheckedFrom<<E::T as frame_system::Config>::Hash> + AsRef<[u8]>,
|
||||
{
|
||||
impl<'a, E: Ext + 'a> Runtime<'a, E> {
|
||||
pub fn new(ext: &'a mut E, input_data: Vec<u8>) -> Self {
|
||||
Runtime {
|
||||
ext,
|
||||
|
||||
Reference in New Issue
Block a user