From bf2de519c2364b9a4dcdb836203cc3c09c38e7c3 Mon Sep 17 00:00:00 2001 From: Well Date: Mon, 25 Aug 2025 23:51:37 +0800 Subject: [PATCH] fix time out issue --- accounts/abi/bind/v2/base.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/accounts/abi/bind/v2/base.go b/accounts/abi/bind/v2/base.go index 76302c9469..3ff9fef646 100644 --- a/accounts/abi/bind/v2/base.go +++ b/accounts/abi/bind/v2/base.go @@ -473,8 +473,22 @@ func (c *BoundContract) FilterLogs(opts *FilterOpts, name string, query ...[]any if opts.End != nil { config.ToBlock = new(big.Int).SetUint64(*opts.End) } - sub, err := c.filterer.SubscribeFilterLogs(ensureContext(opts.Context), config, logs) - return logs, sub, err + buff, err := c.filterer.FilterLogs(ensureContext(opts.Context), config) + if err != nil { + return nil, nil, err + } + sub := event.NewSubscription(func(quit <-chan struct{}) error { + for _, log := range buff { + select { + case logs <- log: + case <-quit: + return nil + } + } + return nil + }) + + return logs, sub, nil } // WatchLogs filters subscribes to contract logs for future blocks, returning a