1
0
Fork 0
forked from forks/go-ethereum
go-ethereum-modded-tocallarg/accounts/abi
Felföldi Zsolt 7f574372d5
eth/filters, core/filtermaps: safe chain view update (#31590)
This PR changes the chain view update mechanism of the log filter.
Previously the head updates were all wired through the indexer, even in
unindexed mode. This was both a bit weird and also unsafe as the
indexer's chain view was updates asynchronously with some delay, making
some log related tests flaky. Also, the reorg safety of the indexed
search was integrated with unindexed search in a weird way, relying on
`syncRange.ValidBlocks` in the unindexed case too, with a special
condition added to only consider the head of the valid range but not the
tail in the unindexed case.

In this PR the current chain view is directly accessible through the
filter backend and unindexed search is also chain view based, making it
inherently safe. The matcher sync mechanism is now only used for indexed
search as originally intended, removing a few ugly special conditions.

The PR is currently based on top of
https://github.com/ethereum/go-ethereum/pull/31642
Together they fix https://github.com/ethereum/go-ethereum/issues/31518
and replace https://github.com/ethereum/go-ethereum/pull/31542

---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-04-20 09:48:49 +02:00
..
abigen eth/filters, core/filtermaps: safe chain view update (#31590) 2025-04-20 09:48:49 +02:00
bind accounts/abi: include access-list in gas estimation (#31394) 2025-03-26 16:14:17 +01:00
abi.go accounts/abi: support unpacking solidity errors (#30738) 2024-12-10 14:30:24 +01:00
abi_test.go accounts/abi: support unpacking solidity errors (#30738) 2024-12-10 14:30:24 +01:00
abifuzzer_test.go accounts: run tests in parallel (#28544) 2023-12-04 14:55:06 +01:00
argument.go accounts/abi: improve unpack performance (#31387) 2025-03-14 15:27:38 +01:00
doc.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
error.go accounts/abi: context info on unpack-errors (#28529) 2023-11-21 09:16:57 +01:00
error_handling.go accounts/abi: fix integer encoding/decoding (#26568) 2023-02-07 08:32:27 -05:00
event.go accounts/abi/bind: fix duplicate field names in the generated go struct (#24924) 2022-06-07 08:38:54 +02:00
event_test.go build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
method.go accounts/abi: improve readability of method-to-string conversion (#28530) 2023-11-15 14:30:35 +01:00
method_test.go accounts: run tests in parallel (#28544) 2023-12-04 14:55:06 +01:00
pack.go accounts,cmd,console,les,metrics: refactor some errors checked by (ST1005) go-staticcheck (#28532) 2023-11-15 14:36:57 +02:00
pack_test.go build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
packing_test.go accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091) 2020-09-28 14:10:26 +02:00
reflect.go all: fix various typos (#29542) 2024-04-16 15:44:00 +03:00
reflect_test.go build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
selector_parser.go accounts: replace noarg fmt.Errorf with errors.New (#27331) 2023-05-25 08:25:58 -04:00
selector_parser_test.go accounts: run tests in parallel (#28544) 2023-12-04 14:55:06 +01:00
topics.go accounts/abi: fix MakeTopics mutation of big.Int inputs (#30785) 2024-11-25 13:34:50 +01:00
topics_test.go accounts/abi: fix MakeTopics mutation of big.Int inputs (#30785) 2024-11-25 13:34:50 +01:00
type.go accounts/abi: handle ABIs with contract type parameter (#30315) 2024-08-20 12:26:35 +02:00
type_test.go all: fix various typos (#29600) 2024-04-23 13:09:42 +03:00
unpack.go account/abi: convert if-else-if chain to tagged switch (#27869) 2023-08-23 09:53:38 -04:00
unpack_test.go accounts/abi: improve unpack performance (#31387) 2025-03-14 15:27:38 +01:00
utils.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00