-
Notifications
You must be signed in to change notification settings - Fork 854
Worst case benches - deploy wc contracts #1550
Conversation
…d state circuits)
…be restricted to view
…son recursion limit check
…rrode solc error 5776
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @AronisAt79,
I ported some comments from your fork. I also added comments on the solidity wrapper.
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added more comments on small details.
@AronisAt79 don't be so hard on yourself, I don't think this is the worse case PR I have ever seen. |
The main function is very long, I wonder if we could split it in several functions that represent different steps in the process. I would be much easier to read. |
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
Co-authored-by: Chih Cheng Liang <chihchengliang@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM after the CI issues are fixed.
Great work fixing the compilation output parsing.
Can you run make fmt
to fix the formatting issue?
LGTM! |
Description
This is the first of a PRs series aiming to implement worst case block proof bench-marking tests within zkevm-circuits/integration-tests.
The changes submitted here implement the blockchain data generation functionality* needed for the wc bencmarks.
Type of change
✅ New feature (non-breaking change which adds functionality)
Contents
1. wcerrors.rs : Recreate the solc::SolcError and solc::SolcIoError types with necessary methods and private functions2. worst_case.rs: Recreate ethers::solc::Solc with necessary methods
3. gen_blockchain_data.rs
Rationale
Smart contracts written for generation of blocks with increased proof computational intensity use nested opcode calls in the inline assembly block that violate serde recursion limits.
Modules in Contents section 1 and 2 are created to manipulate the compilation behavior and disable recursion depth limits during deserializationError handling has also been added in gen_blockchain_data.rs in order to catch solc compilation errors hidden in the CompilerOutput struct
How Has This Been Tested?
https://github.com/privacy-scaling-explorations/zkevm-circuits/actions/runs/5749057365/job/15583140857https://github.com/privacy-scaling-explorations/zkevm-circuits/actions/runs/5753344249/job/15596341036