Skip to content

Commit c1608b6

Browse files
authored
Implement start CLI for Starknet to Cosmos auto relaying (#245)
* Implement StarknetCosmosBiRelay * Implement BiRelayBuilder for StarknetBuilder * Implement start command on Starknet CLI * Use back main branch
1 parent a3248f9 commit c1608b6

File tree

7 files changed

+180
-44
lines changed

7 files changed

+180
-44
lines changed

relayer/Cargo.lock

Lines changed: 31 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

relayer/crates/starknet-cli/src/contexts/app.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use hermes_cli_components::impls::commands::queries::client_state::{
2626
use hermes_cli_components::impls::commands::queries::consensus_state::{
2727
QueryConsensusStateArgs, RunQueryConsensusStateCommand,
2828
};
29+
use hermes_cli_components::impls::commands::start::{RunStartRelayerCommand, StartRelayerArgs};
2930
use hermes_cli_components::impls::config::get_config_path::GetDefaultConfigField;
3031
use hermes_cli_components::impls::config::load_toml_config::LoadTomlConfig;
3132
use hermes_cli_components::impls::config::save_toml_config::WriteTomlConfig;
@@ -168,6 +169,12 @@ delegate_components! {
168169

169170
(CreateClientArgs, symbol!("target_chain_id")): ParseFromString<ChainId>,
170171
(CreateClientArgs, symbol!("counterparty_chain_id")): ParseFromString<ChainId>,
172+
173+
(StartRelayerArgs, symbol!("chain_id_a")): ParseFromString<ChainId>,
174+
(StartRelayerArgs, symbol!("client_id_a")): ParseFromString<ClientId>,
175+
(StartRelayerArgs, symbol!("chain_id_b")): ParseFromString<ChainId>,
176+
(StartRelayerArgs, symbol!("client_id_b")): ParseFromString<ClientId>,
177+
171178
}
172179
}
173180

@@ -176,6 +183,8 @@ delegate_components! {
176183
AllSubCommands: RunAllSubCommand,
177184
BootstrapSubCommand: RunBootstrapSubCommand,
178185

186+
StartRelayerArgs: RunStartRelayerCommand,
187+
179188
QuerySubCommand: RunQuerySubCommand,
180189
QueryClientStateArgs: RunQueryClientStateCommand,
181190
QueryConsensusStateArgs: RunQueryConsensusStateCommand,
@@ -303,6 +312,7 @@ pub trait CanUseStarknetApp:
303312
+ CanRunCommand<UpdateSubCommand>
304313
+ CanRunCommand<UpdateClientArgs>
305314
+ CanRunCommand<CreateClientArgs>
315+
+ CanRunCommand<StartRelayerArgs>
306316
{
307317
}
308318

relayer/crates/starknet-cli/src/impls/subcommand.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use hermes_cli_components::impls::commands::start::StartRelayerArgs;
12
use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner};
23

34
use crate::commands::create::subcommand::CreateSubCommand;
@@ -7,6 +8,8 @@ use crate::impls::bootstrap::subcommand::BootstrapSubCommand;
78

89
#[derive(Debug, clap::Subcommand)]
910
pub enum AllSubCommands {
11+
Start(StartRelayerArgs),
12+
1013
#[clap(subcommand)]
1114
Bootstrap(BootstrapSubCommand),
1215
#[clap(subcommand)]
@@ -24,13 +27,15 @@ where
2427
App: CanRunCommand<BootstrapSubCommand>
2528
+ CanRunCommand<QuerySubCommand>
2629
+ CanRunCommand<CreateSubCommand>
27-
+ CanRunCommand<UpdateSubCommand>,
30+
+ CanRunCommand<UpdateSubCommand>
31+
+ CanRunCommand<StartRelayerArgs>,
2832
{
2933
async fn run_command(
3034
app: &App,
3135
subcommand: &AllSubCommands,
3236
) -> Result<App::Output, App::Error> {
3337
match subcommand {
38+
AllSubCommands::Start(args) => app.run_command(args).await,
3439
AllSubCommands::Bootstrap(args) => app.run_command(args).await,
3540
AllSubCommands::Query(args) => app.run_command(args).await,
3641
AllSubCommands::Create(args) => app.run_command(args).await,

relayer/crates/starknet-relayer/src/build/components/relay/build.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ impl RelayBuilder<StarknetBuilder, Index<0>, Index<1>> for StarknetBuildComponen
1313
async fn build_relay(
1414
build: &StarknetBuilder,
1515
_index: PhantomData<(Index<0>, Index<1>)>,
16-
_src_chain_id: &ChainId,
16+
src_chain_id: &ChainId,
1717
dst_chain_id: &ChainId,
1818
src_client_id: &StarknetClientId,
1919
dst_client_id: &CosmosClientId,
2020
) -> Result<StarknetToCosmosRelay, HermesError> {
21-
let src_chain = build.build_chain().await?;
21+
let src_chain = build.build_chain(src_chain_id).await?;
2222

2323
let dst_chain = build.cosmos_builder.build_chain(dst_chain_id).await?;
2424

0 commit comments

Comments
 (0)