Skip to main content

@effectstream/evm-hardhat

Package: @effectstream/evm-hardhat · Source

Hardhat tooling for EVM-side EffectStream development: a JSON-RPC server wrapper, deploy helpers, address bookkeeping, and the Solidity remappings every template uses to share contract paths. Pairs with @effectstream/evm-contracts, which ships the actual Solidity sources.

  • Hardhat tooling for EVM-side Effectstream: JSON-RPC server, deploy + addresses, Solidity remappings.
  • Hardhat config builder with a Solidity 0.8.30 default.
  • Pairs with @effectstream/evm-contracts for the Solidity sources.
  • Used by every template's deploy-contracts step in the orchestrator.

Install

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

The EVM tooling is split deliberately:

  • @effectstream/evm-contracts - Solidity sources + compiled ABIs.
  • @effectstream/evm-hardhat - Hardhat scripts, JSON-RPC server, deploy helpers (this package).

Standalone usage

./json-rpc-server - JSON-RPC façade over a Hardhat node

import { startJsonRpcServer } from "@effectstream/evm-hardhat/json-rpc-server";

await startJsonRpcServer({ port: 8545 });

Exposes the JSON-RPC endpoints templates' frontends and indexers expect during local dev.

./hardhat-config-builder - opinionated Hardhat config

import { buildHardhatConfig } from "@effectstream/evm-hardhat/hardhat-config-builder";

export default buildHardhatConfig({
solidity: "0.8.24",
contractsRoot: "./contracts",
});

./deploy & ./addresses

deploy runs Hardhat scripts and writes the deployed address into a deterministic file; addresses reads it back. Used by every template's "deploy contracts" step in the orchestrator.

./remappings-hardhat and ./remappings-forge

Re-exports the canonical effectstream/ remappings so your Hardhat or Foundry build sees the same imports as the rest of the framework.

Inside EffectStream

The orchestrator's deploy-contracts step calls into this package to boot Hardhat, deploy a template's contracts, and record the addresses. The sync side then reads those addresses through @effectstream/config's buildDeployments(...).

Key subpath exports

  • @effectstream/evm-hardhat/json-rpc-server: local JSON-RPC server.
  • @effectstream/evm-hardhat/builder: programmatic contract build entry point.
  • @effectstream/evm-hardhat/hardhat-config-builder: opinionated Hardhat config factory.
  • @effectstream/evm-hardhat/deploy runs Hardhat scripts and writes the deployed address into a deterministic file.
  • @effectstream/evm-hardhat/addresses: read/write the deployed-address file.
  • @effectstream/evm-hardhat/remappings-hardhat, ./remappings-forge - Solidity import remappings.

Examples