Skip to content

ibc-types: bump prost, tendermint, ibc-proto, ics23#94

Merged
erwanor merged 2 commits intopenumbra-zone:mainfrom
astriaorg:prost-to-0.13.3
Dec 7, 2024
Merged

ibc-types: bump prost, tendermint, ibc-proto, ics23#94
erwanor merged 2 commits intopenumbra-zone:mainfrom
astriaorg:prost-to-0.13.3

Conversation

@SuperFluffy
Copy link
Copy Markdown
Collaborator

Updates the following dependencies:

  • ibc-proto: 0.42.2 -> 0.51.1
  • ics23: 0.11.3 -> 0.12.0
  • prost: 0.12.0 -> 0.13.3
  • tendermint: 0.34.0 -> 0.40.0
  • tendermint-light-client-verifier: 0.34.0 -> 0.40.0
  • tendermint-proto: 0.34.0 -> 0.40.0
  • tendermint-rpc: 0.34.0 -> 0.40.0
  • tendermint-testgen: 0.34.0 -> 0.40.0

The bump to the latest tendermint version required bumping prost, which in turns required updates of ibc-proto and ics23 (where I opted for their latest releases, respectively).

The two larger changes are:

  1. From tendermint@v0.40.0 onward conversions between core::time::Duration and protobuf.google.Duration are now fallible. I introduced a newtype wrapper CometBftDuration to restore the previous behavior saturating at i64::MAX (for seconds) and i32::MAX (for nanos), respectively.
  2. From tendermint@v0.36.0 onward tendermint::abci::EventAttribute became an enum with variants V037 and V034, and introduced the fallible accessors EventAttribute::key_str and EventAttribute::value_str, in addition to the infallible EventAttribute::key_bytes and EventAttribute::value_bytes. This required changes in many TryFrom<Event> impls that would previously match on &str keys and directly move (or parse) String values. I chose to avoid extra error handling, instead matching on byte-string using value_bytes() (e.g. now b"packet_src_channel" => {} instead of the previous "packet_src_channel" => {}), and relying on String::from_utf8_lossy for the values.

@erwanor erwanor self-requested a review December 6, 2024 17:59
@erwanor erwanor added the domain-type-change A change to the domain types modeling the IBC protocol label Dec 7, 2024
trusting_period: Some(value.trusting_period.into()),
unbonding_period: Some(value.unbonding_period.into()),
max_clock_drift: Some(value.max_clock_drift.into()),
trusting_period: Some(CometBftDuration(value.trusting_period).into()),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. This makes sense to me. This is a domain type change, but doesn't affect the wire protocol.

@erwanor erwanor merged commit 0abbaeb into penumbra-zone:main Dec 7, 2024
@erwanor erwanor changed the title bump prost, tendermint, ibc-proto, ics23 ibc-types: bump prost, tendermint, ibc-proto, ics23 Dec 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain-type-change A change to the domain types modeling the IBC protocol

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants