Skip to content

Commit b27c66d

Browse files
Enable FrontierDb subcommand (#37)
* Refactor `new_partial` * Try fix compile * Update `new_partial` * Yeah, make compiler happy * Code clean * Something about command * Resolve conflict * Adapt for main style * Self review * Ready for review * Revert full-path in command mod * Code cleaning Co-authored-by: Xavier Lau <[email protected]>
1 parent a33bd4f commit b27c66d

2 files changed

Lines changed: 100 additions & 106 deletions

File tree

node/src/command.rs

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
use std::net::SocketAddr;
2121
// crates.io
2222
use codec::Encode;
23-
use log::info;
2423
// cumulus
2524
use cumulus_primitives_core::ParaId;
2625
// darwinia
@@ -41,7 +40,7 @@ use sc_cli::{
4140
};
4241
use sc_service::{
4342
config::{BasePath, PrometheusConfig},
44-
DatabaseSource, TaskManager,
43+
DatabaseSource, PartialComponents, TaskManager,
4544
};
4645
use sp_core::hexdisplay::HexDisplay;
4746
use 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

Comments
 (0)