From 07f9741e8a8609f74cbea03141ba3e9a4d48d930 Mon Sep 17 00:00:00 2001 From: Shivam Sharma Date: Mon, 21 Nov 2022 14:53:22 +0530 Subject: [PATCH 1/3] add : bor.logs in custom GetFilterLogs --- eth/filters/api.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/eth/filters/api.go b/eth/filters/api.go index 2faf19aa79..5272b59480 100644 --- a/eth/filters/api.go +++ b/eth/filters/api.go @@ -416,10 +416,19 @@ func (api *PublicFilterAPI) GetFilterLogs(ctx context.Context, id rpc.ID) ([]*ty return nil, fmt.Errorf("filter not found") } + borConfig := api.chainConfig.Bor + var filter *Filter + var borLogsFilter *BorBlockLogsFilter + if f.crit.BlockHash != nil { // Block filter requested, construct a single-shot filter filter = NewBlockFilter(api.backend, *f.crit.BlockHash, f.crit.Addresses, f.crit.Topics) + + // Block bor filter + if api.borLogs { + borLogsFilter = NewBorBlockLogsFilter(api.backend, borConfig, *f.crit.BlockHash, f.crit.Addresses, f.crit.Topics) + } } else { // Convert the RPC block numbers into internal representations begin := rpc.LatestBlockNumber.Int64() @@ -432,12 +441,27 @@ func (api *PublicFilterAPI) GetFilterLogs(ctx context.Context, id rpc.ID) ([]*ty } // Construct the range filter filter = NewRangeFilter(api.backend, begin, end, f.crit.Addresses, f.crit.Topics) + + if api.borLogs { + borLogsFilter = NewBorBlockLogsRangeFilter(api.backend, borConfig, begin, end, f.crit.Addresses, f.crit.Topics) + } } // Run the filter and return all the logs logs, err := filter.Logs(ctx) if err != nil { return nil, err } + + if borLogsFilter != nil { + // Run the filter and return all the logs + borBlockLogs, err := borLogsFilter.Logs(ctx) + if err != nil { + return nil, err + } + + return returnLogs(types.MergeBorLogs(logs, borBlockLogs)), err + } + return returnLogs(logs), nil } From b6d127647437710f1fddcb9b8eafe52ecda6c479 Mon Sep 17 00:00:00 2001 From: Shivam Sharma Date: Mon, 21 Nov 2022 15:16:28 +0530 Subject: [PATCH 2/3] fix : lint --- eth/filters/api.go | 1 + 1 file changed, 1 insertion(+) diff --git a/eth/filters/api.go b/eth/filters/api.go index 5272b59480..1997b09811 100644 --- a/eth/filters/api.go +++ b/eth/filters/api.go @@ -419,6 +419,7 @@ func (api *PublicFilterAPI) GetFilterLogs(ctx context.Context, id rpc.ID) ([]*ty borConfig := api.chainConfig.Bor var filter *Filter + var borLogsFilter *BorBlockLogsFilter if f.crit.BlockHash != nil { From 4cd58f176a1e00cb78b7dd903b08a59e9a63607e Mon Sep 17 00:00:00 2001 From: Shivam Sharma Date: Mon, 21 Nov 2022 15:28:34 +0530 Subject: [PATCH 3/3] fix : minor fix --- eth/filters/api.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eth/filters/api.go b/eth/filters/api.go index 1997b09811..ad24bf34dd 100644 --- a/eth/filters/api.go +++ b/eth/filters/api.go @@ -460,7 +460,7 @@ func (api *PublicFilterAPI) GetFilterLogs(ctx context.Context, id rpc.ID) ([]*ty return nil, err } - return returnLogs(types.MergeBorLogs(logs, borBlockLogs)), err + return returnLogs(types.MergeBorLogs(logs, borBlockLogs)), nil } return returnLogs(logs), nil