Skip to content

Commit

Permalink
Use new cgp_field::HasField to auto derive field accessor for `HasR…
Browse files Browse the repository at this point in the history
…untime` (#382)

* Update cgp-core to use cgp-field

* Add GetRuntimeField impl

* Use GetRuntimeField for CosmosChain

* Wrap CosmosRelay fields inside an Arc

* Use GetRuntimeField for CosmosRelay

* Use GetRuntimeField for CosmosBiRelay and CosmosBuilder

* Consolidate CosmosBiRelay constructs into one file

* Consolidate CosmosBuilder impls into one file

* Use GetRuntimeField for other contexts

* Reformat imports

* Update cgp

* Use back cgp main branch
  • Loading branch information
soareschen authored Jul 4, 2024
1 parent 9738f83 commit 64f02c1
Show file tree
Hide file tree
Showing 87 changed files with 671 additions and 712 deletions.
54 changes: 40 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,9 @@ cgp-core = { git = "https://github.com/informalsystems/cgp.git" }
cgp-component = { git = "https://github.com/informalsystems/cgp.git" }
cgp-component-macro = { git = "https://github.com/informalsystems/cgp.git" }
cgp-component-macro-lib = { git = "https://github.com/informalsystems/cgp.git" }
cgp-field = { git = "https://github.com/informalsystems/cgp.git" }
cgp-field-macro = { git = "https://github.com/informalsystems/cgp.git" }
cgp-field-macro-lib = { git = "https://github.com/informalsystems/cgp.git" }
cgp-error = { git = "https://github.com/informalsystems/cgp.git" }
cgp-error-eyre = { git = "https://github.com/informalsystems/cgp.git" }
cgp-async = { git = "https://github.com/informalsystems/cgp.git" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ use hermes_cosmos_integration_tests::traits::bootstrap::compat_mode::CompatModeG
use hermes_cosmos_integration_tests::traits::bootstrap::cosmos_builder::CosmosBuilderGetter;
use hermes_cosmos_integration_tests::traits::bootstrap::gas_denom::GasDenomGetter;
use hermes_cosmos_integration_tests::traits::bootstrap::relayer_chain_config::RelayerChainConfigBuilderComponent;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_cosmos_test_components::bootstrap::components::cosmos_sdk_legacy::*;
use hermes_cosmos_test_components::bootstrap::traits::chain::build_chain_driver::ChainDriverBuilderComponent;
use hermes_cosmos_test_components::bootstrap::traits::fields::account_prefix::AccountPrefixGetter;
Expand All @@ -42,14 +42,17 @@ use hermes_cosmos_test_components::bootstrap::traits::modifiers::modify_comet_co
use hermes_cosmos_test_components::bootstrap::traits::modifiers::modify_genesis_config::CosmosGenesisConfigModifier;
use hermes_runtime::impls::types::runtime::ProvideHermesRuntime;
use hermes_runtime::types::runtime::HermesRuntime;
use hermes_runtime_components::traits::runtime::{RuntimeGetter, RuntimeTypeComponent};
use hermes_runtime_components::traits::runtime::{
GetRuntimeField, RuntimeGetterComponent, RuntimeTypeComponent,
};
use hermes_test_components::chain_driver::traits::types::chain::ChainTypeComponent;
use hermes_test_components::driver::traits::types::chain_driver::ChainDriverTypeComponent;
use ibc_relayer::config::compat_mode::CompatMode;
use tokio::process::Child;

use crate::contexts::bridge_driver::CelestiaBridgeDriver;

#[derive(HasField)]
pub struct CelestiaBootstrap {
pub runtime: HermesRuntime,
pub builder: Arc<CosmosBuilder>,
Expand Down Expand Up @@ -89,6 +92,8 @@ delegate_components! {
ErrorTypeComponent: ProvideEyreError,
ErrorRaiserComponent: RaiseDebugError,
RuntimeTypeComponent: ProvideHermesRuntime,
RuntimeGetterComponent:
GetRuntimeField<symbol!("runtime")>,
[
ChainTypeComponent,
ChainDriverTypeComponent,
Expand Down Expand Up @@ -128,12 +133,6 @@ impl BridgeDriverBuilder<CelestiaBootstrap> for CelestiaBootstrapComponents {
}
}

impl RuntimeGetter<CelestiaBootstrap> for CelestiaBootstrapComponents {
fn runtime(bootstrap: &CelestiaBootstrap) -> &HermesRuntime {
&bootstrap.runtime
}
}

impl ChainStoreDirGetter<CelestiaBootstrap> for CelestiaBootstrapComponents {
fn chain_store_dir(bootstrap: &CelestiaBootstrap) -> &PathBuf {
&bootstrap.chain_store_dir
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::time::{SystemTime, UNIX_EPOCH};
use eyre::Error;
use hermes_celestia_integration_tests::contexts::bootstrap::CelestiaBootstrap;
use hermes_celestia_test_components::bootstrap::traits::bootstrap_bridge::CanBootstrapBridge;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_runtime::types::runtime::HermesRuntime;
use hermes_test_components::bootstrap::traits::chain::CanBootstrapChain;
use tokio::runtime::Builder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::sync::Arc;
use hermes_cosmos_integration_tests::contexts::binary_channel::setup::CosmosBinaryChannelSetup;
use hermes_cosmos_integration_tests::contexts::bootstrap_legacy::LegacyCosmosBootstrap;
use hermes_cosmos_integration_tests::init::init_test_runtime;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_error::types::Error;
use hermes_ibc_test_suite::tests::transfer::TestIbcTransfer;
use hermes_test_components::setup::traits::run_test::CanRunTest;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/application/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::path::{Path, PathBuf};
use hermes_cli_framework::application::Application;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_runtime::types::runtime::HermesRuntime;

use crate::commands::HermesCommand;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/channel/create.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_chain_components::types::channel::CosmosInitChannelOptions;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_relayer_components::build::traits::components::relay_builder::CanBuildRelay;
use hermes_relayer_components::build::traits::target::relay::RelayAToBTarget;
use hermes_relayer_components::relay::impls::channel::bootstrap::CanBootstrapChannel;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/channel/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ pub mod create;
pub use create::ChannelCreate;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;

use crate::Result;

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/clear/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
mod packets;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
pub use packets::PacketsClear;

use crate::Result;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/clear/packets.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use futures::stream::{self, StreamExt};
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_relayer_components::build::traits::components::birelay_builder::CanBuildBiRelay;
use hermes_relayer_components::relay::traits::packet_clearer::CanClearPackets;
use ibc_relayer_types::core::ics24_host::identifier::{ChainId, ChannelId, ClientId, PortId};
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/client/create.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_cosmos_relayer::contexts::relay::CosmosRelay;
use hermes_relayer_components::relay::traits::client_creator::CanCreateClient;
use hermes_relayer_components::relay::traits::target::DestinationTarget;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/client/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;

use crate::Result;

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/client/update.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_cosmos_relayer::contexts::chain::CosmosChain;
use hermes_error::traits::wrap::ErrorWrapper;
use hermes_relayer_components::build::traits::components::relay_builder::CanBuildRelay;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/connection/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::time::Duration;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_chain_components::types::connection::CosmosInitConnectionOptions;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_relayer_components::build::traits::components::relay_builder::CanBuildRelay;
use hermes_relayer_components::build::traits::target::relay::RelayAToBTarget;
use hermes_relayer_components::relay::impls::connection::bootstrap::CanBootstrapConnection;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/connection/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ mod create;
pub use create::ConnectionCreate;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;

use crate::Result;

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/keys/add.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use std::str::FromStr;
use hdpath::StandardHDPath;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::config::ChainConfig;
use ibc_relayer::keyring::{
AnySigningKeyPair, KeyRing, Secp256k1KeyPair, SigningKeyPair, SigningKeyPairSized, Store,
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/keys/balance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use core::fmt::Write;

use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::{json, Output};
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::chain::handle::ChainHandle;
use ibc_relayer::config::ChainConfig;
use ibc_relayer_types::core::ics24_host::identifier::ChainId;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/keys/delete.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::config::{ChainConfig, Config};
use ibc_relayer::keyring::{KeyRing, Store};
use ibc_relayer_types::core::ics24_host::identifier::ChainId;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/keys/list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::collections::BTreeMap;

use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::{json, Output};
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::config::{ChainConfig, Config};
use ibc_relayer_types::core::ics24_host::identifier::ChainId;
use oneline_eyre::eyre::eyre;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/keys/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ mod balance;
pub use balance::KeysBalanceCmd;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;

use crate::Result;

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;

use crate::Result;

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/query/channel/client.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_chain_components::traits::chain_handle::HasBlockingChainHandle;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::chain::handle::ChainHandle;
use ibc_relayer::chain::requests::QueryChannelClientStateRequest;
use ibc_relayer_types::core::ics24_host::identifier::{ChainId, ChannelId, PortId};
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/query/channel/end.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_chain_components::traits::chain_handle::HasBlockingChainHandle;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::chain::handle::ChainHandle;
use ibc_relayer::chain::requests::{IncludeProof, QueryChannelRequest, QueryHeight};
use ibc_relayer_types::core::ics04_channel::channel::State;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/query/channel/ends.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_chain_components::traits::chain_handle::HasBlockingChainHandle;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use ibc_relayer::chain::handle::ChainHandle;
use ibc_relayer::chain::requests::{
IncludeProof, QueryChannelRequest, QueryClientStateRequest, QueryConnectionRequest, QueryHeight,
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/query/channel/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub use end::QueryChannelEnd;
pub use ends::QueryChannelEnds;
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;

use crate::Result;

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/query/channels.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::{json, Output};
use hermes_cosmos_chain_components::traits::chain_handle::HasBlockingChainHandle;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_error::traits::wrap::ErrorWrapper;
use hermes_relayer_components::chain::traits::queries::chain_status::CanQueryChainHeight;
use ibc_relayer::chain::handle::ChainHandle;
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/cli/src/commands/query/client/consensus.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use hermes_cli_framework::command::CommandRunner;
use hermes_cli_framework::output::Output;
use hermes_cosmos_relayer::contexts::builder::CosmosBuilder;
use hermes_cosmos_relayer::contexts::build::CosmosBuilder;
use hermes_cosmos_relayer::contexts::chain::CosmosChain;
use hermes_error::traits::wrap::ErrorWrapper;
use hermes_relayer_components::chain::traits::queries::client_state::CanQueryClientStateWithLatestHeight;
Expand Down
Loading

0 comments on commit 64f02c1

Please sign in to comment.