# CHANGELOG
## v0.44.0
*April 25th, 2024*
This release updates `tendermint-proto` to v0.36.0.
### BREAKING CHANGES
- Update `tendermint-proto` to v0.36.0 ([\#208](https://github.com/cosmos/ibc-proto-rs/issues/208))
## v0.43.0
*April 22nd, 2024*
This release updates `tendermint-proto` to v0.35.0 and `tonic` to v0.11.0.
### BREAKING CHANGES
- Update `tendermint-proto` to v0.35.0 ([\#200](https://github.com/cosmos/ibc-proto-rs/pull/200))
- Update `tonic` to v0.11 ([\#207](https://github.com/cosmos/ibc-proto-rs/pull/207))
## v0.42.2
*March 14th, 2024*
This release only updates the Protobuf messages to ibc-go v8.1.1, which brings back the `ibc.lightclients.wasm.v1` protos.
### FEATURES
- Update to ibc-go v8.1.1 which brings back the `ibc.lightclients.wasm.v1`
protos ([\#201](https://github.com/cosmos/ibc-proto-rs/pull/201))
## v0.42.0
*February 8th, 2024*
This release updates the proto types for IBC-Go from `v8.0.0` to `v8.1.0`.
This includes proto types used for channel upgrade.
Please note that IBC-Go v8.1.0 doesn't provide the Wasm light client proto types anymore (`ibc.lightclients.wasm.v1`). These types will live in
ibc-proto-rs versions `v0.41.x`
### BREAKING CHANGES
- Removed WASM light client proto types
([\#192](https://github.com/cosmos/ibc-proto-rs/pull/192))
- Use the v0.34 definition of `abci.Event` which does not enforce
valid UTF-8 data for its `key` and `value` attributes, specifying
them as `bytes` instead of `string`. ([#180](https://github.com/cosmos/ibc-proto-rs/issues/180))
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` and `string` 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
### FEATURES
- Bump IBC-Go to v8.1.0 ([\#192](https://github.com/cosmos/ibc-proto-rs/pull/192))
### IMPROVEMENTS
- Extend `ibc::mock::ClientState` with `trusting_period` and `frozen` data
fields to cover a wider range of client state testing scenarios
([\#186](https://github.com/cosmos/ibc-proto-rs/issues/186)).
## v0.41.0
*January 9th, 2024*
This release integrates the ICS-08 WASM light client and ICS-721 NFT transfer
application proto types. It additionally resolves the removal of the `#[no_std]`
attribute, introduces the `informalsystems-pbjson/std` dependency for std
feature compatibility.
### BUG FIXES
- Fix `#[no_std]` attribute removal and add `informalsystems-pbjson/std` dependency
for `std` feature ([\#171](https://github.com/cosmos/ibc-proto-rs/issues/171)).
### FEATURES
- Add ICS-721 NFT transfer application proto types
([\#167](https://github.com/cosmos/ibc-proto-rs/issues/167)).
- Integrate WASM light client proto types by updating `IBC_GO_COMMIT` to the
hash associated with the ibc-go `wasm-v8.0.0` tag
([\#168](https://github.com/cosmos/ibc-proto-rs/issues/168)).
## v0.40.0
*December 29th, 2023*
### BREAKING CHANGES
- Added ProtoJSON support.
The `serde` feature flag now abides by [Protobuf JSON rules](https://protobuf.dev/programming-guides/proto3/#json)
when it comes to JSON serialization/deserialization.
([#166](https://github.com/cosmos/ibc-proto-rs/pull/166))
## v0.39.1
*November 22nd, 2023*
### FEATURES
- Derive the `prost::Name` trait for all Protobuf messages
([\#163](https://github.com/cosmos/ibc-proto-rs/pull/163))
## v0.39.0
*November 15th, 2023*
This release updates the ibc-go version used for the ibc protos to version v8.0.0
which contains the new messages `MsgRecoverClient` and `MsgIBCSoftwareUpgrade`.
### FEATURES
- Bump ibc-go to v8.0.0
([\#161](https://github.com/cosmos/ibc-proto-rs/pull/161))
## v0.38.0
*October 19th, 2023*
This release contains a breaking change, where the `Protobuf` trait is not
object-safe any longer, but rather re-exported from the `tendermint-proto` crate.
It also updates the Interchain Security protos to include misbehaviour-related messages.
### BREAKING CHANGES
- Switch from using object safe `Protobuf` definitions and re-export
`Protobuf` from `tendermint-proto` crate` instead.
([#116](https://github.com/cosmos/ibc-proto-rs/issues/116))
### FEATURES
- Update CCV provider protos to include misbehaviour-related messages
([\#113](https://github.com/cosmos/ibc-proto-rs/issues/113))
## v0.37.1
*October 10th, 2023*
This releases adds `JsonSchema` derivation for the `Any` type.
### FEATURES
- Implement `JsonSchema` for the `Any` type
([#156](https://github.com/cosmos/ibc-proto-rs/issues/156))
## v0.37.0
*October 4th, 2023*
This release updates `prost` to v0.12 and `tonic` to v0.10,
and makes `serde` an optional dependency, now only enabled with the `serde` feature.
### FEATURES
- Update `prost` to v0.12 and `tonic` to v0.10
([\#145](https://github.com/cosmos/ibc-proto-rs/issues/145))
### IMPROVEMENTS
- Make `serde` an optional dependency, now only enabled with the `serde` feature
([\#152](https://github.com/cosmos/ibc-proto-rs/pull/152))
## v0.36.1
*September 28th, 2023*
This release adds Protobuf definitions from the `cosmos.crypto.*` package.
### FEATURES
- Add Protobuf definitions from `cosmos.crypto.*` ([\#149](https://github.com/cosmos/ibc-proto-rs/pull/149))
## v0.36.0
*September 28th, 2023*
Warning: This release downgrades the Protobuf definitions for IBC-Go, Cosmos SDK, and Interchain Security.
### BREAKING CHANGES
- Since ibc-proto v0.34.0, the script in charge of generating the Rust proto definitions
has been mistakenly checking out their latest version instead of the one
specified in the corresponding `src/*_COMMIT` file. This has now been fixed
and the protos have therefore been downgraded to their proper versions:
* IBC-Go: v7.3.0,
* Cosmos SDK: v0.47.5
* Interchain Security: v3.1.0
([\#147](https://github.com/cosmos/ibc-proto-rs/pull/147))
## v0.35.0
*September 14th, 2023*
This release updates the IBC-Go protos to v7.3.0, the Cosmos SDK protos to v0.47.5,
and the Interchain Security protos to v3.1.0.
It also adds back the `ibc.lightclients.localhost.v1` proto definition that was
removed in IBC-Go v7.0.0, for users which may need to interact with v1 localhost clients.
### FEATURES
- Bump ibc-go to v7.3.0, Cosmos SDK to 0.47.5 and Interchain Security to v3.1.0
([\#140](https://github.com/cosmos/ibc-proto-rs/pull/140))
- Add proto definition for `ibc.lightclients.localhost.v1`
([\#143](https://github.com/cosmos/ibc-proto-rs/pull/143))
## v0.34.1
*August 29th, 2023*
This release updates the `borsh` dependency to v0.10.
## v0.34.0
*August 17th, 2023*
This release updates the Cosmos SDK protos to v0.47.3 and IBC-Go protos to v7.2.0.
Additionally, it restore `no_std` support for JSON serialization via `serde`.
Previously, `Serialize` and `Deserialize` instances were only derived when
the `std` feature was enabled, but that is no longer required.
As such, they now require the `serde` feature to be enabled, independently of
whether or not the `std` feature is enabled.
### BUG FIXES
- Restore `no_std` support for JSON serialization
([\#98](https://github.com/cosmos/ibc-proto-rs/issues/98))
### FEATURES
- Update Cosmos SDK protos to v0.47.3 and IBC-Go protos to v7.2.0
([\#129](https://github.com/cosmos/ibc-proto-rs/issues/129))
## v0.33.0
*Aug 16th, 2023*
This release bumps `tendermint-rs` to `0.33.0`.
## v0.32.1
*July 31st, 2023*
This release includes default `serde` value for token transfer memos and fixes
the issue with deserialization of `MsgTransfer` and `FungibleTokenPacketData`
types when no memo is present.
### BUG FIXES
- Fix token transfer deserialization for cases with no memo by deriving
`Default` serde for the memo field in `MsgTransfer` and
`FungibleTokenPacketData` types.
([#119](https://github.com/cosmos/ibc-proto-rs/pull/119))
## v0.32.0
*June 14th, 2023*
This release updates the `ibc-go` proto files from version `v5.1.0` to `v6.2.0` which includes the ICA Protobuf definitions.
The version of `borsh` has been downgraded from `v0.10.0` to `v0.9` in order to match `near-sdk-rs` and Solana smart contract frame `anchor`.
### BUG FIXES
- Downgrade `borsh` version from `v0.10.0` to `v0.9`
([#106](https://github.com/cosmos/ibc-proto-rs/pull/104))
### IMPROVEMENTS
- Update `ibc-go` commit from `v5.1.0` to `v6.2.0`
([#106](https://github.com/cosmos/ibc-proto-rs/issues/106))
## v0.31.0
*May 31st, 2023*
This is the final release of `ibc-proto` v0.31.0.
There are no changes from v0.31.0-alpha.2.
For the differences since v0.30.0, please see the changelog entries for v0.31.0-alpha.1 and v0.31.0-alpha.1.
> **Warning**
> This release removes support for `Serialize` and `Deserailize` trait impls being available in `no_std` context.
> See the release notes below and associated issues for more details.
## v0.31.0-alpha.2
*May 3rd, 2023*
This is the second alpha release of `ibc-proto` v0.31.0.
It only updates the `tendermint-proto` version to v0.32.0.
### BREAKING CHANGES
- Update `tendermint-proto` to v0.32.0
([\#99](https://github.com/cosmos/ibc-proto-rs/issues/99))
## v0.31.0-alpha.1
*May 1st, 2023*
This is the first alpha release of `ibc-proto` v0.31.0.
The proto definitions for `cosmos.ics23.v1` messages are now re-exported from the [`ics23`](https://crates.io/crates/ics23) crate under both the `ibc_proto::cosmos::ics23::v1` >
The latter will removed in a subsequent release.
This is nonetheless a breaking change as it may break compilation or trigger warnings in code which relied on these definitions being different than the ones in `ics23`.
Moreover, because the code generated by `pbjson-build` is not `no_std` compatible, the serde annotations on the generated protos are only enabled when the `std` feature of `ibc-proto` is enabled.
### BREAKING CHANGES
- Re-export the `ics23.cosmos.v1` Protobuf definitions from the `ics23` crate instead of including them directly in this crate.
The proto definitions are exported both under the `ibc_proto::cosmos::ics23::v1` module and under the `ibc_proto::ics23` module
in an attempt to preserve backward source compatiblity.
This is a breaking change as it may break compilation or trigger warnings
in code which relied on these definitions being different than the ones in `ics23`.
([\#10](https://github.com/cosmos/ibc-proto-rs/issues/10))
- Derive `Serialize` and `Deserialize` impls compatible with ProtoJSON using `pbjson-build`.
This is a breaking change because the code generated by `pbjson-build` is not
`no_std` compatible. Therefore, the `serde` annotations on the generated protos
are only enabled when the `std` feature of `ibc-proto` is enabled.
([\#95](https://github.com/cosmos/ibc-proto-rs/issues/95))
## v0.30.0
*April 20th, 2023*
This release updates `tendermint-proto` to v0.31.
### BREAKING CHANGES
- Update `tendermint-proto` to v0.31.x
([\#90](https://github.com/cosmos/ibc-proto-rs/pull/90))
## v0.29.0
*April 12th, 2023*
In this update, Protobuf definitions have been included for Interchain Security v1 CCV within
the `ibc_proto::interchain_security::ccv` module.
It should also be noted that the return type of `Protobuf::encode{,_length_delimited}_vec`
has been modified from `Result<Vec<u8>, Error>` to `Vec<u8>`.
Furthermore, the version of `tonic` has been raised from 0.8 to 0.9.
### BREAKING CHANGES
- Remove errors for `encode_vec` and `encode_length_delimited_vec` in
`Protobuf` ([#73](https://github.com/cosmos/ibc-proto-rs/issues/73))
- Update `tonic` to 0.9 and re-generate the protos
([\#79](https://github.com/cosmos/ibc-proto-rs/issues/79))
### FEATURES
- Add Interchain Security v1 CCV Protobuf definitions
([\#76](https://github.com/cosmos/ibc-proto-rs/issues/76))
### BUG FIXES
- Automatically patch the generated Rust code for it to compile
([\#2](https://github.com/cosmos/ibc-proto-rs/issues/2))
## v0.28.0
*March 10th, 2023*
This release updates the `ibc-go` proto files from version `v5.0.0` to `v5.1.0`.
This includes the `memo` field in the following struct:
* `ibc.applications.transfer.v1 MsgTransfer`
* `ibc.applications.transfer.v2 FungibleTokenPacketData`
As well as the `sequence` field in:
* `ibc.applications.transfer.v1 MsgTransferResponse`
### IMPROVEMENTS
- Update `ibc-go` commit from `v5.0.0` to `v5.1.0`
([#71](https://github.com/cosmos/ibc-proto-rs/issues/71))
## v0.27.0
*March 7th, 2023*
This release updates the `tendermint-proto` crate to v0.30.0.
At the moment, only the Tendermint Protobuf definitions for CometBFT 0.37 are exported
and supported. In the future, side-by-side support for 0.34 and 0.37 definitions may be provided.
### BREAKING CHANGE
- Update `tendermint-proto` to v0.30.0 ([#64](https://github.com/cosmos/ibc-proto-rs/issues/64))
## v0.26.0
*February 17, 2023*
This release updates tendermint protobuf defintions to `v0.29.0`.
## v0.25.0
*February 9th, 2023*
This release updates borsh to v0.10.0 and fixes a typo in borsh deserialization of `Any`
([#59](https://github.com/cosmos/ibc-proto-rs/pull/59)).
## v0.24.1
*January 10th, 2023*
This release adds `parity-scale-codec` and `borsh` serialize/deserialize for the `Any` type.
### FEATURES
- Add parity-scale-codec and borsh for Any ([#47](https://github.com/cosmos/ibc-
proto-rs/issues/47))
## v0.24.0
*December 13th, 2022*
This release updates the Tendermint Protobuf definitons to v0.28.0.
### BREAKING CHANGES
- Update to tendermint-proto 0.28 ([#45](https://github.com/cosmos/ibc-proto-rs/issues/45))
## v0.23.0
*November 29th, 2022*
This release updates the Tendermint Protobuf definitons to v0.27.0.
### BREAKING CHANGES
- Update to tendermint-proto 0.27 ([#40](https://github.com/cosmos/ibc-proto-rs/pull/40))
## v0.22.0
*November 9, 2022*
This release updates the Cosmos SDK protobufs to v0.46.4.
### BREAKING CHANGES
- Update tendermint-rs libraries to v0.26
([#33](https://github.com/cosmos/ibc-proto-rs/issues/33))
- Update protobufs for Cosmos SDK to v0.46.4
- Adds the `module_account_by_name` method to the `Query` trait
([#2776](https://github.com/informalsystems/hermes/2776))
## v0.21.0
*October 19, 2022*
This is the first release of ibc-proto with its own changelog. For past releases, please check the [Hermes](https://github.com/informalsystems/hermes/blob/c34b354e310da7f59631ae315ea22c5f2b420d44/CHANGELOG.md) changelog.
### BREAKING CHANGES
- Update protos to IBC-Go v5.0.0 and Cosmos SDK v0.46.1
([#24](https://github.com/cosmos/ibc-proto-rs/issues/24))
- Update tendermint-proto requirement from =0.23.9 to =0.25.0
([#26](https://github.com/cosmos/ibc-proto-rs/issues/26))