@@ -707,6 +707,9 @@ func (b *Block) resolveHeader(ctx context.Context) (*types.Header, error) {
707707 if err != nil {
708708 return nil , err
709709 }
710+ if b .header == nil {
711+ return nil , nil
712+ }
710713 if b .hash == (common.Hash {}) {
711714 b .hash = b .header .Hash ()
712715 }
@@ -731,7 +734,7 @@ func (b *Block) resolveReceipts(ctx context.Context) ([]*types.Receipt, error) {
731734
732735func (b * Block ) Number (ctx context.Context ) (hexutil.Uint64 , error ) {
733736 header , err := b .resolveHeader (ctx )
734- if err != nil {
737+ if err != nil || header == nil {
735738 return 0 , err
736739 }
737740
@@ -746,23 +749,23 @@ func (b *Block) Hash(ctx context.Context) (common.Hash, error) {
746749
747750func (b * Block ) GasLimit (ctx context.Context ) (hexutil.Uint64 , error ) {
748751 header , err := b .resolveHeader (ctx )
749- if err != nil {
752+ if err != nil || header == nil {
750753 return 0 , err
751754 }
752755 return hexutil .Uint64 (header .GasLimit ), nil
753756}
754757
755758func (b * Block ) GasUsed (ctx context.Context ) (hexutil.Uint64 , error ) {
756759 header , err := b .resolveHeader (ctx )
757- if err != nil {
760+ if err != nil || header == nil {
758761 return 0 , err
759762 }
760763 return hexutil .Uint64 (header .GasUsed ), nil
761764}
762765
763766func (b * Block ) BaseFeePerGas (ctx context.Context ) (* hexutil.Big , error ) {
764767 header , err := b .resolveHeader (ctx )
765- if err != nil {
768+ if err != nil || header == nil {
766769 return nil , err
767770 }
768771 if header .BaseFee == nil {
@@ -773,7 +776,7 @@ func (b *Block) BaseFeePerGas(ctx context.Context) (*hexutil.Big, error) {
773776
774777func (b * Block ) NextBaseFeePerGas (ctx context.Context ) (* hexutil.Big , error ) {
775778 header , err := b .resolveHeader (ctx )
776- if err != nil {
779+ if err != nil || header == nil {
777780 return nil , err
778781 }
779782 chaincfg := b .r .backend .ChainConfig ()
@@ -811,63 +814,63 @@ func (b *Block) Parent(ctx context.Context) (*Block, error) {
811814
812815func (b * Block ) Difficulty (ctx context.Context ) (hexutil.Big , error ) {
813816 header , err := b .resolveHeader (ctx )
814- if err != nil {
817+ if err != nil || header == nil {
815818 return hexutil.Big {}, err
816819 }
817820 return hexutil .Big (* header .Difficulty ), nil
818821}
819822
820823func (b * Block ) Timestamp (ctx context.Context ) (hexutil.Uint64 , error ) {
821824 header , err := b .resolveHeader (ctx )
822- if err != nil {
825+ if err != nil || header == nil {
823826 return 0 , err
824827 }
825828 return hexutil .Uint64 (header .Time ), nil
826829}
827830
828831func (b * Block ) Nonce (ctx context.Context ) (hexutil.Bytes , error ) {
829832 header , err := b .resolveHeader (ctx )
830- if err != nil {
833+ if err != nil || header == nil {
831834 return hexutil.Bytes {}, err
832835 }
833836 return header .Nonce [:], nil
834837}
835838
836839func (b * Block ) MixHash (ctx context.Context ) (common.Hash , error ) {
837840 header , err := b .resolveHeader (ctx )
838- if err != nil {
841+ if err != nil || header == nil {
839842 return common.Hash {}, err
840843 }
841844 return header .MixDigest , nil
842845}
843846
844847func (b * Block ) TransactionsRoot (ctx context.Context ) (common.Hash , error ) {
845848 header , err := b .resolveHeader (ctx )
846- if err != nil {
849+ if err != nil || header == nil {
847850 return common.Hash {}, err
848851 }
849852 return header .TxHash , nil
850853}
851854
852855func (b * Block ) StateRoot (ctx context.Context ) (common.Hash , error ) {
853856 header , err := b .resolveHeader (ctx )
854- if err != nil {
857+ if err != nil || header == nil {
855858 return common.Hash {}, err
856859 }
857860 return header .Root , nil
858861}
859862
860863func (b * Block ) ReceiptsRoot (ctx context.Context ) (common.Hash , error ) {
861864 header , err := b .resolveHeader (ctx )
862- if err != nil {
865+ if err != nil || header == nil {
863866 return common.Hash {}, err
864867 }
865868 return header .ReceiptHash , nil
866869}
867870
868871func (b * Block ) OmmerHash (ctx context.Context ) (common.Hash , error ) {
869872 header , err := b .resolveHeader (ctx )
870- if err != nil {
873+ if err != nil || header == nil {
871874 return common.Hash {}, err
872875 }
873876 return header .UncleHash , nil
@@ -902,31 +905,31 @@ func (b *Block) Ommers(ctx context.Context) (*[]*Block, error) {
902905
903906func (b * Block ) ExtraData (ctx context.Context ) (hexutil.Bytes , error ) {
904907 header , err := b .resolveHeader (ctx )
905- if err != nil {
908+ if err != nil || header == nil {
906909 return hexutil.Bytes {}, err
907910 }
908911 return header .Extra , nil
909912}
910913
911914func (b * Block ) LogsBloom (ctx context.Context ) (hexutil.Bytes , error ) {
912915 header , err := b .resolveHeader (ctx )
913- if err != nil {
916+ if err != nil || header == nil {
914917 return hexutil.Bytes {}, err
915918 }
916919 return header .Bloom .Bytes (), nil
917920}
918921
919922func (b * Block ) RawHeader (ctx context.Context ) (hexutil.Bytes , error ) {
920923 header , err := b .resolveHeader (ctx )
921- if err != nil {
924+ if err != nil || header == nil {
922925 return hexutil.Bytes {}, err
923926 }
924927 return rlp .EncodeToBytes (header )
925928}
926929
927930func (b * Block ) Raw (ctx context.Context ) (hexutil.Bytes , error ) {
928931 block , err := b .resolve (ctx )
929- if err != nil {
932+ if err != nil || block == nil {
930933 return hexutil.Bytes {}, err
931934 }
932935 return rlp .EncodeToBytes (block )
@@ -958,7 +961,7 @@ func (a BlockNumberArgs) NumberOrLatest() rpc.BlockNumberOrHash {
958961
959962func (b * Block ) Miner (ctx context.Context , args BlockNumberArgs ) (* Account , error ) {
960963 header , err := b .resolveHeader (ctx )
961- if err != nil {
964+ if err != nil || header == nil {
962965 return nil , err
963966 }
964967 return & Account {
@@ -1035,7 +1038,7 @@ func (b *Block) OmmerAt(ctx context.Context, args struct{ Index Long }) (*Block,
10351038
10361039func (b * Block ) WithdrawalsRoot (ctx context.Context ) (* common.Hash , error ) {
10371040 header , err := b .resolveHeader (ctx )
1038- if err != nil {
1041+ if err != nil || header == nil {
10391042 return nil , err
10401043 }
10411044 // Pre-shanghai blocks
@@ -1068,7 +1071,7 @@ func (b *Block) Withdrawals(ctx context.Context) (*[]*Withdrawal, error) {
10681071
10691072func (b * Block ) BlobGasUsed (ctx context.Context ) (* hexutil.Uint64 , error ) {
10701073 header , err := b .resolveHeader (ctx )
1071- if err != nil {
1074+ if err != nil || header == nil {
10721075 return nil , err
10731076 }
10741077 if header .BlobGasUsed == nil {
@@ -1080,7 +1083,7 @@ func (b *Block) BlobGasUsed(ctx context.Context) (*hexutil.Uint64, error) {
10801083
10811084func (b * Block ) ExcessBlobGas (ctx context.Context ) (* hexutil.Uint64 , error ) {
10821085 header , err := b .resolveHeader (ctx )
1083- if err != nil {
1086+ if err != nil || header == nil {
10841087 return nil , err
10851088 }
10861089 if header .ExcessBlobGas == nil {
0 commit comments