diff --git a/substrate/node/src/command.rs b/substrate/node/src/command.rs index 8902a801..3f0ced14 100644 --- a/substrate/node/src/command.rs +++ b/substrate/node/src/command.rs @@ -1,7 +1,5 @@ -use std::sync::Arc; - use sc_service::PartialComponents; -use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; +use frame_benchmarking_cli::{ExtrinsicFactory, BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use sc_cli::{ChainSpec, RuntimeVersion, SubstrateCli}; use serai_runtime::Block; @@ -9,7 +7,7 @@ use serai_runtime::Block; use crate::{ chain_spec, cli::{Cli, Subcommand}, - command_helper::{BenchmarkExtrinsicBuilder, inherent_benchmark_data}, + command_helper::{RemarkBuilder, inherent_benchmark_data}, service, }; @@ -103,11 +101,15 @@ pub fn run() -> sc_cli::Result<()> { BenchmarkCmd::Overhead(cmd) => { let client = service::new_partial(&config)?.client; + cmd.run(config, client.clone(), inherent_benchmark_data()?, &RemarkBuilder::new(client)) + } + + BenchmarkCmd::Extrinsic(cmd) => { + let PartialComponents { client, .. } = service::new_partial(&config)?; cmd.run( - config, client.clone(), inherent_benchmark_data()?, - Arc::new(BenchmarkExtrinsicBuilder::new(client)), + &ExtrinsicFactory(vec![Box::new(RemarkBuilder::new(client))]), ) } diff --git a/substrate/node/src/command_helper.rs b/substrate/node/src/command_helper.rs index f84bcde6..50f0645d 100644 --- a/substrate/node/src/command_helper.rs +++ b/substrate/node/src/command_helper.rs @@ -14,18 +14,25 @@ use runtime::SystemCall; use crate::service::FullClient; -pub struct BenchmarkExtrinsicBuilder { +pub struct RemarkBuilder { client: Arc, } -impl BenchmarkExtrinsicBuilder { +impl RemarkBuilder { pub fn new(client: Arc) -> Self { Self { client } } } -impl frame_benchmarking_cli::ExtrinsicBuilder for BenchmarkExtrinsicBuilder { - fn remark(&self, nonce: u32) -> std::result::Result { +impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder { + fn pallet(&self) -> &str { + "system" + } + fn extrinsic(&self) -> &str { + "remark" + } + + fn build(&self, nonce: u32) -> std::result::Result { Ok(OpaqueExtrinsic::from(create_benchmark_extrinsic( self.client.as_ref(), Sr25519Keyring::Bob.pair(),