IBCF is a building block allowing for general bidirectional message passing between Tezos and Ethereum networks.
It allows smart contracts on a source chain to store ✉️ states that are verifiable on a target chain. It provides a generic way for contracts to communicate between chains by means of validating Merkle proofs about these states stored in the source chain.
| GNU Make 4.3 |
| Python 3 |
| Curl |
| npm |
| yarn |
| nodejs |
# Compile all contracts
make compile
# Compile only tezos contracts
make compile-tezos
# Compile only evm contracts
make compile-evm
# Run a single compilation (tezos only)
make compilations/<compilation_file_without_extension># Test all contracts
make test
# Test only tezos contracts
make test-tezos
# Test only evm contracts
make test-evm
# Run a single test (tezos only)
make tests/<test_file_without_extension>The Tezos deployment outputs the results to stdout and creates a snapshot file at __SNAPSHOTS__/deployment-*.yaml.
The Ethereum deployment outputs the results to stdout and creates a snapshot file at __SNAPSHOTS__/evm-deployment.txt.
# Tezos deployment (CONFIG_PATH environment variable is optional)
CONFIG_PATH=deployment/configs/ghostnet.yaml make deploy-tezos
# Evm deployment (ETH_PRIVATE_KEY and INFURA_URL environment variables are not optional)
PRIVATE_KEY=<private_key> INFURA_URL=https://<network>.infura.io/v3/<project_api_key> make deploy-evmNew deployment configurations can be added by creating a <config_name>.yaml file in configs folder.
Have a look at the deployment/tezos/configs/ghostnet.yaml configuration file.
Have a look at deployment/evm/0_all.js file.
The sandbox is used to test the contract deployments locally. It is configured to produce 1 block every second.
| RPC URL | http://localhost:20000 |
Default accounts:
- alice
* edpkvGfYw3LyB1UcCahKQk4rF2tvbMUk8GFiTuMjL75uGXrpvKXhjn
* tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb
* unencrypted:edsk3QoqBuvdamxouPhin7swCvkQNgq4jP5KZPbwWNnwdZpSpJiEbq
* balance: 2000000 ꜩ
- bob
* edpkurPsQ8eUApnLUJ9ZPDvu98E8VNj4KtJa1aZr16Cr5ow5VHKnz4
* tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6
* unencrypted:edsk3RFfvaFaxbHx8BMtEW1rKQcPtDML3LXjNqMNLCzC3wLC1bWbAt
* balance: 2000000 ꜩ
# Start the sandbox
make start-sandbox
# Stop the sanbox
make stop-sandbox# Run a code format check
make fmt-check
# Format code
make fmt-fix