Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[don't-merge] try CI before run testool on EIP-1559 and EIP-2930 #1071

Closed
wants to merge 197 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
bbbc8d1
setup multiple test bytes
darth-cy Nov 3, 2023
f22d39f
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 8, 2023
14ecc5e
add debug bytes
darth-cy Nov 9, 2023
b9d0be7
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 11, 2023
8579f0b
retrace debug: add ad sk idx
darth-cy Nov 11, 2023
f9075da
retrace debug: add access list idx wit
darth-cy Nov 11, 2023
928388d
add additional witness columns
darth-cy Nov 12, 2023
6445658
add additional witness columns
darth-cy Nov 12, 2023
eb7d102
add constraints
darth-cy Nov 12, 2023
5bf3228
add constraints
darth-cy Nov 12, 2023
77e69f5
add constraints
darth-cy Nov 12, 2023
d4e0595
add constraints
darth-cy Nov 12, 2023
4ace802
generate correct stack states
darth-cy Nov 13, 2023
72e3ab1
correct stack witness generation
darth-cy Nov 13, 2023
ec9cde3
add stack accumulator
darth-cy Nov 13, 2023
53ad280
fmt
darth-cy Nov 13, 2023
89f233f
fmt
darth-cy Nov 13, 2023
4ad0eba
remove debug flag
darth-cy Nov 14, 2023
4184b8b
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 14, 2023
3f8c63e
correct tx circuit lookup
darth-cy Nov 14, 2023
93c0e88
decoding table
darth-cy Nov 14, 2023
919687c
correct degree
darth-cy Nov 15, 2023
ba90c5e
add decoding table
darth-cy Nov 16, 2023
6790cff
add decoding table assignment
darth-cy Nov 16, 2023
b11496a
reduce degree
darth-cy Nov 16, 2023
b12e18f
unnecessary import
darth-cy Nov 16, 2023
2b8147c
fmt
darth-cy Nov 16, 2023
617bfcc
fix constraints
darth-cy Nov 16, 2023
51a69ec
fix constraints
darth-cy Nov 16, 2023
ab90974
add stack ptr increase
darth-cy Nov 16, 2023
bc4c077
fix constraints
darth-cy Nov 16, 2023
2f12efb
fmt
darth-cy Nov 16, 2023
3396e1e
add stack op witness
darth-cy Nov 16, 2023
23f94cc
add stack op witness
darth-cy Nov 16, 2023
bff1b24
add stack constraints
darth-cy Nov 16, 2023
306304d
fmt
darth-cy Nov 16, 2023
951ee27
add stack constraints
darth-cy Nov 17, 2023
d5d2854
add stack end condition
darth-cy Nov 18, 2023
a337689
fmt
darth-cy Nov 18, 2023
22dd5a1
fmt
darth-cy Nov 18, 2023
3a82a29
rename beginlist and endlist
darth-cy Nov 18, 2023
b6046a3
adjust test case
darth-cy Nov 18, 2023
eef90a3
change address naming to depth
darth-cy Nov 20, 2023
b4dc48f
add instrument booleans
darth-cy Nov 20, 2023
03b4142
add consistency constraints for access list
darth-cy Nov 20, 2023
4b083a3
add consistency constraints for access list
darth-cy Nov 20, 2023
426225f
adjust test
darth-cy Nov 20, 2023
a548910
remove debug flag
darth-cy Nov 20, 2023
07bfee1
fmt
darth-cy Nov 20, 2023
60bc390
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 20, 2023
0d62fea
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 23, 2023
33360c0
refactor accumulating coeff
darth-cy Nov 23, 2023
87c9cc8
add stack op enum
darth-cy Nov 23, 2023
1d92811
refactor decoding table witness
darth-cy Nov 23, 2023
337b49c
refactor access list indicator columns
darth-cy Nov 23, 2023
fd60ba1
remove auto code
darth-cy Nov 23, 2023
c1d1fd7
refactor syntax
darth-cy Nov 23, 2023
d5d81bc
remove comment
darth-cy Nov 23, 2023
4b7cb37
add comment
darth-cy Nov 23, 2023
a88a3ea
add missing constraints
darth-cy Nov 23, 2023
01a42d2
refactor syntax
darth-cy Nov 23, 2023
b7b9ca1
debug commit
darth-cy Nov 23, 2023
2d5b3dd
remove debug line
darth-cy Nov 23, 2023
e6802fd
refactor constructor
darth-cy Nov 23, 2023
5062b33
refactor push constructor
darth-cy Nov 23, 2023
36d5adb
refactor pop constructor
darth-cy Nov 23, 2023
18efd55
refactor update
darth-cy Nov 23, 2023
153cc38
fmt
darth-cy Nov 23, 2023
050ddae
remove import
darth-cy Nov 23, 2023
d2fe2ec
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 26, 2023
6436aca
debug commit
darth-cy Nov 29, 2023
ece6d09
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 29, 2023
9f66260
restore test. fix lookup conditional
darth-cy Nov 30, 2023
af5e424
restore column in tx table
darth-cy Nov 30, 2023
4eedca8
restore access list idx columns:
darth-cy Nov 30, 2023
f839b8a
add access list dynamic assignment
darth-cy Nov 30, 2023
aa4ff29
restore dynamic access list assignment
darth-cy Nov 30, 2023
c2977a6
Merge branch 'develop' into feat/support-eip1559
darth-cy Nov 30, 2023
5e735bb
Merge branch 'develop' into feat/support-eip1559
darth-cy Dec 2, 2023
c3ffc67
resolve merge conflict
darth-cy Dec 2, 2023
3a80d75
add section denoter for access list
darth-cy Dec 3, 2023
008646e
add access list rlc helper
darth-cy Dec 3, 2023
e54aefc
adjust column and new section init
darth-cy Dec 3, 2023
ecde4c6
add boolean instruments, degree fix
darth-cy Dec 3, 2023
a9ff11a
add constraints
darth-cy Dec 3, 2023
cfa05b0
add constraints
darth-cy Dec 3, 2023
d3d0486
add rlp lookup
darth-cy Dec 4, 2023
4fd060b
add section_rlc starting for access list
darth-cy Dec 4, 2023
7c4b38c
add section_rlc accumulation
darth-cy Dec 4, 2023
2cf3fb4
recover section constraint
darth-cy Dec 4, 2023
8e50a62
look up access list address
darth-cy Dec 4, 2023
69be617
lookup access list storage key len
darth-cy Dec 4, 2023
eabd98b
fmt
darth-cy Dec 4, 2023
66b7e46
fmt clippy
darth-cy Dec 4, 2023
1b94185
remove debug tags
darth-cy Dec 4, 2023
2d0b6f0
correct lookup of address and storage keys
darth-cy Dec 4, 2023
79ed093
remove debug flag
darth-cy Dec 4, 2023
f7eab86
add extra gas fields for 1559
darth-cy Dec 4, 2023
3a5021f
comment
darth-cy Dec 4, 2023
241e50c
fmt
darth-cy Dec 4, 2023
93e3e45
fmt
darth-cy Dec 4, 2023
5284faf
add option guard
darth-cy Dec 4, 2023
bd570d7
fmt
darth-cy Dec 4, 2023
e372e36
unwrap guard
darth-cy Dec 4, 2023
62ff810
correct witness rows
darth-cy Dec 4, 2023
1a6f375
fmt
darth-cy Dec 4, 2023
306c5c8
add comment
darth-cy Dec 4, 2023
f814355
add instrument to fix degree
darth-cy Dec 5, 2023
ba0a256
fix rlp lookup
darth-cy Dec 5, 2023
6c94f8b
remove debug tag
darth-cy Dec 5, 2023
ba9fa62
remove debug tag
darth-cy Dec 5, 2023
54f5195
style fmt
darth-cy Dec 5, 2023
2ef2c5a
adjust section transition
darth-cy Dec 5, 2023
9cb5271
cargo
darth-cy Dec 6, 2023
6d7889d
complete develop merge
darth-cy Dec 6, 2023
299be6d
clip cargo lock
darth-cy Dec 6, 2023
5194324
correct merge
darth-cy Dec 7, 2023
27bbf4d
debug commit
darth-cy Dec 7, 2023
a0fb39d
uncomment test
darth-cy Dec 7, 2023
3f3fec7
correct fn name
darth-cy Dec 7, 2023
19f2b36
remove output
darth-cy Dec 7, 2023
9047334
refactor assignment
darth-cy Dec 7, 2023
db8f395
add lookup
darth-cy Dec 7, 2023
d63851e
fmt
darth-cy Dec 7, 2023
7d86f02
fmt
darth-cy Dec 7, 2023
3fc9469
restore test
darth-cy Dec 7, 2023
5d83202
Merge branch 'develop' into feat/support-eip1559
darth-cy Dec 12, 2023
4333c03
remove duplicate
darth-cy Dec 12, 2023
93d04be
Merge branch 'develop' into feat/support-eip1559
darth-cy Dec 13, 2023
0aa9f67
Add balance check for gas fee (EIP-1559).
silathdiir Dec 11, 2023
d0a208a
Fix CI with scroll feature.
silathdiir Dec 15, 2023
3f49762
Add more comments.
silathdiir Dec 16, 2023
e62c8fd
Add test case.
silathdiir Dec 17, 2023
e098b60
add comments
darth-cy Dec 19, 2023
9f3ba87
add comments'
darth-cy Dec 19, 2023
9293f21
fmt
darth-cy Dec 19, 2023
3b3302a
Merge branch 'develop' into eip-1559-balance-check
silathdiir Dec 20, 2023
84701e8
Add super circuit test for EIP-2930.
silathdiir Dec 18, 2023
db36696
Add super circuit test for EIP-1559.
silathdiir Dec 20, 2023
7d44260
Merge remote-tracking branch 'origin/feat/support-eip1559' into testo…
silathdiir Dec 21, 2023
ecb8ddf
Merge remote-tracking branch 'origin/eip-1559-balance-check' into tes…
silathdiir Dec 21, 2023
b96d894
Merge remote-tracking branch 'origin/super-circuit-tests-for-eip-1559…
silathdiir Dec 21, 2023
9536b3f
Fix CI.
silathdiir Dec 21, 2023
2d71e7a
Enable EIP-1559 and EIP-2930 cases in `testool`.
silathdiir Dec 21, 2023
6b5073d
Update testool config.
silathdiir Dec 21, 2023
024ff27
Merge branch 'develop' into feat/support-eip1559
darth-cy Dec 22, 2023
d2faac3
remove engagement of stack acc
darth-cy Dec 22, 2023
24ed37e
remove stack_acc and add new witness
darth-cy Dec 25, 2023
4ad0b76
add lookup from rlp_table
darth-cy Dec 25, 2023
55dc030
comment correction
darth-cy Dec 25, 2023
637cb66
add depth constraint decoding table
darth-cy Dec 25, 2023
ef62a79
add cross-depth lookup in decoding table
darth-cy Dec 25, 2023
5a8f6b4
fmt
darth-cy Dec 25, 2023
817c5d3
clippy
darth-cy Dec 25, 2023
b3694d0
rm comments
darth-cy Dec 25, 2023
bb5a635
stack op order correction
darth-cy Dec 26, 2023
a7a707b
Parse access-list from json and yaml in testool.
silathdiir Dec 26, 2023
76fb755
Merge branch 'testool-access-list-parse' into testool-eip-1559-2930
silathdiir Dec 27, 2023
8eee5cb
add more strict constraints
darth-cy Dec 27, 2023
34981a8
remove debug flags
darth-cy Dec 27, 2023
32f0143
remove debug output
darth-cy Dec 27, 2023
5d390f5
fmt
darth-cy Dec 27, 2023
a62c927
Merge branch 'develop' into feat/support-eip1559
darth-cy Dec 27, 2023
a1397d3
Merge remote-tracking branch 'origin/develop' into testool-eip-1559-2930
silathdiir Dec 28, 2023
7a308bb
Merge remote-tracking branch 'origin/feat/support-eip1559' into testo…
silathdiir Dec 28, 2023
9089ca7
Fix testool access-list parsing for yaml.
silathdiir Dec 29, 2023
0f621c0
Fix yaml parsing.
silathdiir Jan 1, 2024
f63df17
Merge branch 'develop' into testool-eip-1559-2930
silathdiir Jan 4, 2024
cf6304d
Update testool for access-list.
silathdiir Jan 9, 2024
6f5f4f1
Fix copy table lookups in tx access-list.
silathdiir Jan 11, 2024
5f35208
Merge remote-tracking branch 'origin/develop' into testool-eip-1559-2930
silathdiir Jan 11, 2024
3f6b9b5
Rename `TxEip2930Gadget` to `TxAccessListGadget`, and fix circuit iss…
silathdiir Jan 11, 2024
9350ce5
Handle empty access-list.
silathdiir Jan 11, 2024
bd03b00
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 11, 2024
20e5249
Fix comments.
silathdiir Jan 11, 2024
56d6fb3
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 11, 2024
69a3415
Merge branch 'develop' into update-to-tx-access-list-gadget
silathdiir Jan 11, 2024
8e6c266
Merge remote-tracking branch 'origin/develop' into testool-eip-1559-2930
silathdiir Jan 11, 2024
35f0424
Add `is_caller_warm` and `is_callee_warm`.
silathdiir Jan 12, 2024
17a3eed
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 12, 2024
d7349ae
Fix `is_warm` for precopmile addresses.
silathdiir Jan 12, 2024
c564858
Fix `is_warm` for precompile addresses.
silathdiir Jan 12, 2024
5eb7494
Merge branch 'develop' into update-to-tx-access-list-gadget
silathdiir Jan 12, 2024
5204bf0
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 12, 2024
82281ea
Delete useless test case.
silathdiir Jan 12, 2024
54b0618
Delete duplicate test case.
silathdiir Jan 12, 2024
1d99b37
Enable tx lookups for access list in copy circuit.
silathdiir Jan 14, 2024
971acbe
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 14, 2024
974174d
Set gas price to `min(max_priority_fee_per_gas + base_fee, max_fee_pe…
silathdiir Jan 15, 2024
85a51cc
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 15, 2024
5cc0d22
Fix state-circuit error report in testool.
silathdiir Jan 16, 2024
85c2558
Merge remote-tracking branch 'origin/update-to-tx-access-list-gadget'…
silathdiir Jan 16, 2024
167cb75
Fix testool case `storageCosts_d35(declaredKeyWrite)_g0_v0`.
silathdiir Jan 16, 2024
8e8bb64
Merge remote-tracking branch 'origin/fix-testool-eip-1559-2930' into …
silathdiir Jan 16, 2024
1410a1d
Fix to set `GasFeeCap` and `GasTipCap` if not exist (for `tipTooHigh_…
silathdiir Jan 16, 2024
dfe9914
Merge remote-tracking branch 'origin/fix-testool-eip-1559-2930' into …
silathdiir Jan 16, 2024
cc13ce6
Merge remote-tracking branch 'origin/develop' into testool-eip-1559-2930
silathdiir Jan 17, 2024
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
6 changes: 5 additions & 1 deletion zkevm-circuits/src/super_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@
//! - [x] Bytecode Circuit
//! - [x] Tx Circuit
//! - [ ] MPT Circuit
pub(crate) mod precompile_block_trace;
#[cfg(feature = "scroll")]
mod eip1559;
#[cfg(feature = "scroll")]
mod eip2930;
mod precompile_block_trace;
#[cfg(any(feature = "test", test))]
pub(crate) mod test;

Expand Down
57 changes: 57 additions & 0 deletions zkevm-circuits/src/super_circuit/eip1559.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
//! Helper functions for super circuit tests of EIP-1559

use super::CircuitsParams;
use eth_types::{address, l2_types::BlockTrace};
use ethers_signers::{LocalWallet, Signer};
use mock::{eth, gwei, TestContext, MOCK_CHAIN_ID};
use rand::SeedableRng;
use rand_chacha::ChaCha20Rng;

pub(crate) fn test_block_trace() -> BlockTrace {
let mut rng = ChaCha20Rng::seed_from_u64(2);
let wallet_a = LocalWallet::new(&mut rng).with_chain_id(MOCK_CHAIN_ID);

let addr_a = wallet_a.address();
let addr_b = address!("0x0000000000000000000000000000000000001559");

TestContext::<2, 1>::new(
None,
|accs| {
accs[0].address(addr_b).balance(eth(1));
accs[1].address(addr_a).balance(gwei(80_000));
},
|mut txs, _accs| {
txs[0]
.from(addr_a)
.to(addr_b)
.gas_price(gwei(2))
.gas(30_000.into())
.value(gwei(20_000))
.max_fee_per_gas(gwei(2))
.max_priority_fee_per_gas(gwei(2))
.transaction_type(2); // Set tx type to EIP-1559.
},
|block, _tx| block.number(0xcafe_u64),
)
.unwrap()
.l2_trace()
.clone()
}

pub(crate) fn test_circuits_params(max_txs: usize, max_calldata: usize) -> CircuitsParams {
CircuitsParams {
max_txs,
max_calldata,
max_rws: 256,
max_copy_rows: 256,
max_exp_steps: 256,
max_bytecode: 512,
max_mpt_rows: 2049,
max_poseidon_rows: 512,
max_evm_rows: 0,
max_keccak_rows: 0,
max_inner_blocks: 1,
max_rlp_rows: 500,
..Default::default()
}
}
71 changes: 71 additions & 0 deletions zkevm-circuits/src/super_circuit/eip2930.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
//! Helper functions for super circuit tests of EIP-2930

use super::CircuitsParams;
use eth_types::{address, l2_types::BlockTrace, AccessList, AccessListItem, H256};
use ethers_signers::{LocalWallet, Signer};
use mock::{eth, gwei, TestContext, MOCK_CHAIN_ID};
use rand::SeedableRng;
use rand_chacha::ChaCha20Rng;

pub(crate) fn test_block_trace() -> BlockTrace {
let mut rng = ChaCha20Rng::seed_from_u64(2);
let wallet_a = LocalWallet::new(&mut rng).with_chain_id(MOCK_CHAIN_ID);

let addr_a = wallet_a.address();
let addr_b = address!("0x0000000000000000000000000000000000002930");

let test_access_list = AccessList(vec![
AccessListItem {
address: address!("0x0000000000000000000000000000000000001111"),
storage_keys: [10, 11].map(H256::from_low_u64_be).to_vec(),
},
AccessListItem {
address: address!("0x0000000000000000000000000000000000002222"),
storage_keys: [20, 22].map(H256::from_low_u64_be).to_vec(),
},
AccessListItem {
address: address!("0x0000000000000000000000000000000000003333"),
storage_keys: [30, 33].map(H256::from_low_u64_be).to_vec(),
},
]);

TestContext::<2, 1>::new(
None,
|accs| {
accs[0].address(addr_b).balance(eth(20));
accs[1].address(addr_a).balance(eth(20));
},
|mut txs, _accs| {
txs[0]
.from(addr_a)
.to(addr_b)
.gas_price(gwei(2))
.gas(1_000_000.into())
.value(eth(2))
.transaction_type(1) // Set tx type to EIP-2930.
.access_list(test_access_list);
},
|block, _tx| block.number(0xcafe_u64),
)
.unwrap()
.l2_trace()
.clone()
}

pub(crate) fn test_circuits_params(max_txs: usize, max_calldata: usize) -> CircuitsParams {
CircuitsParams {
max_txs,
max_calldata,
max_rws: 256,
max_copy_rows: 256,
max_exp_steps: 256,
max_bytecode: 512,
max_mpt_rows: 2049,
max_poseidon_rows: 512,
max_evm_rows: 0,
max_keccak_rows: 0,
max_inner_blocks: 1,
max_rlp_rows: 500,
..Default::default()
}
}
31 changes: 31 additions & 0 deletions zkevm-circuits/src/super_circuit/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -485,3 +485,34 @@ fn serial_test_super_circuit_precompile_sha256() {

test_super_circuit::<MAX_TXS, MAX_CALLDATA, 1, TEST_MOCK_RANDOMNESS>(block, circuits_params);
}

#[ignore]
#[cfg(feature = "scroll")]
#[test]
fn serial_test_super_circuit_eip_1559_tx() {
const MAX_TXS: usize = 1;
const MAX_CALLDATA: usize = 256;

let block_trace = eip1559::test_block_trace();
let circuits_params = eip1559::test_circuits_params(MAX_TXS, MAX_CALLDATA);

test_super_circuit::<MAX_TXS, MAX_CALLDATA, 1, TEST_MOCK_RANDOMNESS>(
block_trace,
circuits_params,
);
}
#[ignore]
#[cfg(feature = "scroll")]
#[test]
fn serial_test_super_circuit_eip_2930_tx() {
const MAX_TXS: usize = 1;
const MAX_CALLDATA: usize = 256;

let block_trace = eip2930::test_block_trace();
let circuits_params = eip2930::test_circuits_params(MAX_TXS, MAX_CALLDATA);

test_super_circuit::<MAX_TXS, MAX_CALLDATA, 1, TEST_MOCK_RANDOMNESS>(
block_trace,
circuits_params,
);
}