* Fix call gas + precompiles can be non-existent
* Memory expansion before call gas
* Minor
* Add call_gas.asm
* EIP-2200: If gasleft is less than or equal to gas stipend, fail the current call frame with ‘out of gas’ exception.
* Start
* Some sha256 test passing
* precompiles folder
* Files reorg
* Progress
* Minor
* Start of sha2 interface
* All call opcodes
* ecrec
* rip160
* Fix copy_returndata_to_mem
* id
* bn_add
* bn_mul
* TODOs for snarkv and blake2
* Comments
* Use charge_gas_const when possible
* Minor
* Minor
* Minor
* PR feedback
* 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.
* Implement syscalls for BYTE, SIGNEXTEND, SAR, SLT and SGT.
* Implement SDIV and SMOD; minor documentation and tidying.
* Implement EXP.
* Add sys_byte to the syscall jumptable.
* Test suite for signed syscalls.
* Handle `EXIT_KERNEL` "properly".
* Add gas charges; rename label.
* Uppercase all opcodes.
* Add test for BYTE; fix bug in BYTE.
* Calculate and charge gas for calling `EXP`.
* Fix gas calculation for `exponent = 0`.
* Address Jacqui's comments.
* Remove BYTE syscall as it will be implemented natively.
* Oops, forgot to remove this bit.
The old code was outdated in various ways, e.g. it was trying to share code with contract-creation txns, so I would ignore the diff and just look at the new code.
Still a bunch of TODOs left here, like actually saving code that's returned.
* 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