mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-22 19:49:22 +00:00
Update to the latest Serai Substrate (#125)
* Update to the latest Serai Substrate
* Add Protobuf to build dependencies
Docker shouldn't need updating as this should've been added to the image
in
2dbace5b01
.
* Get substrate to build
* Correct protoc build step
* Remove the benchmarking code
There's some macro resolution error that isn't apparent. I worked on it
for about half an hour but...
* Remove unnecessary clone
* Correct runtime-benchmarks flag usage
This commit is contained in:
parent
2c3f36fd3f
commit
482a8ec209
9 changed files with 588 additions and 515 deletions
|
@ -15,6 +15,9 @@ inputs:
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
|
- name: Install Protobuf
|
||||||
|
uses: arduino/setup-protoc@v1
|
||||||
|
|
||||||
- name: Install solc
|
- name: Install solc
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
|
961
Cargo.lock
generated
961
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,7 @@
|
||||||
##### Ubuntu
|
##### Ubuntu
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install -y build-essential cmake clang-11 git curl python3-pip
|
sudo apt-get install -y build-essential cmake clang-11 git curl python3-pip protobuf-compiler
|
||||||
```
|
```
|
||||||
|
|
||||||
### Install rustup
|
### Install rustup
|
||||||
|
|
|
@ -3,7 +3,6 @@ use std::{marker::Sync, sync::Arc, time::Duration};
|
||||||
use substrate_prometheus_endpoint::Registry;
|
use substrate_prometheus_endpoint::Registry;
|
||||||
|
|
||||||
use sc_consensus_pow as sc_pow;
|
use sc_consensus_pow as sc_pow;
|
||||||
use sc_client_api::call_executor::ExecutorProvider;
|
|
||||||
use sc_executor::NativeElseWasmExecutor;
|
use sc_executor::NativeElseWasmExecutor;
|
||||||
use sc_service::TaskManager;
|
use sc_service::TaskManager;
|
||||||
|
|
||||||
|
@ -40,12 +39,11 @@ pub fn import_queue<S: sp_consensus::SelectChain<Block> + 'static>(
|
||||||
) -> Result<sc_pow::PowImportQueue<Block, Db>, sp_consensus::Error> {
|
) -> Result<sc_pow::PowImportQueue<Block, Db>, sp_consensus::Error> {
|
||||||
let pow_block_import = Box::new(sc_pow::PowBlockImport::new(
|
let pow_block_import = Box::new(sc_pow::PowBlockImport::new(
|
||||||
client.clone(),
|
client.clone(),
|
||||||
client.clone(),
|
client,
|
||||||
algorithm::AcceptAny,
|
algorithm::AcceptAny,
|
||||||
0,
|
0,
|
||||||
select_chain,
|
select_chain,
|
||||||
|_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
|
|_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
|
||||||
sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
|
|
||||||
));
|
));
|
||||||
|
|
||||||
sc_pow::import_queue(
|
sc_pow::import_queue(
|
||||||
|
@ -97,8 +95,6 @@ pub fn authority<S: sp_consensus::SelectChain<Block> + 'static>(
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
let can_author_with = sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());
|
|
||||||
|
|
||||||
let pow_block_import = Box::new(sc_pow::PowBlockImport::new(
|
let pow_block_import = Box::new(sc_pow::PowBlockImport::new(
|
||||||
client.clone(),
|
client.clone(),
|
||||||
client.clone(),
|
client.clone(),
|
||||||
|
@ -106,7 +102,6 @@ pub fn authority<S: sp_consensus::SelectChain<Block> + 'static>(
|
||||||
0, // Block to start checking inherents at
|
0, // Block to start checking inherents at
|
||||||
select_chain.clone(),
|
select_chain.clone(),
|
||||||
move |_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
|
move |_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
|
||||||
sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
|
|
||||||
));
|
));
|
||||||
|
|
||||||
let (worker, worker_task) = sc_pow::start_mining_worker(
|
let (worker, worker_task) = sc_pow::start_mining_worker(
|
||||||
|
@ -121,7 +116,6 @@ pub fn authority<S: sp_consensus::SelectChain<Block> + 'static>(
|
||||||
move |_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
|
move |_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
|
||||||
Duration::from_secs(6),
|
Duration::from_secs(6),
|
||||||
Duration::from_secs(2),
|
Duration::from_secs(2),
|
||||||
can_author_with,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
task_manager.spawn_essential_handle().spawn_blocking("pow", None, worker_task);
|
task_manager.spawn_essential_handle().spawn_blocking("pow", None, worker_task);
|
||||||
|
|
|
@ -31,7 +31,7 @@ frame-system = { git = "https://github.com/serai-dex/substrate" }
|
||||||
pallet-transaction-payment = { git = "https://github.com/serai-dex/substrate", default-features = false }
|
pallet-transaction-payment = { git = "https://github.com/serai-dex/substrate", default-features = false }
|
||||||
|
|
||||||
# These dependencies are used for the node template's RPCs
|
# These dependencies are used for the node template's RPCs
|
||||||
jsonrpsee = { version = "0.14.0", features = ["server"] }
|
jsonrpsee = { version = "0.15.1", features = ["server"] }
|
||||||
sc-rpc = { git = "https://github.com/serai-dex/substrate" }
|
sc-rpc = { git = "https://github.com/serai-dex/substrate" }
|
||||||
sp-api = { git = "https://github.com/serai-dex/substrate" }
|
sp-api = { git = "https://github.com/serai-dex/substrate" }
|
||||||
sc-rpc-api = { git = "https://github.com/serai-dex/substrate" }
|
sc-rpc-api = { git = "https://github.com/serai-dex/substrate" }
|
||||||
|
@ -54,4 +54,8 @@ substrate-build-script-utils = { git = "https://github.com/serai-dex/substrate.g
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
runtime-benchmarks = ["serai-runtime/runtime-benchmarks"]
|
runtime-benchmarks = [
|
||||||
|
"frame-benchmarking/runtime-benchmarks",
|
||||||
|
"frame-benchmarking-cli/runtime-benchmarks",
|
||||||
|
"serai-runtime/runtime-benchmarks"
|
||||||
|
]
|
||||||
|
|
|
@ -94,6 +94,12 @@ pub fn run() -> sc_cli::Result<()> {
|
||||||
|
|
||||||
BenchmarkCmd::Block(cmd) => cmd.run(service::new_partial(&config)?.client),
|
BenchmarkCmd::Block(cmd) => cmd.run(service::new_partial(&config)?.client),
|
||||||
|
|
||||||
|
#[cfg(not(feature = "runtime-benchmarks"))]
|
||||||
|
BenchmarkCmd::Storage(_) => {
|
||||||
|
Err("Storage benchmarking can be enabled with `--features runtime-benchmarks`.".into())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "runtime-benchmarks")]
|
||||||
BenchmarkCmd::Storage(cmd) => {
|
BenchmarkCmd::Storage(cmd) => {
|
||||||
let PartialComponents { client, backend, .. } = service::new_partial(&config)?;
|
let PartialComponents { client, backend, .. } = service::new_partial(&config)?;
|
||||||
cmd.run(config, client, backend.expose_db(), backend.expose_storage())
|
cmd.run(config, client, backend.expose_db(), backend.expose_storage())
|
||||||
|
@ -101,7 +107,13 @@ pub fn run() -> sc_cli::Result<()> {
|
||||||
|
|
||||||
BenchmarkCmd::Overhead(cmd) => {
|
BenchmarkCmd::Overhead(cmd) => {
|
||||||
let client = service::new_partial(&config)?.client;
|
let client = service::new_partial(&config)?.client;
|
||||||
cmd.run(config, client.clone(), inherent_benchmark_data()?, &RemarkBuilder::new(client))
|
cmd.run(
|
||||||
|
config,
|
||||||
|
client.clone(),
|
||||||
|
inherent_benchmark_data()?,
|
||||||
|
vec![],
|
||||||
|
&RemarkBuilder::new(client),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
BenchmarkCmd::Extrinsic(cmd) => {
|
BenchmarkCmd::Extrinsic(cmd) => {
|
||||||
|
@ -109,6 +121,7 @@ pub fn run() -> sc_cli::Result<()> {
|
||||||
cmd.run(
|
cmd.run(
|
||||||
client.clone(),
|
client.clone(),
|
||||||
inherent_benchmark_data()?,
|
inherent_benchmark_data()?,
|
||||||
|
vec![],
|
||||||
&ExtrinsicFactory(vec![Box::new(RemarkBuilder::new(client))]),
|
&ExtrinsicFactory(vec![Box::new(RemarkBuilder::new(client))]),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder {
|
||||||
pub fn create_benchmark_extrinsic(
|
pub fn create_benchmark_extrinsic(
|
||||||
client: &FullClient,
|
client: &FullClient,
|
||||||
sender: sp_core::sr25519::Pair,
|
sender: sp_core::sr25519::Pair,
|
||||||
call: runtime::Call,
|
call: runtime::RuntimeCall,
|
||||||
nonce: u32,
|
nonce: u32,
|
||||||
) -> runtime::UncheckedExtrinsic {
|
) -> runtime::UncheckedExtrinsic {
|
||||||
let extra = (
|
let extra = (
|
||||||
|
|
|
@ -96,7 +96,7 @@ pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {
|
||||||
transaction_pool,
|
transaction_pool,
|
||||||
} = new_partial(&config)?;
|
} = new_partial(&config)?;
|
||||||
|
|
||||||
let (network, system_rpc_tx, network_starter) =
|
let (network, system_rpc_tx, tx_handler_controller, network_starter) =
|
||||||
sc_service::build_network(sc_service::BuildNetworkParams {
|
sc_service::build_network(sc_service::BuildNetworkParams {
|
||||||
config: &config,
|
config: &config,
|
||||||
client: client.clone(),
|
client: client.clone(),
|
||||||
|
@ -142,6 +142,7 @@ pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {
|
||||||
rpc_builder: rpc_extensions_builder,
|
rpc_builder: rpc_extensions_builder,
|
||||||
backend,
|
backend,
|
||||||
system_rpc_tx,
|
system_rpc_tx,
|
||||||
|
tx_handler_controller,
|
||||||
config,
|
config,
|
||||||
telemetry: telemetry.as_mut(),
|
telemetry: telemetry.as_mut(),
|
||||||
})?;
|
})?;
|
||||||
|
|
|
@ -17,11 +17,12 @@ use sp_version::NativeVersion;
|
||||||
use sp_version::RuntimeVersion;
|
use sp_version::RuntimeVersion;
|
||||||
|
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
traits::{OnRuntimeUpgrade, ConstU8, ConstU32, ConstU64},
|
traits::{ConstU8, ConstU32, ConstU64},
|
||||||
weights::{
|
weights::{
|
||||||
constants::{RocksDbWeight, ExtrinsicBaseWeight, BlockExecutionWeight, WEIGHT_PER_SECOND},
|
constants::{RocksDbWeight, ExtrinsicBaseWeight, BlockExecutionWeight, WEIGHT_PER_SECOND},
|
||||||
IdentityFee, Weight, DispatchClass,
|
IdentityFee, Weight,
|
||||||
},
|
},
|
||||||
|
dispatch::DispatchClass,
|
||||||
parameter_types, construct_runtime,
|
parameter_types, construct_runtime,
|
||||||
};
|
};
|
||||||
pub use frame_system::Call as SystemCall;
|
pub use frame_system::Call as SystemCall;
|
||||||
|
@ -29,7 +30,7 @@ pub use frame_system::Call as SystemCall;
|
||||||
pub use pallet_timestamp::Call as TimestampCall;
|
pub use pallet_timestamp::Call as TimestampCall;
|
||||||
pub use pallet_balances::Call as BalancesCall;
|
pub use pallet_balances::Call as BalancesCall;
|
||||||
use pallet_transaction_payment::CurrencyAdapter;
|
use pallet_transaction_payment::CurrencyAdapter;
|
||||||
use pallet_contracts::{migration, DefaultContractAccessWeight};
|
use pallet_contracts::DefaultContractAccessWeight;
|
||||||
|
|
||||||
/// An index to a block.
|
/// An index to a block.
|
||||||
pub type BlockNumber = u32;
|
pub type BlockNumber = u32;
|
||||||
|
@ -96,7 +97,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
|
||||||
const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10);
|
const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10);
|
||||||
|
|
||||||
/// We allow for 2 seconds of compute with a 6 second average block time.
|
/// We allow for 2 seconds of compute with a 6 second average block time.
|
||||||
const MAXIMUM_BLOCK_WEIGHT: Weight = 2 * WEIGHT_PER_SECOND;
|
const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_ref_time(2 * WEIGHT_PER_SECOND.ref_time());
|
||||||
|
|
||||||
// Prints debug output of the `contracts` pallet to stdout if the node is
|
// Prints debug output of the `contracts` pallet to stdout if the node is
|
||||||
// started with `-lruntime::contracts=debug`.
|
// started with `-lruntime::contracts=debug`.
|
||||||
|
@ -156,15 +157,15 @@ impl frame_system::Config for Runtime {
|
||||||
type BlockWeights = BlockWeights;
|
type BlockWeights = BlockWeights;
|
||||||
type BlockLength = BlockLength;
|
type BlockLength = BlockLength;
|
||||||
type AccountId = AccountId;
|
type AccountId = AccountId;
|
||||||
type Call = Call;
|
type RuntimeCall = RuntimeCall;
|
||||||
type Lookup = AccountIdLookup<AccountId, ()>;
|
type Lookup = AccountIdLookup<AccountId, ()>;
|
||||||
type Index = Index;
|
type Index = Index;
|
||||||
type BlockNumber = BlockNumber;
|
type BlockNumber = BlockNumber;
|
||||||
type Hash = Hash;
|
type Hash = Hash;
|
||||||
type Hashing = BlakeTwo256;
|
type Hashing = BlakeTwo256;
|
||||||
type Header = Header;
|
type Header = Header;
|
||||||
type Event = Event;
|
type RuntimeOrigin = RuntimeOrigin;
|
||||||
type Origin = Origin;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type BlockHashCount = BlockHashCount;
|
type BlockHashCount = BlockHashCount;
|
||||||
type DbWeight = RocksDbWeight;
|
type DbWeight = RocksDbWeight;
|
||||||
type Version = Version;
|
type Version = Version;
|
||||||
|
@ -195,7 +196,7 @@ impl pallet_balances::Config for Runtime {
|
||||||
type MaxReserves = ();
|
type MaxReserves = ();
|
||||||
type ReserveIdentifier = [u8; 8];
|
type ReserveIdentifier = [u8; 8];
|
||||||
type Balance = Balance;
|
type Balance = Balance;
|
||||||
type Event = Event;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type DustRemoval = ();
|
type DustRemoval = ();
|
||||||
type ExistentialDeposit = ConstU64<500>;
|
type ExistentialDeposit = ConstU64<500>;
|
||||||
type AccountStore = System;
|
type AccountStore = System;
|
||||||
|
@ -203,7 +204,7 @@ impl pallet_balances::Config for Runtime {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_transaction_payment::Config for Runtime {
|
impl pallet_transaction_payment::Config for Runtime {
|
||||||
type Event = Event;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type OnChargeTransaction = CurrencyAdapter<Balances, ()>;
|
type OnChargeTransaction = CurrencyAdapter<Balances, ()>;
|
||||||
type OperationalFeeMultiplier = ConstU8<5>;
|
type OperationalFeeMultiplier = ConstU8<5>;
|
||||||
type WeightToFee = IdentityFee<Balance>;
|
type WeightToFee = IdentityFee<Balance>;
|
||||||
|
@ -215,8 +216,8 @@ impl pallet_contracts::Config for Runtime {
|
||||||
type Time = Timestamp;
|
type Time = Timestamp;
|
||||||
type Randomness = RandomnessCollectiveFlip;
|
type Randomness = RandomnessCollectiveFlip;
|
||||||
type Currency = Balances;
|
type Currency = Balances;
|
||||||
type Event = Event;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type Call = Call;
|
type RuntimeCall = RuntimeCall;
|
||||||
|
|
||||||
/// The safest default is to allow no calls at all.
|
/// The safest default is to allow no calls at all.
|
||||||
///
|
///
|
||||||
|
@ -238,17 +239,9 @@ impl pallet_contracts::Config for Runtime {
|
||||||
type ContractAccessWeight = DefaultContractAccessWeight<BlockWeights>;
|
type ContractAccessWeight = DefaultContractAccessWeight<BlockWeights>;
|
||||||
|
|
||||||
type MaxCodeLen = ConstU32<{ 128 * 1024 }>;
|
type MaxCodeLen = ConstU32<{ 128 * 1024 }>;
|
||||||
type RelaxedMaxCodeLen = ConstU32<{ 256 * 1024 }>;
|
|
||||||
type MaxStorageKeyLen = ConstU32<128>;
|
type MaxStorageKeyLen = ConstU32<128>;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Migrations;
|
|
||||||
impl OnRuntimeUpgrade for Migrations {
|
|
||||||
fn on_runtime_upgrade() -> Weight {
|
|
||||||
migration::migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub type Address = sp_runtime::MultiAddress<AccountId, ()>;
|
pub type Address = sp_runtime::MultiAddress<AccountId, ()>;
|
||||||
pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
|
pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
|
||||||
pub type Block = generic::Block<Header, UncheckedExtrinsic>;
|
pub type Block = generic::Block<Header, UncheckedExtrinsic>;
|
||||||
|
@ -262,8 +255,9 @@ pub type SignedExtra = (
|
||||||
frame_system::CheckWeight<Runtime>,
|
frame_system::CheckWeight<Runtime>,
|
||||||
pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
|
pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
|
||||||
);
|
);
|
||||||
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, Call, Signature, SignedExtra>;
|
pub type UncheckedExtrinsic =
|
||||||
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
|
||||||
|
pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
|
||||||
pub type Executive = frame_executive::Executive<
|
pub type Executive = frame_executive::Executive<
|
||||||
Runtime,
|
Runtime,
|
||||||
Block,
|
Block,
|
||||||
|
@ -410,7 +404,7 @@ sp_api::impl_runtime_apis! {
|
||||||
origin,
|
origin,
|
||||||
dest,
|
dest,
|
||||||
value,
|
value,
|
||||||
gas_limit,
|
Weight::from_ref_time(gas_limit),
|
||||||
storage_deposit_limit,
|
storage_deposit_limit,
|
||||||
input_data,
|
input_data,
|
||||||
CONTRACTS_DEBUG_OUTPUT
|
CONTRACTS_DEBUG_OUTPUT
|
||||||
|
@ -429,7 +423,7 @@ sp_api::impl_runtime_apis! {
|
||||||
Contracts::bare_instantiate(
|
Contracts::bare_instantiate(
|
||||||
origin,
|
origin,
|
||||||
value,
|
value,
|
||||||
gas_limit,
|
Weight::from_ref_time(gas_limit),
|
||||||
storage_deposit_limit,
|
storage_deposit_limit,
|
||||||
code,
|
code,
|
||||||
data,
|
data,
|
||||||
|
@ -453,65 +447,4 @@ sp_api::impl_runtime_apis! {
|
||||||
Contracts::get_storage(address, key)
|
Contracts::get_storage(address, key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "runtime-benchmarks")]
|
|
||||||
impl frame_benchmarking::Benchmark<Block> for Runtime {
|
|
||||||
fn benchmark_metadata(extra: bool) -> (
|
|
||||||
Vec<frame_benchmarking::BenchmarkList>,
|
|
||||||
Vec<frame_support::traits::StorageInfo>,
|
|
||||||
) {
|
|
||||||
use frame_benchmarking::{baseline, Benchmarking, BenchmarkList};
|
|
||||||
use frame_support::traits::StorageInfoTrait;
|
|
||||||
use frame_system_benchmarking::Pallet as SystemBench;
|
|
||||||
use baseline::Pallet as BaselineBench;
|
|
||||||
|
|
||||||
let mut list = Vec::<BenchmarkList>::new();
|
|
||||||
list_benchmarks!(list, extra);
|
|
||||||
|
|
||||||
let storage_info = AllPalletsWithSystem::storage_info();
|
|
||||||
|
|
||||||
(list, storage_info)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn dispatch_benchmark(
|
|
||||||
config: frame_benchmarking::BenchmarkConfig
|
|
||||||
) -> Result<Vec<frame_benchmarking::BenchmarkBatch>, sp_runtime::RuntimeString> {
|
|
||||||
use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch, TrackedStorageKey};
|
|
||||||
|
|
||||||
use frame_system_benchmarking::Pallet as SystemBench;
|
|
||||||
use baseline::Pallet as BaselineBench;
|
|
||||||
|
|
||||||
impl frame_system_benchmarking::Config for Runtime {}
|
|
||||||
impl baseline::Config for Runtime {}
|
|
||||||
|
|
||||||
let whitelist: Vec<TrackedStorageKey> = vec![
|
|
||||||
// Block Number
|
|
||||||
hex_literal::hex!(
|
|
||||||
"26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac"
|
|
||||||
).to_vec().into(),
|
|
||||||
// Total Issuance
|
|
||||||
hex_literal::hex!(
|
|
||||||
"c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80"
|
|
||||||
).to_vec().into(),
|
|
||||||
// Execution Phase
|
|
||||||
hex_literal::hex!(
|
|
||||||
"26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a"
|
|
||||||
).to_vec().into(),
|
|
||||||
// Event Count
|
|
||||||
hex_literal::hex!(
|
|
||||||
"26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850"
|
|
||||||
).to_vec().into(),
|
|
||||||
// System Events
|
|
||||||
hex_literal::hex!(
|
|
||||||
"26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7"
|
|
||||||
).to_vec().into(),
|
|
||||||
];
|
|
||||||
|
|
||||||
let mut batches = Vec::<BenchmarkBatch>::new();
|
|
||||||
let params = (&config, &whitelist);
|
|
||||||
add_benchmarks!(params, batches);
|
|
||||||
|
|
||||||
Ok(batches)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue