mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
fix(rpc-types): do not flatten in ExecutionPayloadV3 (#4492)
This commit is contained in:
@ -98,7 +98,7 @@ impl From<BuiltPayload> for ExecutionPayloadEnvelopeV3 {
|
||||
let BuiltPayload { block, fees, sidecars, .. } = value;
|
||||
|
||||
ExecutionPayloadEnvelopeV3 {
|
||||
payload_inner: block.into(),
|
||||
execution_payload: block.into(),
|
||||
block_value: fees,
|
||||
// From the engine API spec:
|
||||
//
|
||||
|
||||
@ -107,8 +107,7 @@ impl ExecutionPayloadEnvelopeV2 {
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct ExecutionPayloadEnvelopeV3 {
|
||||
/// Execution payload V3
|
||||
#[serde(flatten)]
|
||||
pub payload_inner: ExecutionPayloadV3,
|
||||
pub execution_payload: ExecutionPayloadV3,
|
||||
/// The expected value to be received by the feeRecipient in wei
|
||||
pub block_value: U256,
|
||||
/// The blobs, commitments, and proofs associated with the executed payload.
|
||||
@ -891,4 +890,12 @@ mod tests {
|
||||
let payload: ExecutionPayloadV3 = serde_json::from_str(s).unwrap();
|
||||
assert_eq!(serde_json::to_string(&payload).unwrap(), s);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn serde_roundtrip_execution_payload_envelope_v3() {
|
||||
// pulled from a geth response getPayloadV3 in hive tests
|
||||
let response = r#"{"executionPayload":{"parentHash":"0xe927a1448525fb5d32cb50ee1408461a945ba6c39bd5cf5621407d500ecc8de9","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0x10f8a0830000e8edef6d00cc727ff833f064b1950afd591ae41357f97e543119","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0xe0d8b4521a7da1582a713244ffb6a86aa1726932087386e2dc7973f43fc6cb24","blockNumber":"0x1","gasLimit":"0x2ffbd2","gasUsed":"0x0","timestamp":"0x1235","extraData":"0xd883010d00846765746888676f312e32312e30856c696e7578","baseFeePerGas":"0x342770c0","blockHash":"0x44d0fa5f2f73a938ebb96a2a21679eb8dea3e7b7dd8fd9f35aa756dda8bf0a8a","transactions":[],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0x0","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"shouldOverrideBuilder":false}"#;
|
||||
let envelope: ExecutionPayloadEnvelopeV3 = serde_json::from_str(response).unwrap();
|
||||
assert_eq!(serde_json::to_string(&envelope).unwrap(), response);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user