Fix panic on getting safe block

Since bor doesn't have "safe" block, the api should always return null when requested safe block.
This commit is contained in:
Jerry 2024-10-08 11:51:33 -07:00
parent 2a7c58a616
commit a7578a3cea
3 changed files with 11 additions and 1 deletions

View file

@ -157,7 +157,11 @@ func (b *EthAPIBackend) BlockByNumber(ctx context.Context, number rpc.BlockNumbe
if number == rpc.SafeBlockNumber { if number == rpc.SafeBlockNumber {
header := b.eth.blockchain.CurrentSafeBlock() header := b.eth.blockchain.CurrentSafeBlock()
return b.eth.blockchain.GetBlock(header.Hash(), header.Number.Uint64()), nil if header == nil {
return nil, errors.New("safe block not found")
} else {
return b.eth.blockchain.GetBlock(header.Hash(), header.Number.Uint64()), nil
}
} }
return b.eth.blockchain.GetBlockByNumber(uint64(number)), nil return b.eth.blockchain.GetBlockByNumber(uint64(number)), nil

View file

@ -1818,6 +1818,11 @@ func TestRPCGetBlockOrHeader(t *testing.T) {
fullTx: true, fullTx: true,
file: "hash-pending-fullTx", file: "hash-pending-fullTx",
}, },
// 26. safe block
{
blockNumber: rpc.SafeBlockNumber,
file: "tag-safe",
},
} }
for i, tt := range testSuite { for i, tt := range testSuite {

View file

@ -0,0 +1 @@
null