Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
72524bd
compile
jialinli98 Dec 3, 2025
a1d4b83
more fixes
jialinli98 Dec 5, 2025
fd3714d
fixes
jialinli98 Dec 6, 2025
f44e3eb
more fixes
jialinli98 Dec 7, 2025
03d330d
fixes
jialinli98 Dec 8, 2025
4b19222
fixes
jialinli98 Dec 8, 2025
14972f0
ci
jialinli98 Dec 8, 2025
213aa66
fix
jialinli98 Dec 8, 2025
cfbfd2d
remove circuit tests
jialinli98 Dec 8, 2025
f2aaf16
fix
jialinli98 Dec 8, 2025
79c2ecf
fix
jialinli98 Dec 9, 2025
f40317a
fixes
jialinli98 Dec 9, 2025
8130404
fixes
jialinli98 Dec 9, 2025
61a624f
fixes
jialinli98 Dec 9, 2025
2a9a863
fixes
jialinli98 Dec 9, 2025
add371c
fixes
jialinli98 Dec 9, 2025
5d46de0
fix
jialinli98 Dec 9, 2025
63dee8e
fixes
jialinli98 Dec 10, 2025
8063023
fixes
jialinli98 Dec 10, 2025
fb2f020
fixes
jialinli98 Dec 10, 2025
bef2bf6
fix
jialinli98 Dec 10, 2025
3d281e7
fix
jialinli98 Dec 10, 2025
c2698c0
fix
jialinli98 Dec 10, 2025
e32ff64
Merge branch 'main' of https://github.com/noir-lang/eth-proofs into j…
jialinli98 Dec 10, 2025
6945d30
resolve warnings
jialinli98 Dec 11, 2025
b0c1b95
resolve warnings
jialinli98 Dec 11, 2025
8a2b626
resolve warnings
jialinli98 Dec 11, 2025
aae5836
resolve warnings
jialinli98 Dec 11, 2025
3e2adea
fix typescript compile errors
jialinli98 Dec 11, 2025
a2df451
fix
jialinli98 Dec 11, 2025
5569b3e
vlayer utils
jialinli98 Dec 12, 2025
4609e92
add test to yml
jialinli98 Dec 12, 2025
63a76e7
fixes
jialinli98 Dec 12, 2025
6563c9b
fix
jialinli98 Dec 13, 2025
395a691
fix
jialinli98 Dec 13, 2025
4097cf4
fix
jialinli98 Dec 14, 2025
dc81905
disable some CI build that fails
jialinli98 Dec 14, 2025
9788615
disable a few CI build that fails
jialinli98 Dec 14, 2025
85f1d59
replace u256
jialinli98 Dec 15, 2025
78060fb
Revert "replace u256"
jialinli98 Dec 15, 2025
b243c9b
Merge branch 'jl/new_compile' into jl/compile_vlayer
jialinli98 Dec 15, 2025
d798688
set minimum verison to 1.0.0-beta.17
jialinli98 Dec 15, 2025
f649449
Merge branch 'jl/compile_vlayer' of https://github.com/noir-lang/eth-…
jialinli98 Dec 15, 2025
ee0b00c
fix test
jialinli98 Dec 15, 2025
24dc121
16 bytes for u128
jialinli98 Dec 18, 2025
0e79745
Merge branch 'main' of https://github.com/noir-lang/eth-proofs into j…
jialinli98 Dec 19, 2025
5f08325
fix
jialinli98 Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/circuits_e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: Circuits E2E Tests

on:
workflow_dispatch:

jobs:
test:
name: Circuits E2E Tests
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/circuits_profile.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: circuit profiling

on: [push, merge_group]

on:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is broken.

workflow_dispatch:
jobs:
test:
name: nargo info
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/e2e_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: E2E Tests

on:
workflow_dispatch:

jobs:
test:
name: E2E Tests
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/static_checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: Static checks

on:
workflow_dispatch:

jobs:
test:
name: Static checks
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ jobs:
with:
toolchain: ${{ matrix.toolchain }}

- name: Run Noir tests
run: nargo test
- name: Run Ethereum Noir tests
run: nargo test --workspace

format:
runs-on: ubuntu-latest
Expand Down
1 change: 0 additions & 1 deletion ethereum/circuits/get_storage_recursive/src/main.nr
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ use dep::ethereum::{
misc::types::{Address, Bytes32},
};

#[recursive]
fn main(
chain_id: pub Field,
block_number: pub u64,
Expand Down
6 changes: 3 additions & 3 deletions ethereum/circuits/lib/src/account_with_storage.nr
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ struct StateAndStorageProofInput {
}

pub struct StorageWithinBlock<let N: u32> {
pub(crate) block_hash: Bytes32,
pub(crate) account: Account,
pub(crate) values: [Bytes32; N],
pub block_hash: Bytes32,
pub account: Account,
pub values: [Bytes32; N],
}

type ProofInputSerialized<let LEN: u32> = [Field; LEN];
Expand Down
6 changes: 3 additions & 3 deletions ethereum/circuits/lib/src/account_with_storage_recursive.nr
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ use crate::serde::STORAGE_BLOCK_LEN;
use dep::std::verify_proof_with_type;

pub struct RecursiveProof {
key_hash: Field,
verification_key: [Field; 114],
proof: [Field; 93],
pub key_hash: Field,
pub verification_key: [Field; 114],
pub proof: [Field; 93],
}

global NUM_PUBLIC_INPUTS: u32 = 1 + 1 + ADDRESS_LENGTH + BYTES32_LENGTH + STORAGE_BLOCK_LEN; // chain_id + block_number + address + storage_key + public_return_inputs
Expand Down
4 changes: 2 additions & 2 deletions ethereum/circuits/lib/src/fixtures.nr
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
pub(crate) mod mainnet;
pub(crate) mod merkle_proofs;
pub mod mainnet;
pub mod merkle_proofs;
4 changes: 2 additions & 2 deletions ethereum/circuits/lib/src/fixtures/mainnet.nr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pub(crate) mod frontier;
pub(crate) mod homestead;
pub(crate) mod london;
pub(crate) mod paris;
pub mod london;
pub mod paris;
pub(crate) mod cancun;
2 changes: 1 addition & 1 deletion ethereum/circuits/lib/src/fixtures/mainnet/london.nr
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
pub(crate) mod crypto_punks;
pub mod crypto_punks;
pub(crate) mod vitalik_balance;
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pub(crate) mod header;
pub(crate) mod account;
pub(crate) mod state_proof;
pub mod header;
pub mod account;
pub mod state_proof;
pub mod storage_proof;
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ pub(crate) global code_hash: Bytes32 = [
0xe4, 0x16, 0x7f, 0x0b, 0x74, 0xea, 0x23, 0x05, 0x66, 0xdd, 0xec, 0xe7, 0xae, 0x9d, 0x6f, 0x0b,
];

pub(crate) global account: Account = Account { nonce, balance, storage_root, code_hash };
pub global account: Account = Account { nonce, balance, storage_root, code_hash };
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ global encoded_data: [u8; 708] = [
0x00, 0x00, 0x00, 0x00,
];

pub(crate) global block_header_partial: BlockHeaderPartial =
pub global block_header_partial: BlockHeaderPartial =
BlockHeaderPartial { number, hash, state_root, transactions_root, receipts_root };
pub(crate) global block_header_rlp: BoundedVec<u8, 708> =
pub global block_header_rlp: BoundedVec<u8, 708> =
BoundedVec::from_parts(encoded_data, encoded_length);
Original file line number Diff line number Diff line change
Expand Up @@ -438,4 +438,4 @@ pub(crate) global proof_input: ProofInput<66, 110, 10, 148> = ProofInput {
},
};

pub(crate) global proof_input_serialized: [Field; 5645] = proof_input.serialize();
pub global proof_input_serialized: [Field; 5645] = proof_input.serialize();

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions ethereum/circuits/lib/src/fixtures/mainnet/paris.nr
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
pub(crate) mod usdc_circle;
pub(crate) mod usdc_uniswap;
pub(crate) mod bored_ape_yacht_club;
pub mod usdc_circle;
pub mod usdc_uniswap;
pub mod bored_ape_yacht_club;
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
pub(crate) mod header;
pub(crate) mod state_proof;
pub mod header;
pub mod state_proof;
pub mod account;
pub mod storage_proof;
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
use crate::{account::Account, misc::types::Bytes32};

global nonce: u64 = 1;
global balance: Field = 10201000000000000;
global storage_root: Bytes32 = [
0xf2, 0xb1, 0x58, 0x8b, 0xe2, 0x23, 0xbb, 0xb7, 0x2b, 0x6f, 0x2f, 0x2f, 0x5d, 0x25, 0xf7, 0x42,
0x4f, 0xb0, 0x9e, 0x21, 0x23, 0x97, 0xf4, 0xd7, 0x16, 0xa6, 0xa8, 0x78, 0x5a, 0x6e, 0xda, 0x4d,
];
global code_hash: Bytes32 = [
0x0b, 0xa5, 0xe2, 0x5e, 0x74, 0xd8, 0x1b, 0xab, 0x32, 0x71, 0x10, 0xc8, 0xd8, 0xb4, 0x43, 0x20,
0xf5, 0x0a, 0xd5, 0xc3, 0xe9, 0x1a, 0x54, 0x6a, 0x5c, 0x5a, 0x9b, 0x60, 0x5c, 0xf6, 0x53, 0xb3,
];

pub global account: Account = Account { nonce, balance, storage_root, code_hash };
Original file line number Diff line number Diff line change
@@ -1,6 +1,75 @@
use crate::header::BlockHeaderPartial;
use crate::misc::types::Bytes32;

pub(crate) global state_root: Bytes32 = [
0x1a, 0xd7, 0xb8, 0x0a, 0xf0, 0xc2, 0x8b, 0xc1, 0x48, 0x95, 0x13, 0x34, 0x6d, 0x27, 0x06, 0x88,
0x5b, 0xe9, 0x0a, 0xbb, 0x07, 0xf2, 0x3c, 0xa2, 0x8e, 0x50, 0x48, 0x2a, 0xdb, 0x39, 0x2d, 0x61,
];

global number: u64 = 19000000;
global hash: Bytes32 = [
0xcf, 0x38, 0x40, 0x12, 0xb9, 0x1b, 0x08, 0x12, 0x30, 0xcd, 0xf1, 0x7a, 0x3f, 0x7d, 0xd3, 0x70,
0xd8, 0xe6, 0x70, 0x56, 0x05, 0x8a, 0xf6, 0xb2, 0x72, 0xb3, 0xd5, 0x4a, 0xa2, 0x71, 0x4f, 0xac,
];
global transactions_root: Bytes32 = [
0x41, 0x0d, 0x8e, 0xfe, 0x97, 0x36, 0x13, 0xf9, 0x46, 0x3b, 0xb2, 0x5a, 0x0c, 0x71, 0xcc, 0xb5,
0x2b, 0x26, 0x48, 0x42, 0xf4, 0x87, 0x45, 0x10, 0xd7, 0x0d, 0xd7, 0x48, 0xfb, 0xbe, 0xb0, 0xb6,
];
global receipts_root: Bytes32 = [
0x44, 0xdb, 0xbb, 0xb9, 0x2e, 0x05, 0x3e, 0xc5, 0x03, 0x06, 0x57, 0xcf, 0x7e, 0x85, 0x40, 0x62,
0x60, 0x2a, 0x7d, 0xba, 0xd7, 0x89, 0x0f, 0xb4, 0x3c, 0x01, 0x00, 0x9d, 0x1d, 0x39, 0xfa, 0xf5,
];

global encoded_length: u32 = 565;
global encoded_data: [u8; 708] = [
0xf9, 0x02, 0x32, 0xa0, 0x75, 0x9e, 0x27, 0xa5, 0x06, 0x95, 0x35, 0x94, 0x9f, 0x0a, 0x72, 0x47,
0xeb, 0xc9, 0x99, 0x36, 0x7d, 0xbd, 0x77, 0x96, 0x4d, 0x77, 0xed, 0x00, 0x4f, 0xfc, 0x8d, 0xb3,
0xd4, 0x94, 0x02, 0x48, 0xa0, 0x1d, 0xcc, 0x4d, 0xe8, 0xde, 0xc7, 0x5d, 0x7a, 0xab, 0x85, 0xb5,
0x67, 0xb6, 0xcc, 0xd4, 0x1a, 0xd3, 0x12, 0x45, 0x1b, 0x94, 0x8a, 0x74, 0x13, 0xf0, 0xa1, 0x42,
0xfd, 0x40, 0xd4, 0x93, 0x47, 0x94, 0x95, 0x22, 0x22, 0x90, 0xdd, 0x72, 0x78, 0xaa, 0x3d, 0xdd,
0x38, 0x9c, 0xc1, 0xe1, 0xd1, 0x65, 0xcc, 0x4b, 0xaf, 0xe5, 0xa0, 0x1a, 0xd7, 0xb8, 0x0a, 0xf0,
0xc2, 0x8b, 0xc1, 0x48, 0x95, 0x13, 0x34, 0x6d, 0x27, 0x06, 0x88, 0x5b, 0xe9, 0x0a, 0xbb, 0x07,
0xf2, 0x3c, 0xa2, 0x8e, 0x50, 0x48, 0x2a, 0xdb, 0x39, 0x2d, 0x61, 0xa0, 0x41, 0x0d, 0x8e, 0xfe,
0x97, 0x36, 0x13, 0xf9, 0x46, 0x3b, 0xb2, 0x5a, 0x0c, 0x71, 0xcc, 0xb5, 0x2b, 0x26, 0x48, 0x42,
0xf4, 0x87, 0x45, 0x10, 0xd7, 0x0d, 0xd7, 0x48, 0xfb, 0xbe, 0xb0, 0xb6, 0xa0, 0x44, 0xdb, 0xbb,
0xb9, 0x2e, 0x05, 0x3e, 0xc5, 0x03, 0x06, 0x57, 0xcf, 0x7e, 0x85, 0x40, 0x62, 0x60, 0x2a, 0x7d,
0xba, 0xd7, 0x89, 0x0f, 0xb4, 0x3c, 0x01, 0x00, 0x9d, 0x1d, 0x39, 0xfa, 0xf5, 0xb9, 0x01, 0x00,
0x81, 0xa1, 0x01, 0x00, 0x86, 0x00, 0x14, 0x4d, 0x80, 0x40, 0x18, 0x0c, 0x8c, 0x28, 0x40, 0x02,
0x71, 0x04, 0xa0, 0xd8, 0x00, 0x31, 0xc6, 0xf9, 0x02, 0x8b, 0x61, 0x05, 0x50, 0x22, 0x06, 0x3e,
0x45, 0x56, 0xd4, 0x3e, 0x84, 0xa0, 0x08, 0x78, 0x02, 0xa0, 0x06, 0x08, 0x37, 0x85, 0x09, 0x00,
0x3a, 0x83, 0xca, 0x9c, 0xfd, 0x14, 0x20, 0x24, 0x5e, 0xed, 0x68, 0xd2, 0x17, 0x28, 0x0b, 0x01,
0x60, 0x86, 0x10, 0x09, 0x45, 0x10, 0x9e, 0x1b, 0xbc, 0x61, 0x4b, 0x28, 0xa2, 0x48, 0xa1, 0xa2,
0xd8, 0x81, 0xe1, 0x97, 0x00, 0xc4, 0x08, 0xaa, 0x02, 0x80, 0x3d, 0x30, 0xc9, 0x2d, 0x02, 0xc0,
0x7c, 0x81, 0x1d, 0x10, 0x02, 0x00, 0xab, 0x4f, 0x05, 0xe9, 0x50, 0x21, 0x02, 0x24, 0x08, 0x42,
0xa0, 0x89, 0x08, 0x68, 0xa8, 0x00, 0x84, 0xcb, 0xc9, 0x60, 0x09, 0xd3, 0x04, 0x0c, 0x4d, 0x09,
0x22, 0x1d, 0x83, 0xda, 0x89, 0x11, 0x05, 0x4c, 0x30, 0x5c, 0x62, 0x42, 0x2a, 0x0c, 0xd1, 0x28,
0xb7, 0x52, 0x40, 0x83, 0x43, 0x12, 0xc6, 0xde, 0xa0, 0x01, 0x10, 0xc0, 0x4a, 0x18, 0xb0, 0x34,
0x06, 0x20, 0x68, 0x80, 0x1b, 0xc0, 0x28, 0x80, 0x89, 0x90, 0x10, 0xc0, 0x0a, 0x53, 0x5d, 0x98,
0x75, 0x35, 0x80, 0xc8, 0x30, 0xae, 0x81, 0x00, 0x3d, 0x85, 0x29, 0x74, 0x11, 0x08, 0x82, 0x5b,
0x52, 0x50, 0x30, 0xde, 0x0a, 0x08, 0x24, 0x48, 0x09, 0x0a, 0x88, 0x46, 0x48, 0x0f, 0x99, 0x10,
0x13, 0xe1, 0x82, 0x0a, 0x44, 0x80, 0x24, 0x55, 0x15, 0x59, 0x20, 0x5e, 0x44, 0xb5, 0xa0, 0x02,
0x00, 0x50, 0xa9, 0x01, 0x4a, 0x14, 0xd0, 0xa0, 0x00, 0x4c, 0x20, 0x78, 0x0a, 0xa0, 0x8c, 0x31,
0x74, 0x5e, 0xb6, 0x88, 0x42, 0x1c, 0x50, 0x54, 0x04, 0x18, 0xc0, 0x43, 0x61, 0x42, 0x4c, 0x4d,
0x80, 0x84, 0x01, 0x21, 0xea, 0xc0, 0x84, 0x01, 0xc9, 0xc3, 0x80, 0x83, 0x92, 0xaf, 0xc9, 0x84,
0x65, 0xa2, 0xe1, 0xc3, 0x8f, 0x62, 0x65, 0x61, 0x76, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x2e, 0x6f, 0x72, 0x67, 0xa0, 0xb4, 0x5e, 0x3f, 0xdb, 0xc1, 0xa4, 0x12, 0x16, 0xad, 0x07, 0xac,
0x93, 0x12, 0x15, 0xc5, 0xd6, 0xdf, 0x19, 0x02, 0x17, 0xef, 0xad, 0xe2, 0x80, 0xd1, 0x82, 0x5c,
0x4a, 0x66, 0x7a, 0xd2, 0x03, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x04,
0xab, 0xff, 0x88, 0xbc, 0xa0, 0x5e, 0xf7, 0x85, 0xb1, 0xe2, 0x35, 0xd0, 0x64, 0x1d, 0xde, 0xd9,
0xd2, 0xc3, 0xfd, 0x5c, 0x50, 0x10, 0x02, 0xd3, 0x53, 0x10, 0x1e, 0xd0, 0xf5, 0x34, 0x34, 0x88,
0x1d, 0x5c, 0xa4, 0x92, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
];

pub global block_header_partial: BlockHeaderPartial =
BlockHeaderPartial { number, hash, state_root, transactions_root, receipts_root };
pub global block_header_rlp: BoundedVec<u8, 708> =
BoundedVec::from_parts(encoded_data, encoded_length);
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::merkle_patricia_proofs::proof::{Proof, ProofInput};
use crate::{merkle_patricia_proofs::proof::{Proof, ProofInput}, serde::Serde};

pub(crate) global proof_input: ProofInput<66, 110, 10, 148> = ProofInput {
key: [
Expand Down Expand Up @@ -437,3 +437,5 @@ pub(crate) global proof_input: ProofInput<66, 110, 10, 148> = ProofInput {
depth: 9,
},
};

pub global proof_input_serialized: [Field; 5645] = proof_input.serialize();
Loading