Skip to content

HerodotusDev/herodotus-evm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a5e00b8 · Aug 21, 2024

History

75 Commits
Jan 24, 2024
Oct 31, 2023
Nov 7, 2023
Nov 2, 2023
Aug 21, 2024
Aug 21, 2024
Jun 7, 2024
Jun 7, 2024
May 20, 2024
Oct 31, 2023
Oct 31, 2023
Oct 31, 2023
Jun 7, 2024
Nov 14, 2023
Jun 7, 2024
Jun 7, 2024
Dec 1, 2023

Repository files navigation

Herodotus EVM Smart Contracts

Herodotus contracts for EVM chains.

Prerequisites:

  • Git
  • Node.js (^18.0)
  • npm
  • pnpm
  • Foundry
  • Solc

Running Locally

Create a .env file based on .env.example, and then run:

git clone git@github.com:HerodotusDev/herodotus-evm.git
cd herodotus-evm

# If you do not have pnpm, run `npm install -g pnpm`
# Install dependencies
pnpm install

# Install libraries
forge install

# Running tests requires .env to be configured
forge test

Contracts Overview

  • CommitmentsInbox: receives block commitments from the origin chain using either the native messaging system or an optimistic relayer.

  • HeadersProcessor: processes block headers from the origin chain and stores them in a Merkle Mountain Range tree where the accumulation happens on-chain.

  • FactsRegistry: stores facts (e.g., nonces, balances, code hashes, storage hashes, etc.) for each proven origin chain account.

Note: currently, the origin chain is Ethereum L1 (Sepolia on testnet and Mainnet on mainnet). However, the contracts are designed to be chain-agnostic and can be used with any EVM-compatible chain.

Deployed Contracts

Deployment

pnpm run deploy

Documentation

Here are some useful links for further reading:

License

Copyright 2023 - Herodotus Dev Ltd