Skip to content

Latest commit

 

History

History
 
 

ethereum

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Ethereum

This project contains a library that allows you to prove:

  • Account state
    • balance, nonce, codeHash, storageRoot
    • Example: Vitalik's balance was 5 ETH at block N
  • Storage values by key
    • Example: Uniswap contract had value 5 at storage slot 0 at block N
  • Transaction inclusion
    • Example: Transaction number 115 in block N was sending 3 ETH to address to
  • Receipt inclusion
    • Example: Transaction number 115 in block N succeeded (status == 1) and used 100k gas
  • Log inclusion
    • Example: Log number 0 within transaction number 115 in block N has topic0 === 0x...

Codebase also includes support for base Ethereum structures in Noir:

  • Decoding RLP format
  • Ethereum Merkle Patricia Tries proofs
  • Mappings of Basic Ethereum data types: uint256, address, bytes32, hash
  • Fragment data structure, similar to Rust's slice, used for parsing data

Additionally, we provide smart contracts that allow to verify inclusion of block in the chain for last 256 blocks.

Repository structure

This monorepo consists of the following sub-projects:

Package Description Docs
Circuits Noir circuits to generate account and storage proofs for historical blocks data Docs
Contracts Related Solidity contracts with tests Docs
Oracles TypeScript oracle server that provides data for circuits Docs
Tests E2E tests in TypeScript Docs

Compilation & testing

Compilation and testing instructions for individual projects: