Skip to content
This repository has been archived by the owner on Jan 31, 2023. It is now read-only.

airgap-it/ibcf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inter Blockchain Communication Framework

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.

Dependencies

GNU Make 4.3
Python 3
Curl
npm
yarn
nodejs

Contract Compilation

# 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>

Contract Testing

Unit tests

# 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>

Deployment

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-evm

Tezos deployment configuration

New 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.

Ethereum deployment configuration

Have a look at deployment/evm/0_all.js file.

Flextesa sandbox

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

Code formatter

# Run a code format check
make fmt-check

# Format code
make fmt-fix

Demo applications

Packages

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published