- chore(rust): Update
informalsystems-pbjson
to v0.7.0 (#274)
- chore(rust): update
prost
to v0.12 (#202)
This release re-enables no_std
support for ProtoJSON Serialize
and Deserialize
instances,
by swapping out pbjson
for the no_std
-compatible fork informalsystems-pbjson
.
- feat(rust): enable no_std support for pbjson (#158)
The only change in this release of the ics23
crate is the addition of a serde
feature
which adds ProtoJSON-compatible Serialize
and Deserialize
instances on all Protobuf definitions via
the pbjson-build
crate.
- feat(rust): Add ProtoJSON-compatible
Serialize
andDeserialize
instances on all Protobuf definitions viapbjson
(#146)
This release introduces one single boolean new parameter to the top-level ProofSpec
: prehash_compare_key
.
When set to true
, this flag causes keys to be consistently compared lexicographically according to their hashes
within nonexistence proof verification, using the same hash function as specified by the already-extant prehash_key
field.
This is a backwards-compatible change, as it requires opt-in via setting the prehash_compare_key
flag to true
in the ProofSpec
.
All existing ProofSpec
s will continue to behave identically.
Please note that the version of the TypeScript library has been bump from 0.6.8 to 0.10.0 to align it with the Go and Rust implementations.
- feat: Add
prehash_compare_key
to allow proving nonexistence in sparse trees (#136) - chore: retract previous versions (#131)
- fix: protobuf formatting using clang-format (#129)
- fix: use /go suffix in go package option (#127)
- add buf support to repo (#126)
- chore: Add Cosmos, license and coverage badges to the README (#122)
- ci: Enable code coverage for TypeScript version (#123)
- ci: Add tags to codecov reports (#121) (4 months ago)
- ci: Refactor GitHub workflows and add code coverage job (#120)
This release is a backport into the release/v0.9.x
line of the feature that added the prehash_compare_key
boolean parameter to the top-level ProofSpec
.
When set to true
, this flag causes keys to be consistently compared lexicographically according to their hashes
within nonexistence proof verification, using the same hash function as specified by the already-extant prehash_key
field.
This is a backwards-compatible change, as it requires opt-in via setting the prehash_compare_key
flag to true
in the ProofSpec
.
All existing ProofSpec
s will continue to behave identically.
- feat(go): Add
prehash_compare_key
to allow proving nonexistence in sparse trees (#136)
Release of ics23/go including changes made in the fork of ics23/go housed in the Cosmos SDK.
This release includes the same changes as its Go counterpart.
Rust (ics23
)
- Fix no_std compatibility and add check for this on CI (#104)
Rust (ics23
)
The following functions have been made generic over a new trait HostFunctionProvider
:
-
calculate_existence_root
-
verify_batch_membership
-
verify_batch_non_membership
-
verify_membership
-
verify_non_membership
For wasm32-unknown-unknown
environments this trait allows you to delegate hashing functions to a native implementation through host functions.
With the host-functions
feature (enabled by default), you can simply use ics23::HostFunctionManager
as this provides a default implementation of this trait.
This handles non-existence tests for empty branches properly. This is needed for properly handling proofs on Tries, like the SMT being integrated with the Cosmos SDK.
This is used in ibc-go v3
This handles proofs for normal merkle trees, where every branch is full. This works for tendermint merkle hashes and iavl hashes, and should work for merk (nomic's db) proofs.
This was used in the original ibc release (cosmos sdk v0.40) and up until ibc-go v2.