Skip to content

Commit 3cc4015

Browse files
committed
cmd/utils, eth/filters: changed flag name to LogQueryLimit
1 parent 75dd372 commit 3cc4015

File tree

7 files changed

+44
-44
lines changed

7 files changed

+44
-44
lines changed

cmd/geth/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ var (
180180
utils.RPCGlobalGasCapFlag,
181181
utils.RPCGlobalEVMTimeoutFlag,
182182
utils.RPCGlobalTxFeeCapFlag,
183-
utils.EthGetLogMaxAddressFlag,
183+
utils.RPCGlobalLogQueryLimit,
184184
utils.AllowUnprotectedTxs,
185185
utils.BatchRequestLimit,
186186
utils.BatchResponseMaxSize,

cmd/utils/flags.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -590,10 +590,10 @@ var (
590590
Value: ethconfig.Defaults.RPCTxFeeCap,
591591
Category: flags.APICategory,
592592
}
593-
EthGetLogMaxAddressFlag = &cli.IntFlag{
594-
Name: "rpc.getlogmaxaddrs",
595-
Usage: "Maximum number of addresses allowed in eth_getLogs filter criteria",
596-
Value: ethconfig.Defaults.FilterMaxAddresses,
593+
RPCGlobalLogQueryLimit = &cli.IntFlag{
594+
Name: "rpc.logquerylimit",
595+
Usage: "Maximum number of alternative addresses or topics allowed per search position in eth_getLogs filter criteria (0 = no cap)",
596+
Value: ethconfig.Defaults.LogQueryLimit,
597597
Category: flags.APICategory,
598598
}
599599
// Authenticated RPC HTTP settings
@@ -1695,8 +1695,8 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
16951695
if ctx.IsSet(CacheLogSizeFlag.Name) {
16961696
cfg.FilterLogCacheSize = ctx.Int(CacheLogSizeFlag.Name)
16971697
}
1698-
if ctx.IsSet(EthGetLogMaxAddressFlag.Name) {
1699-
cfg.FilterMaxAddresses = ctx.Int(EthGetLogMaxAddressFlag.Name)
1698+
if ctx.IsSet(RPCGlobalLogQueryLimit.Name) {
1699+
cfg.LogQueryLimit = ctx.Int(RPCGlobalLogQueryLimit.Name)
17001700
}
17011701
if !ctx.Bool(SnapshotFlag.Name) || cfg.SnapshotCache == 0 {
17021702
// If snap-sync is requested, this flag is also required
@@ -2007,7 +2007,7 @@ func RegisterGraphQLService(stack *node.Node, backend ethapi.Backend, filterSyst
20072007
func RegisterFilterAPI(stack *node.Node, backend ethapi.Backend, ethcfg *ethconfig.Config) *filters.FilterSystem {
20082008
filterSystem := filters.NewFilterSystem(backend, filters.Config{
20092009
LogCacheSize: ethcfg.FilterLogCacheSize,
2010-
MaxAddresses: ethcfg.FilterMaxAddresses,
2010+
LogQueryLimit: ethcfg.LogQueryLimit,
20112011
})
20122012
stack.RegisterAPIs([]rpc.API{{
20132013
Namespace: "eth",

eth/ethconfig/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ var Defaults = Config{
6262
TrieTimeout: 60 * time.Minute,
6363
SnapshotCache: 102,
6464
FilterLogCacheSize: 32,
65-
FilterMaxAddresses: 1000,
65+
LogQueryLimit: 1000,
6666
Miner: miner.DefaultConfig,
6767
TxPool: legacypool.DefaultConfig,
6868
BlobPool: blobpool.DefaultConfig,
@@ -133,7 +133,7 @@ type Config struct {
133133
FilterLogCacheSize int
134134

135135
// This is the maximum number of addresses allowed in filter criteria for eth_getLogs.
136-
FilterMaxAddresses int
136+
LogQueryLimit int
137137

138138
// Mining options
139139
Miner miner.Config

eth/ethconfig/gen_config.go

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eth/filters/api.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ var (
4242
errBlockHashWithRange = errors.New("can't specify fromBlock/toBlock with blockHash")
4343
errPendingLogsUnsupported = errors.New("pending logs are not supported")
4444
errExceedMaxTopics = errors.New("exceed max topics")
45-
errExceedMaxAddresses = errors.New("exceed max addresses")
45+
errExceedLogQueryLimit = errors.New("exceed max addresses or topics per search position")
4646
)
4747

4848
const (
@@ -68,22 +68,22 @@ type filter struct {
6868
// FilterAPI offers support to create and manage filters. This will allow external clients to retrieve various
6969
// information related to the Ethereum protocol such as blocks, transactions and logs.
7070
type FilterAPI struct {
71-
sys *FilterSystem
72-
events *EventSystem
73-
filtersMu sync.Mutex
74-
filters map[rpc.ID]*filter
75-
timeout time.Duration
76-
maxAddresses int
71+
sys *FilterSystem
72+
events *EventSystem
73+
filtersMu sync.Mutex
74+
filters map[rpc.ID]*filter
75+
timeout time.Duration
76+
logQueryLimit int
7777
}
7878

7979
// NewFilterAPI returns a new FilterAPI instance.
8080
func NewFilterAPI(system *FilterSystem) *FilterAPI {
8181
api := &FilterAPI{
82-
sys: system,
83-
events: NewEventSystem(system),
84-
filters: make(map[rpc.ID]*filter),
85-
timeout: system.cfg.Timeout,
86-
maxAddresses: system.cfg.MaxAddresses,
82+
sys: system,
83+
events: NewEventSystem(system),
84+
filters: make(map[rpc.ID]*filter),
85+
timeout: system.cfg.Timeout,
86+
logQueryLimit: system.cfg.LogQueryLimit,
8787
}
8888
go api.timeoutLoop(system.cfg.Timeout)
8989

@@ -347,8 +347,8 @@ func (api *FilterAPI) GetLogs(ctx context.Context, crit FilterCriteria) ([]*type
347347
if len(crit.Topics) > maxTopics {
348348
return nil, errExceedMaxTopics
349349
}
350-
if len(crit.Addresses) > api.maxAddresses {
351-
return nil, errExceedMaxAddresses
350+
if len(crit.Addresses) > api.logQueryLimit {
351+
return nil, errExceedLogQueryLimit
352352
}
353353

354354
var filter *Filter

eth/filters/filter_system.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ import (
4141

4242
// Config represents the configuration of the filter system.
4343
type Config struct {
44-
LogCacheSize int // maximum number of cached blocks (default: 32)
45-
Timeout time.Duration // how long filters stay active (default: 5min)
46-
MaxAddresses int // maximum number of addresses allowed in filter criteria (default: 1000)
44+
LogCacheSize int // maximum number of cached blocks (default: 32)
45+
Timeout time.Duration // how long filters stay active (default: 5min)
46+
LogQueryLimit int // maximum number of addresses allowed in filter criteria (default: 1000)
4747
}
4848

4949
func (cfg Config) withDefaults() Config {
@@ -53,8 +53,8 @@ func (cfg Config) withDefaults() Config {
5353
if cfg.LogCacheSize == 0 {
5454
cfg.LogCacheSize = 32
5555
}
56-
if cfg.MaxAddresses == 0 {
57-
cfg.MaxAddresses = 1000
56+
if cfg.LogQueryLimit == 0 {
57+
cfg.LogQueryLimit = 1000
5858
}
5959
return cfg
6060
}
@@ -295,8 +295,8 @@ func (es *EventSystem) SubscribeLogs(crit ethereum.FilterQuery, logs chan []*typ
295295
if len(crit.Topics) > maxTopics {
296296
return nil, errExceedMaxTopics
297297
}
298-
if len(crit.Addresses) > es.sys.cfg.MaxAddresses {
299-
return nil, errExceedMaxAddresses
298+
if len(crit.Addresses) > es.sys.cfg.LogQueryLimit {
299+
return nil, errExceedLogQueryLimit
300300
}
301301
var from, to rpc.BlockNumber
302302
if crit.FromBlock == nil {

eth/filters/filter_system_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ func TestInvalidLogFilterCreation(t *testing.T) {
435435
1: {FromBlock: big.NewInt(rpc.PendingBlockNumber.Int64()), ToBlock: big.NewInt(100)},
436436
2: {FromBlock: big.NewInt(rpc.LatestBlockNumber.Int64()), ToBlock: big.NewInt(100)},
437437
3: {Topics: [][]common.Hash{{}, {}, {}, {}, {}}},
438-
4: {Addresses: make([]common.Address, api.maxAddresses+1)},
438+
4: {Addresses: make([]common.Address, api.logQueryLimit+1)},
439439
}
440440

441441
for i, test := range testCases {
@@ -532,10 +532,10 @@ func TestInvalidGetRangeLogsRequest(t *testing.T) {
532532
func TestInvalidAddressLengthRequest(t *testing.T) {
533533
t.Parallel()
534534

535-
// Test with custom config (MaxAddresses = 5 for easier testing)
535+
// Test with custom config (LogQueryLimit = 5 for easier testing)
536536
var (
537537
db = rawdb.NewMemoryDatabase()
538-
_, sys = newTestFilterSystem(db, Config{MaxAddresses: 5})
538+
_, sys = newTestFilterSystem(db, Config{LogQueryLimit: 5})
539539
api = NewFilterAPI(sys)
540540
)
541541

@@ -550,14 +550,14 @@ func TestInvalidAddressLengthRequest(t *testing.T) {
550550
FromBlock: big.NewInt(0),
551551
ToBlock: big.NewInt(100),
552552
Addresses: invalidAddresses,
553-
}); err != errExceedMaxAddresses {
554-
t.Errorf("Expected GetLogs with 6 addresses to return errExceedMaxAddresses, but got: %v", err)
553+
}); err != errExceedLogQueryLimit {
554+
t.Errorf("Expected GetLogs with 6 addresses to return errExceedLogQueryLimit, but got: %v", err)
555555
}
556556

557557
// Test with default config should reject 1001 addresses
558558
var (
559559
db2 = rawdb.NewMemoryDatabase()
560-
_, sys2 = newTestFilterSystem(db2, Config{}) // Uses default MaxAddresses = 1000
560+
_, sys2 = newTestFilterSystem(db2, Config{}) // Uses default LogQueryLimit = 1000
561561
api2 = NewFilterAPI(sys2)
562562
)
563563

@@ -571,8 +571,8 @@ func TestInvalidAddressLengthRequest(t *testing.T) {
571571
FromBlock: big.NewInt(0),
572572
ToBlock: big.NewInt(100),
573573
Addresses: tooManyAddresses,
574-
}); err != errExceedMaxAddresses {
575-
t.Errorf("Expected GetLogs with 1001 addresses to return errExceedMaxAddresses, but got: %v", err)
574+
}); err != errExceedLogQueryLimit {
575+
t.Errorf("Expected GetLogs with 1001 addresses to return errExceedLogQueryLimit, but got: %v", err)
576576
}
577577
}
578578

0 commit comments

Comments
 (0)