core: only cache non-nil receipts from the database (#18447)

receipts may be null for very short time in some condition. For this case, we should not add the null value into cache. Because you will not get the right result if you keep requesting that receipt.
This commit is contained in:
silence 2019-01-17 23:49:12 +08:00 committed by Péter Szilágyi
parent 19bfcbf911
commit 66f0c464cc
1 changed files with 3 additions and 0 deletions

View File

@ -644,6 +644,9 @@ func (bc *BlockChain) GetReceiptsByHash(hash common.Hash) types.Receipts {
return nil
}
receipts := rawdb.ReadReceipts(bc.db, hash, *number)
if receipts == nil {
return nil
}
bc.receiptsCache.Add(hash, receipts)
return receipts
}