Skip to content

Repository files navigation

Postchain EIF

Ethereum Interoperability Framework (EIF) -- a set of components that power Chromia-Ethereum interoperability by importing events, generating verifiable proofs, managing state, and submitting transactions.

Project Structure

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

Prerequisites

  • Java 21
  • Node.js 24+ with Yarn 4.10.1+ (for smart contracts)
  • Maven 3.8+
  • Docker (optional, for tests)

Quick Start

After cloning the repository, follow these steps:

1. Build Smart Contracts First

cd postchain-eif-contracts
./scripts/build.sh
./scripts/test.sh

Note: 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.

2. Build Maven Project

mvn clean package

3. Development Workflow

After fresh checkout or after changes to smart contracts:

cd postchain-eif-contracts
./scripts/build.sh
./scripts/test.sh
cd ..
mvn clean package

API compatibility

The 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:dump

To run only the check (needs compiled classes):

mvn -pl postchain-eif-core com.chromaway:kotlin-bcv-maven-plugin:0.2.0:check

Releases

Packages

Contributors

Languages