Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EIP-7702: Set EOA account code #961

Merged
merged 11 commits into from
Feb 13, 2025
Merged

EIP-7702: Set EOA account code #961

merged 11 commits into from
Feb 13, 2025

Conversation

gumb0
Copy link
Member

@gumb0 gumb0 commented Jul 25, 2024

Implement EIP-7702: Set EOA account code. This EIP adds new transaction type set-code that permanently sets the code delegation for an EOA.

Requires new EVMC flag: ethereum/evmc#720.

@gumb0 gumb0 self-assigned this Jul 25, 2024
Copy link

codecov bot commented Jul 25, 2024

Codecov Report

Attention: Patch coverage is 97.54098% with 9 lines in your changes missing coverage. Please review.

Project coverage is 94.37%. Comparing base (14e62c4) to head (4358516).
Report is 12 commits behind head on master.

Files with missing lines Patch % Lines
lib/evmone/instructions_calls.cpp 85.18% 4 Missing ⚠️
test/state/errors.hpp 50.00% 2 Missing ⚠️
test/state/state.cpp 96.55% 2 Missing ⚠️
test/statetest/statetest_loader.cpp 93.75% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #961      +/-   ##
==========================================
+ Coverage   94.29%   94.37%   +0.07%     
==========================================
  Files         159      162       +3     
  Lines       17344    17687     +343     
==========================================
+ Hits        16355    16692     +337     
- Misses        989      995       +6     
Flag Coverage Δ
eof_execution_spec_tests 15.79% <11.20%> (-0.13%) ⬇️
ethereum_tests 26.53% <9.83%> (-0.38%) ⬇️
ethereum_tests_silkpre 18.72% <8.00%> (-0.25%) ⬇️
execution_spec_tests 22.04% <30.87%> (+0.23%) ⬆️
unittests 89.25% <91.25%> (+0.20%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
lib/evmone/delegation.cpp 100.00% <100.00%> (ø)
lib/evmone/delegation.hpp 100.00% <100.00%> (ø)
test/state/host.cpp 100.00% <100.00%> (ø)
test/state/precompiles_stubs.cpp 99.76% <100.00%> (+<0.01%) ⬆️
test/state/transaction.cpp 95.45% <100.00%> (+1.16%) ⬆️
test/state/transaction.hpp 100.00% <ø> (ø)
test/statetest/statetest_runner.cpp 96.87% <ø> (-0.27%) ⬇️
test/unittests/evm_eof_calls_test.cpp 100.00% <100.00%> (ø)
test/unittests/state_transition.cpp 98.63% <100.00%> (+0.14%) ⬆️
test/unittests/state_transition_eip7702_test.cpp 100.00% <100.00%> (ø)
... and 4 more

@gumb0 gumb0 force-pushed the eip-7702 branch 4 times, most recently from 5e9c460 to 7f9d123 Compare July 29, 2024 13:27
@gumb0 gumb0 changed the title WIP EIP-7702 implementation EIP-7702: Set EOA account code Jul 29, 2024
@gumb0 gumb0 force-pushed the eip-7702 branch 9 times, most recently from ccc3776 to 90c05f4 Compare August 2, 2024 18:22
@gumb0 gumb0 force-pushed the eip-7702 branch 8 times, most recently from 056e8ae to a919431 Compare August 8, 2024 09:31
@gumb0 gumb0 force-pushed the eip-7702 branch 6 times, most recently from e19a72a to 3ff5253 Compare August 19, 2024 16:26
@chfast chfast changed the title EIP-7702: Set EOA account code [devnet-6 version] EIP-7702: Set EOA account code Feb 10, 2025
@chfast chfast force-pushed the eip-7702 branch 3 times, most recently from 688178d to 03c0d96 Compare February 10, 2025 17:39
test/state/state.cpp Outdated Show resolved Hide resolved
Copy link
Member

@chfast chfast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some artificial enviroments where this can crash:

  • having invalid delegation designator in state,
  • having a precompile with code.

Do you think we should add sanity checks for these when loading tests?

@chfast chfast self-assigned this Feb 10, 2025
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
test/state/state.cpp Outdated Show resolved Hide resolved
@gumb0
Copy link
Member Author

gumb0 commented Feb 12, 2025

There are some artificial enviroments where this can crash:

  • having invalid delegation designator in state,
  • having a precompile with code.

Do you think we should add sanity checks for these when loading tests?

I think it makes sense to add in a separate PR

test/state/state.cpp Outdated Show resolved Hide resolved
@chfast chfast merged commit 0175a1f into master Feb 13, 2025
25 checks passed
@chfast chfast deleted the eip-7702 branch February 13, 2025 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Prague Changes for Prague upgrade
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants