diff --git a/eth/filters/filter.go b/eth/filters/filter.go index 04e11f0475..f31b9568cd 100644 --- a/eth/filters/filter.go +++ b/eth/filters/filter.go @@ -19,7 +19,6 @@ package filters import ( "context" "errors" - "fmt" "math" "math/big" "slices" @@ -147,7 +146,7 @@ func (f *Filter) Logs(ctx context.Context) ([]*types.Log, error) { return nil, err } if f.rangeLimit != 0 && (end-begin) > f.rangeLimit { - return nil, fmt.Errorf("exceed maximum block range: %d", f.rangeLimit) + return nil, invalidParamsErr("exceed maximum block range %d", f.rangeLimit) } return f.rangeLogs(ctx, begin, end) } diff --git a/eth/filters/filter_test.go b/eth/filters/filter_test.go index e7b1b08046..2c07fd1f2c 100644 --- a/eth/filters/filter_test.go +++ b/eth/filters/filter_test.go @@ -634,7 +634,18 @@ func TestRangeLimit(t *testing.T) { // Set rangeLimit to 5, but request a range of 9 (end - begin = 9, from 0 to 9) filter := sys.NewRangeFilter(0, 9, nil, nil, 5) _, err = filter.Logs(context.Background()) - if err == nil || !strings.Contains(err.Error(), "exceed maximum block range") { - t.Fatalf("expected range limit error, got %v", err) + if err == nil { + t.Fatal("expected range limit error, got nil") + } + + if r, ok := err.(rpc.Error); ok { + if r.ErrorCode() != -32602 { + t.Fatalf("expected error code -32602, got %d", r.ErrorCode()) + } + if r.Error() != "exceed maximum block range 5" { + t.Fatalf("expected error message 'exceed maximum block range 5', got %q", r.Error()) + } + } else { + t.Fatalf("expected rpc error, got %v", err) } }