alloy-rs / core

High-performance, well-tested & documented core libraries for Ethereum, in Rust
https://alloy.rs
Apache License 2.0
758 stars 131 forks source link

[Refactor] Redesign APIs to prevent users from wanting to keep JSON abi data #670

Open prestwich opened 2 months ago

prestwich commented 2 months ago

JSON ABIs are an anti-pattern because they have fallible resolution steps before every encoding

we would prefer the user resolve an entire DynInterface at once, and then reference parts of it

          hmmm. I think that if users are keeping the json representation in memory and passing it around, that's generally an anti-pattern, right?  I see these traits as convenience functions for one-off things and to patch functionality holes, not as core API. `Dyn____` is our in-memory representation of ABI information, and greedily resolving a `JsonAbi` into a `DynAbi` is the longterm officially-recommended path

_Originally posted by @prestwich in https://github.com/alloy-rs/core/pull/632#discussion_r1627614889_