Formerly known as ibctest
.
interchaintest
orchestrates Go tests that utilize Docker containers for multiple
IBC-compatible blockchains.
It allows users to quickly spin up custom testnets and dev environments to test IBC, chain infrastructures, smart contracts, etc.
- Built-in suite of conformance tests to test high-level IBC compatibility between chain sets
- Easily construct customized tests in highly configurable environments
- Deployable as CI tests in production workflows
Strangelove maintains n
and n - 1
branches of interchaintest, n
being current main
.
We strive to keep interchaintest inline with the latest from the ibc-go and cosmos sdk teams. Once an alpha versions of the next major ibc-go version is released, we will discontinue n - 1
and branch off a new n
.
Recommendation: Even if your chain uses an older version of ibc-go, try importing from main
. This should work unless you are decoding transactions that require a specific ibc-go version.
If there is a feature you would like backported to an older branch, make an issue! We are happy to work with you.
Branch Name | IBC-Go | Cosmos-sdk | Maintained |
---|---|---|---|
main | v7 | v0.47 | ✅ |
v6 | v6 | v0.46 | ✅ |
v5 | v5 | v0.46 | ❌ (Aug 11 2023) |
v4 | v4 | v0.45 | ❌ (Aug 11 2023) |
v4-ics | v4 | v0.45.x-ics | ❌ (Aug 11 2023) |
v3 | v3 | v0.45 | ❌ (June 25 2023) |
v3-ics | v3 | v0.45.11-ics | ❌ (April 24 2023) |
- Building Binary
- Usage:
- Running Conformance Tests - Suite of built-in tests that test high-level IBC compatibility
- Write Custom Tests
- Retaining Data on Failed Tests
- Deploy as GitHub CI Tests
While it is not necessary to build the binary, sometimes it can be more convenient, specifically when running conformance test with custom chain sets.
Building binary:
git clone https://github.com/strangelove-ventures/interchaintest.git
cd interchaintest
make interchaintest
This places the binary in interchaintest/bin/interchaintest
Note that this is not in your Go path.
Contributing is encouraged.
Please read the logging style guide.
Significant bugs that were more easily fixed with interchaintest
: