From 02158d06d9ec9d019385bef19a2c4fe70d58c6f4 Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Mon, 27 Feb 2023 19:00:45 +0800 Subject: [PATCH 1/2] core: fix blockHash for eth_getLogs, eth_getFilterLogs, eth_getTransactionReceipt (#208) --- core/database_util.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/database_util.go b/core/database_util.go index 58a0865a6b..8e690898a3 100644 --- a/core/database_util.go +++ b/core/database_util.go @@ -22,10 +22,10 @@ import ( "encoding/json" "errors" "fmt" - "github.com/XinFinOrg/XDPoSChain/core/rawdb" "math/big" "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/core/rawdb" "github.com/XinFinOrg/XDPoSChain/core/types" "github.com/XinFinOrg/XDPoSChain/ethdb" "github.com/XinFinOrg/XDPoSChain/log" @@ -259,6 +259,10 @@ func GetBlockReceipts(db DatabaseReader, hash common.Hash, number uint64) types. receipts := make(types.Receipts, len(storageReceipts)) for i, receipt := range storageReceipts { receipts[i] = (*types.Receipt)(receipt) + for _, log := range receipts[i].Logs { + // update BlockHash to fix #208 + log.BlockHash = hash + } } return receipts } From 9e860e4c3f635aafbd182e7dd77471e2552003ab Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Wed, 1 Mar 2023 18:00:22 +0800 Subject: [PATCH 2/2] eth/filters: fix blockHash in eth_getfilterchanges (#208) --- eth/filters/api.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/eth/filters/api.go b/eth/filters/api.go index ef26145873..aef9adba10 100644 --- a/eth/filters/api.go +++ b/eth/filters/api.go @@ -28,6 +28,7 @@ import ( ethereum "github.com/XinFinOrg/XDPoSChain" "github.com/XinFinOrg/XDPoSChain/common" "github.com/XinFinOrg/XDPoSChain/common/hexutil" + "github.com/XinFinOrg/XDPoSChain/core" "github.com/XinFinOrg/XDPoSChain/core/types" "github.com/XinFinOrg/XDPoSChain/ethdb" "github.com/XinFinOrg/XDPoSChain/event" @@ -418,6 +419,10 @@ func (api *PublicFilterAPI) GetFilterChanges(id rpc.ID) (interface{}, error) { case LogsSubscription: logs := f.logs f.logs = nil + for _, log := range logs { + // update BlockHash to fix #208 + log.BlockHash = core.GetCanonicalHash(api.chainDb, log.BlockNumber) + } return returnLogs(logs), nil } }