yui-ibc-solidity
yui-ibc-solidity copied to clipboard
IBC in Solidity
IBC-Solidity
IBC implementations in Solidity.
This is available not only for Ethereum and Hyperledger Besu, but also for Polygon PoS and other blockchains that supports EVM.
NOTE: This is yet pre-beta non-production-quality software.
Features
Documents
Please see here.
In addition, a tutorial is here.
Supported Light Client
You can deploy a Light Client that implements the IClient interface to integrate with IBC-Solidity.
Here are some such examples:
- IBFT 2.0 Light Client
- Tendermint Light Client
- Mock Client
Related projects
- A demo of trustless bridge between Harmony and Cosmos(Tendermint): https://github.com/datachainlab/harmony-cosmos-bridge-demo
- A demo of trustless bridge between Celo and Cosmos: https://github.com/ChorusOne/celo-cosmos-bridge
Testing
Launch two Besu chains(ethereum-compatible) with the contracts deployed with the following command:
# If NO_GEN_CODE is empty, setup-script will generate a proto3 marshaler in solidity
$ NO_GEN_CODE=1 ./scripts/setup.sh testtwochainz
An example of E2E with IBC-Relayer can be found here:
- https://github.com/hyperledger-labs/yui-relayer/tree/main/tests/cases/tm2eth
- https://github.com/hyperledger-labs/yui-relayer/blob/main/.github/workflows/test.yml
After launch the chains, execute the following command:
$ make e2e-test
For Developers
To develop this project, you need the code generator solidity-protobuf to generate encoders and decoders in solidity from proto files.
Currently, you need to use this version.