go-ethereum/accounts/abi
Sina Mahmoodi 2def62b99b
eth/filters: avoid block body retrieval when no matching logs (#25199)
Logs stored on disk have minimal information. Contextual information such as block
number, index of log in block, index of transaction in block are filled in upon request.
We can fill in all these fields only having the block header and list of receipts.
But determining the transaction hash of a log requires the block body.

The goal of this PR is postponing this retrieval until we are sure we the transaction hash.
It happens often that the header bloom filter signals there might be matches in a block,
but after actually checking them reveals the logs do not match. We want to avoid fetching
the body in this case.

Note that this changes the semantics of Backend.GetLogs. Downstream callers of
GetLogs now assume log context fields have not been derived, and need to call
DeriveFields on the logs if necessary.
2023-02-13 10:59:27 +01:00
..
bind eth/filters: avoid block body retrieval when no matching logs (#25199) 2023-02-13 10:59:27 +01:00
abi.go accounts/abi: properly quote untrusted data in error message (#26110) 2022-11-07 13:58:00 +01:00
abi_test.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
argument.go accounts/abi: return toGoType error immediately (#25565) 2022-09-29 10:47:12 +02:00
doc.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
error.go accounts/abi/bind: fix duplicate field names in the generated go struct (#24924) 2022-06-07 08:38:54 +02: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 all: add whitespace linter (#25312) 2022-07-25 13:14:03 +03:00
method.go accounts/abi: improve documentation and names (#21540) 2020-09-20 10:43:57 +02:00
method_test.go accounts/abi: Prevent recalculation of internal fields (#20895) 2020-04-20 09:01:04 +02:00
pack.go accounts/abi: improve documentation and names (#21540) 2020-09-20 10:43:57 +02:00
pack_test.go accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091) 2020-09-28 14:10:26 +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 build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
reflect_test.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
selector_parser.go accounts/abi: fix typo in comment (#25271) 2022-07-14 10:29:05 +02:00
selector_parser_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
topics.go accounts/abi: improve documentation and names (#21540) 2020-09-20 10:43:57 +02:00
topics_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
type.go accounts/abi: return error on fixed bytes with size larger than 32 bytes (#26075) 2022-11-01 14:28:40 +01:00
type_test.go accounts/abi: return error on fixed bytes with size larger than 32 bytes (#26075) 2022-11-01 14:28:40 +01:00
unpack.go accounts/abi: fix integer encoding/decoding (#26568) 2023-02-07 08:32:27 -05:00
unpack_test.go accounts/abi: fix integer encoding/decoding (#26568) 2023-02-07 08:32:27 -05:00
utils.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00