# 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.11](https://github.com/alloy-rs/core/releases/tag/v0.8.11) - 2024-11-05
### Miscellaneous Tasks
- Release 0.8.11
## [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