mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-14 03:56:36 +00:00
eth/filters: return -32602 when exceeding the block range limit (#34647)
Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
parent
04e40995d9
commit
a8ea6319f1
2 changed files with 16 additions and 4 deletions
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue