-
Notifications
You must be signed in to change notification settings - Fork 510
Implement EIP-5920: PAY #8382
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
base: master
Are you sure you want to change the base?
Implement EIP-5920: PAY #8382
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request implements EIP-5920 by introducing the PAY opcode into the EVM. Key changes include adding an IsEip5920Enabled flag in several spec interfaces and classes, registering the PAY opcode in the opcode lookup table, and providing a full PAY instruction implementation.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
src/Nethermind/Nethermind.Specs/ReleaseSpec.cs | Added IsEip5920Enabled property. |
src/Nethermind/Nethermind.Specs.Test/OverridableReleaseSpec.cs | Added forwarding of the IsEip5920Enabled flag. |
src/Nethermind/Evm/Instructions/EvmInstructions.cs | Registers the PAY opcode when enabled. |
src/Nethermind/Evm/Instructions/EvmInstructions.Call.cs | Implements the PAY instruction logic. |
src/Nethermind/Evm/Instruction.cs | Adds PAY enum entry. |
src/Nethermind/Core/Specs/ReleaseSpecDecorator.cs | Adds IsEip5920Enabled property for spec decoration. |
src/Nethermind/Core/Specs/IReleaseSpec.cs | Introduces IsEip5920Enabled in the spec interface. |
Comments suppressed due to low confidence (1)
src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.Call.cs:417
- [nitpick] For consistency with other checks in the method, consider using !transferValue.IsZero instead of transferValue != 0.
else if (spec.ClearEmptyAccountWhenTouched && transferValue != 0 && state.IsDeadAccount(target))
https://eips.ethereum.org/EIPS/eip-5920
Changes
Types of changes
What types of changes does your code introduce?
Testing
Requires testing
If yes, did you write tests?