eth/filters: return -32602 when exceeding the block range limit (#34647)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run

Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
Mael Regnery 2026-04-08 12:57:29 +02:00 committed by GitHub
parent 04e40995d9
commit a8ea6319f1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 4 deletions

View file

@ -19,7 +19,6 @@ package filters
import ( import (
"context" "context"
"errors" "errors"
"fmt"
"math" "math"
"math/big" "math/big"
"slices" "slices"
@ -147,7 +146,7 @@ func (f *Filter) Logs(ctx context.Context) ([]*types.Log, error) {
return nil, err return nil, err
} }
if f.rangeLimit != 0 && (end-begin) > f.rangeLimit { 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) return f.rangeLogs(ctx, begin, end)
} }

View file

@ -19,6 +19,7 @@ package filters
import ( import (
"context" "context"
"encoding/json" "encoding/json"
"errors"
"math/big" "math/big"
"strings" "strings"
"testing" "testing"
@ -634,7 +635,19 @@ func TestRangeLimit(t *testing.T) {
// Set rangeLimit to 5, but request a range of 9 (end - begin = 9, from 0 to 9) // 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) filter := sys.NewRangeFilter(0, 9, nil, nil, 5)
_, err = filter.Logs(context.Background()) _, err = filter.Logs(context.Background())
if err == nil || !strings.Contains(err.Error(), "exceed maximum block range") { if err == nil {
t.Fatalf("expected range limit error, got %v", err) t.Fatal("expected range limit error, got nil")
}
var re rpc.Error
if errors.As(err, &re) {
if re.ErrorCode() != -32602 {
t.Fatalf("expected error code -32602, got %d", re.ErrorCode())
}
if re.Error() != "exceed maximum block range 5" {
t.Fatalf("expected error message 'exceed maximum block range 5', got %q", re.Error())
}
} else {
t.Fatalf("expected rpc error, got %v", err)
} }
} }