core: change GetRawReceiptsByHash -> GetRawReceipts to resolve a conflict

This commit is contained in:
Felix Lange 2025-05-16 15:54:17 +02:00
parent b2cef4b45e
commit 818b10c990
5 changed files with 17 additions and 12 deletions

View file

@ -234,9 +234,17 @@ func (bc *BlockChain) GetReceiptsByHash(hash common.Hash) types.Receipts {
return receipts return receipts
} }
// GetRawReceiptsByHash retrieves the receipts for all transactions in a given block // GetRawReceipts retrieves the receipts for all transactions in a given block
// without deriving the internal fields and the Bloom. // without deriving the internal fields and the Bloom.
func (bc *BlockChain) GetRawReceiptsByHash(hash common.Hash) rlp.RawValue { func (bc *BlockChain) GetRawReceipts(hash common.Hash, number uint64) types.Receipts {
if receipts, ok := bc.receiptsCache.Get(hash); ok {
return receipts
}
return rawdb.ReadRawReceipts(bc.db, hash, number)
}
// GetReceiptsRLP retrieves the receipts of a block.
func (bc *BlockChain) GetReceiptsRLP(hash common.Hash) rlp.RawValue {
number := rawdb.ReadHeaderNumber(bc.db, hash) number := rawdb.ReadHeaderNumber(bc.db, hash)
if number == nil { if number == nil {
return nil return nil

View file

@ -29,7 +29,7 @@ type blockchain interface {
GetHeader(hash common.Hash, number uint64) *types.Header GetHeader(hash common.Hash, number uint64) *types.Header
GetCanonicalHash(number uint64) common.Hash GetCanonicalHash(number uint64) common.Hash
GetReceiptsByHash(hash common.Hash) types.Receipts GetReceiptsByHash(hash common.Hash) types.Receipts
GetRawReceiptsByHash(hash common.Hash) types.Receipts GetRawReceipts(hash common.Hash, number uint64) types.Receipts
} }
// ChainView represents an immutable view of a chain with a block id and a set // ChainView represents an immutable view of a chain with a block id and a set
@ -117,7 +117,7 @@ func (cv *ChainView) RawReceipts(number uint64) types.Receipts {
log.Error("Chain view: block hash unavailable", "number", number, "head", cv.headNumber) log.Error("Chain view: block hash unavailable", "number", number, "head", cv.headNumber)
return nil return nil
} }
return cv.chain.GetRawReceiptsByHash(blockHash) return cv.chain.GetRawReceipts(blockHash, number)
} }
// SharedRange returns the block range shared by two chain views. // SharedRange returns the block range shared by two chain views.

View file

@ -515,7 +515,7 @@ func (tc *testChain) GetReceiptsByHash(hash common.Hash) types.Receipts {
return tc.receipts[hash] return tc.receipts[hash]
} }
func (tc *testChain) GetRawReceiptsByHash(hash common.Hash) types.Receipts { func (tc *testChain) GetRawReceipts(hash common.Hash, number uint64) types.Receipts {
tc.lock.RLock() tc.lock.RLock()
defer tc.lock.RUnlock() defer tc.lock.RUnlock()

View file

@ -80,11 +80,8 @@ func (b *testBackend) GetReceiptsByHash(hash common.Hash) types.Receipts {
return r return r
} }
func (b *testBackend) GetRawReceiptsByHash(hash common.Hash) types.Receipts { func (b *testBackend) GetRawReceipts(hash common.Hash, number uint64) types.Receipts {
if number := rawdb.ReadHeaderNumber(b.db, hash); number != nil { return rawdb.ReadRawReceipts(b.db, hash, number)
return rawdb.ReadRawReceipts(b.db, hash, *number)
}
return nil
} }
func (b *testBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error) { func (b *testBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error) {

View file

@ -282,7 +282,7 @@ func ServiceGetReceiptsQuery68(chain *core.BlockChain, query GetReceiptsRequest)
break break
} }
// Retrieve the requested block's receipts // Retrieve the requested block's receipts
results := chain.GetRawReceiptsByHash(hash) results := chain.GetReceiptsRLP(hash)
if results == nil { if results == nil {
if header := chain.GetHeaderByHash(hash); header == nil || header.ReceiptHash != types.EmptyRootHash { if header := chain.GetHeaderByHash(hash); header == nil || header.ReceiptHash != types.EmptyRootHash {
continue continue
@ -319,7 +319,7 @@ func serviceGetReceiptsQuery69(chain *core.BlockChain, query GetReceiptsRequest)
break break
} }
// Retrieve the requested block's receipts // Retrieve the requested block's receipts
results := chain.GetRawReceiptsByHash(hash) results := chain.GetReceiptsRLP(hash)
if results == nil { if results == nil {
if header := chain.GetHeaderByHash(hash); header == nil || header.ReceiptHash != types.EmptyRootHash { if header := chain.GetHeaderByHash(hash); header == nil || header.ReceiptHash != types.EmptyRootHash {
continue continue