Linda Guiga
d70d67fad4
Remove copy on write for mpt_insert and mpt_delete
2023-08-18 16:53:40 +01:00
wborgeaud
564864eac3
Remove parts of the copy-on-write logic ( #1096 )
...
* Remove parts of the copy-on-write logic
* Minor
2023-06-14 14:46:49 +02:00
wborgeaud
bfd6834dc2
Journal of state changes + state reversion ( #1028 )
...
* Add segments and global metadata
* Add journal asm files
* Start revert
* Revert access lists
* Revert balance transfer
* Revert code change
* Revert nonce change
* Revert storage change
* Checkpoints
* Add some journal entries
* Add some journal entries
* Add some journal entries
* Fix revert
* Checkpoint in sys_call
* Minor
* PR feedback
* More checkpoints
* Fix checkpoint check
* Minor
* Checkpoints in precompiles
* Storage change checkpoint
* Add touched addresses
* Add touched addresses revert
* Add touched addresses journal events
* Delete all empty touch addresses
* Implement selfdestruct
* Update aggregator.rs
2023-05-12 13:04:46 +02:00
wborgeaud
74ba303255
MPT deletion ( #1025 )
...
* First try
* Fixes
* Fix sstore
* Comments
* Clippy
* Fix aggregator.rs
* PR feedback
2023-05-11 14:56:10 +02:00
wborgeaud
202985b24f
Fix CALL gas ( #1030 )
...
* 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.
2023-05-11 14:45:32 +02:00
wborgeaud
944d4a2460
SSTORE refund ( #1018 )
...
* SSTORE refund
* SSTORE refund
* Minor
2023-05-11 14:18:34 +02:00
wborgeaud
ab721fa340
SSTORE gas ( #1007 )
...
* Update storage access list and sload
* Add noop for sys_sstore
* Comments
* Fix access list test
2023-04-27 15:42:09 +02:00
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