Skip to main content

@effectstream/evm-contracts

Package: @effectstream/evm-contracts · Source

Solidity sources and compiled ABIs for Effectstream's EVM contracts, distributed as an npm package. Pairs with @effectstream/evm-hardhat, which ships the Hardhat tooling (config builder, JSON-RPC server, deploy helpers).

  • Canonical home for Effectstream's EVM-side contracts. Other packages import the ABIs from here.
  • Compiled artifacts ship in the tarball so consumers don't need a Solidity toolchain unless they're modifying contracts.
  • Hardhat tooling lives in @effectstream/evm-hardhat. This package is kept lean on purpose.

Install

bun add @effectstream/evm-contracts
# or
npm install @effectstream/evm-contracts

Standalone usage

Import a compiled ABI:

import EffectstreamL2 from "@effectstream/evm-contracts/artifacts/EffectstreamL2.json";

const abi = EffectstreamL2.abi;
const bytecode = EffectstreamL2.bytecode;

For the full list of contracts and their export paths, see the docs.

Inside Effectstream

The state machine and batcher read EVM events against ABIs exported here. Templates that target EVM include this package transitively through @effectstream/evm-hardhat's deploy pipeline, so you usually don't import it by hand - you reference the contract names you want to deploy.

Building from source

For consumers modifying contracts locally:

# In a checkout of effectstream
bun run --filter=@effectstream/evm-contracts build

The Hardhat config used during compilation is built by @effectstream/evm-hardhat/hardhat-config-builder. If you need a config in your own repo, import that builder directly; do not re-implement the Hardhat setup. See @effectstream/evm-hardhat's README for the API.

Examples