⚠️ WARNING This repository is still in the proof-of-concept stage.
This project consists of two CKB contracts serving for Forcerelay/Eth and Forcerelay/Axon respectively, which are all in one project, Forcerelay.
ibc-ckb-contracts for Forcerelay/Axon are IBC-compatible contracts that validate CKB transactions and parse payloads therefrom. These payloads, in the format of bytes, can be converted into IBC objects, which will be used to complete further verification representing the underlying logic of the IBC protocol. ibc-ckb-contracts mainly include Connection, Channel, and Packet contracts.
Note: To see the fundamental verification logic, please refer to the ckb-ics library.
We designed connection, channel, and packet cells, each of them contains unique data that corresponds to its specific IBC protocol that defines how these cells operate respectively.
For instance, in a transaction representing the MsgChannelOpenInit message, a new channel cell is created simultaneously with adjustments to the current connection cell status. This results in the following transaction structure:
celldeps:
connection contract cell
inputs:
old connection cell
outputs:
new connection cell
new channel cell
witnesses:
preimage of connection cell
preimage of channel cellLicensed under MIT License.