From 0d88084582f61f3c1bfe5801e66618caa2517759 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 21 Jan 2025 11:01:16 -0600 Subject: [PATCH 1/8] Add connection module --- relayer/crates/starknet-cli/src/commands/connection/create.rs | 0 relayer/crates/starknet-cli/src/commands/connection/mod.rs | 1 + relayer/crates/starknet-cli/src/commands/mod.rs | 1 + 3 files changed, 2 insertions(+) create mode 100644 relayer/crates/starknet-cli/src/commands/connection/create.rs create mode 100644 relayer/crates/starknet-cli/src/commands/connection/mod.rs diff --git a/relayer/crates/starknet-cli/src/commands/connection/create.rs b/relayer/crates/starknet-cli/src/commands/connection/create.rs new file mode 100644 index 00000000..e69de29b diff --git a/relayer/crates/starknet-cli/src/commands/connection/mod.rs b/relayer/crates/starknet-cli/src/commands/connection/mod.rs new file mode 100644 index 00000000..c5fb369c --- /dev/null +++ b/relayer/crates/starknet-cli/src/commands/connection/mod.rs @@ -0,0 +1 @@ +pub mod create; diff --git a/relayer/crates/starknet-cli/src/commands/mod.rs b/relayer/crates/starknet-cli/src/commands/mod.rs index 630bbfd4..b0c4a08d 100644 --- a/relayer/crates/starknet-cli/src/commands/mod.rs +++ b/relayer/crates/starknet-cli/src/commands/mod.rs @@ -1,2 +1,3 @@ pub mod client; +pub mod connection; pub mod query; From f702c0e5de614dfb53ead8dceaf0e2225f818266 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 21 Jan 2025 14:07:19 -0600 Subject: [PATCH 2/8] Add `create connection` subcommand --- .../src/commands/client/create.rs | 1 + .../starknet-cli/src/commands/client/mod.rs | 1 + .../src/commands/client/subcommand.rs | 2 ++ .../src/commands/connection/create.rs | 23 +++++++++++++++++++ .../crates/starknet-cli/src/contexts/app.rs | 11 +++++++++ .../starknet-cli/src/impls/subcommand.rs | 4 ++++ 6 files changed, 42 insertions(+) create mode 100644 relayer/crates/starknet-cli/src/commands/client/create.rs diff --git a/relayer/crates/starknet-cli/src/commands/client/create.rs b/relayer/crates/starknet-cli/src/commands/client/create.rs new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/relayer/crates/starknet-cli/src/commands/client/create.rs @@ -0,0 +1 @@ + diff --git a/relayer/crates/starknet-cli/src/commands/client/mod.rs b/relayer/crates/starknet-cli/src/commands/client/mod.rs index 271401f7..d2c51a2e 100644 --- a/relayer/crates/starknet-cli/src/commands/client/mod.rs +++ b/relayer/crates/starknet-cli/src/commands/client/mod.rs @@ -1 +1,2 @@ +pub mod create; pub mod subcommand; diff --git a/relayer/crates/starknet-cli/src/commands/client/subcommand.rs b/relayer/crates/starknet-cli/src/commands/client/subcommand.rs index 0958afa7..1986ca5f 100644 --- a/relayer/crates/starknet-cli/src/commands/client/subcommand.rs +++ b/relayer/crates/starknet-cli/src/commands/client/subcommand.rs @@ -3,6 +3,7 @@ use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; #[derive(Debug, clap::Subcommand)] pub enum ClientSubCommand { + CreateClient(CreateClientArgs), UpdateClient(UpdateClientArgs), } @@ -17,6 +18,7 @@ where subcommand: &ClientSubCommand, ) -> Result { match subcommand { + ClientSubCommand::CreateClient(args) => app.run_command(args).await, ClientSubCommand::UpdateClient(args) => app.run_command(args).await, } } diff --git a/relayer/crates/starknet-cli/src/commands/connection/create.rs b/relayer/crates/starknet-cli/src/commands/connection/create.rs index e69de29b..9ad87921 100644 --- a/relayer/crates/starknet-cli/src/commands/connection/create.rs +++ b/relayer/crates/starknet-cli/src/commands/connection/create.rs @@ -0,0 +1,23 @@ +use hermes_cli_components::impls::commands::connection::create::CreateConnectionArgs; +use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; + +#[derive(Debug, clap::Subcommand)] +pub enum ConnectionSubCommand { + Create(CreateConnectionArgs), +} + +pub struct RunConnectionSubCommand; + +impl CommandRunner for RunConnectionSubCommand +where + App: CanRunCommand, +{ + async fn run_command( + app: &App, + subcommand: &ConnectionSubCommand, + ) -> Result { + match subcommand { + ConnectionSubCommand::Create(args) => app.run_command(args).await, + } + } +} diff --git a/relayer/crates/starknet-cli/src/contexts/app.rs b/relayer/crates/starknet-cli/src/contexts/app.rs index 7271e7a0..d8596763 100644 --- a/relayer/crates/starknet-cli/src/contexts/app.rs +++ b/relayer/crates/starknet-cli/src/contexts/app.rs @@ -9,6 +9,9 @@ use hermes_cli_components::impls::commands::bootstrap::chain::RunBootstrapChainC use hermes_cli_components::impls::commands::client::update::{ RunUpdateClientCommand, UpdateClientArgs, }; +use hermes_cli_components::impls::commands::connection::create::{ + CreateConnectionArgs, RunCreateConnectionCommand, +}; use hermes_cli_components::impls::commands::queries::balance::{ QueryBalanceArgs, RunQueryBalanceCommand, }; @@ -156,6 +159,11 @@ delegate_components! { (UpdateClientArgs, symbol!("client_id")): ParseFromString, (UpdateClientArgs, symbol!("counterparty_client_id")): ParseFromString, (UpdateClientArgs, symbol!("target_height")): ParseFromOptionalString, + + (CreateConnectionArgs, symbol!("target_chain_id")): ParseFromString, + (CreateConnectionArgs, symbol!("target_client_id")): ParseFromString, + (CreateConnectionArgs, symbol!("counterparty_chain_id")): ParseFromString, + (CreateConnectionArgs, symbol!("counterparty_client_id")): ParseFromString, } } @@ -173,6 +181,8 @@ delegate_components! { ClientSubCommand: RunClientSubCommand, UpdateClientArgs: RunUpdateClientCommand, + CreateConnectionArgs: RunCreateConnectionCommand, + BootstrapStarknetChainArgs: RunBootstrapChainCommand, } } @@ -237,6 +247,7 @@ pub trait CanUseStarknetApp: + CanRunCommand + CanRunCommand + CanRunCommand + + CanRunCommand { } diff --git a/relayer/crates/starknet-cli/src/impls/subcommand.rs b/relayer/crates/starknet-cli/src/impls/subcommand.rs index 859a1515..d4c4f5f9 100644 --- a/relayer/crates/starknet-cli/src/impls/subcommand.rs +++ b/relayer/crates/starknet-cli/src/impls/subcommand.rs @@ -1,5 +1,6 @@ use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; +use crate::commands::connection::create::ConnectionSubCommand; use crate::commands::query::subcommand::QuerySubCommand; use crate::impls::bootstrap::subcommand::BootstrapSubCommand; @@ -9,6 +10,8 @@ pub enum AllSubCommands { Bootstrap(BootstrapSubCommand), #[clap(subcommand)] Query(QuerySubCommand), + #[clap(subcommand)] + Connection(ConnectionSubCommand), } pub struct RunAllSubCommand; @@ -24,6 +27,7 @@ where match subcommand { AllSubCommands::Bootstrap(args) => app.run_command(args).await, AllSubCommands::Query(args) => app.run_command(args).await, + AllSubCommands::Connection(args) => app.run_command(args).await, } } } From 71ec4c335545ed8bce773da50a2ffc8326f0bae4 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 21 Jan 2025 14:27:46 -0600 Subject: [PATCH 3/8] Remove empty file --- relayer/crates/starknet-cli/src/commands/client/create.rs | 1 - 1 file changed, 1 deletion(-) delete mode 100644 relayer/crates/starknet-cli/src/commands/client/create.rs diff --git a/relayer/crates/starknet-cli/src/commands/client/create.rs b/relayer/crates/starknet-cli/src/commands/client/create.rs deleted file mode 100644 index 8b137891..00000000 --- a/relayer/crates/starknet-cli/src/commands/client/create.rs +++ /dev/null @@ -1 +0,0 @@ - From 50437efa6dd6c7e6677acd024460da2f6933069e Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 21 Jan 2025 14:28:39 -0600 Subject: [PATCH 4/8] Remove unnecessary `pub mod` statement --- relayer/crates/starknet-cli/src/commands/client/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/relayer/crates/starknet-cli/src/commands/client/mod.rs b/relayer/crates/starknet-cli/src/commands/client/mod.rs index d2c51a2e..271401f7 100644 --- a/relayer/crates/starknet-cli/src/commands/client/mod.rs +++ b/relayer/crates/starknet-cli/src/commands/client/mod.rs @@ -1,2 +1 @@ -pub mod create; pub mod subcommand; From 1ff7100605a8b8459ebe2df3703994d361db826b Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 21 Jan 2025 14:31:00 -0600 Subject: [PATCH 5/8] Change name of module --- relayer/crates/starknet-cli/src/commands/connection/mod.rs | 2 +- .../src/commands/connection/{create.rs => subcommand.rs} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename relayer/crates/starknet-cli/src/commands/connection/{create.rs => subcommand.rs} (100%) diff --git a/relayer/crates/starknet-cli/src/commands/connection/mod.rs b/relayer/crates/starknet-cli/src/commands/connection/mod.rs index c5fb369c..271401f7 100644 --- a/relayer/crates/starknet-cli/src/commands/connection/mod.rs +++ b/relayer/crates/starknet-cli/src/commands/connection/mod.rs @@ -1 +1 @@ -pub mod create; +pub mod subcommand; diff --git a/relayer/crates/starknet-cli/src/commands/connection/create.rs b/relayer/crates/starknet-cli/src/commands/connection/subcommand.rs similarity index 100% rename from relayer/crates/starknet-cli/src/commands/connection/create.rs rename to relayer/crates/starknet-cli/src/commands/connection/subcommand.rs From 66b548c15c174ed14f3a6d6d938039026c40235a Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 21 Jan 2025 14:32:01 -0600 Subject: [PATCH 6/8] Undo erroneous changes from another branch --- relayer/crates/starknet-cli/src/commands/client/subcommand.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/relayer/crates/starknet-cli/src/commands/client/subcommand.rs b/relayer/crates/starknet-cli/src/commands/client/subcommand.rs index 1986ca5f..0958afa7 100644 --- a/relayer/crates/starknet-cli/src/commands/client/subcommand.rs +++ b/relayer/crates/starknet-cli/src/commands/client/subcommand.rs @@ -3,7 +3,6 @@ use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; #[derive(Debug, clap::Subcommand)] pub enum ClientSubCommand { - CreateClient(CreateClientArgs), UpdateClient(UpdateClientArgs), } @@ -18,7 +17,6 @@ where subcommand: &ClientSubCommand, ) -> Result { match subcommand { - ClientSubCommand::CreateClient(args) => app.run_command(args).await, ClientSubCommand::UpdateClient(args) => app.run_command(args).await, } } From 495774896d8b973d54a707b871ed7986d316e0c9 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 22 Jan 2025 12:39:29 -0600 Subject: [PATCH 7/8] Fix incorrect import path --- relayer/crates/starknet-cli/src/impls/subcommand.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/relayer/crates/starknet-cli/src/impls/subcommand.rs b/relayer/crates/starknet-cli/src/impls/subcommand.rs index d4c4f5f9..12ff78d1 100644 --- a/relayer/crates/starknet-cli/src/impls/subcommand.rs +++ b/relayer/crates/starknet-cli/src/impls/subcommand.rs @@ -1,6 +1,6 @@ use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; -use crate::commands::connection::create::ConnectionSubCommand; +use crate::commands::connection::subcommand::ConnectionSubCommand; use crate::commands::query::subcommand::QuerySubCommand; use crate::impls::bootstrap::subcommand::BootstrapSubCommand; From eac07b8563f62fc9baa4e0e80f2a85b55b85c5ce Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 22 Jan 2025 14:10:33 -0600 Subject: [PATCH 8/8] Change Connect subcommand to Create --- .../src/commands/connection/subcommand.rs | 12 ++++++------ relayer/crates/starknet-cli/src/impls/subcommand.rs | 10 ++++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/relayer/crates/starknet-cli/src/commands/connection/subcommand.rs b/relayer/crates/starknet-cli/src/commands/connection/subcommand.rs index 9ad87921..3ffaa16b 100644 --- a/relayer/crates/starknet-cli/src/commands/connection/subcommand.rs +++ b/relayer/crates/starknet-cli/src/commands/connection/subcommand.rs @@ -2,22 +2,22 @@ use hermes_cli_components::impls::commands::connection::create::CreateConnection use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; #[derive(Debug, clap::Subcommand)] -pub enum ConnectionSubCommand { - Create(CreateConnectionArgs), +pub enum CreateSubCommand { + Connection(CreateConnectionArgs), } -pub struct RunConnectionSubCommand; +pub struct RunCreateSubCommand; -impl CommandRunner for RunConnectionSubCommand +impl CommandRunner for RunCreateSubCommand where App: CanRunCommand, { async fn run_command( app: &App, - subcommand: &ConnectionSubCommand, + subcommand: &CreateSubCommand, ) -> Result { match subcommand { - ConnectionSubCommand::Create(args) => app.run_command(args).await, + CreateSubCommand::Connection(args) => app.run_command(args).await, } } } diff --git a/relayer/crates/starknet-cli/src/impls/subcommand.rs b/relayer/crates/starknet-cli/src/impls/subcommand.rs index 12ff78d1..2e36886d 100644 --- a/relayer/crates/starknet-cli/src/impls/subcommand.rs +++ b/relayer/crates/starknet-cli/src/impls/subcommand.rs @@ -1,6 +1,6 @@ use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; -use crate::commands::connection::subcommand::ConnectionSubCommand; +use crate::commands::connection::subcommand::CreateSubCommand; use crate::commands::query::subcommand::QuerySubCommand; use crate::impls::bootstrap::subcommand::BootstrapSubCommand; @@ -11,14 +11,16 @@ pub enum AllSubCommands { #[clap(subcommand)] Query(QuerySubCommand), #[clap(subcommand)] - Connection(ConnectionSubCommand), + Create(CreateSubCommand), } pub struct RunAllSubCommand; impl CommandRunner for RunAllSubCommand where - App: CanRunCommand + CanRunCommand, + App: CanRunCommand + + CanRunCommand + + CanRunCommand, { async fn run_command( app: &App, @@ -27,7 +29,7 @@ where match subcommand { AllSubCommands::Bootstrap(args) => app.run_command(args).await, AllSubCommands::Query(args) => app.run_command(args).await, - AllSubCommands::Connection(args) => app.run_command(args).await, + AllSubCommands::Create(args) => app.run_command(args).await, } } }