aboutsummaryrefslogtreecommitdiff
path: root/eth/filters
diff options
context:
space:
mode:
authorAaron Buchwald <aaron.buchwald56@gmail.com>2020-10-16 15:22:23 -0400
committerAaron Buchwald <aaron.buchwald56@gmail.com>2020-10-16 15:22:23 -0400
commit77a2d0f97f142261a351f0cdcc1d001d0cead4cf (patch)
tree31b5eb91d754c6c46f8d749d7a08c17d3cc9ec13 /eth/filters
parent3b3cf1aeaa1eb41f64383e2a18c00240ffde7d2b (diff)
Clean up use of pending/latest meta block numbers
Diffstat (limited to 'eth/filters')
-rw-r--r--eth/filters/api.go5
-rw-r--r--eth/filters/filter.go2
2 files changed, 7 insertions, 0 deletions
diff --git a/eth/filters/api.go b/eth/filters/api.go
index 71e6454..9ee96af 100644
--- a/eth/filters/api.go
+++ b/eth/filters/api.go
@@ -330,6 +330,8 @@ func (api *PublicFilterAPI) GetLogs(ctx context.Context, crit FilterCriteria) ([
filter = NewBlockFilter(api.backend, *crit.BlockHash, crit.Addresses, crit.Topics)
} else {
// Convert the RPC block numbers into internal representations
+ // LatestBlockNumber is left in place here to be handled
+ // correctly within NewRangeFilter
begin := rpc.LatestBlockNumber.Int64()
if crit.FromBlock != nil {
begin = crit.FromBlock.Int64()
@@ -385,6 +387,9 @@ func (api *PublicFilterAPI) GetFilterLogs(ctx context.Context, id rpc.ID) ([]*ty
filter = NewBlockFilter(api.backend, *f.crit.BlockHash, f.crit.Addresses, f.crit.Topics)
} else {
// Convert the RPC block numbers into internal representations
+ // Leave LatestBlockNumber in place here as the defaults
+ // Should be handled correctly as request for the last
+ // accepted block instead throughout all APIs.
begin := rpc.LatestBlockNumber.Int64()
if f.crit.FromBlock != nil {
begin = f.crit.FromBlock.Int64()
diff --git a/eth/filters/filter.go b/eth/filters/filter.go
index 48a76c7..3c18e6e 100644
--- a/eth/filters/filter.go
+++ b/eth/filters/filter.go
@@ -129,6 +129,8 @@ func (f *Filter) Logs(ctx context.Context) ([]*types.Log, error) {
return f.blockLogs(ctx, header)
}
// Figure out the limits of the filter range
+ // LatestBlockNumber is handled appropriately in HeaderByNumber
+ // so it is left in place here.
header, _ := f.backend.HeaderByNumber(ctx, rpc.LatestBlockNumber)
if header == nil {
return nil, nil