diff --git a/src/bin/forest-tool.rs b/src/bin/forest-tool.rs index 51aabad346e7..334ae67e8722 100644 --- a/src/bin/forest-tool.rs +++ b/src/bin/forest-tool.rs @@ -1,6 +1,7 @@ // Copyright 2019-2025 ChainSafe Systems // SPDX-License-Identifier: Apache-2.0, MIT -fn main() -> anyhow::Result<()> { - forest::forest_tool_main(std::env::args_os()) +#[tokio::main(flavor = "multi_thread")] +async fn main() -> anyhow::Result<()> { + forest::forest_tool_main(std::env::args_os()).await } diff --git a/src/bin/forest-wallet.rs b/src/bin/forest-wallet.rs index 0ac94a4bf006..c7ce17c73e52 100644 --- a/src/bin/forest-wallet.rs +++ b/src/bin/forest-wallet.rs @@ -1,6 +1,7 @@ // Copyright 2019-2025 ChainSafe Systems // SPDX-License-Identifier: Apache-2.0, MIT -fn main() -> anyhow::Result<()> { - forest::forest_wallet_main(std::env::args_os()) +#[tokio::main(flavor = "multi_thread")] +async fn main() -> anyhow::Result<()> { + forest::forest_wallet_main(std::env::args_os()).await } diff --git a/src/tool/main.rs b/src/tool/main.rs index 672cc084b527..67bc73c07c38 100644 --- a/src/tool/main.rs +++ b/src/tool/main.rs @@ -8,7 +8,7 @@ use super::subcommands::Subcommand; use crate::cli_shared::logger::setup_minimal_logger; use clap::Parser as _; -pub fn main(args: impl IntoIterator) -> anyhow::Result<()> +pub async fn main(args: impl IntoIterator) -> anyhow::Result<()> where ArgT: Into + Clone, { @@ -18,26 +18,21 @@ where let client = crate::rpc::Client::default_or_from_env(None)?; - tokio::runtime::Builder::new_multi_thread() - .enable_all() - .build()? - .block_on(async { - // Run command - match cmd { - Subcommand::Backup(cmd) => cmd.run(), - Subcommand::Benchmark(cmd) => cmd.run().await, - Subcommand::StateMigration(cmd) => cmd.run().await, - Subcommand::Snapshot(cmd) => cmd.run().await, - Subcommand::Fetch(cmd) => cmd.run().await, - Subcommand::Archive(cmd) => cmd.run().await, - Subcommand::DB(cmd) => cmd.run().await, - Subcommand::Index(cmd) => cmd.run().await, - Subcommand::Car(cmd) => cmd.run().await, - Subcommand::Api(cmd) => cmd.run().await, - Subcommand::Net(cmd) => cmd.run().await, - Subcommand::Shed(cmd) => cmd.run(client).await, - Subcommand::State(cmd) => cmd.run().await, - Subcommand::Completion(cmd) => cmd.run(&mut std::io::stdout()), - } - }) + // Run command + match cmd { + Subcommand::Backup(cmd) => cmd.run(), + Subcommand::Benchmark(cmd) => cmd.run().await, + Subcommand::StateMigration(cmd) => cmd.run().await, + Subcommand::Snapshot(cmd) => cmd.run().await, + Subcommand::Fetch(cmd) => cmd.run().await, + Subcommand::Archive(cmd) => cmd.run().await, + Subcommand::DB(cmd) => cmd.run().await, + Subcommand::Index(cmd) => cmd.run().await, + Subcommand::Car(cmd) => cmd.run().await, + Subcommand::Api(cmd) => cmd.run().await, + Subcommand::Net(cmd) => cmd.run().await, + Subcommand::Shed(cmd) => cmd.run(client).await, + Subcommand::State(cmd) => cmd.run().await, + Subcommand::Completion(cmd) => cmd.run(&mut std::io::stdout()), + } } diff --git a/src/wallet/main.rs b/src/wallet/main.rs index 90c1ae59c7ea..3e65f33c0f21 100644 --- a/src/wallet/main.rs +++ b/src/wallet/main.rs @@ -10,7 +10,7 @@ use crate::shim::address::{CurrentNetwork, Network}; use clap::Parser; use std::str::FromStr; -pub fn main(args: impl IntoIterator) -> anyhow::Result<()> +pub async fn main(args: impl IntoIterator) -> anyhow::Result<()> where ArgT: Into + Clone, { @@ -24,16 +24,11 @@ where let client = rpc::Client::default_or_from_env(opts.token.as_deref())?; - tokio::runtime::Builder::new_multi_thread() - .enable_all() - .build()? - .block_on(async { - let name = StateNetworkName::call(&client, ()).await?; - let chain = NetworkChain::from_str(&name)?; - if chain.is_testnet() { - CurrentNetwork::set_global(Network::Testnet); - } - // Run command - cmd.run(client, remote_wallet, encrypt).await - }) + let name = StateNetworkName::call(&client, ()).await?; + let chain = NetworkChain::from_str(&name)?; + if chain.is_testnet() { + CurrentNetwork::set_global(Network::Testnet); + } + // Run command + cmd.run(client, remote_wallet, encrypt).await }