@@ -566,6 +566,71 @@ func TestJsonMarshalUnmarshal(t *testing.T) {
566
566
require .DeepEqual (t , bytesutil .PadTo ([]byte ("address2" ), 20 ), payloadPb .Withdrawals [1 ].Address )
567
567
require .Equal (t , uint64 (200 ), payloadPb .Withdrawals [1 ].Amount )
568
568
})
569
+ t .Run ("execution block with deneb blob data" , func (t * testing.T ) {
570
+ baseFeePerGas := big .NewInt (1770307273 )
571
+ blobGas := uint64 (3000 )
572
+ excessGas := uint64 (7000 )
573
+ want := & gethtypes.Header {
574
+ Number : big .NewInt (1 ),
575
+ ParentHash : common .BytesToHash ([]byte ("parent" )),
576
+ UncleHash : common .BytesToHash ([]byte ("uncle" )),
577
+ Coinbase : common .BytesToAddress ([]byte ("coinbase" )),
578
+ Root : common .BytesToHash ([]byte ("uncle" )),
579
+ TxHash : common .BytesToHash ([]byte ("txHash" )),
580
+ ReceiptHash : common .BytesToHash ([]byte ("receiptHash" )),
581
+ Bloom : gethtypes .BytesToBloom ([]byte ("bloom" )),
582
+ Difficulty : big .NewInt (2 ),
583
+ GasLimit : 3 ,
584
+ GasUsed : 4 ,
585
+ Time : 5 ,
586
+ BaseFee : baseFeePerGas ,
587
+ Extra : []byte ("extraData" ),
588
+ MixDigest : common .BytesToHash ([]byte ("mix" )),
589
+ Nonce : gethtypes .EncodeNonce (6 ),
590
+ BlobGasUsed : & blobGas ,
591
+ ExcessBlobGas : & excessGas ,
592
+ }
593
+ enc , err := json .Marshal (want )
594
+ require .NoError (t , err )
595
+
596
+ payloadItems := make (map [string ]interface {})
597
+ require .NoError (t , json .Unmarshal (enc , & payloadItems ))
598
+
599
+ blockHash := want .Hash ()
600
+ payloadItems ["hash" ] = blockHash .String ()
601
+ payloadItems ["totalDifficulty" ] = "0x393a2e53de197c"
602
+ payloadItems ["transactions" ] = []string {"0xd57870623ea84ac3e2ffafbee9417fd1263b825b1107b8d606c25460dabeb693" }
603
+
604
+ encodedPayloadItems , err := json .Marshal (payloadItems )
605
+ require .NoError (t , err )
606
+
607
+ payloadPb := & enginev1.ExecutionBlock {}
608
+ require .NoError (t , json .Unmarshal (encodedPayloadItems , payloadPb ))
609
+
610
+ require .DeepEqual (t , blockHash , payloadPb .Hash )
611
+ require .DeepEqual (t , want .Number , payloadPb .Number )
612
+ require .DeepEqual (t , want .ParentHash , payloadPb .ParentHash )
613
+ require .DeepEqual (t , want .UncleHash , payloadPb .UncleHash )
614
+ require .DeepEqual (t , want .Coinbase , payloadPb .Coinbase )
615
+ require .DeepEqual (t , want .Root , payloadPb .Root )
616
+ require .DeepEqual (t , want .TxHash , payloadPb .TxHash )
617
+ require .DeepEqual (t , want .ReceiptHash , payloadPb .ReceiptHash )
618
+ require .DeepEqual (t , want .Bloom , payloadPb .Bloom )
619
+ require .DeepEqual (t , want .Difficulty , payloadPb .Difficulty )
620
+ require .DeepEqual (t , payloadItems ["totalDifficulty" ], payloadPb .TotalDifficulty )
621
+ require .DeepEqual (t , want .GasUsed , payloadPb .GasUsed )
622
+ require .DeepEqual (t , want .GasLimit , payloadPb .GasLimit )
623
+ require .DeepEqual (t , want .Time , payloadPb .Time )
624
+ require .DeepEqual (t , want .BaseFee , payloadPb .BaseFee )
625
+ require .DeepEqual (t , want .Extra , payloadPb .Extra )
626
+ require .DeepEqual (t , want .MixDigest , payloadPb .MixDigest )
627
+ require .DeepEqual (t , want .Nonce , payloadPb .Nonce )
628
+ require .DeepEqual (t , want .BlobGasUsed , payloadPb .BlobGasUsed )
629
+ require .DeepEqual (t , want .ExcessBlobGas , payloadPb .ExcessBlobGas )
630
+
631
+ // Expect no transaction objects in the unmarshaled data.
632
+ require .Equal (t , 0 , len (payloadPb .Transactions ))
633
+ })
569
634
}
570
635
571
636
func TestPayloadIDBytes_MarshalUnmarshalJSON (t * testing.T ) {
0 commit comments