Ethereum Interoperability Framework (EIF) -- a set of components that power Chromia-Ethereum interoperability by importing events, generating verifiable proofs, managing state, and submitting transactions.
This is a multi-module Maven project:
- postchain-eif-contracts - Solidity smart contracts (see contracts README)
- postchain-eif-core - Core Java/Kotlin implementation
- postchain-eif-rell - Rell module for Postchain integration
- Java 21
- Node.js 24+ with Yarn 4.10.1+ (for smart contracts)
- Maven 3.8+
- Docker (optional, for tests)
After cloning the repository, follow these steps:
cd postchain-eif-contracts
./scripts/build.sh
./scripts/test.shNote: This step is required before running Maven. The Maven build depends on compiled smart contract artifacts.
For detailed information about smart contracts, see postchain-eif-contracts/README.md.
mvn clean packageAfter fresh checkout or after changes to smart contracts:
cd postchain-eif-contracts
./scripts/build.sh
./scripts/test.sh
cd ..
mvn clean packageThe public API of postchain-eif-core is tracked with kotlin-bcv-maven-plugin. The module records its API in postchain-eif-core/api/postchain-eif-core.api, and the build (verify phase) fails if the compiled API differs from that file.
To accept an intended API change, compile the module, regenerate the file and commit it:
mvn -pl postchain-eif-core -am -DskipTests clean compile com.chromaway:kotlin-bcv-maven-plugin:0.2.0:dumpTo run only the check (needs compiled classes):
mvn -pl postchain-eif-core com.chromaway:kotlin-bcv-maven-plugin:0.2.0:check