All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix changelog link
0.4.0 - 2023-09-29
- [syn-solidity] Test
- [sol-macro] Implement EventTopic for generated enums (#320)
- Add super import on generated modules (#307)
- Respect
all_derives = false
, fix custom type printing (#272) - Rand default-features typo (#286)
- [syn-solidity] Parse modifiers without parens (#284)
- Struct
eip712_data_word
(#258) - [syn-solidity] Imports (#252)
- MSRV tests (#246)
- Hex compatibility (#244)
- Add automated CHANGELOG.md (#322)
- Improve
ResolveSolType
documentation (#296) - Document dollar sign in idents (#288)
- Add note regarding ruint::uint macro (#265)
- Update fixed bytes docs (#255)
- Data types typo (#248)
- [sol-macro] Add docs to generated items (#321)
- [sol-macro] Add support for overloaded events (#318)
- [syn-solidity] Added visitor hooks for all statements and expressions (#314)
- [sol-macro] Improve type expansion (#302)
- [syn-solidity] Add more
Spanned
impls (#301) - Unsupported message for $idents (#293)
- [json-abi] Add
Function::signature_full
(#289) - [primitives] Add more methods to
Function
(#290) - Improve
SolError
,SolInterface
structs and implementations (#285) - Add more
FixedBytes
to int conversion impls (#281) - Add support for
rand
(#282) - Use
FixedBytes
forsol_data::FixedBytes
(#276) - Impl
bytes::Buf
for our ownBytes
(#279) - Add more
Bytes
conversion impls (#280) - [primitives] Improve Bytes (#269)
- [sol-macro] Expand getter functions' return types (#262)
- Add attributes to enum variants (#264)
- [sol-macro] Expand fields with attrs (#263)
- [syn-solidity] Improve variable getters generation (#260)
- [dyn-abi] Implement more ext traits for json-abi (#243)
- [sol-macro] Add opt-in attributes for extra methods and derives (#250)
- [primitives] Allow empty input in hex macros (#245)
- Release 0.4.0
- Prefix ABI encode and decode functions with
abi_
(#311) - Don't pass debug feature to winnow (#317)
- Touch up #314 (#315)
- Simpler ENCODED_SIZE for SolType tuples (#312)
- Unhide clippy config file (#305)
- Sync crate level attributes (#303)
- Assert_eq! on Ok instead of unwrapping where possible (#297)
- Use
hex!
macro fromprimitives
re-export (#299) - Add missing
#[automatically_derived]
(#294) - Do not implement SolType for SolStruct generically (#275)
- Rename coding functions (#274)
- Re-export ::bytes (#278)
- Update CODEOWNERS (#270)
- Format code snippets in docs (#313)
- Move
decode_revert_reason
to alloy and add tests (#308) - Support yul ast (#268)
- Some clippy lints (#251)
- [syn-solidity] Improve contract tests (#316)
0.3.2 - 2023-08-23
- [json-abi] Properly handle Param
type
field (#233) - [sol-macro] Snake_case'd function names (#226)
- Fix bincode serialization (#223)
- [sol-macro] Encode UDVTs as their underlying type in EIP-712 (#220)
- [sol-macro] Don't panic when encountering functions without names (#217)
- Implement abi2sol (#228)
- [primitives] More
FixedBytes<N>
<->[u8; N]
conversions (#239) - Add support for function input/output encoding/decoding (#227)
- [syn-solidity] Add statements and expressions (#199)
- [dyn-abi] Add match functions to value and doc aliases (#234)
- Function type (#224)
- [dyn-abi] Allow
T: Into<Cow<str>>
ineip712_domain!
(#222) - [sol-macro] Expand getter functions for public state variables (#218)
- Release 0.3.2 (#242)
- [primitives] Discourage use of
B160
(#235) - [json-abi] Avoid unsafe, remove unused generics (#229)
- Clippy (#225)
- Port ethabi json tests (#232)
0.3.1 - 2023-07-30
- Bump ruint to 1.10.1 + alloc (#213)
- Update no-std not in readme (#215)
- Add ambiguity details to Encodable rustdoc (#211)
- [json-abi] Add README.md (#209)
- Update README.md (#208)
- Support
ethabi
Contract methods (#195)
- Release 0.3.1 (#216)
0.3.0 - 2023-07-26
- Correct encodeType expansion for nested structs (#203)
- Remove unused method body on solstruct (#200)
- Remove unwrap in decode_populate (#172)
- [sol-types] Empty data decode (#159)
- Doc in dyn-abi (#155)
- [alloy-primitives] Fix broken documentation link (#152)
- Add licensing note to README.md (#186)
- Add parser to readme (#183)
- [rlp] Move example to README.md (#177)
- Request that PR contributors allow maintainer edits (#148)
- Bytes handles numeric arrays and bytearrays in deser (#202)
- [dyb-abi] Impl ResolveSolType for Rc (#189)
- Native keccak feature flag (#185)
- [sol-macro]
#[sol]
attributes and JSON ABI support (#173) - Solidity type parser (#181)
- [rlp] Improve implementations (#182)
- [dyn-abi] Add arbitrary impls and proptests (#175)
- [dyn-abi] Cfg CustomStruct for eip712, rm CustomValue (#178)
- [dyn-abi] Clean up and improve performance (#174)
- DynSolType::decode_params (#166)
- [json-abi] Add more impls (#164)
- [primitives] Add some impls (#162)
SolEnum
andSolInterface
(#153)- [primitives] Fixed bytes macros (#156)
- Release 0.3.0 (#207)
- Wrap Bytes methods which return Self (#206)
- Add release.toml (#205)
- Replace
ruint2
withruint
(#192) - Clippy (#196)
- Remove remaining refs to rlp (#190)
- Move rlp crates to a separate repo (#187)
- [dyn-abi] Gate eip712 behind a feature (#176)
- Warn on all rustdoc lints (#154)
- Clean ups (#150)
- Add smaller image for favicon (#142)
- Move macro doctests to separate folder (#140)
- Cache wasm job (#197)
- Significant dyn-abi fixes :) (#168)
- Refactoring
dyn-abi
to performance parity with ethabi (#144) - Kuly14/cleanup (#151)
- Explain alloy vs ethers-rs intention (#146)
- Rename domain macro and add docs (#147)
- Rename Sol*::Tuple to Parameters/Arguments (#145)
- Do not generate SolCall for return values (#134)
- Run UI tests only on nightly (#194)
0.2.0 - 2023-06-23
- Remove to_rust from most traits (#133)
- Fmt (#130)
- Links in readme (#128)
- (u)int tokenization (#123)
- Add
repr(C)
to json-abi items (#100) - Make detokenize infallible (#86)
- Extra-traits in syn-solidity (#65)
- Rlp impls (#56)
- Hex breaking change (#50)
- Type check int for dirty high bytes (#47)
- Sol macro parsing and expansion (#21)
- Add alloc features in no_std (#18)
- Bump resolver to 2 to disable proptest in wasm
- Doc warnings and clippy
- Cargo t
- Desc in primitives cargo.toml
- Handle nested arrays
- Correct signed int handling in encodePacked
- Correct int handling in encodePacked
- Add missing type_check to decoding
- Std in abi lol
- No_std in abi
- Bump ruint to have alloy-rlp
- Add missing deny.toml (#23)
- Add Address w/ checksum support to
primitives
(#19) - Use workspace.{package,dependencies} (#17)
- Bump uint
- Bump uint to support wasm
- Bump uint main
- Generic signed int implementation (#3)
- Rlp-derive README.md (#70)
- Contributing doc (#49)
- Note on no_std support (#44)
- Note that encode_list is preferred
- Main lib README (#34)
- Brief doc on the type system (#26)
- Improve abi encoding doc examples
- Encode_packed_to in doctest
- Remove extra tab in docstring
- Add implementer's guide to SolType
- Big lib front page :)
- Unify json-abi params impls (#136)
- Add
Encodable
trait (#121) - Finish high-level Solidity parser (#119)
- Improve SolType tuples (#115)
- Make
TokenType::is_dynamic
a constant (#114) - More FixedBytes impls (#111)
- Compute encoded size statically where possible (#105)
- Json-abi event selector (#104)
- Solidity events support (#83)
- Issue and PR templates #33 (#93)
sol!
contracts (#77)- Abi-json crate (#78)
- Syn-solidity visitors (#68)
- Abi benchmarks (#57)
- Move Solidity syn AST to
syn-solidity
(#63) - Support function overloading in
sol!
(#53) - Primitive utils and improvements (#52)
- Add PanicKind enum (#54)
- [sol-type-parser] Parse and expand custom errors and functions (#24)
- Standard solidity revert & panic (#28)
- Use
const-hex
instead ofhex
(#25) - Improve macros (#7)
- Encode_eip712
- Sol proc_macro for UDTs
- User-defined solidity type
- Domain macro
- Update sol type parser to simplify access
- Borrow for primitive bits types
- Eip712 scaffolding
- Borrow abstraction for tokenization and encoding
- Serde for signed integer
- Dyn sol type for all I sizes
- Add uint as submodule (#1)
- Add uint crate to repository
- Feature structs in sol parser
- Untested encodePacked
- Sol proc macro
- More expressive errors in ABI
- Encoder rewrite
- Abi, primitives, rlp
- Add logo to all crates, add @gakonst to CODEOWNERS (#138)
- Add .gitattributes (#135)
- Typos (#132)
- Typo fix (#131)
- Typo fix (#129)
- Clean up features (#116)
- Add CODEOWNERS, update deny.toml and ci.yml (#117)
- S/ruint/ruint2 until remco is back
- Feature-gate
getrandom
, document in README.md (#71) - Rename to Alloy (#69)
- Enable
feature(doc_cfg, doc_auto_cfg)
(#67) - Remove syn "full" feature (#66)
- Rename crates (#45)
- Pre-release mega cleanup (#35)
- Use crates.io uint, move crates to
crates/*
(#31) - Update error type (#22)
- Readme build commands
- Add another todo for @gakonst
- More todo in readme, remove cargo.toml comment
- Update readme todos
- Remove dbgs
- Unused imports in test
- Docstrings and tests
- Missing RLP docs
- Release 0.2.0 (#139)
- Revert "test: bless tests after updating to syn 2.0.19 (#79)" (#80)
- Add WASM job (#76)
- Fix dep job, add feature-checks job (#64)
- Fix rustdoc job, docs (#46)
- Prestwich/crate readmes (#41)
- Prestwich/ingest encode type (#15)
- Add initial Continuous Integration Workflows using GitHub® Actions™ (#8)
- Dynamic EIP-712 (#6)
- Prestwich/int-edge-cases (#4)
- Implement ABI for I256 (#5)
- Prestwich/dyn enc (#2)
- Simplify encode_params docs
- Delete type aliases
- Remove primitive-types dep, add from for B512
- Naming in readme
- Standardize on mod std_support
- のこりなくちるぞめでたき桜花ありて世の中はてのうければ
- Improve rlp, update Address methods (#118)
- Lifetimes for token types (#120)
- Sol-macro expansion (#113)
- Change is_dynamic to a const DYNAMIC (#99)
- Implement
SolType
for{Ui,I}nt<N>
andFixedBytes<N>
with const-generics (#92) sol!
AST and macro expansion (#61)- Remerge SolType and SolDataType (#30)
- Clean up abi crate structure
- Split dyn-abi into a separate crate
- Udt doesn't need phantomdata
- Simplify types somewhat
- Modularize signed int implementation
- Remove unused error variant
- Delete remainder of serde feature
- Trim error type
- Abi standardize on encode+single+params