go-ethereum/accounts/abi
Roberto Bayardo 67ac5f0ae7
core, core/types: plain Message struct (#25977)
Here, the core.Message interface turns into a plain struct and
types.Message gets removed.

This is a breaking change to packages core and core/types. While we do
not promise API stability for package core, we do for core/types. An
exception can be made for types.Message, since it doesn't have any
purpose apart from invoking the state transition in package core.
types.Message was also marked deprecated by the same commit it
got added in, 4dca5d4db7 (November 2016).

The core.Message interface was added in December 2014, in commit
db494170dc, for the purpose of 'testing' state transitions. It's the
same change that made transaction struct fields private. Before that,
the state transition used *types.Transaction directly.

Over time, multiple implementations of the interface accrued across
different packages, since constructing a Message is required whenever
one wants to invoke the state transition. These implementations all
looked very similar, a struct with private fields exposing the fields
as accessor methods.

By changing Message into a struct with public fields we can remove all
these useless interface implementations. It will also hopefully
simplify future changes to the type with less updates to apply across
all of go-ethereum when a field is added to Message.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-03-09 14:19:12 +01:00
..
bind core, core/types: plain Message struct (#25977) 2023-03-09 14:19:12 +01:00
abi_test.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
abi.go accounts/abi: properly quote untrusted data in error message (#26110) 2022-11-07 13:58:00 +01: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_handling.go accounts/abi: fix integer encoding/decoding (#26568) 2023-02-07 08:32:27 -05:00
error.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
event.go accounts/abi/bind: fix duplicate field names in the generated go struct (#24924) 2022-06-07 08:38:54 +02:00
method_test.go accounts/abi: Prevent recalculation of internal fields (#20895) 2020-04-20 09:01:04 +02:00
method.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
pack.go accounts/abi: improve documentation and names (#21540) 2020-09-20 10:43:57 +02:00
packing_test.go accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091) 2020-09-28 14:10:26 +02:00
reflect_test.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
reflect.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
selector_parser_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
selector_parser.go accounts/abi: fix typo in comment (#25271) 2022-07-14 10:29:05 +02:00
topics_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
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
type.go accounts/abi: return error on fixed bytes with size larger than 32 bytes (#26075) 2022-11-01 14:28:40 +01:00
unpack_test.go accounts/abi: fix integer encoding/decoding (#26568) 2023-02-07 08:32:27 -05:00
unpack.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