rpc: return -32602 when exceeding the range limit

This commit is contained in:
Mael Regnery 2026-04-03 12:29:53 +02:00
parent 00da4f51ff
commit 2a459ac7cc
No known key found for this signature in database
GPG key ID: 6B3C0E66C7D94A6F
2 changed files with 14 additions and 4 deletions

View file

@ -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)
}

View file

@ -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)
}
}