Skip to content
This repository has been archived by the owner on Jul 5, 2024. It is now read-only.

Cleanup TLOAD/TSTORE #1813

Closed

Conversation

z2trillion
Copy link
Collaborator

Description

[PR description]

Issue Link

[link issue here]

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
  • Refactor (no updates to logic)

Contents

  • [item]

Rationale

[design decisions and extended information]

How Has This Been Tested?

[explanation]


How to fill a PR description

Please give a concise description of your PR.

The target readers could be future developers, reviewers, and auditors. By reading your description, they should easily understand the changes proposed in this pull request.

MUST: Reference the issue to resolve

Single responsibility

Is RECOMMENDED to create single responsibility commits, but not mandatory.

Anyway, you MUST enumerate the changes in a unitary way, e.g.

This PR contains:
- Cleanup of xxxx, yyyy
- Changed xxxx to yyyy in order to bla bla
- Added xxxx function to ...
- Refactored ....

Design choices

RECOMMENDED to:

  • What types of design choices did you face?
  • What decisions you have made?
  • Any valuable information that could help reviewers to think critically

lispc and others added 30 commits August 23, 2023 12:56
* fix returndata

* fix returndata; update evm test vector
* more strict check on Account Rw

* fix
* induce l2 types for l2trace

* add l2trace entry

* wip: some refactoring

* refactor zktrie for decoupling from bus-mapping

* more refactoring in zktrie

* wip: l2 circuit builder

* use l2 trace in super circuit test

* prune unnecessary sign

* fmt and lint

* missed exportion

* update l2geth util for l1 queue index

* apply zktrie and storage proof

* sdb skip empty value

* update state root in tracing

* more update for state root

* fix tests

* lints

* lint for all-target

* fix memory transfer

* fmt

* disable callee code assert for precompile

* set all difficulity in l2 test to 0

* reroll the difficulity setting in test
apply global difficulity to 0 for l2

* fix deploy tx issue and prune l2geth_util

* revert incorrect fixing

* disable doc test temporarily

* add incremental update for l2 trace
entry in circuitbuilder

* zero coinbase patch for sdb

* rename variables for better self-doc

* re-enable tx storage fiield

* add modexp unittest

* turn ec test to serial

* bump the version of l2geth_util

* make l1 queue index default

* fix an issue in sdb update
add an entry for convenient

* mpt_state: add light_mode for ZktrieState::from_trace_with_additional

---------

Co-authored-by: Zhang Zhuo <[email protected]>
* scroll mode for testool

* run.sh ok

* fix base fee for scroll l2 evm

* fix build

* fix ci

* testool: skip large balance

* lint

* lint
* default: 97.6

* 98.6

* 98.9%

* 99.0%

* create gadget: disable reading callee codehash if !pre_check_ok

* fix base fee

* solved all

* fixed finally?

* ...

* done
* respect tx_num limit in ccc

* lint
* fix CallContextField::GasLeft

* lint
…alid Inputs" and "Insufficient Gas" (#811)

* wip: preliminary work (EcAdd)

* wip: refactoring ecc circuit and ecaddop

* wip: prelim work for EcMul

* wip: ecmul decompose and more tests

* wip: some more changes in EcAdd and EcMul gadgets (evm cir)

* fix: refactor is_zero to avoid enforce < p

* chore: add back traces

* chore: update cargo lock

* chore: refactor AND to AND many

* wip: ecpairing in ecc ciruit

* fix: ecpairing ecc circuit debugged

* feat: invalid len(input) handling in ecpairing gadget

* assignment to ecpairing cells, tests OK

* is_valid todo complete

* minor refactor

* add invalid test for ec add

* chore: clippy fix

* fix: precompile failed (ecXX) through individual gadgets

* Feat: enforce gas_cost for precompiles called with invalid inputs (#827)

* enforce gas_cost for ec_add

* enforce gas_cost for ec_mul

* enforce gas_cost for ec_pairing

* fix: test case generation random G2 coeffs

* chore: refactor unnecessary cell being returned

* enforce gas_cost for modexp

* remove tests for gadget that wont be used

* tests: invalid cases for ecpairing

* fix: input cells (pairing) for RLC

---------

Co-authored-by: Rohit Narurkar <[email protected]>

* gas costs for ecrecover and identity

* chore: fmt fix

* upgrade halo2-lib

* variadic size tests with valid/invalid inputs

---------

Co-authored-by: kunxian xia <[email protected]>
Co-authored-by: Zhang Zhuo <[email protected]>
* bash testool/run.sh

* remove outdated zero_coinbase_exist hack

* fix
…bus-mapping (#830)

* tag modexp circuit

* try fix native reminder

* fix divmod

* update MODEXPCONFIG_EACH_CHIP_ROWS

* fix fmt

* update assert_eq and refactor tests

* fix test: enlarge keccak rows

* add invalid input testcase in modexp

* fix sub with overflow if modexp input bytes len greater than 192

---------

Co-authored-by: DreamWuGit <[email protected]>
Co-authored-by: kunxian xia <[email protected]>
* testool: support test with subcircuit

* allow use full scroll trace in CircuitTestBuilder

* fix modexp row usage
* testool: enable all precompile tests

* Update Config.toml
* fix: swap only if both G1, G2 are 0s from EVM

* tests: would have caught the bug
* Fix EXTCODECOPY with empty account (#1429)

We treat empty accounts by storing their code_hash in the RwTable as 0.
EXTCODECOPY was obtaining the bytecode length by querying the bytecode
table with code_hash=0 on existing accounts, but that entry should be
invalid (there's no bytecode with code_hash=0). Skip the bytecode table
length lookup when code_hash=0.

I've also reintroduced the `Block::debug_print_txs_steps_rw_ops`
function, updated to use the new `Block::get_rws` API. This function is
not used in the code, but it's very convenient to call it when
debugging.

Resolve
privacy-scaling-explorations#1190

- [x] Bug fix (non-breaking change which fixes an issue)

* fix

---------

Co-authored-by: Eduard S <[email protected]>
* n_padded_zeroes < 192

* clippy

---------

Co-authored-by: Rohit Narurkar <[email protected]>
* test: reproduce err

* fix: differentiate between normal and precompile calls

* tests: more non-zero value cases

* add comments

---------

Co-authored-by: Zhang Zhuo <[email protected]>
* fix-exp-is-last: enforce the secure termination of Exp circuit

* fix-exp-is-last: clarify is_final_step

* Simplify exp lookup (#838)

* simplify-exp-lookup: remove unnecessary Exp lookup

* simplify-exp-lookup: Remove identifier and is_last from Exp lookup

* simplify-exp-lookup: Remove identifier from the Exp circuit

---------

Co-authored-by: Aurélien Nicolas <[email protected]>

---------

Co-authored-by: Aurélien Nicolas <[email protected]>
Co-authored-by: z2trillion <[email protected]>
z2trillion and others added 17 commits April 19, 2024 16:04
* Update l1geth

* trigger ci?

* bump go version

* Update ci.yml

* Update scroll-tech/go-ethereum

* bump go version

* remove toolchain

* register structLogTracer at init

* Upgrade to go 1.21 and go mod tidy

* ignore test in default case for now

* undo change

* fix callTrace

---------

Co-authored-by: Mason Liang <[email protected]>
Co-authored-by: Zhang Zhuo <[email protected]>
Co-authored-by: lightsing <[email protected]>
* add tx gas price check

* constrain effective_gas_price

* increase width & bytes for lookup as more were required

* clippy fix

* increase STEP_WIDTH again for scroll feature

* set tx gas price in test

* enable more 1559 tests

* correct effective gas

* restore two tests

* remove used comment

* add missing constraint

* remove gas price as it's set in mock block

* add comment & rename

* rename

---------

Co-authored-by: Zhang Zhuo <[email protected]>
* assert call trace length

* handle l1 geth change

* ignore unknown error

* log warn when unknown
* wip

* update codehash

* done

* ok

* Reapply "feat: enable basefee opcode"

This reverts commit 4ba4f60.

* fix

* remove shanghai

* lint

* enable cancun and shanghai for l1 tracer

* fix 1559

* done
* Correct typo

* Correct RLC

* Change tag column status

* Add tx_nonce consistency

* Remove vestige gadget

* Add v constraint for 1559/2930

* Constrain depth consistency for fsm state transition

* Correct q_first query for initial num_all_txs_acc condition

* Ensure continuity of sectional flag is_calldata and is_access_list

* Remove tx unchanged constraint for dynamic sectional transition

* Add tx_id constraints in dynamic section

* Constrain access list tx table fields according to AccessListAddressLen

* Constrain is_padding_tx

* Add constraint for id calculation in rlp_decoding_table

* Remove redundant boolean requirements

* Add init condition for access_list_idx and storage_key_idx

* Turn on value_is_zero for access list len

* Remove whitespace

* Add byte_idx to PUSH/POP lookup correspondence

* fmt

* Update cargo

* Resolve build issues

* fmt and clippy

* Recover tests

* Correct gate name

* Remove debug flags

* fmt

* cargo

* Revert ethers-core branch

* cargo

* Restrict booleans

* fmt

* Audit Fixes EIP2930/1559 RLP Decoding Table Correspondence (#1181)

* Remove debug flags

* Add decoding table PUSH lookup correspondence

* Complete Stack Op Correspondence

* fmt

* Correct lookup constraint

* Remove unused macro

* fmt

* Correct lookup constraint for pre 2930 txs

* fmt

* Adjust comments

* fmt

* Add lookup indicator column for state machine

* Add correct condition for stack op lookups

* Complete PUSH op lookup

* Correct POP op lookup

* Correct PUSH lookup

* fmt

* Add backward compatibility for eip155 and pre155

* Add al_idx to input expression

* Add access list idx to PUSH correspondence

---------

Co-authored-by: DreamWuGit <[email protected]>

* Audit Fixes EIP2930/1559 TxCircuit Dynamic Section Transitions (#1176)

* Refactor tx circuit dynamic section after introducing access list

* Adjust comments

* fmt

* Column naming

---------

Co-authored-by: DreamWuGit <[email protected]>

---------

Co-authored-by: DreamWuGit <[email protected]>
Co-authored-by: Zhang Zhuo <[email protected]>
* cherry pick upstream

* fix build

* fix witness generation

* add case for AccountTransientStorage

* run go get github.com/scroll-tech/go-ethereum@df3fde13679950f2ea6eafdb09ad5a7d5da3dbaa

* increase step width by 1

* increase FIXED_TABLE_ROWS_NO_BITWISE

* fix EIP1153: is_static check and reversion

---------

Co-authored-by: Mason Liang <[email protected]>
Co-authored-by: Zhuo Zhang <[email protected]>
* add curie suite

* enable normalize for stEIP1153-transientStorage

* fix

* fix cond, move comment
* move CodeDB and StateDB

* update execute_precompiled

* fix precompile

* fix doc

* add revm primitives conversion

* update zktrie

* clean deps

---------

Co-authored-by: Zhang Zhuo <[email protected]>
* move CodeDB and StateDB

* update execute_precompiled

* fix precompile

* fix doc

* add revm primitives conversion

* update zktrie

* clean deps

* done

---------

Co-authored-by: lightsing <[email protected]>
Co-authored-by: Akase Haruka <[email protected]>
@z2trillion z2trillion closed this Apr 30, 2024
@github-actions github-actions bot added crate-bus-mapping Issues related to the bus-mapping workspace member crate-zkevm-circuits Issues related to the zkevm-circuits workspace member crate-external-tracer Issues related to the external-tracer workspace member CI Issues related to the Continuous Integration mechanisms of the repository. crate-mock Issues related to the mock workspace member T-bench Type: benchmark improvements crate-circuit-benchmarks Issues related to the circuit-benchmarks workspace member crate-prover Issues related to the prover workspace member crate-integration-tests Issues related to the integration-tests workspace member crate-eth-types Issues related to the eth-types workspace member crate-geth-utils Issues related to the geth-utils workspace member crate-gadgets Issues related to the gadgets workspace member labels Apr 30, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CI Issues related to the Continuous Integration mechanisms of the repository. crate-bus-mapping Issues related to the bus-mapping workspace member crate-circuit-benchmarks Issues related to the circuit-benchmarks workspace member crate-eth-types Issues related to the eth-types workspace member crate-external-tracer Issues related to the external-tracer workspace member crate-gadgets Issues related to the gadgets workspace member crate-geth-utils Issues related to the geth-utils workspace member crate-integration-tests Issues related to the integration-tests workspace member crate-mock Issues related to the mock workspace member crate-prover Issues related to the prover workspace member crate-zkevm-circuits Issues related to the zkevm-circuits workspace member T-bench Type: benchmark improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.