From b71647120967ed1e8d668b731cad3e847e54802f Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Tue, 28 Nov 2023 15:17:47 -0600 Subject: [PATCH 1/9] Remove Msg::get_sign_bytes method --- ibc-primitives/src/traits/msg.rs | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/ibc-primitives/src/traits/msg.rs b/ibc-primitives/src/traits/msg.rs index 61eeb796a..017753bb9 100644 --- a/ibc-primitives/src/traits/msg.rs +++ b/ibc-primitives/src/traits/msg.rs @@ -1,23 +1,20 @@ -use ibc_proto::google::protobuf::Any; +use ibc_proto::{google::protobuf::Any, Protobuf}; use crate::prelude::*; -/// Trait to be implemented by all IBC messages -pub trait Msg: Clone { - type Raw: From + prost::Message; - - /// Unique type identifier for this message, to support encoding to/from `prost_types::Any`. - fn type_url(&self) -> String; +use core::fmt::Display; - fn get_sign_bytes(self) -> Vec { - let raw_msg: Self::Raw = self.into(); - prost::Message::encode_to_vec(&raw_msg) - } +/// Trait to be implemented by all IBC messages +pub trait Msg: Protobuf +where + >::Error: Display, +{ + type Raw: From + prost::Message + prost::Name + Default; fn to_any(self) -> Any { Any { type_url: self.type_url(), - value: self.get_sign_bytes(), + value: self.encode_vec(), } } } From 063e81d76fe322b219b9817d033990a82e8d53ca Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 08:34:24 -0600 Subject: [PATCH 2/9] Update bounds on Msg trait --- ibc-primitives/src/traits/msg.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ibc-primitives/src/traits/msg.rs b/ibc-primitives/src/traits/msg.rs index 017753bb9..eaafed984 100644 --- a/ibc-primitives/src/traits/msg.rs +++ b/ibc-primitives/src/traits/msg.rs @@ -5,15 +5,15 @@ use crate::prelude::*; use core::fmt::Display; /// Trait to be implemented by all IBC messages -pub trait Msg: Protobuf +pub trait Msg: Protobuf + prost::Name where >::Error: Display, { - type Raw: From + prost::Message + prost::Name + Default; + type Raw: From + prost::Message + Default; fn to_any(self) -> Any { Any { - type_url: self.type_url(), + type_url: Self::type_url(), value: self.encode_vec(), } } From 46e220ac717f5ff5b5140b84ec6a4e166ead4c17 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 09:18:47 -0600 Subject: [PATCH 3/9] Rename Msg trait to ToProto --- ibc-primitives/src/traits/msg.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ibc-primitives/src/traits/msg.rs b/ibc-primitives/src/traits/msg.rs index eaafed984..3e23083b9 100644 --- a/ibc-primitives/src/traits/msg.rs +++ b/ibc-primitives/src/traits/msg.rs @@ -4,12 +4,14 @@ use crate::prelude::*; use core::fmt::Display; -/// Trait to be implemented by all IBC messages -pub trait Msg: Protobuf + prost::Name +/// Types that implement this trait are able to be converted to +/// a raw Protobuf `Any` type. +pub trait ToProto: Protobuf + prost::Name where - >::Error: Display, + Self::Proto: From + prost::Message + Default, + >::Error: Display, { - type Raw: From + prost::Message + Default; + type Proto; fn to_any(self) -> Any { Any { From 6a8a1db3edeef67fea265d2caddbe731e473bb3b Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 13:02:48 -0600 Subject: [PATCH 4/9] Import prost::Name in ToProto::to_any fn --- ibc-primitives/src/traits/msg.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ibc-primitives/src/traits/msg.rs b/ibc-primitives/src/traits/msg.rs index 3e23083b9..9234ca8db 100644 --- a/ibc-primitives/src/traits/msg.rs +++ b/ibc-primitives/src/traits/msg.rs @@ -6,16 +6,18 @@ use core::fmt::Display; /// Types that implement this trait are able to be converted to /// a raw Protobuf `Any` type. -pub trait ToProto: Protobuf + prost::Name +pub trait ToProto: Protobuf where - Self::Proto: From + prost::Message + Default, + Self::Proto: From + prost::Message + prost::Name + Default, >::Error: Display, { type Proto; fn to_any(self) -> Any { + use prost::Name; + Any { - type_url: Self::type_url(), + type_url: Self::Proto::type_url(), value: self.encode_vec(), } } From 9a8105786905b61b1ec6cb828e8af6da536a2680 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 13:27:38 -0600 Subject: [PATCH 5/9] Change `impl Msg` implementations --- ibc-apps/ics20-transfer/types/src/msgs/transfer.rs | 10 +++------- ibc-core/ics02-client/types/src/msgs/create_client.rs | 10 +++------- ibc-core/ics02-client/types/src/msgs/misbehaviour.rs | 10 +++------- ibc-core/ics02-client/types/src/msgs/update_client.rs | 10 +++------- .../ics02-client/types/src/msgs/upgrade_client.rs | 10 +++------- .../ics03-connection/types/src/msgs/conn_open_ack.rs | 10 +++------- .../types/src/msgs/conn_open_confirm.rs | 10 +++------- .../ics03-connection/types/src/msgs/conn_open_init.rs | 10 +++------- .../ics03-connection/types/src/msgs/conn_open_try.rs | 11 ++++------- .../ics04-channel/types/src/msgs/acknowledgement.rs | 10 +++------- .../types/src/msgs/chan_close_confirm.rs | 10 +++------- .../ics04-channel/types/src/msgs/chan_close_init.rs | 10 +++------- .../ics04-channel/types/src/msgs/chan_open_ack.rs | 10 +++------- .../ics04-channel/types/src/msgs/chan_open_confirm.rs | 10 +++------- .../ics04-channel/types/src/msgs/chan_open_init.rs | 10 +++------- .../ics04-channel/types/src/msgs/chan_open_try.rs | 10 +++------- ibc-core/ics04-channel/types/src/msgs/recv_packet.rs | 10 +++------- ibc-core/ics04-channel/types/src/msgs/timeout.rs | 10 +++------- .../ics04-channel/types/src/msgs/timeout_on_close.rs | 10 +++------- 19 files changed, 58 insertions(+), 133 deletions(-) diff --git a/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs b/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs index b892f9f40..c9bf63438 100644 --- a/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs +++ b/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs @@ -5,7 +5,7 @@ use ibc_core::channel::types::timeout::TimeoutHeight; use ibc_core::handler::types::error::ContextError; use ibc_core::host::types::identifiers::{ChannelId, PortId}; use ibc_core::primitives::prelude::*; -use ibc_core::primitives::{Msg, Timestamp}; +use ibc_core::primitives::{Timestamp, ToProto}; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::applications::transfer::v1::MsgTransfer as RawMsgTransfer; use ibc_proto::Protobuf; @@ -47,12 +47,8 @@ pub struct MsgTransfer { pub timeout_timestamp_on_b: Timestamp, } -impl Msg for MsgTransfer { - type Raw = RawMsgTransfer; - - fn type_url(&self) -> String { - TYPE_URL.to_string() - } +impl ToProto for MsgTransfer { + type Proto = RawMsgTransfer; } impl TryFrom for MsgTransfer { diff --git a/ibc-core/ics02-client/types/src/msgs/create_client.rs b/ibc-core/ics02-client/types/src/msgs/create_client.rs index f20353c91..500303335 100644 --- a/ibc-core/ics02-client/types/src/msgs/create_client.rs +++ b/ibc-core/ics02-client/types/src/msgs/create_client.rs @@ -1,7 +1,7 @@ //! Definition of domain type message `MsgCreateClient`. use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::client::v1::MsgCreateClient as RawMsgCreateClient; use ibc_proto::Protobuf; @@ -33,12 +33,8 @@ impl MsgCreateClient { } } -impl Msg for MsgCreateClient { - type Raw = RawMsgCreateClient; - - fn type_url(&self) -> String { - CREATE_CLIENT_TYPE_URL.to_string() - } +impl ToProto for MsgCreateClient { + type Proto = RawMsgCreateClient; } impl Protobuf for MsgCreateClient {} diff --git a/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs b/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs index d33651821..331fa35e2 100644 --- a/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs +++ b/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs @@ -2,7 +2,7 @@ use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::google::protobuf::Any as ProtoAny; use ibc_proto::ibc::core::client::v1::MsgSubmitMisbehaviour as RawMsgSubmitMisbehaviour; use ibc_proto::Protobuf; @@ -27,12 +27,8 @@ pub struct MsgSubmitMisbehaviour { pub signer: Signer, } -impl Msg for MsgSubmitMisbehaviour { - type Raw = RawMsgSubmitMisbehaviour; - - fn type_url(&self) -> String { - SUBMIT_MISBEHAVIOUR_TYPE_URL.to_string() - } +impl ToProto for MsgSubmitMisbehaviour { + type Proto = RawMsgSubmitMisbehaviour; } impl Protobuf for MsgSubmitMisbehaviour {} diff --git a/ibc-core/ics02-client/types/src/msgs/update_client.rs b/ibc-core/ics02-client/types/src/msgs/update_client.rs index 0e6a020ad..111bb9217 100644 --- a/ibc-core/ics02-client/types/src/msgs/update_client.rs +++ b/ibc-core/ics02-client/types/src/msgs/update_client.rs @@ -2,7 +2,7 @@ use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::client::v1::MsgUpdateClient as RawMsgUpdateClient; use ibc_proto::Protobuf; @@ -27,12 +27,8 @@ pub struct MsgUpdateClient { pub signer: Signer, } -impl Msg for MsgUpdateClient { - type Raw = RawMsgUpdateClient; - - fn type_url(&self) -> String { - UPDATE_CLIENT_TYPE_URL.to_string() - } +impl ToProto for MsgUpdateClient { + type Proto = RawMsgUpdateClient; } impl Protobuf for MsgUpdateClient {} diff --git a/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs b/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs index cf8ed7506..836f5b48a 100644 --- a/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs +++ b/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs @@ -6,7 +6,7 @@ use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_commitment_types::error::CommitmentError; use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::client::v1::MsgUpgradeClient as RawMsgUpgradeClient; use ibc_proto::Protobuf; @@ -38,12 +38,8 @@ pub struct MsgUpgradeClient { pub signer: Signer, } -impl Msg for MsgUpgradeClient { - type Raw = RawMsgUpgradeClient; - - fn type_url(&self) -> String { - UPGRADE_CLIENT_TYPE_URL.to_string() - } +impl ToProto for MsgUpgradeClient { + type Proto = RawMsgUpgradeClient; } impl Protobuf for MsgUpgradeClient {} diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs index 462648c88..55f6472a4 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::ConnectionId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenAck as RawMsgConnectionOpenAck; use ibc_proto::Protobuf; @@ -44,12 +44,8 @@ pub struct MsgConnectionOpenAck { pub proof_consensus_state_of_a: Option, } -impl Msg for MsgConnectionOpenAck { - type Raw = RawMsgConnectionOpenAck; - - fn type_url(&self) -> String { - CONN_OPEN_ACK_TYPE_URL.to_string() - } +impl ToProto for MsgConnectionOpenAck { + type Proto = RawMsgConnectionOpenAck; } impl Protobuf for MsgConnectionOpenAck {} diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs index 631a31b18..2f8b2113f 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::ConnectionId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenConfirm as RawMsgConnectionOpenConfirm; use ibc_proto::Protobuf; @@ -28,12 +28,8 @@ pub struct MsgConnectionOpenConfirm { pub signer: Signer, } -impl Msg for MsgConnectionOpenConfirm { - type Raw = RawMsgConnectionOpenConfirm; - - fn type_url(&self) -> String { - CONN_OPEN_CONFIRM_TYPE_URL.to_string() - } +impl ToProto for MsgConnectionOpenConfirm { + type Proto = RawMsgConnectionOpenConfirm; } impl Protobuf for MsgConnectionOpenConfirm {} diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs index 8a1bbee57..afc0d7dfc 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs @@ -2,7 +2,7 @@ use core::time::Duration; use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenInit as RawMsgConnectionOpenInit; use ibc_proto::Protobuf; @@ -25,12 +25,8 @@ pub struct MsgConnectionOpenInit { pub signer: Signer, } -impl Msg for MsgConnectionOpenInit { - type Raw = RawMsgConnectionOpenInit; - - fn type_url(&self) -> String { - CONN_OPEN_INIT_TYPE_URL.to_string() - } +impl ToProto for MsgConnectionOpenInit { + type Proto = RawMsgConnectionOpenInit; } /// This module encapsulates the workarounds we need to do to implement diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs index 776a46f36..abb276389 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs @@ -5,7 +5,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenTry as RawMsgConnectionOpenTry; use ibc_proto::Protobuf; @@ -50,13 +50,10 @@ pub struct MsgConnectionOpenTry { pub previous_connection_id: String, } -impl Msg for MsgConnectionOpenTry { - type Raw = RawMsgConnectionOpenTry; - - fn type_url(&self) -> String { - CONN_OPEN_TRY_TYPE_URL.to_string() - } +impl ToProto for MsgConnectionOpenTry { + type Proto = RawMsgConnectionOpenTry; } + #[allow(deprecated)] #[cfg(feature = "borsh")] mod borsh_impls { diff --git a/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs b/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs index 50cba957e..8a6621e16 100644 --- a/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs +++ b/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs @@ -1,7 +1,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgAcknowledgement as RawMsgAcknowledgement; use ibc_proto::Protobuf; @@ -30,12 +30,8 @@ pub struct MsgAcknowledgement { pub signer: Signer, } -impl Msg for MsgAcknowledgement { - type Raw = RawMsgAcknowledgement; - - fn type_url(&self) -> String { - ACKNOWLEDGEMENT_TYPE_URL.to_string() - } +impl ToProto for MsgAcknowledgement { + type Proto = RawMsgAcknowledgement; } impl Protobuf for MsgAcknowledgement {} diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs b/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs index f69ddf472..48d7aec34 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgChannelCloseConfirm as RawMsgChannelCloseConfirm; use ibc_proto::Protobuf; @@ -29,12 +29,8 @@ pub struct MsgChannelCloseConfirm { pub signer: Signer, } -impl Msg for MsgChannelCloseConfirm { - type Raw = RawMsgChannelCloseConfirm; - - fn type_url(&self) -> String { - CHAN_CLOSE_CONFIRM_TYPE_URL.to_string() - } +impl ToProto for MsgChannelCloseConfirm { + type Proto = RawMsgChannelCloseConfirm; } impl Protobuf for MsgChannelCloseConfirm {} diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs b/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs index c92cd5992..630de9f94 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs @@ -1,6 +1,6 @@ use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgChannelCloseInit as RawMsgChannelCloseInit; use ibc_proto::Protobuf; @@ -24,12 +24,8 @@ pub struct MsgChannelCloseInit { pub signer: Signer, } -impl Msg for MsgChannelCloseInit { - type Raw = RawMsgChannelCloseInit; - - fn type_url(&self) -> String { - CHAN_CLOSE_INIT_TYPE_URL.to_string() - } +impl ToProto for MsgChannelCloseInit { + type Proto = RawMsgChannelCloseInit; } impl Protobuf for MsgChannelCloseInit {} diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs index 5ef4c5694..1f3f4de80 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenAck as RawMsgChannelOpenAck; use ibc_proto::Protobuf; @@ -30,12 +30,8 @@ pub struct MsgChannelOpenAck { pub signer: Signer, } -impl Msg for MsgChannelOpenAck { - type Raw = RawMsgChannelOpenAck; - - fn type_url(&self) -> String { - CHAN_OPEN_ACK_TYPE_URL.to_string() - } +impl ToProto for MsgChannelOpenAck { + type Proto = RawMsgChannelOpenAck; } impl Protobuf for MsgChannelOpenAck {} diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs index cffc523b8..20bb323f0 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenConfirm as RawMsgChannelOpenConfirm; use ibc_proto::Protobuf; @@ -29,12 +29,8 @@ pub struct MsgChannelOpenConfirm { pub signer: Signer, } -impl Msg for MsgChannelOpenConfirm { - type Raw = RawMsgChannelOpenConfirm; - - fn type_url(&self) -> String { - CHAN_OPEN_CONFIRM_TYPE_URL.to_string() - } +impl ToProto for MsgChannelOpenConfirm { + type Proto = RawMsgChannelOpenConfirm; } impl Protobuf for MsgChannelOpenConfirm {} diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs index aa5175eae..9085fdd89 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs @@ -1,6 +1,6 @@ use ibc_core_host_types::identifiers::{ConnectionId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenInit as RawMsgChannelOpenInit; use ibc_proto::Protobuf; @@ -39,12 +39,8 @@ impl MsgChannelOpenInit { } } -impl Msg for MsgChannelOpenInit { - type Raw = RawMsgChannelOpenInit; - - fn type_url(&self) -> String { - CHAN_OPEN_INIT_TYPE_URL.to_string() - } +impl ToProto for MsgChannelOpenInit { + type Proto = RawMsgChannelOpenInit; } impl Protobuf for MsgChannelOpenInit {} diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs index cb554ee00..441f780d9 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, ConnectionId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenTry as RawMsgChannelOpenTry; use ibc_proto::Protobuf; @@ -47,12 +47,8 @@ impl MsgChannelOpenTry { } } -impl Msg for MsgChannelOpenTry { - type Raw = RawMsgChannelOpenTry; - - fn type_url(&self) -> String { - CHAN_OPEN_TRY_TYPE_URL.to_string() - } +impl ToProto for MsgChannelOpenTry { + type Proto = RawMsgChannelOpenTry; } impl Protobuf for MsgChannelOpenTry {} diff --git a/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs b/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs index cf4bc4d77..e20e0f783 100644 --- a/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs +++ b/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs @@ -1,7 +1,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgRecvPacket as RawMsgRecvPacket; use ibc_proto::Protobuf; @@ -30,12 +30,8 @@ pub struct MsgRecvPacket { pub signer: Signer, } -impl Msg for MsgRecvPacket { - type Raw = RawMsgRecvPacket; - - fn type_url(&self) -> String { - RECV_PACKET_TYPE_URL.to_string() - } +impl ToProto for MsgRecvPacket { + type Proto = RawMsgRecvPacket; } impl Protobuf for MsgRecvPacket {} diff --git a/ibc-core/ics04-channel/types/src/msgs/timeout.rs b/ibc-core/ics04-channel/types/src/msgs/timeout.rs index 0404015ab..2604b7a27 100644 --- a/ibc-core/ics04-channel/types/src/msgs/timeout.rs +++ b/ibc-core/ics04-channel/types/src/msgs/timeout.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::Sequence; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgTimeout as RawMsgTimeout; use ibc_proto::Protobuf; @@ -29,12 +29,8 @@ pub struct MsgTimeout { pub signer: Signer, } -impl Msg for MsgTimeout { - type Raw = RawMsgTimeout; - - fn type_url(&self) -> String { - TIMEOUT_TYPE_URL.to_string() - } +impl ToProto for MsgTimeout { + type Proto = RawMsgTimeout; } impl Protobuf for MsgTimeout {} diff --git a/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs b/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs index 4b85a87a9..8a8c40567 100644 --- a/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs +++ b/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::Sequence; use ibc_primitives::prelude::*; -use ibc_primitives::{Msg, Signer}; +use ibc_primitives::{Signer, ToProto}; use ibc_proto::ibc::core::channel::v1::MsgTimeoutOnClose as RawMsgTimeoutOnClose; use ibc_proto::Protobuf; @@ -29,12 +29,8 @@ pub struct MsgTimeoutOnClose { pub signer: Signer, } -impl Msg for MsgTimeoutOnClose { - type Raw = RawMsgTimeoutOnClose; - - fn type_url(&self) -> String { - TIMEOUT_ON_CLOSE_TYPE_URL.to_string() - } +impl ToProto for MsgTimeoutOnClose { + type Proto = RawMsgTimeoutOnClose; } impl Protobuf for MsgTimeoutOnClose {} From b11ebe8ec53ba4e5469902c73c0ed3c54b8c1d78 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 15:09:42 -0600 Subject: [PATCH 6/9] Define blanket implementation of ToProto --- ibc-primitives/src/traits/msg.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ibc-primitives/src/traits/msg.rs b/ibc-primitives/src/traits/msg.rs index 9234ca8db..14fb51981 100644 --- a/ibc-primitives/src/traits/msg.rs +++ b/ibc-primitives/src/traits/msg.rs @@ -6,19 +6,27 @@ use core::fmt::Display; /// Types that implement this trait are able to be converted to /// a raw Protobuf `Any` type. -pub trait ToProto: Protobuf +pub trait ToProto

: Protobuf

where - Self::Proto: From + prost::Message + prost::Name + Default, - >::Error: Display, + P: From + prost::Message + prost::Name + Default, + >::Error: Display, { - type Proto; + fn type_url() -> String { + P::type_url() + } fn to_any(self) -> Any { - use prost::Name; - Any { - type_url: Self::Proto::type_url(), + type_url: P::type_url(), value: self.encode_vec(), } } } + +impl ToProto

for T +where + T: Protobuf

, + P: From + prost::Message + prost::Name + Default, + >::Error: Display, +{ +} From b4c54217d5189d491f5a688af5796777c6711a3e Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 15:11:36 -0600 Subject: [PATCH 7/9] Rename msg.rs to proto.rs --- ibc-primitives/src/traits/mod.rs | 4 ++-- ibc-primitives/src/traits/{msg.rs => proto.rs} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename ibc-primitives/src/traits/{msg.rs => proto.rs} (100%) diff --git a/ibc-primitives/src/traits/mod.rs b/ibc-primitives/src/traits/mod.rs index 9eccbc1ec..d473c3a78 100644 --- a/ibc-primitives/src/traits/mod.rs +++ b/ibc-primitives/src/traits/mod.rs @@ -1,3 +1,3 @@ -mod msg; +mod proto; -pub use msg::*; +pub use proto::*; diff --git a/ibc-primitives/src/traits/msg.rs b/ibc-primitives/src/traits/proto.rs similarity index 100% rename from ibc-primitives/src/traits/msg.rs rename to ibc-primitives/src/traits/proto.rs From b3a85ac0d166943761623aff57d73b3d02bd3c58 Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 29 Nov 2023 15:17:23 -0600 Subject: [PATCH 8/9] Remove `impl ToProto` blocks --- ibc-apps/ics20-transfer/types/src/msgs/transfer.rs | 6 +----- ibc-core/ics02-client/types/src/msgs/create_client.rs | 6 +----- ibc-core/ics02-client/types/src/msgs/misbehaviour.rs | 6 +----- ibc-core/ics02-client/types/src/msgs/update_client.rs | 6 +----- ibc-core/ics02-client/types/src/msgs/upgrade_client.rs | 6 +----- ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs | 6 +----- .../ics03-connection/types/src/msgs/conn_open_confirm.rs | 6 +----- ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs | 6 +----- ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/recv_packet.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/timeout.rs | 6 +----- ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs | 6 +----- 19 files changed, 19 insertions(+), 95 deletions(-) diff --git a/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs b/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs index c9bf63438..f100bfb52 100644 --- a/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs +++ b/ibc-apps/ics20-transfer/types/src/msgs/transfer.rs @@ -5,7 +5,7 @@ use ibc_core::channel::types::timeout::TimeoutHeight; use ibc_core::handler::types::error::ContextError; use ibc_core::host::types::identifiers::{ChannelId, PortId}; use ibc_core::primitives::prelude::*; -use ibc_core::primitives::{Timestamp, ToProto}; +use ibc_core::primitives::Timestamp; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::applications::transfer::v1::MsgTransfer as RawMsgTransfer; use ibc_proto::Protobuf; @@ -47,10 +47,6 @@ pub struct MsgTransfer { pub timeout_timestamp_on_b: Timestamp, } -impl ToProto for MsgTransfer { - type Proto = RawMsgTransfer; -} - impl TryFrom for MsgTransfer { type Error = TokenTransferError; diff --git a/ibc-core/ics02-client/types/src/msgs/create_client.rs b/ibc-core/ics02-client/types/src/msgs/create_client.rs index 500303335..fe6944b3d 100644 --- a/ibc-core/ics02-client/types/src/msgs/create_client.rs +++ b/ibc-core/ics02-client/types/src/msgs/create_client.rs @@ -1,7 +1,7 @@ //! Definition of domain type message `MsgCreateClient`. use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::client::v1::MsgCreateClient as RawMsgCreateClient; use ibc_proto::Protobuf; @@ -33,10 +33,6 @@ impl MsgCreateClient { } } -impl ToProto for MsgCreateClient { - type Proto = RawMsgCreateClient; -} - impl Protobuf for MsgCreateClient {} impl TryFrom for MsgCreateClient { diff --git a/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs b/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs index 331fa35e2..b47be6166 100644 --- a/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs +++ b/ibc-core/ics02-client/types/src/msgs/misbehaviour.rs @@ -2,7 +2,7 @@ use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::google::protobuf::Any as ProtoAny; use ibc_proto::ibc::core::client::v1::MsgSubmitMisbehaviour as RawMsgSubmitMisbehaviour; use ibc_proto::Protobuf; @@ -27,10 +27,6 @@ pub struct MsgSubmitMisbehaviour { pub signer: Signer, } -impl ToProto for MsgSubmitMisbehaviour { - type Proto = RawMsgSubmitMisbehaviour; -} - impl Protobuf for MsgSubmitMisbehaviour {} impl TryFrom for MsgSubmitMisbehaviour { diff --git a/ibc-core/ics02-client/types/src/msgs/update_client.rs b/ibc-core/ics02-client/types/src/msgs/update_client.rs index 111bb9217..ace553b40 100644 --- a/ibc-core/ics02-client/types/src/msgs/update_client.rs +++ b/ibc-core/ics02-client/types/src/msgs/update_client.rs @@ -2,7 +2,7 @@ use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::client::v1::MsgUpdateClient as RawMsgUpdateClient; use ibc_proto::Protobuf; @@ -27,10 +27,6 @@ pub struct MsgUpdateClient { pub signer: Signer, } -impl ToProto for MsgUpdateClient { - type Proto = RawMsgUpdateClient; -} - impl Protobuf for MsgUpdateClient {} impl TryFrom for MsgUpdateClient { diff --git a/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs b/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs index 836f5b48a..c3d9a956b 100644 --- a/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs +++ b/ibc-core/ics02-client/types/src/msgs/upgrade_client.rs @@ -6,7 +6,7 @@ use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_commitment_types::error::CommitmentError; use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::client::v1::MsgUpgradeClient as RawMsgUpgradeClient; use ibc_proto::Protobuf; @@ -38,10 +38,6 @@ pub struct MsgUpgradeClient { pub signer: Signer, } -impl ToProto for MsgUpgradeClient { - type Proto = RawMsgUpgradeClient; -} - impl Protobuf for MsgUpgradeClient {} impl From for RawMsgUpgradeClient { diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs index 55f6472a4..417e99d4d 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_ack.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::ConnectionId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenAck as RawMsgConnectionOpenAck; use ibc_proto::Protobuf; @@ -44,10 +44,6 @@ pub struct MsgConnectionOpenAck { pub proof_consensus_state_of_a: Option, } -impl ToProto for MsgConnectionOpenAck { - type Proto = RawMsgConnectionOpenAck; -} - impl Protobuf for MsgConnectionOpenAck {} impl TryFrom for MsgConnectionOpenAck { diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs index 2f8b2113f..ec4bcce7c 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_confirm.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::ConnectionId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenConfirm as RawMsgConnectionOpenConfirm; use ibc_proto::Protobuf; @@ -28,10 +28,6 @@ pub struct MsgConnectionOpenConfirm { pub signer: Signer, } -impl ToProto for MsgConnectionOpenConfirm { - type Proto = RawMsgConnectionOpenConfirm; -} - impl Protobuf for MsgConnectionOpenConfirm {} impl TryFrom for MsgConnectionOpenConfirm { diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs index afc0d7dfc..f077945be 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_init.rs @@ -2,7 +2,7 @@ use core::time::Duration; use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenInit as RawMsgConnectionOpenInit; use ibc_proto::Protobuf; @@ -25,10 +25,6 @@ pub struct MsgConnectionOpenInit { pub signer: Signer, } -impl ToProto for MsgConnectionOpenInit { - type Proto = RawMsgConnectionOpenInit; -} - /// This module encapsulates the workarounds we need to do to implement /// `BorshSerialize` and `BorshDeserialize` on `MsgConnectionOpenInit` #[cfg(feature = "borsh")] diff --git a/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs b/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs index abb276389..205926738 100644 --- a/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs +++ b/ibc-core/ics03-connection/types/src/msgs/conn_open_try.rs @@ -5,7 +5,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::ClientId; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::google::protobuf::Any; use ibc_proto::ibc::core::connection::v1::MsgConnectionOpenTry as RawMsgConnectionOpenTry; use ibc_proto::Protobuf; @@ -50,10 +50,6 @@ pub struct MsgConnectionOpenTry { pub previous_connection_id: String, } -impl ToProto for MsgConnectionOpenTry { - type Proto = RawMsgConnectionOpenTry; -} - #[allow(deprecated)] #[cfg(feature = "borsh")] mod borsh_impls { diff --git a/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs b/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs index 8a6621e16..e37fa6300 100644 --- a/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs +++ b/ibc-core/ics04-channel/types/src/msgs/acknowledgement.rs @@ -1,7 +1,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgAcknowledgement as RawMsgAcknowledgement; use ibc_proto::Protobuf; @@ -30,10 +30,6 @@ pub struct MsgAcknowledgement { pub signer: Signer, } -impl ToProto for MsgAcknowledgement { - type Proto = RawMsgAcknowledgement; -} - impl Protobuf for MsgAcknowledgement {} impl TryFrom for MsgAcknowledgement { diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs b/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs index 48d7aec34..c60d3bf5e 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_close_confirm.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgChannelCloseConfirm as RawMsgChannelCloseConfirm; use ibc_proto::Protobuf; @@ -29,10 +29,6 @@ pub struct MsgChannelCloseConfirm { pub signer: Signer, } -impl ToProto for MsgChannelCloseConfirm { - type Proto = RawMsgChannelCloseConfirm; -} - impl Protobuf for MsgChannelCloseConfirm {} impl TryFrom for MsgChannelCloseConfirm { diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs b/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs index 630de9f94..2663b4186 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_close_init.rs @@ -1,6 +1,6 @@ use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgChannelCloseInit as RawMsgChannelCloseInit; use ibc_proto::Protobuf; @@ -24,10 +24,6 @@ pub struct MsgChannelCloseInit { pub signer: Signer, } -impl ToProto for MsgChannelCloseInit { - type Proto = RawMsgChannelCloseInit; -} - impl Protobuf for MsgChannelCloseInit {} impl TryFrom for MsgChannelCloseInit { diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs index 1f3f4de80..432ca92fe 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_ack.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenAck as RawMsgChannelOpenAck; use ibc_proto::Protobuf; @@ -30,10 +30,6 @@ pub struct MsgChannelOpenAck { pub signer: Signer, } -impl ToProto for MsgChannelOpenAck { - type Proto = RawMsgChannelOpenAck; -} - impl Protobuf for MsgChannelOpenAck {} impl TryFrom for MsgChannelOpenAck { diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs index 20bb323f0..6070eb1a2 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_confirm.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenConfirm as RawMsgChannelOpenConfirm; use ibc_proto::Protobuf; @@ -29,10 +29,6 @@ pub struct MsgChannelOpenConfirm { pub signer: Signer, } -impl ToProto for MsgChannelOpenConfirm { - type Proto = RawMsgChannelOpenConfirm; -} - impl Protobuf for MsgChannelOpenConfirm {} impl TryFrom for MsgChannelOpenConfirm { diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs index 9085fdd89..7ab3f1598 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_init.rs @@ -1,6 +1,6 @@ use ibc_core_host_types::identifiers::{ConnectionId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenInit as RawMsgChannelOpenInit; use ibc_proto::Protobuf; @@ -39,10 +39,6 @@ impl MsgChannelOpenInit { } } -impl ToProto for MsgChannelOpenInit { - type Proto = RawMsgChannelOpenInit; -} - impl Protobuf for MsgChannelOpenInit {} impl TryFrom for MsgChannelOpenInit { diff --git a/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs b/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs index 441f780d9..4b1d54384 100644 --- a/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs +++ b/ibc-core/ics04-channel/types/src/msgs/chan_open_try.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::{ChannelId, ConnectionId, PortId}; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgChannelOpenTry as RawMsgChannelOpenTry; use ibc_proto::Protobuf; @@ -47,10 +47,6 @@ impl MsgChannelOpenTry { } } -impl ToProto for MsgChannelOpenTry { - type Proto = RawMsgChannelOpenTry; -} - impl Protobuf for MsgChannelOpenTry {} impl TryFrom for MsgChannelOpenTry { diff --git a/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs b/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs index e20e0f783..5295e1807 100644 --- a/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs +++ b/ibc-core/ics04-channel/types/src/msgs/recv_packet.rs @@ -1,7 +1,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgRecvPacket as RawMsgRecvPacket; use ibc_proto::Protobuf; @@ -30,10 +30,6 @@ pub struct MsgRecvPacket { pub signer: Signer, } -impl ToProto for MsgRecvPacket { - type Proto = RawMsgRecvPacket; -} - impl Protobuf for MsgRecvPacket {} impl TryFrom for MsgRecvPacket { diff --git a/ibc-core/ics04-channel/types/src/msgs/timeout.rs b/ibc-core/ics04-channel/types/src/msgs/timeout.rs index 2604b7a27..362630ff0 100644 --- a/ibc-core/ics04-channel/types/src/msgs/timeout.rs +++ b/ibc-core/ics04-channel/types/src/msgs/timeout.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::Sequence; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgTimeout as RawMsgTimeout; use ibc_proto::Protobuf; @@ -29,10 +29,6 @@ pub struct MsgTimeout { pub signer: Signer, } -impl ToProto for MsgTimeout { - type Proto = RawMsgTimeout; -} - impl Protobuf for MsgTimeout {} impl TryFrom for MsgTimeout { diff --git a/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs b/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs index 8a8c40567..95cdb826d 100644 --- a/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs +++ b/ibc-core/ics04-channel/types/src/msgs/timeout_on_close.rs @@ -2,7 +2,7 @@ use ibc_core_client_types::Height; use ibc_core_commitment_types::commitment::CommitmentProofBytes; use ibc_core_host_types::identifiers::Sequence; use ibc_primitives::prelude::*; -use ibc_primitives::{Signer, ToProto}; +use ibc_primitives::Signer; use ibc_proto::ibc::core::channel::v1::MsgTimeoutOnClose as RawMsgTimeoutOnClose; use ibc_proto::Protobuf; @@ -29,10 +29,6 @@ pub struct MsgTimeoutOnClose { pub signer: Signer, } -impl ToProto for MsgTimeoutOnClose { - type Proto = RawMsgTimeoutOnClose; -} - impl Protobuf for MsgTimeoutOnClose {} impl TryFrom for MsgTimeoutOnClose { From 82c4ce494c0ff43f9fd2dd68560f2828db52352d Mon Sep 17 00:00:00 2001 From: Farhad Shabani Date: Thu, 30 Nov 2023 13:38:44 -0800 Subject: [PATCH 9/9] chore: add unclog --- .../unreleased/improvements/993-streamline-msg-trait.md | 2 ++ ibc-primitives/src/traits/proto.rs | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 .changelog/unreleased/improvements/993-streamline-msg-trait.md diff --git a/.changelog/unreleased/improvements/993-streamline-msg-trait.md b/.changelog/unreleased/improvements/993-streamline-msg-trait.md new file mode 100644 index 000000000..439644449 --- /dev/null +++ b/.changelog/unreleased/improvements/993-streamline-msg-trait.md @@ -0,0 +1,2 @@ +- `[ibc-primitives]` streamline `Msg` trait and rename to `ToProto` + ([#993](https://github.com/cosmos/ibc-rs/issues/993)) diff --git a/ibc-primitives/src/traits/proto.rs b/ibc-primitives/src/traits/proto.rs index 14fb51981..b08589014 100644 --- a/ibc-primitives/src/traits/proto.rs +++ b/ibc-primitives/src/traits/proto.rs @@ -1,8 +1,9 @@ -use ibc_proto::{google::protobuf::Any, Protobuf}; +use core::fmt::Display; -use crate::prelude::*; +use ibc_proto::google::protobuf::Any; +use ibc_proto::Protobuf; -use core::fmt::Display; +use crate::prelude::*; /// Types that implement this trait are able to be converted to /// a raw Protobuf `Any` type.