* revert back to iavl v1 to avoid hash changes on new modules like
we are seeing on the v0.24.x to v0.25.x upgrade block. Also, add
replace statements for exp and rapid to match upstream cosmos-sdk
* fix sharding prune store logging and error return.
* add comment to clarify WithKeyTable usage
* feat!(precompile): Add registry and genesis tests
Based on evgeniy-scherbina's work, this adds a new precompile module
which defines a contract moudule with an example noop contract that
will be will be used for implementing test functions. In addition,
it defines a registry module that instantiates stateful precompile
contracts and associates them with an address in a global registry
defined in kava-labs/go-ethereum. See precompile/README.md for more
information.
The kava-labs/go-ethereum and kava-labs/etheremint replace statements
are updated to support these changes as well as an update to kvtool
which includes genesis state for the registry.NoopContractAddress and
initializes the contract's EthAccount with a non-zero sequence and
codehash set to keccak256(0x01), and sets the contract code to 0x01.
See tests/e2e/e2e_precompile_genesis_test.go for an overview of the
expected genesis state for an enabled precompile.
Co-authored-by: evgeniy-scherbina <evgeniy.shcherbina.es@gmail.com>
* chore: Precompile readme improvements
This fixes a typo (import -> important) and uses package terminology
instead of unclear module terminology. This aligns best with golang
terminology were modules and packages are distinctly different and
modules are defined using go.mod.
* chore: Improve noop contract godoc
Add a more meaningful godoc where the noop contract is constructed.
* chore(e2e): Improve comments around query checks
Improve the clarity of comments around where the error is checked for
accounts and why it is not checked directly.
In addition, improve comment on why both grpc and rpc code is fetched
and where they are used.
---------
Co-authored-by: evgeniy-scherbina <evgeniy.shcherbina.es@gmail.com>
This resolves ASA-2024-008. Patched in 0.37.7 but that version has a breaking change which was reverted in 0.37.8.
The replace for golang.org/x/exp prevents breaking change in slices package causing compile error with gogoproto