-
Notifications
You must be signed in to change notification settings - Fork 169
feat(tools,forks): Extend EEST to support EIP-7928 payload #1866
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: feat/block-access-list
Are you sure you want to change the base?
Changes from 9 commits
4172364
0723798
fc4b64e
9fcf163
3c19014
d79a022
ecd4047
1ad04f0
c990f17
02c43c2
64a3a99
8b1275b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -114,6 +114,10 @@ class Environment(EnvironmentGeneric[ZeroPaddedHexNumber]): | |||||||||||||||||||||||||
withdrawals: List[Withdrawal] | None = Field(None) | ||||||||||||||||||||||||||
extra_data: Bytes = Field(Bytes(b"\x00"), exclude=True) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
# EIP-7928: Block-level access lists | ||||||||||||||||||||||||||
bal_hash: Hash | None = Field(None) | ||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel this belongs to the
If we put it in execution-spec-tests/src/ethereum_test_specs/blockchain.py Lines 522 to 533 in 485ff27
and then even verify it during the test by using header_verify as in this example here.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @marioevz I see this differently. The test supplies the following to the client as part of a block:
In the PR (1) and (2) is part of a test. (3) is computed by the framework from (2). State transitionThe client's state transition function takes all three to produce a block. In addition to executing the transactions, the client:
The Client and NOT test verifies hashThe client MUST reject the block if computed hash does not match the provided one. ref: spec If hash is not supplied as an input to the client it will not be able to perform this check. Hence its inclusion in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let me know if I misunderstood anything in this flow. We are trying to fill tests here to generate a test fixture with a built block to then test against clients. So we are essentially testing the EL's ability to locally build a valid block when we're filling tests. This block is then sent as a payload to a client via the test fixture. So I feel like we could actually perform the check at the
I think this comes into play when we're executing the test payload against a client. They will now have a filled block in the test fixture, with the hash that we validated is correct, and they should indeed correctly raise on an invalid hash according to the spec. Am I missing anything @raxhvl? Does this go along with what you were thinking @marioevz? |
||||||||||||||||||||||||||
block_access_lists: Bytes | None = Field(None) | ||||||||||||||||||||||||||
fselmo marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
@computed_field # type: ignore[misc] | ||||||||||||||||||||||||||
@cached_property | ||||||||||||||||||||||||||
def parent_hash(self) -> Hash | None: | ||||||||||||||||||||||||||
|
Uh oh!
There was an error while loading. Please reload this page.