This commit is contained in:
maskpp 2024-09-20 22:04:27 +08:00
parent e32d512cf3
commit d316a9365d

View file

@ -315,11 +315,11 @@ func (f *Filter) checkMatches(ctx context.Context, header *types.Header) ([]*typ
// filterLogs creates a slice of logs matching the given criteria. // filterLogs creates a slice of logs matching the given criteria.
func filterLogs(logs []*types.Log, fromBlock, toBlock *big.Int, addresses []common.Address, topics [][]common.Hash) []*types.Log { func filterLogs(logs []*types.Log, fromBlock, toBlock *big.Int, addresses []common.Address, topics [][]common.Hash) []*types.Log {
var ( var (
addressMap = make(map[common.Address]struct{}, len(addresses)) addressMap = make(map[common.Address]bool, len(addresses))
topicMaps = make([]map[common.Hash]struct{}, len(topics)) topicMaps = make([]map[common.Hash]struct{}, len(topics))
) )
for _, addr := range addresses { for _, addr := range addresses {
addressMap[addr] = struct{}{} addressMap[addr] = true
} }
for i, sub := range topics { for i, sub := range topics {
var topicMap map[common.Hash]struct{} var topicMap map[common.Hash]struct{}
@ -338,7 +338,7 @@ func filterLogs(logs []*types.Log, fromBlock, toBlock *big.Int, addresses []comm
if toBlock != nil && toBlock.Int64() >= 0 && toBlock.Uint64() < log.BlockNumber { if toBlock != nil && toBlock.Int64() >= 0 && toBlock.Uint64() < log.BlockNumber {
return false return false
} }
if _, ok := addressMap[log.Address]; !ok { if len(addressMap) > 0 && !addressMap[log.Address] {
return false return false
} }
// If the to filtered topics is greater than the amount of topics in logs, skip. // If the to filtered topics is greater than the amount of topics in logs, skip.