2020use std:: net:: SocketAddr ;
2121// crates.io
2222use codec:: Encode ;
23- use log:: info;
2423// cumulus
2524use cumulus_primitives_core:: ParaId ;
2625// darwinia
@@ -41,7 +40,7 @@ use sc_cli::{
4140} ;
4241use sc_service:: {
4342 config:: { BasePath , PrometheusConfig } ,
44- DatabaseSource , TaskManager ,
43+ DatabaseSource , PartialComponents , TaskManager ,
4544} ;
4645use sp_core:: hexdisplay:: HexDisplay ;
4746use sp_runtime:: traits:: { AccountIdConversion , Block as BlockT } ;
@@ -53,10 +52,9 @@ macro_rules! construct_async_run {
5352 let $components = service:: new_partial:: <
5453 RuntimeApi ,
5554 DarwiniaRuntimeExecutor ,
56- _
5755 >(
5856 & $config,
59- crate :: service :: parachain_build_import_queue ,
57+ & $cli . eth_args . build_eth_rpc_config ( )
6058 ) ?;
6159 let task_manager = $components. task_manager;
6260 { $( $code ) * } . map( |v| ( v, task_manager) )
@@ -283,6 +281,7 @@ pub fn run() -> Result<()> {
283281 match & cli. subcommand {
284282 Some ( Subcommand :: BuildSpec ( cmd) ) => {
285283 let runner = cli. create_runner ( cmd) ?;
284+
286285 runner. sync_run ( |config| cmd. run ( config. chain_spec , config. network ) )
287286 } ,
288287 Some ( Subcommand :: CheckBlock ( cmd) ) => {
@@ -346,6 +345,7 @@ pub fn run() -> Result<()> {
346345 } ,
347346 Some ( Subcommand :: ExportGenesisState ( cmd) ) => {
348347 let runner = cli. create_runner ( cmd) ?;
348+
349349 runner. sync_run ( |_config| {
350350 let spec = cli. load_spec ( & cmd. shared_params . chain . clone ( ) . unwrap_or_default ( ) ) ?;
351351 let state_version = Cli :: native_runtime_version ( & spec) . state_version ( ) ;
@@ -354,23 +354,27 @@ pub fn run() -> Result<()> {
354354 } ,
355355 Some ( Subcommand :: ExportGenesisWasm ( cmd) ) => {
356356 let runner = cli. create_runner ( cmd) ?;
357+
357358 runner. sync_run ( |_config| {
358359 let spec = cli. load_spec ( & cmd. shared_params . chain . clone ( ) . unwrap_or_default ( ) ) ?;
359360 cmd. run ( & * spec)
360361 } )
361362 } ,
362- // TODO: https://github.com/darwinia-network/darwinia-2.0/issues/35
363363 Some ( Subcommand :: FrontierDb ( cmd) ) => {
364364 let runner = cli. create_runner ( cmd) ?;
365- runner. sync_run ( |_config| {
366- // let PartialComponents { client, other, .. } = service::new_partial(&config,
367- // &cli)?; let frontier_backend = other.2;
368- // cmd.run::<_, Block>(client, frontier_backend)
369- todo ! ( ) ;
365+
366+ runner. sync_run ( |config| {
367+ let PartialComponents { client, other : ( frontier_backend, ..) , .. } =
368+ service:: new_partial :: < RuntimeApi , DarwiniaRuntimeExecutor > (
369+ & config,
370+ & cli. eth_args . build_eth_rpc_config ( ) ,
371+ ) ?;
372+ cmd. run :: < _ , dc_primitives:: Block > ( client, frontier_backend)
370373 } )
371374 } ,
372375 Some ( Subcommand :: Benchmark ( cmd) ) => {
373376 let runner = cli. create_runner ( cmd) ?;
377+
374378 // Switch on the concrete benchmark sub-command-
375379 match cmd {
376380 BenchmarkCmd :: Pallet ( cmd) =>
@@ -382,9 +386,9 @@ pub fn run() -> Result<()> {
382386 . into ( ) )
383387 } ,
384388 BenchmarkCmd :: Block ( cmd) => runner. sync_run ( |config| {
385- let partials = service:: new_partial :: < RuntimeApi , DarwiniaRuntimeExecutor , _ > (
389+ let partials = service:: new_partial :: < RuntimeApi , DarwiniaRuntimeExecutor > (
386390 & config,
387- crate :: service :: parachain_build_import_queue ,
391+ & cli . eth_args . build_eth_rpc_config ( ) ,
388392 ) ?;
389393 cmd. run ( partials. client )
390394 } ) ,
@@ -416,7 +420,6 @@ pub fn run() -> Result<()> {
416420 Some ( Subcommand :: TryRuntime ( cmd) ) => {
417421 if cfg ! ( feature = "try-runtime" ) {
418422 let runner = cli. create_runner ( cmd) ?;
419-
420423 // grab the task manager.
421424 let registry = & runner. config ( ) . prometheus_config . as_ref ( ) . map ( |cfg| & cfg. registry ) ;
422425 let task_manager =
@@ -443,46 +446,39 @@ pub fn run() -> Result<()> {
443446 } else {
444447 None
445448 } ;
446-
447449 let para_id = chain_spec:: Extensions :: try_get ( & * config. chain_spec )
448450 . map ( |e| e. para_id )
449451 . ok_or ( "Could not find parachain ID in chain-spec." ) ?;
450-
451452 let polkadot_cli = RelayChainCli :: new (
452453 & config,
453454 [ RelayChainCli :: executable_name ( ) ] . iter ( ) . chain ( cli. relay_chain_args . iter ( ) ) ,
454455 ) ;
455-
456456 let id = ParaId :: from ( para_id) ;
457-
458457 let parachain_account =
459458 AccountIdConversion :: < polkadot_primitives:: v2:: AccountId > :: into_account_truncating ( & id) ;
460-
461459 let state_version = Cli :: native_runtime_version ( & config. chain_spec ) . state_version ( ) ;
462460 let block: Block =
463461 cumulus_client_cli:: generate_genesis_block ( & * config. chain_spec , state_version)
464462 . map_err ( |e| format ! ( "{:?}" , e) ) ?;
465463 let genesis_state = format ! ( "0x{:?}" , HexDisplay :: from( & block. header( ) . encode( ) ) ) ;
466-
467464 let tokio_handle = config. tokio_handle . clone ( ) ;
468465 let polkadot_config =
469466 SubstrateCli :: create_configuration ( & polkadot_cli, & polkadot_cli, tokio_handle)
470467 . map_err ( |err| format ! ( "Relay chain argument error: {}" , err) ) ?;
471-
472468 let eth_rpc_config = cli. eth_args . build_eth_rpc_config ( ) ;
473469
474- info ! ( "Parachain id: {:?}" , id) ;
475- info ! ( "Parachain Account: {}" , parachain_account) ;
476- info ! ( "Parachain genesis state: {}" , genesis_state) ;
477- info ! ( "Is collating: {}" , if config. role. is_authority( ) { "yes" } else { "no" } ) ;
470+ log :: info!( "Parachain id: {:?}" , id) ;
471+ log :: info!( "Parachain Account: {}" , parachain_account) ;
472+ log :: info!( "Parachain genesis state: {}" , genesis_state) ;
473+ log :: info!( "Is collating: {}" , if config. role. is_authority( ) { "yes" } else { "no" } ) ;
478474
479475 crate :: service:: start_parachain_node (
480476 config,
481477 polkadot_config,
482478 collator_options,
483479 id,
484480 hwbench,
485- eth_rpc_config,
481+ & eth_rpc_config,
486482 )
487483 . await
488484 . map ( |r| r. 0 )
0 commit comments