# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.8.14](https://github.com/alloy-rs/core/releases/tag/v0.8.14) - 2024-11-28 ### Miscellaneous Tasks - Release 0.8.14 ## [0.8.13](https://github.com/alloy-rs/core/releases/tag/v0.8.13) - 2024-11-26 ### Miscellaneous Tasks - Release 0.8.13 ([#813](https://github.com/alloy-rs/core/issues/813)) - Release 0.8.12 ([#806](https://github.com/alloy-rs/core/issues/806)) - Release 0.8.11 ([#803](https://github.com/alloy-rs/core/issues/803)) ## [0.8.10](https://github.com/alloy-rs/core/releases/tag/v0.8.10) - 2024-10-28 ### Miscellaneous Tasks - Release 0.8.10 ## [0.8.9](https://github.com/alloy-rs/core/releases/tag/v0.8.9) - 2024-10-21 ### Miscellaneous Tasks - Release 0.8.9 ## [0.8.8](https://github.com/alloy-rs/core/releases/tag/v0.8.8) - 2024-10-14 ### Miscellaneous Tasks - Release 0.8.8 ## [0.8.7](https://github.com/alloy-rs/core/releases/tag/v0.8.7) - 2024-10-08 ### Miscellaneous Tasks - Release 0.8.7 ## [0.8.6](https://github.com/alloy-rs/core/releases/tag/v0.8.6) - 2024-10-06 ### Miscellaneous Tasks - Release 0.8.6 ## [0.8.5](https://github.com/alloy-rs/core/releases/tag/v0.8.5) - 2024-09-25 ### Miscellaneous Tasks - Release 0.8.5 ## [0.8.4](https://github.com/alloy-rs/core/releases/tag/v0.8.4) - 2024-09-25 ### Miscellaneous Tasks - Release 0.8.4 ## [0.8.3](https://github.com/alloy-rs/core/releases/tag/v0.8.3) - 2024-09-10 ### Miscellaneous Tasks - Release 0.8.3 ## [0.8.2](https://github.com/alloy-rs/core/releases/tag/v0.8.2) - 2024-09-06 ### Miscellaneous Tasks - Release 0.8.2 ## [0.8.1](https://github.com/alloy-rs/core/releases/tag/v0.8.1) - 2024-09-06 ### Miscellaneous Tasks - Release 0.8.1 - Use proc-macro-error2 ([#723](https://github.com/alloy-rs/core/issues/723)) ## [0.8.0](https://github.com/alloy-rs/core/releases/tag/v0.8.0) - 2024-08-21 ### Features - [sol-macro] Support namespaces ([#694](https://github.com/alloy-rs/core/issues/694)) ### Miscellaneous Tasks - Release 0.8.0 ## [0.7.7](https://github.com/alloy-rs/core/releases/tag/v0.7.7) - 2024-07-08 ### Documentation - Add per-crate changelogs ([#669](https://github.com/alloy-rs/core/issues/669)) ### Miscellaneous Tasks - Release 0.7.7 - Use workspace.lints ([#676](https://github.com/alloy-rs/core/issues/676)) - Swap sol macro doctests symlink ([#657](https://github.com/alloy-rs/core/issues/657)) ### Styling - Sort derives ([#662](https://github.com/alloy-rs/core/issues/662)) ## [0.7.4](https://github.com/alloy-rs/core/releases/tag/v0.7.4) - 2024-05-14 ### Bug Fixes - [sol-macro] Json feature ([#629](https://github.com/alloy-rs/core/issues/629)) ## [0.7.3](https://github.com/alloy-rs/core/releases/tag/v0.7.3) - 2024-05-14 ### Features - [sol-macro] Allow missing docs for event fields ([#619](https://github.com/alloy-rs/core/issues/619)) ### Refactor - Move `expand` from `sol-macro` to its own crate ([#626](https://github.com/alloy-rs/core/issues/626)) ## [0.7.2](https://github.com/alloy-rs/core/releases/tag/v0.7.2) - 2024-05-02 ### Documentation - Unhide and mention `sol!` wrappers ([#615](https://github.com/alloy-rs/core/issues/615)) ### Other - Add derive[Clone] to SolEvent creation ([#616](https://github.com/alloy-rs/core/issues/616)) ## [0.7.1](https://github.com/alloy-rs/core/releases/tag/v0.7.1) - 2024-04-23 ### Bug Fixes - Use deploy in sol expansion ([#606](https://github.com/alloy-rs/core/issues/606)) ### Documentation - [sol-macro] Add some more disclaimers ([#595](https://github.com/alloy-rs/core/issues/595)) ### Miscellaneous Tasks - Add a automatically_derived ([#597](https://github.com/alloy-rs/core/issues/597)) ## [0.7.0](https://github.com/alloy-rs/core/releases/tag/v0.7.0) - 2024-03-30 ### Bug Fixes - [json-abi] Correct to_sol for arrays of contracts ([#586](https://github.com/alloy-rs/core/issues/586)) - [sol-macro] Don't double attributes in JSON input ([#583](https://github.com/alloy-rs/core/issues/583)) - [sol-macro] Rpc event filter function name ([#572](https://github.com/alloy-rs/core/issues/572)) - [sol-macro] Enumerate before filtering when expanding events ([#561](https://github.com/alloy-rs/core/issues/561)) ### Documentation - [sol-macro] Add a note about sol(rpc) in Contracts paragraph ([#556](https://github.com/alloy-rs/core/issues/556)) ### Features - Rlp encoding for logs with generic event data ([#553](https://github.com/alloy-rs/core/issues/553)) - [sol-macro] Add event filters to contracts ([#563](https://github.com/alloy-rs/core/issues/563)) - [json-abi] Add configuration for `JsonAbi::to_sol` ([#558](https://github.com/alloy-rs/core/issues/558)) - Add network generic to sol-macro ([#557](https://github.com/alloy-rs/core/issues/557)) ### Performance - [sol-macro] Decode bytecode hex strings ourselves ([#562](https://github.com/alloy-rs/core/issues/562)) ### Refactor - Break SolInput to its own crate ([#578](https://github.com/alloy-rs/core/issues/578)) ### Styling - Rearranged type param order so that the Network param is the last ([#587](https://github.com/alloy-rs/core/issues/587)) - Make `Bytes` map to `Bytes` in `SolType` ([#545](https://github.com/alloy-rs/core/issues/545)) ## [0.6.4](https://github.com/alloy-rs/core/releases/tag/v0.6.4) - 2024-02-29 ### Miscellaneous Tasks - [primitives] Improve `from_slice` functions ([#546](https://github.com/alloy-rs/core/issues/546)) ## [0.6.3](https://github.com/alloy-rs/core/releases/tag/v0.6.3) - 2024-02-15 ### Dependencies - [deps] Update some dependencies ([#522](https://github.com/alloy-rs/core/issues/522)) ### Features - [sol-macro] Provide a way to override import paths for dependencies ([#527](https://github.com/alloy-rs/core/issues/527)) - [sol-types] Constify type name formatting ([#520](https://github.com/alloy-rs/core/issues/520)) - [sol-macro] Add `#[sol(rpc)]` to generate type-safe provider contract calls ([#510](https://github.com/alloy-rs/core/issues/510)) - [sol-macro] Expand state variable getters in contracts ([#514](https://github.com/alloy-rs/core/issues/514)) ### Miscellaneous Tasks - [sol-macro] Tweak inline attributes in generated code ([#505](https://github.com/alloy-rs/core/issues/505)) ### Performance - [sol-macro] Use a lookup table when generating `SolInterface::abi_decode_raw` ([#508](https://github.com/alloy-rs/core/issues/508)) - [sol-macro] Use `binary_search` in `SolInterface::valid_selector` ([#506](https://github.com/alloy-rs/core/issues/506)) ## [0.6.1](https://github.com/alloy-rs/core/releases/tag/v0.6.1) - 2024-01-25 ### Features - Add constructorCall to `sol!` ([#493](https://github.com/alloy-rs/core/issues/493)) ### Miscellaneous Tasks - Include path in error ([#486](https://github.com/alloy-rs/core/issues/486)) ## [0.6.0](https://github.com/alloy-rs/core/releases/tag/v0.6.0) - 2024-01-10 ### Miscellaneous Tasks - Touch up UDVT expansion ([#473](https://github.com/alloy-rs/core/issues/473)) - Move define_udt! decl macro to sol! proc macro ([#471](https://github.com/alloy-rs/core/issues/471)) ### Refactor - Log implementation ([#465](https://github.com/alloy-rs/core/issues/465)) ## [0.5.1](https://github.com/alloy-rs/core/releases/tag/v0.5.1) - 2023-11-30 ### Bug Fixes - Fix public leak ([#437](https://github.com/alloy-rs/core/issues/437)) ## [0.5.0](https://github.com/alloy-rs/core/releases/tag/v0.5.0) - 2023-11-23 ### Bug Fixes - [sol-types] Many ABI coder fixes ([#434](https://github.com/alloy-rs/core/issues/434)) - [sol-macro] Handle outer attrs in abigen input ([#429](https://github.com/alloy-rs/core/issues/429)) - [sol-macro] Correctly print Custom types in parameters ([#425](https://github.com/alloy-rs/core/issues/425)) - [sol-types] Remove `SolType::ENCODED_SIZE` default ([#418](https://github.com/alloy-rs/core/issues/418)) - [syn-solidity] Raw keyword identifiers ([#415](https://github.com/alloy-rs/core/issues/415)) - Rust keyword conflict ([#405](https://github.com/alloy-rs/core/issues/405)) - Wrong as_u8 generated for enum ([#413](https://github.com/alloy-rs/core/issues/413)) - Avoid symlinks ([#396](https://github.com/alloy-rs/core/issues/396)) - Don't use directory symlinks ([#394](https://github.com/alloy-rs/core/issues/394)) - [sol-macro] Keep more attributes on contract module ([#391](https://github.com/alloy-rs/core/issues/391)) - [json-abi] `Param.ty` is not always a valid `TypeSpecifier` ([#386](https://github.com/alloy-rs/core/issues/386)) - [sol-macro] Bug fixes ([#372](https://github.com/alloy-rs/core/issues/372)) - [sol-macro] Correct `SolCall::abi_decode_returns` ([#367](https://github.com/alloy-rs/core/issues/367)) ### Features - [sol-macro] `SolEventInterface`: `SolInterface` for contract events enum ([#426](https://github.com/alloy-rs/core/issues/426)) - [sol-macro] Add `json-abi` item generation ([#422](https://github.com/alloy-rs/core/issues/422)) - [json-abi] Improve `JsonAbi::to_sol` ([#408](https://github.com/alloy-rs/core/issues/408)) - [sol-macro] Add definition doc to structs and enums ([#393](https://github.com/alloy-rs/core/issues/393)) ### Miscellaneous Tasks - Rename `TokenType` GAT and trait to `Token` ([#417](https://github.com/alloy-rs/core/issues/417)) - Remove dead code ([#416](https://github.com/alloy-rs/core/issues/416)) - Clean up ABI, EIP-712, docs ([#373](https://github.com/alloy-rs/core/issues/373)) - [sol-macro] Move generated docs below input attrs ([#363](https://github.com/alloy-rs/core/issues/363)) ### Styling - Update rustfmt config ([#406](https://github.com/alloy-rs/core/issues/406)) ## [0.4.1](https://github.com/alloy-rs/core/releases/tag/v0.4.1) - 2023-10-09 ### Bug Fixes - [sol-macro] Flatten doc strings correctly ([#357](https://github.com/alloy-rs/core/issues/357)) - [json-abi] Fallback to tuple types for nested params in `to_sol` ([#354](https://github.com/alloy-rs/core/issues/354)) - [sol-macro] Dedup json abi items ([#346](https://github.com/alloy-rs/core/issues/346)) - [sol-macro] Remove extra 0x in function docs ([#341](https://github.com/alloy-rs/core/issues/341)) - [sol-macro] Pass attributes to all generated items ([#340](https://github.com/alloy-rs/core/issues/340)) - [syn-solidity] Set spans on generated struct names ([#336](https://github.com/alloy-rs/core/issues/336)) ### Features - [sol-macro] Add docs to generated contract modules ([#356](https://github.com/alloy-rs/core/issues/356)) - [json-abi] Deserialize more ContractObjects ([#348](https://github.com/alloy-rs/core/issues/348)) - [sol-macro] Improve error messages ([#345](https://github.com/alloy-rs/core/issues/345)) - [sol-types] Introduce `SolValue`, make `Encodable` an impl detail ([#333](https://github.com/alloy-rs/core/issues/333)) - [sol-macro] Improve generated docs ([#338](https://github.com/alloy-rs/core/issues/338)) ## [0.4.0](https://github.com/alloy-rs/core/releases/tag/v0.4.0) - 2023-09-29 ### Bug Fixes - [sol-macro] Implement EventTopic for generated enums ([#320](https://github.com/alloy-rs/core/issues/320)) - Add super import on generated modules ([#307](https://github.com/alloy-rs/core/issues/307)) - Respect `all_derives = false`, fix custom type printing ([#272](https://github.com/alloy-rs/core/issues/272)) ### Features - [sol-macro] Add docs to generated items ([#321](https://github.com/alloy-rs/core/issues/321)) - [sol-macro] Add support for overloaded events ([#318](https://github.com/alloy-rs/core/issues/318)) - [sol-macro] Improve type expansion ([#302](https://github.com/alloy-rs/core/issues/302)) - [syn-solidity] Add more `Spanned` impls ([#301](https://github.com/alloy-rs/core/issues/301)) - Improve `SolError`, `SolInterface` structs and implementations ([#285](https://github.com/alloy-rs/core/issues/285)) - [sol-macro] Expand getter functions' return types ([#262](https://github.com/alloy-rs/core/issues/262)) - Add attributes to enum variants ([#264](https://github.com/alloy-rs/core/issues/264)) - [sol-macro] Expand fields with attrs ([#263](https://github.com/alloy-rs/core/issues/263)) - [syn-solidity] Improve variable getters generation ([#260](https://github.com/alloy-rs/core/issues/260)) - [sol-macro] Add opt-in attributes for extra methods and derives ([#250](https://github.com/alloy-rs/core/issues/250)) ### Miscellaneous Tasks - Prefix ABI encode and decode functions with `abi_` ([#311](https://github.com/alloy-rs/core/issues/311)) - Sync crate level attributes ([#303](https://github.com/alloy-rs/core/issues/303)) - Add missing `#[automatically_derived]` ([#294](https://github.com/alloy-rs/core/issues/294)) - Do not implement SolType for SolStruct generically ([#275](https://github.com/alloy-rs/core/issues/275)) ### Performance - Use `slice::Iter` where possible ([#256](https://github.com/alloy-rs/core/issues/256)) ### Styling - Some clippy lints ([#251](https://github.com/alloy-rs/core/issues/251)) ## [0.3.2](https://github.com/alloy-rs/core/releases/tag/v0.3.2) - 2023-08-23 ### Bug Fixes - [sol-macro] Snake_case'd function names ([#226](https://github.com/alloy-rs/core/issues/226)) - [sol-macro] Encode UDVTs as their underlying type in EIP-712 ([#220](https://github.com/alloy-rs/core/issues/220)) - [sol-macro] Don't panic when encountering functions without names ([#217](https://github.com/alloy-rs/core/issues/217)) ### Features - Implement abi2sol ([#228](https://github.com/alloy-rs/core/issues/228)) - [syn-solidity] Add statements and expressions ([#199](https://github.com/alloy-rs/core/issues/199)) - Function type ([#224](https://github.com/alloy-rs/core/issues/224)) - [sol-macro] Expand getter functions for public state variables ([#218](https://github.com/alloy-rs/core/issues/218)) ## [0.3.0](https://github.com/alloy-rs/core/releases/tag/v0.3.0) - 2023-07-26 ### Bug Fixes - Correct encodeType expansion for nested structs ([#203](https://github.com/alloy-rs/core/issues/203)) - Remove unused method body on solstruct ([#200](https://github.com/alloy-rs/core/issues/200)) - [sol-types] Empty data decode ([#159](https://github.com/alloy-rs/core/issues/159)) ### Features - [sol-macro] `#[sol]` attributes and JSON ABI support ([#173](https://github.com/alloy-rs/core/issues/173)) - [json-abi] Add more impls ([#164](https://github.com/alloy-rs/core/issues/164)) - `SolEnum` and `SolInterface` ([#153](https://github.com/alloy-rs/core/issues/153)) ### Miscellaneous Tasks - Warn on all rustdoc lints ([#154](https://github.com/alloy-rs/core/issues/154)) - Clean ups ([#150](https://github.com/alloy-rs/core/issues/150)) - Add smaller image for favicon ([#142](https://github.com/alloy-rs/core/issues/142)) - Move macro doctests to separate folder ([#140](https://github.com/alloy-rs/core/issues/140)) ### Refactor - Rename Sol*::Tuple to Parameters/Arguments ([#145](https://github.com/alloy-rs/core/issues/145)) - Do not generate SolCall for return values ([#134](https://github.com/alloy-rs/core/issues/134)) ## [0.2.0](https://github.com/alloy-rs/core/releases/tag/v0.2.0) - 2023-06-23 ### Bug Fixes - Remove to_rust from most traits ([#133](https://github.com/alloy-rs/core/issues/133)) - Fmt ([#130](https://github.com/alloy-rs/core/issues/130)) ### Features - Finish high-level Solidity parser ([#119](https://github.com/alloy-rs/core/issues/119)) - Compute encoded size statically where possible ([#105](https://github.com/alloy-rs/core/issues/105)) - Solidity events support ([#83](https://github.com/alloy-rs/core/issues/83)) - `sol!` contracts ([#77](https://github.com/alloy-rs/core/issues/77)) - Syn-solidity visitors ([#68](https://github.com/alloy-rs/core/issues/68)) - Move Solidity syn AST to `syn-solidity` ([#63](https://github.com/alloy-rs/core/issues/63)) - Support function overloading in `sol!` ([#53](https://github.com/alloy-rs/core/issues/53)) - Primitive utils and improvements ([#52](https://github.com/alloy-rs/core/issues/52)) ### Miscellaneous Tasks - Add logo to all crates, add @gakonst to CODEOWNERS ([#138](https://github.com/alloy-rs/core/issues/138)) - Typo fix ([#129](https://github.com/alloy-rs/core/issues/129)) - Rename to Alloy ([#69](https://github.com/alloy-rs/core/issues/69)) - Enable `feature(doc_cfg, doc_auto_cfg)` ([#67](https://github.com/alloy-rs/core/issues/67)) - Remove syn "full" feature ([#66](https://github.com/alloy-rs/core/issues/66)) - Rename crates ([#45](https://github.com/alloy-rs/core/issues/45)) ### Other - Release 0.2.0 ([#139](https://github.com/alloy-rs/core/issues/139)) ### Refactor - Lifetimes for token types ([#120](https://github.com/alloy-rs/core/issues/120)) - Sol-macro expansion ([#113](https://github.com/alloy-rs/core/issues/113)) - `sol!` AST and macro expansion ([#61](https://github.com/alloy-rs/core/issues/61)) [`dyn-abi`]: https://crates.io/crates/alloy-dyn-abi [dyn-abi]: https://crates.io/crates/alloy-dyn-abi [`json-abi`]: https://crates.io/crates/alloy-json-abi [json-abi]: https://crates.io/crates/alloy-json-abi [`primitives`]: https://crates.io/crates/alloy-primitives [primitives]: https://crates.io/crates/alloy-primitives [`sol-macro`]: https://crates.io/crates/alloy-sol-macro [sol-macro]: https://crates.io/crates/alloy-sol-macro [`sol-type-parser`]: https://crates.io/crates/alloy-sol-type-parser [sol-type-parser]: https://crates.io/crates/alloy-sol-type-parser [`sol-types`]: https://crates.io/crates/alloy-sol-types [sol-types]: https://crates.io/crates/alloy-sol-types [`syn-solidity`]: https://crates.io/crates/syn-solidity [syn-solidity]: https://crates.io/crates/syn-solidity