-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove the use of
relayer-all-in-one
traits in relayer-cosmos
cra…
…te (#62) * Refine trait bounds for extra chain components * Ensure that CosmosChain implements UseExtraChainComponents * Add event relayer dependencies to UseExtraChainComponents * Separate out chain depedencies for event and packet relayers * Add dependency closure for ibc message sender * Simplify dependency closure for packet relayer * Finish relay dependency closure for channel handshake relayer * Finish chain depedency closure for channel handshake * CosmosChain now implements channel handshake components * Remove the use of OfaChainWrapper * Remove the use of relayer-all-in-one traits in relayer-cosmos * Fix clippy * Disable solomachine tests * Add back OfaChain implementation for CosmosChain to not break solomachine
- Loading branch information
1 parent
4b1c302
commit 6daeb85
Showing
45 changed files
with
617 additions
and
412 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
40 changes: 0 additions & 40 deletions
40
crates/relayer-components-extra/src/components/extra/closures/chain.rs
This file was deleted.
Oops, something went wrong.
30 changes: 30 additions & 0 deletions
30
crates/relayer-components-extra/src/components/extra/closures/chain/all.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
use ibc_relayer_components::chain::traits::types::channel::HasChannelHandshakePayloads; | ||
use ibc_relayer_components::chain::traits::types::client_state::HasClientStateType; | ||
use ibc_relayer_components::chain::traits::types::consensus_state::HasConsensusStateType; | ||
use ibc_relayer_components::chain::traits::types::height::HasHeightType; | ||
use ibc_relayer_components::chain::traits::types::ibc::HasIbcChainTypes; | ||
use ibc_relayer_components::chain::traits::types::packets::ack::HasAckPacketPayload; | ||
use ibc_relayer_components::chain::traits::types::packets::receive::HasReceivePacketPayload; | ||
use ibc_relayer_components::chain::traits::types::packets::timeout::HasTimeoutUnorderedPacketPayload; | ||
use ibc_relayer_components::chain::traits::types::update_client::HasUpdateClientPayload; | ||
|
||
use crate::components::extra::closures::chain::channel_handshake::UseExtraChainComponentsForChannelHandshake; | ||
use crate::components::extra::closures::chain::event_relayer::UseExtraChainComponentsForEventRelayer; | ||
use crate::components::extra::closures::chain::packet_relayer::UseExtraChainComponentsForPacketRelayer; | ||
|
||
pub trait CanUseExtraChainComponents<Counterparty>: | ||
UseExtraChainComponentsForPacketRelayer<Counterparty> | ||
+ UseExtraChainComponentsForEventRelayer<Counterparty> | ||
+ UseExtraChainComponentsForChannelHandshake<Counterparty> | ||
where | ||
Counterparty: HasHeightType | ||
+ HasClientStateType<Self> | ||
+ HasConsensusStateType<Self> | ||
+ HasIbcChainTypes<Self> | ||
+ HasUpdateClientPayload<Self> | ||
+ HasReceivePacketPayload<Self> | ||
+ HasAckPacketPayload<Self> | ||
+ HasTimeoutUnorderedPacketPayload<Self> | ||
+ HasChannelHandshakePayloads<Self>, | ||
{ | ||
} |
60 changes: 60 additions & 0 deletions
60
crates/relayer-components-extra/src/components/extra/closures/chain/channel_handshake.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
use cgp_core::HasComponents; | ||
use ibc_relayer_components::chain::traits::components::chain_status_querier::CanQueryChainHeight; | ||
use ibc_relayer_components::chain::traits::components::channel_handshake_message_builder::{ | ||
CanBuildChannelHandshakeMessages, ChannelHandshakeMessageBuilder, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::channel_handshake_payload_builder::{ | ||
CanBuildChannelHandshakePayloads, ChannelHandshakePayloadBuilder, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::client_state_querier::CanQueryClientState; | ||
use ibc_relayer_components::chain::traits::types::channel::{ | ||
HasChannelHandshakePayloads, HasInitChannelOptionsType, | ||
}; | ||
use ibc_relayer_components::chain::traits::types::client_state::HasClientStateType; | ||
use ibc_relayer_components::chain::traits::types::consensus_state::HasConsensusStateType; | ||
use ibc_relayer_components::chain::traits::types::ibc::HasIbcChainTypes; | ||
use ibc_relayer_components::chain::traits::types::ibc_events::channel::{ | ||
HasChannelOpenInitEvent, HasChannelOpenTryEvent, | ||
}; | ||
use ibc_relayer_components::chain::traits::types::update_client::HasUpdateClientPayload; | ||
|
||
use crate::components::extra::chain::ExtraChainComponents; | ||
use crate::components::extra::closures::chain::message_sender::UseExtraChainComponentsForIbcMessageSender; | ||
|
||
pub trait UseExtraChainComponentsForChannelHandshake<Counterparty>: | ||
UseExtraChainComponentsForIbcMessageSender<Counterparty> | ||
+ HasInitChannelOptionsType<Counterparty> | ||
+ HasChannelOpenTryEvent<Counterparty> | ||
+ CanQueryClientState<Counterparty> | ||
+ CanBuildChannelHandshakePayloads<Counterparty> | ||
+ CanBuildChannelHandshakeMessages<Counterparty> | ||
+ HasChannelOpenInitEvent<Counterparty> | ||
+ CanQueryChainHeight | ||
where | ||
Counterparty: HasClientStateType<Self> | ||
+ HasConsensusStateType<Self> | ||
+ HasIbcChainTypes<Self> | ||
+ HasUpdateClientPayload<Self> | ||
+ HasChannelHandshakePayloads<Self>, | ||
{ | ||
} | ||
|
||
impl<Chain, Counterparty, ChainComponents> UseExtraChainComponentsForChannelHandshake<Counterparty> | ||
for Chain | ||
where | ||
Chain: HasChannelOpenInitEvent<Counterparty> | ||
+ HasChannelOpenTryEvent<Counterparty> | ||
+ HasInitChannelOptionsType<Counterparty> | ||
+ HasChannelHandshakePayloads<Counterparty> | ||
+ UseExtraChainComponentsForIbcMessageSender<Counterparty> | ||
+ HasComponents<Components = ExtraChainComponents<ChainComponents>>, | ||
Counterparty: HasClientStateType<Chain> | ||
+ HasConsensusStateType<Chain> | ||
+ HasIbcChainTypes<Chain> | ||
+ HasUpdateClientPayload<Chain> | ||
+ HasChannelHandshakePayloads<Chain>, | ||
ChainComponents: ChannelHandshakePayloadBuilder<Chain, Counterparty> | ||
+ ChannelHandshakeMessageBuilder<Chain, Counterparty>, | ||
Chain::Height: Clone, | ||
{ | ||
} |
46 changes: 46 additions & 0 deletions
46
crates/relayer-components-extra/src/components/extra/closures/chain/event_relayer.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
use cgp_core::{HasComponents, HasErrorType}; | ||
use ibc_relayer_components::chain::traits::components::counterparty_chain_id_querier::{ | ||
CanQueryCounterpartyChainId, CounterpartyChainIdQuerier, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::packet_from_write_ack_builder::{ | ||
CanBuildPacketFromWriteAck, PacketFromWriteAckBuilder, | ||
}; | ||
use ibc_relayer_components::chain::traits::logs::packet::CanLogChainPacket; | ||
use ibc_relayer_components::chain::traits::types::chain_id::HasChainId; | ||
use ibc_relayer_components::chain::traits::types::client_state::HasClientStateType; | ||
use ibc_relayer_components::chain::traits::types::ibc::HasIbcChainTypes; | ||
use ibc_relayer_components::chain::traits::types::ibc_events::send_packet::HasSendPacketEvent; | ||
use ibc_relayer_components::chain::traits::types::ibc_events::write_ack::HasWriteAckEvent; | ||
use ibc_relayer_components::logger::traits::has_logger::HasLoggerType; | ||
|
||
use crate::components::extra::chain::ExtraChainComponents; | ||
|
||
pub trait UseExtraChainComponentsForEventRelayer<Counterparty>: | ||
HasChainId | ||
+ HasLoggerType | ||
+ HasSendPacketEvent<Counterparty> | ||
+ CanLogChainPacket<Counterparty> | ||
+ CanQueryCounterpartyChainId<Counterparty> | ||
+ CanBuildPacketFromWriteAck<Counterparty> | ||
where | ||
Counterparty: HasIbcChainTypes<Self>, | ||
{ | ||
} | ||
|
||
impl<Chain, Counterparty, ChainComponents> UseExtraChainComponentsForEventRelayer<Counterparty> | ||
for Chain | ||
where | ||
Chain: HasErrorType | ||
+ HasChainId | ||
+ HasLoggerType | ||
+ HasSendPacketEvent<Counterparty> | ||
+ CanLogChainPacket<Counterparty> | ||
+ HasIbcChainTypes<Counterparty> | ||
+ HasClientStateType<Counterparty> | ||
+ HasWriteAckEvent<Counterparty> | ||
+ HasComponents<Components = ExtraChainComponents<ChainComponents>>, | ||
Counterparty: HasIbcChainTypes<Chain>, | ||
ChainComponents: CounterpartyChainIdQuerier<Chain, Counterparty> | ||
+ PacketFromWriteAckBuilder<Chain, Counterparty>, | ||
{ | ||
} |
93 changes: 93 additions & 0 deletions
93
crates/relayer-components-extra/src/components/extra/closures/chain/message_sender.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
use cgp_core::HasComponents; | ||
use ibc_relayer_components::chain::traits::components::chain_status_querier::{ | ||
CanQueryChainStatus, ChainStatusQuerier, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::client_state_querier::{ | ||
CanQueryClientState, ClientStateQuerier, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::consensus_state_height_querier::{ | ||
CanQueryConsensusStateHeight, ConsensusStateHeightQuerier, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::consensus_state_querier::{ | ||
CanQueryConsensusState, ConsensusStateQuerier, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::message_sender::{ | ||
CanSendMessages, MessageSender, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::update_client_message_builder::{ | ||
CanBuildUpdateClientMessage, UpdateClientMessageBuilder, | ||
}; | ||
use ibc_relayer_components::chain::traits::components::update_client_payload_builder::{ | ||
CanBuildUpdateClientPayload, UpdateClientPayloadBuilder, | ||
}; | ||
use ibc_relayer_components::chain::traits::types::chain_id::HasChainId; | ||
use ibc_relayer_components::chain::traits::types::client_state::{ | ||
HasClientStateFields, HasClientStateType, | ||
}; | ||
use ibc_relayer_components::chain::traits::types::consensus_state::HasConsensusStateType; | ||
use ibc_relayer_components::chain::traits::types::height::CanIncrementHeight; | ||
use ibc_relayer_components::chain::traits::types::ibc::{ | ||
HasCounterpartyMessageHeight, HasIbcChainTypes, | ||
}; | ||
use ibc_relayer_components::chain::traits::types::status::HasChainStatusType; | ||
use ibc_relayer_components::chain::traits::types::update_client::HasUpdateClientPayload; | ||
use ibc_relayer_components::logger::traits::has_logger::HasLoggerType; | ||
use ibc_relayer_components::runtime::traits::runtime::HasRuntime; | ||
|
||
use crate::components::extra::chain::ExtraChainComponents; | ||
use crate::telemetry::traits::metrics::HasBasicMetrics; | ||
use crate::telemetry::traits::telemetry::HasTelemetry; | ||
|
||
pub trait UseExtraChainComponentsForIbcMessageSender<Counterparty>: | ||
HasRuntime | ||
+ HasChainId | ||
+ HasLoggerType | ||
+ CanIncrementHeight | ||
+ CanSendMessages | ||
+ CanQueryChainStatus | ||
+ HasConsensusStateType<Counterparty> | ||
+ HasClientStateFields<Counterparty> | ||
+ HasCounterpartyMessageHeight<Counterparty> | ||
+ CanQueryClientState<Counterparty> | ||
+ CanQueryConsensusState<Counterparty> | ||
+ CanQueryConsensusStateHeight<Counterparty> | ||
+ CanBuildUpdateClientPayload<Counterparty> | ||
+ CanBuildUpdateClientMessage<Counterparty> | ||
where | ||
Counterparty: HasClientStateType<Self> | ||
+ HasConsensusStateType<Self> | ||
+ HasIbcChainTypes<Self> | ||
+ HasUpdateClientPayload<Self>, | ||
{ | ||
} | ||
|
||
impl<Chain, Counterparty, ChainComponents> UseExtraChainComponentsForIbcMessageSender<Counterparty> | ||
for Chain | ||
where | ||
Chain: HasRuntime | ||
+ HasChainId | ||
+ HasLoggerType | ||
+ CanIncrementHeight | ||
+ HasTelemetry | ||
+ HasChainStatusType | ||
+ HasConsensusStateType<Counterparty> | ||
+ HasClientStateFields<Counterparty> | ||
+ HasCounterpartyMessageHeight<Counterparty> | ||
+ HasIbcChainTypes<Counterparty> | ||
+ HasClientStateType<Counterparty> | ||
+ HasUpdateClientPayload<Counterparty> | ||
+ HasComponents<Components = ExtraChainComponents<ChainComponents>>, | ||
Counterparty: HasIbcChainTypes<Chain> | ||
+ HasClientStateType<Chain> | ||
+ HasConsensusStateType<Chain> | ||
+ HasUpdateClientPayload<Chain>, | ||
Chain::Telemetry: HasBasicMetrics, | ||
ChainComponents: MessageSender<Chain> | ||
+ ChainStatusQuerier<Chain> | ||
+ ConsensusStateQuerier<Chain, Counterparty> | ||
+ ClientStateQuerier<Chain, Counterparty> | ||
+ ConsensusStateHeightQuerier<Chain, Counterparty> | ||
+ UpdateClientPayloadBuilder<Chain, Counterparty> | ||
+ UpdateClientMessageBuilder<Chain, Counterparty>, | ||
{ | ||
} |
5 changes: 5 additions & 0 deletions
5
crates/relayer-components-extra/src/components/extra/closures/chain/mod.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
pub mod all; | ||
pub mod channel_handshake; | ||
pub mod event_relayer; | ||
pub mod message_sender; | ||
pub mod packet_relayer; |
Oops, something went wrong.