Closed romac closed 5 months ago
Here is the diff between tendermint_proto::v0_38::abci::EventAttribute
and tendermint_proto::v0_34::abci::EventAttribute
:
--- /tmp/038.rs 2024-01-22 10:37:42
+++ /tmp/034.rs 2024-01-22 10:38:27
@@ -2,10 +2,10 @@
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventAttribute {
- #[prost(string, tag = "1")]
- pub key: ::prost::alloc::string::String,
- #[prost(string, tag = "2")]
- pub value: ::prost::alloc::string::String,
+ #[prost(bytes = "bytes", tag = "1")]
+ pub key: ::prost::bytes::Bytes,
+ #[prost(bytes = "bytes", tag = "2")]
+ pub value: ::prost::bytes::Bytes,
/// nondeterministic
#[prost(bool, tag = "3")]
pub index: bool,
This PR has been confirmed to fix the issue seen in Hermes.
Closes: #181
Use the v0.34 definition of
abci.Event
which does not enforce valid UTF-8 data for itskey
andvalue
attributes, specifying them asbytes
instead ofstring
. This is required, because ibc-go emits event attributes which are not valid UTF-8, so we need to use this definition to be able to parse them. In Protobuf,bytes
andstring
are wire-compatible, so doing this strictly increases the amount fo data we can parse.See this Hermes PR for background information: https://github.com/informalsystems/hermes/pull/3768