11use crate :: cli:: { Cli , Subcommand } ;
22
3- use bifrost_common_node:: cli_opt:: { BackendType , BackendTypeConfig , RpcConfig } ;
3+ use bifrost_common_node:: {
4+ cli_opt:: { BackendType , BackendTypeConfig , RpcConfig } ,
5+ service:: HostFunctions ,
6+ } ;
47
58use frame_benchmarking_cli:: { BenchmarkCmd , SUBSTRATE_REFERENCE_HARDWARE } ;
69
@@ -294,9 +297,9 @@ pub fn run() -> sc_cli::Result<()> {
294297 ) ;
295298 }
296299
297- cmd. run_with_spec :: < sp_runtime:: traits:: HashingFor < Block > , ( ) > ( Some (
298- config. chain_spec ,
299- ) )
300+ cmd. run_with_spec :: < sp_runtime:: traits:: HashingFor < Block > , HostFunctions > (
301+ Some ( config. chain_spec ) ,
302+ )
300303 } ,
301304 BenchmarkCmd :: Block ( cmd) => {
302305 let PartialComponents { client, .. } =
@@ -310,12 +313,32 @@ pub fn run() -> sc_cli::Result<()> {
310313 ) ,
311314 #[ cfg( feature = "runtime-benchmarks" ) ]
312315 BenchmarkCmd :: Storage ( cmd) => {
313- let PartialComponents { client, backend, .. } =
314- service:: new_partial ( & config) ?;
315- let db = backend. expose_db ( ) ;
316- let storage = backend. expose_storage ( ) ;
316+ let chain_spec = & config. chain_spec ;
317317
318- cmd. run ( config, client, db, storage)
318+ match chain_spec {
319+ _spec if chain_spec. is_dev ( ) => {
320+ use bifrost_dev_node:: service;
321+ let params = service:: new_partial ( & config, & rpc_config) ?;
322+ let db = params. backend . expose_db ( ) ;
323+ let storage = params. backend . expose_storage ( ) ;
324+ cmd. run ( config, params. client , db, storage)
325+ } ,
326+ _spec if chain_spec. is_mainnet ( ) => {
327+ use bifrost_mainnet_node:: service;
328+ let params = service:: new_partial ( & config, & rpc_config) ?;
329+ let db = params. backend . expose_db ( ) ;
330+ let storage = params. backend . expose_storage ( ) ;
331+ cmd. run ( config, params. client , db, storage)
332+ } ,
333+ _spec if chain_spec. is_testnet ( ) => {
334+ use bifrost_testnet_node:: service;
335+ let params = service:: new_partial ( & config, & rpc_config) ?;
336+ let db = params. backend . expose_db ( ) ;
337+ let storage = params. backend . expose_storage ( ) ;
338+ cmd. run ( config, params. client , db, storage)
339+ } ,
340+ _ => panic ! ( "Invalid chain spec" ) ,
341+ }
319342 } ,
320343 BenchmarkCmd :: Machine ( cmd) => {
321344 cmd. run ( & config, SUBSTRATE_REFERENCE_HARDWARE . clone ( ) )
0 commit comments