-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
chore: introduce versioned ExecutionPayload
#4400
Conversation
Codecov Report
... and 14 files with indirect coverage changes
Flags with carried forward coverage won't be shown. Click here to find out more.
|
60aa9be
to
9f4cc30
Compare
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.
cool!
because we want standalone rpc types, we want the TryFrom conversions separately, I think in the rpc compat crate
pub async fn send_new_payload_retry_on_syncing<T: Clone + Into<ExecutionPayload>>( | ||
&self, | ||
payload: ExecutionPayloadV1, | ||
payload: T, |
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.
the clone is not required if we call into first
@@ -226,6 +286,21 @@ impl From<SealedBlock> for ExecutionPayloadV2 { | |||
} | |||
} | |||
|
|||
impl TryFrom<ExecutionPayloadV2> for Block { |
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.
we want this as functions instead because
we want standalone rpc types eventually
see #4186
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.
lgtm
1ae567f
to
2ef5cf6
Compare
This refactors the
ExecutionPayloadEnvelope
type into version-specific types, which no longer haveOption
s for post-V1 fields. These types should map to the types from the engine spec.Solves the
TODO
:Specifically this introduces:
ExecutionPayloadV1
ExecutionPayloadV2
ExecutionPayloadV3
ExecutionPayloadEnvelopeV2
ExecutionPayloadEnvelopeV3