Skip to content

Commit d0bc639

Browse files
authored
fix: decode payload transactions with EIP-2718 exact format (#219)
Engine API specifies transactions as opaque EIP-2718 encoded bytes, not devp2p wire format. Using network_decode here could silently drop typed transactions (EIP-1559, EIP-2930, EvNode 0x76/0x78) whose bytes are valid EIP-2718 but lack the wire-format RLP string wrapping. The executor already uses decode_2718_exact when validating the same transactions via ExecutionData. This aligns the payload builder with executor semantics, closing a potential consensus mismatch where build-time acceptance diverges from validation-time rules.
1 parent fb3fbd0 commit d0bc639

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

crates/node/src/payload_service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ where
223223
.unwrap_or_default()
224224
.into_iter()
225225
.filter_map(|tx_bytes| {
226-
match TransactionSigned::network_decode(&mut tx_bytes.as_ref()) {
226+
match TransactionSigned::decode_2718_exact(tx_bytes.as_ref()) {
227227
Ok(tx) => Some(tx),
228228
Err(err) => {
229229
tracing::warn!(

0 commit comments

Comments
 (0)