ab3cf7c994
* 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> |
||
---|---|---|
.github | ||
app | ||
build | ||
ci/env | ||
cli_test | ||
client | ||
cmd/kava | ||
contracts | ||
contrib | ||
docs | ||
migrate | ||
networks/local | ||
precompile | ||
proto | ||
tests | ||
third_party/proto | ||
x | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
.golangci-version | ||
.golangci.yml | ||
.mockery.yaml | ||
.tool-versions | ||
buf.work.yaml | ||
CHANGELOG.md | ||
docker-compose.yml | ||
Dockerfile | ||
Dockerfile-rocksdb | ||
Dockerfile-rocksdb-base | ||
go.mod | ||
go.sum | ||
hard.svg | ||
kava-logo.svg | ||
LICENSE.md | ||
Makefile | ||
prometheus.docker-compose.yml | ||
prometheus.yml | ||
README.md | ||
swp.svg |
Reference implementation of Kava, a blockchain for cross-chain DeFi. Built using the cosmos-sdk.
Mainnet
The current recommended version of the software for mainnet is v0.26.0 The master branch of this repository often contains considerable development work since the last mainnet release and is not runnable on mainnet.
Installation and Setup
For detailed instructions see the Kava docs.
git checkout v0.26.0
make install
End-to-end tests of Kava use a tool for generating networks with different configurations: kvtool.
This is included as a git submodule at tests/e2e/kvtool
.
When first cloning the repository, if you intend to run the e2e integration tests, you must also
clone the submodules:
git clone --recurse-submodules https://github.com/Kava-Labs/kava.git
Or, if you have already cloned the repo: git submodule update --init
Testnet
For further information on joining the testnet, head over to the testnet repo.
Docs
Kava protocol and client documentation can be found in the Kava docs.
If you have technical questions or concerns, ask a developer or community member in the Kava discord.
Security
If you find a security issue, please report it to security [at] kavalabs.io. Depending on the verification and severity, a bug bounty may be available.
License
Copyright © Kava Labs, Inc. All rights reserved.
Licensed under the Apache v2 License.