- fix: guarantee that
spec.InnerSpec.MaxPrefixLength
<spec.InnerSpec.MinPrefixLength
+spec.InnerSpec.ChildSize
(#369)
- fix(rust): Enforce that
spec.InnerSpec.ChildSize
is >= 1 (#339)
This release was yanked, please use v0.11.3 instead.
- 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.
- feat: Add
prehash_compare_key
to allow proving nonexistence in sparse trees (#136) - fix: protobuf formatting using clang-format (#129)
- add buf support to repo (#126)
- chore: Add Cosmos, license and coverage badges to the README (#122)
- ci: Add tags to codecov reports (#121) (4 months ago)
- ci: Refactor GitHub workflows and add code coverage job (#120)
Release of the ics23
create, including changes that reflect changes made in the Go implementation in the fork of ics23
housed in the Cosmos SDK.
- Fix no_std compatibility and add check for this on CI (#104)
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.