44 Commits

Author SHA1 Message Date
Daniel Lubarov
67593f162a Labels for failed MPT read/insert 2023-04-17 17:27:55 -07:00
wborgeaud
c7e60073f0
Check if context is static for state-changing opcodes (#973)
* Check if context is static for state-changing opcodes

* PR feedback
2023-04-12 08:24:33 +02:00
Daniel Lubarov
e70e4fca06 Doubly RLP-encode storage values 2023-04-03 21:51:17 -07:00
Daniel Lubarov
911dfedd07 Rework CREATE, CREATE2 syscalls
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.
2023-03-24 10:43:46 -07:00
wborgeaud
ce22d94518
Access lists (#937)
* 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
2023-03-23 20:22:25 +01:00
Daniel Lubarov
afded1682b Contract creation fixes 2023-03-20 23:43:13 -07:00
Daniel Lubarov
3c4bc1d824 Fix GAS and implement storage value parsing 2023-03-20 18:02:20 -07:00
Daniel Lubarov
bdf35374d5 Misc 2023-03-19 23:22:33 -07:00
Daniel Lubarov
7ed53142a0 Fix reads from not-found ext nodes 2023-03-19 14:13:42 -07:00
Daniel Lubarov
a05ed9fc3a Fix clobbering of RLP data memory 2023-03-19 11:49:15 -07:00
Daniel Lubarov
8c692b72b0 Fix account cloning 2023-03-17 13:10:58 -07:00
Daniel Lubarov
84fbbbf410 Couple minor fixes 2023-03-10 17:02:15 -08:00
Daniel Lubarov
c558eedd65 Misc EVM fixes 2023-03-05 09:39:49 -08:00
Daniel Lubarov
29f0692efc Fix a few issues found by EVM tests 2023-02-24 23:37:08 -08:00
Daniel Lubarov
f4ab65f973 Fixes to get test_simple_transfer working 2022-12-08 23:27:20 -08:00
wborgeaud
f3d4e57aa6 Use address macro instead of opcode 2022-10-31 10:48:57 +01:00
Daniel Lubarov
a2edff4670 Small storage fixes 2022-10-17 23:35:34 -07:00
Daniel Lubarov
9639ff22dc MPT storage logic 2022-10-17 22:46:48 -07:00
Daniel Lubarov
f125786d9b More directories for MPT logic 2022-10-16 22:55:09 -07:00
Daniel Lubarov
7f366cdace Treat storage tries as sub-tries of the state trie
I.e. have leaves in the state trie point to the root of a storage trie
2022-10-16 20:26:37 -07:00
Daniel Lubarov
ecce5be9e3 MPT format tweaks
Don't need value lengths in memory. Branches with null values recognized as value_ptr = null.
2022-10-14 18:09:43 -07:00
Daniel Lubarov
299aabf860 Fix branch hashing bug 2022-10-11 15:56:23 -07:00
Daniel Lubarov
caf928b11e MPT logic for inserts into extension nodes 2022-10-10 18:33:45 -07:00
Daniel Lubarov
50002df8e4 MPT insert into leaf, overlapping keys case 2022-10-10 10:42:02 -07:00
Daniel Lubarov
cad0473e1d More MPT insert logic 2022-10-10 09:40:28 -07:00
Daniel Lubarov
33dba3a23d Insertion optimization for leaf case 2022-10-09 20:18:16 -07:00
Daniel Lubarov
4a055b3a76 MPT insert logic, part 2 2022-10-09 11:32:01 -07:00
Daniel Lubarov
6bb1ad94e8 MPT insert logic, part 1 2022-10-08 22:27:57 -07:00
Daniel Lubarov
8ee7265863 Tweak MPT value storage 2022-10-08 13:51:52 -07:00
Daniel Lubarov
817156cd47 Begin MPT insert 2022-10-08 13:23:00 -07:00
Daniel Lubarov
e6b5e3656f Some more uses of %increment, %decrement 2022-10-07 12:03:37 -07:00
Daniel Lubarov
f8c104033c Hash MPT extension nodes 2022-10-06 20:50:32 -07:00
Daniel Lubarov
ed2aac3af3 MPT fixes 2022-10-06 16:28:52 -07:00
Daniel Lubarov
f2cb42bbe8 MPT logic to hash branch nodes 2022-10-05 20:46:49 -07:00
Daniel Lubarov
0c9847abf3 Rework MPT hashing to support inlining <32 byte children 2022-10-05 15:23:06 -07:00
Daniel Lubarov
0ccb340e40 RLP related fixes 2022-10-04 15:18:31 -07:00
Daniel Lubarov
9f9143d6f6 Finish some misc storage logic 2022-10-02 11:14:19 -07:00
Daniel Lubarov
9e483528d3 MPT hashing logic, part 3 2022-10-02 09:11:39 -07:00
Daniel Lubarov
f2f05952ab MPT hashing logic, part 2 2022-10-01 20:02:42 -07:00
Daniel Lubarov
12247047ae MPT hashing logic, part 1 2022-09-30 17:02:25 -07:00
Daniel Lubarov
5555085c4c MPT read for extension nodes 2022-09-27 21:41:22 -07:00
Daniel Lubarov
0e48d58147 Finish MPT read logic 2022-09-26 19:13:17 -07:00
Daniel Lubarov
c7b03cfe9a More MPT logic 2022-09-24 20:49:19 -07:00
Daniel Lubarov
37d92b55ac Basic MPT logic
For now this contains most of the basic framework/structure. Logic for things like insertions will come later.
2022-09-22 11:25:37 -07:00