Refactor encode_empty_node and encode_branch_node
Add constant and store encoded empty node in an other position
Remove child segment
Clean code
Apply suggestions from code review
Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>
Remive global label
Move encoded empty nodes
* Implement MPT preinitialization
* Apply comments
* Replace GlobalMetadata reads with stores in the kernel
* Change memory specs
* Remove trie data length as a prover input
* Add new segment and global metadata
* Insert into self-destruct set
* Implement sys_selfdestruct
* PR feedback
* Fix stack underflow
* Forgot that NOT 1 ≠ 0. Added %not_bit macro for that.
* Working linear search
* Working linear search for storage keys
* Macros
* Gas for wextaccount
* Add origin and to to the access list
* Handle precompiles
* Fixes
* Other opcodes
* Access list SLOAD
* Minor
* Add TODO for SSTORE
* Comments
* Clippy
* Minor
* PR feedback: cold_access
* PR feedback: simplify insert_accessed_addresses_no_return macro
* Fix sys_selfdestruct
* Store length in global metadata and store arrays in kernel memory
* Truncate address in all *CALL syscalls
* windowed mul
* Working
* Window of 4 bits
* Fix
* Comments
* Unroll loop
* Unroll loop
* remove global
* Minor
* Minor
* Implement `CALLVALUE, CALLDATALOAD, CALLDATASIZE, CALLDATACOPY` in interpreter
* Minor
* Doesn't work
* Minor
* Minor
* wnaf msm
* Working hardcoded values: 28657 opcodes
* Working wnaf
* Small wnaf optim
* Precompute works
* Working together
* Bump to 129 bits
* Working glv decomposition
* Working MSM with GLV
* Almost working
* Working
* ECC test folder
* Working with real sig data
* Fix tests + Clippy
* Minor
* Cleaning
* Comments
* Cleaning
* Smaller glv test file
* Print opcode count at the end of interpreter run
* More constants
* Add z3 proof that the GLV scalars are 129-bit or less
* Minor change to z3 proof
* Move files and renaming fns
* Testing
* Fix BN GLV
* BN precompute table
* Working precompute
* Working bn tests
* Working
* Minor
* Minor
* Use MULFP254
* Minor
* Merge conflicts
* Remove unused asm file
* ECC fns renaming (#874)
* PR feedback
* windowed mul
* Working
* Window of 4 bits
* Fix
* Comments
* Unroll loop
* Unroll loop
* remove global
* Minor
* Minor
* Implement `CALLVALUE, CALLDATALOAD, CALLDATASIZE, CALLDATACOPY` in interpreter
* Minor
* Doesn't work
* Minor
* Minor
* wnaf msm
* Working hardcoded values: 28657 opcodes
* Working wnaf
* Small wnaf optim
* Precompute works
* Working together
* Bump to 129 bits
* Working glv decomposition
* Working MSM with GLV
* Almost working
* Working
* ECC test folder
* Working with real sig data
* Fix tests + Clippy
* Minor
* Cleaning
* Comments
* Cleaning
* Smaller glv test file
* Print opcode count at the end of interpreter run
* More constants
* Add z3 proof that the GLV scalars are 129-bit or less
* Minor change to z3 proof
* Minor
* Hamish's suggestion
* Working
* Cleaning
* Clippy
* PR feedback
* Minor PR feedback