diff --git a/.changelog/unreleased/breaking-changes/764-use-vec-for-header-attribute.md b/.changelog/unreleased/breaking-changes/764-use-vec-for-header-attribute.md new file mode 100644 index 000000000..dcedb279d --- /dev/null +++ b/.changelog/unreleased/breaking-changes/764-use-vec-for-header-attribute.md @@ -0,0 +1,2 @@ +- Use Vec for HeaderAttribute instead of Any + ([#764](https://github.com/cosmos/ibc-rs/issues/764)) diff --git a/crates/ibc/src/core/ics02_client/events.rs b/crates/ibc/src/core/ics02_client/events.rs index c216521b1..8d9f87b65 100644 --- a/crates/ibc/src/core/ics02_client/events.rs +++ b/crates/ibc/src/core/ics02_client/events.rs @@ -2,7 +2,6 @@ use crate::prelude::*; use derive_more::From; -use ibc_proto::google::protobuf::Any; use subtle_encoding::hex; use tendermint::abci; @@ -147,14 +146,14 @@ impl From for abci::EventAttribute { #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug, From, PartialEq, Eq)] struct HeaderAttribute { - header: Any, + header: Vec, } impl From for abci::EventAttribute { fn from(attr: HeaderAttribute) -> Self { ( HEADER_ATTRIBUTE_KEY, - String::from_utf8(hex::encode(attr.header.value)) + String::from_utf8(hex::encode(attr.header)) .expect("Never fails because hexadecimal is valid UTF-8"), ) .into() @@ -252,7 +251,7 @@ impl UpdateClient { client_type: ClientType, consensus_height: Height, consensus_heights: Vec, - header: Any, + header: Vec, ) -> Self { Self { client_id: ClientIdAttribute::from(client_id), @@ -279,7 +278,7 @@ impl UpdateClient { self.consensus_heights.consensus_heights.as_ref() } - pub fn header(&self) -> &Any { + pub fn header(&self) -> &Vec { &self.header.header } @@ -471,7 +470,7 @@ mod tests { client_type.clone(), consensus_height, consensus_heights, - header, + header.value, ) .into(), expected_keys: expected_keys.clone(), diff --git a/crates/ibc/src/core/ics02_client/handler/update_client.rs b/crates/ibc/src/core/ics02_client/handler/update_client.rs index 4b88d77cc..3499dac35 100644 --- a/crates/ibc/src/core/ics02_client/handler/update_client.rs +++ b/crates/ibc/src/core/ics02_client/handler/update_client.rs @@ -114,7 +114,7 @@ where client_state.client_type(), *consensus_height, consensus_heights, - header, + header.value, )) }; ctx.emit_ibc_event(IbcEvent::Message(MessageEvent::Client)); @@ -488,7 +488,7 @@ mod tests { assert_eq!(update_client_event.client_type(), &mock_client_type()); assert_eq!(update_client_event.consensus_height(), &height); assert_eq!(update_client_event.consensus_heights(), &vec![height]); - assert_eq!(update_client_event.header(), &header); + assert_eq!(update_client_event.header(), &header.value); } fn ensure_misbehaviour(ctx: &MockContext, client_id: &ClientId, client_type: &ClientType) {