Home

Awesome

<div align="center"> <h1>ibc-solidity</h1> </div>

banner

<div align="center"> <img alt="Version" src="https://img.shields.io/github/tag/hyperledger-labs/yui-ibc-solidity.svg"> <a href="https://github.com/hyperledger-labs/yui-ibc-solidity/blob/main/LICENSE"> <img alt="License: Apache-2.0" src="https://img.shields.io/github/license/hyperledger-labs/yui-ibc-solidity.svg" /> </a> <a href="https://github.com/hyperledger-labs/yui-ibc-solidity/actions/workflows/test.yml"> <img alt="Test" src="https://github.com/hyperledger-labs/yui-ibc-solidity/actions/workflows/test.yml/badge.svg" /> </a> <a href="https://pkg.go.dev/github.com/hyperledger-labs/yui-ibc-solidity?tab=doc"> <img alt="GoDoc" src="https://godoc.org/github.com/hyperledger-labs/yui-ibc-solidity?status.svg" /> </a> </div>

IBC implementations in Solidity.

IBC compatibility: v8

This is available not only for Ethereum and Hyperledger Besu, but also for Polygon PoS and other EVM-compatible chains.

DISCLAIMER: This project is still under development and has not been audited.

Features

Documents

Supported Light Client

You can deploy a Light Client that implements the ILightClient interface to integrate with ibc-solidity.

Here are some such examples:

IBC relayer support

Related projects

For Developers

Unit test

$ make test

E2E test

Launch two Hyperledger Besu chains(ethereum-compatible) with the contracts deployed with the following command:

$ make network-qbft

After launch the chains, execute the following command:

$ make e2e-test

E2E-test with IBC-Relayer

An example of E2E with IBC-Relayer(yui-relayer) can be found here:

solidity-protobuf

To generate the proto encoders and decoders in solidity from proto files, you need to use the code generator solidity-protobuf

Currently, v0.1.0 is required.

If you edit the proto definitions, you should execute the following command:

$ make SOLPB_DIR=/path/to/solidity-protobuf proto-sol

Maintainers