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.
0.8.0 - 2024-08-21
- Parsing stack overflow (#703)
- [deps] Bump proptest-derive (#708)
- Typo
- Derive ser deser on
Sealed
(#710) - sol-macro Support namespaces (#694)
- Derive
Hash
forSealed
(#707) - sol-types Implement traits for longer tuples (#699)
- primitives Re-use ruint mask function (#698)
- Derive hash for parity (#686)
- Add some TODO comments
- Implement specific bit types for integers (#677)
- Add testcase for overflowing_from_sign_and_abs (#696)
- Remove
ethereum_ssz
dependency (#701)
0.7.7 - 2024-07-08
- Small fixes for
DynSolValue
strategies (#683) - Fixed bytes dyn abi packed encoding (#671)
- primitives Include in aliases export to prevent having to import from
aliases::{..}
(#655)
- primitives Fix rustdoc for Signature (#680)
- sol-types Update README.md using crate docs (#679)
- Add per-crate changelogs (#669)
- Update MSRV policy (#665)
- json-abi Allow
serde_json::from_{value,reader}
(#684) - Add support for parsing visibility and state mutability (#682)
- DynSolCall (#632)
- IntoLogData (#666)
- Add
abi_packed_encoded_size
(#672) - primitives Manually implement arbitrary for signature (#663)
- Release 0.7.7
- Use workspace.lints (#676)
- Fix unnameable-types (#675)
- sol-macro Allow clippy all when emitting contract bytecode (#674)
- Add book/examples to readme
- sol-types Exit early if Abigen input is invalid
- Swap sol macro doctests symlink (#657)
- Format some imports
- Format GHA workflow
- Sort derives (#662)
0.7.6 - 2024-06-10
- primitives Add additional common aliases (#654)
- primitives Derive
Arbitrary
for Signature (#652) - primitives Implement
ops::Not
for fixed bytes (#650) - sol-macro Add return value names to simple getters (#648)
- Release 0.7.6
- [docs] Add doc aliases for
Tx
prefixed names (#649) - Update changelog.sh
- Fix CHANGELOG parsers for uppercase
0.7.5 - 2024-06-04
- sol-macro Allow deriving
Default
on contracts (#645) - sol-macro Overridden event signatures (#642)
- primitives Signed formatting (#643)
- Fix Log serde for non self describing protocols (#639)
- Handle 0 for inverting eip155 parity. (#633)
- Update some READMEs (#641)
- primitives Implement TryInto for ParseUnits (#646)
- sol-macro Allow overridden custom errors (#644)
- Create new method on Param and EventParam (#634)
- Release 0.7.5
- sol-macro Add suggestion to remove name (#647)
- Temporarily disable tests that OOM Miri (#637)
0.7.4 - 2024-05-14
- Release 0.7.4
- Release 0.7.3
- Fix dyn abi
- Release 0.7.3
0.7.3 - 2024-05-14
- Update alloy-core homepage link
- Release 0.7.3
- Fix tests (#624)
- Unused cfgs
- Move
expand
fromsol-macro
to its own crate (#626)
0.7.2 - 2024-05-02
- Unhide and mention
sol!
wrappers (#615)
- Release 0.7.2
- [general] Add basic CI workflow for Windows (#613)
- Add derive[Clone] to SolEvent creation (#616)
0.7.1 - 2024-04-23
- Use deploy in sol expansion (#606)
- Release 0.7.1
- FixedBytes instead of array
- Add a automatically_derived (#597)
- Update tests and clippy
0.7.0 - 2024-03-30
- json-abi Correct to_sol for arrays of contracts (#586)
- sol-macro Don't double attributes in JSON input (#583)
- dyn-abi Correctly parse uints in
coerce_str
(#577) - Force clippy to stable (#569)
- primitives Re-implement RLP for
Log<LogData>
(#573) - sol-macro Rpc event filter function name (#572)
- sol-macro Enumerate before filtering when expanding events (#561)
- Rlp encoding for logs with generic event data (#553)
- sol-macro Add event filters to contracts (#563)
- json-abi Add configuration for
JsonAbi::to_sol
(#558) - Add LogData::split (#559)
- Add network generic to sol-macro (#557)
- Rearranged type param order so that the Network param is the last (#587)
- Make
Bytes
map toBytes
inSolType
(#545)
0.6.4 - 2024-02-29
- dyn-abi Correctly parse empty lists of bytes (#548)
- dyn-abi Enable
DynSolType.coerce_json
to convert array of numbers to bytes (#541)
- [deps] Update winnow to 0.6 (#533)
- primitives Add a bytes! macro example (#539)
- Fix relative paths in README files (#532)
- Release 0.6.4
- primitives Improve
from_slice
functions (#546) - Allow unknown lints (#543)
- [core] Add comments to
cfg(doc)
(#538) - Remove unused imports (#534)
- Add concurrency (#540)
- Add another ABI encode test (#547)
- Add some more coerce error message tests (#535)
- Bless tests (#530)
0.6.3 - 2024-02-15
- json-abi Accept nameless
Param
s (#526) - dyn-abi Abi-encode-packed always pads arrays (#519)
- Properly test ABI packed encoding (#517)
- Signature bincode serialization (#509)
- Don't validate when decoding revert reason (#511)
- Update alloy_core::sol reference to real sol (#529)
- Mention
alloy-core
meta crate in README.md overview (#523)
- primitives Add some more implementations to Bytes (#528)
- sol-macro Provide a way to override import paths for dependencies (#527)
- Add
alloy-core
prelude crate (#521) - sol-types Constify type name formatting (#520)
- sol-macro Add
#[sol(rpc)]
to generate type-safe provider contract calls (#510) - sol-macro Expand state variable getters in contracts (#514)
- Make some allocations fallible in ABI decoding (#513)
- Release 0.6.3
- Fix winnow deprecation warnings (#507)
- sol-macro Tweak inline attributes in generated code (#505)
- Update actions/checkout to v4 (#512)
- sol-macro Use a lookup table when generating
SolInterface::abi_decode_raw
(#508) - sol-macro Use
binary_search
inSolInterface::valid_selector
(#506)
0.6.2 - 2024-01-25
- [
signature
] Construct Signature bytes using v+27 when we do not have an EIP155v
(#503)
- Release 0.6.2
0.6.1 - 2024-01-25
- Deserialize missing state mutability as non payable (#488)
primitives
Addy_parity_byte_non_eip155
toParity
(#499)- Add constructorCall to
sol!
(#493) - primitives Add
Address::from_private_key
(#483)
- Release 0.6.1
- Add SECURITY.md (#494)
- primitives Pass B256 by reference in Signature methods (#487)
- Include path in error (#486)
- Improve unlinked bytecode deserde error (#484)
0.6.0 - 2024-01-10
- primitives Also apply EIP-155 to Parity::Parity (#476)
- Clean the sealed (#468)
- Update docs on parity (#477)
- json-abi Add full_signature (#480)
- primitives Add Signature type and utils (#459)
- primitives Add a buffer type for address checksums (#472)
- dyn-abi Improve hex error messages (#474)
- sol-type-parser Improve error message for bad array size (#470)
- primitives Add Keccak256 hasher struct (#469)
- Release 0.6.0
- Bless tests (#478)
- Clippy uninlined_format_args, use_self (#475)
- Touch up UDVT expansion (#473)
- Move define_udt! decl macro to sol! proc macro (#471)
- Release 0.5.4
- Log implementation (#465)
0.5.4 - 2023-12-27
- Sealed (#467)
- primitives Re-export ::bytes (#462)
- primitives Support parsing numbers in Unit::from_str (#461)
- Enable postgres ruint feature (#460)
- Clean up address checksum implementation (#464)
- Clippy (#463)
- sol-types Make PanicKind non_exhaustive (#458)
- Add optional support for keccak-asm (#466)
- Add ToSql and FromSql to Signed and FixedBytes (#447)
0.5.3 - 2023-12-16
- sol-types Un-break decode revert (#457)
- Ingest domain when instantiating TypedData (#453)
- Don't decode ZSTs (#454)
- primitives Return correct fixed length in ssz::Encode (#451)
- Address from pubkey (#455)
- Add
RevertReason
enum (#450) - primitives Update Bytes formatting, add UpperHex (#446)
- Release 0.5.3
- Bless tests (#456)
0.5.2 - 2023-12-01
- Release 0.5.2
- Add some regression tests (#443)
0.5.1 - 2023-11-30
- Fix public leak (#437)
- Release 0.5.1
- Re-enable MSRV all features check (#439)
0.5.0 - 2023-11-23
- sol-types Many ABI coder fixes (#434)
- sol-types ContractError decoding (#430)
- sol-macro Handle outer attrs in abigen input (#429)
- sol-macro Correctly print Custom types in parameters (#425)
- sol-types Remove
SolType::ENCODED_SIZE
default (#418) - syn-solidity Raw keyword identifiers (#415)
- Rust keyword conflict (#405)
- Wrong as_u8 generated for enum (#413)
- dyn-abi Correctly parse strings in
coerce_str
(#410) - dyn-abi Handle empty hex strings (#400)
- syn-solidity Allow some duplicate attributes (#399)
- sol-type-parser Normalize
u?int
tou?int256
(#397) - Avoid symlinks (#396)
- primitives Signed cleanup (#395)
- Don't use directory symlinks (#394)
- sol-macro Keep more attributes on contract module (#391)
- json-abi
Param.ty
is not always a validTypeSpecifier
(#386) - dyn-abi Generate Int, Uint, FixedBytes adjusted to their size (#384)
- sol-types
SolInterface::MIN_DATA_LENGTH
overflow (#383) - [docs] Switch incorrect function docs (#374)
- sol-macro Bug fixes (#372)
- sol-macro Correct
SolCall::abi_decode_returns
(#367) - syn-solidity Struct fields formatting (#364)
- primitives Left and right padding conversions (#424)
- primitives Improve utils (#432)
- sol-types Add empty
bytes
andstring
specialization (#435) - sol-macro
SolEventInterface
:SolInterface
for contract events enum (#426) - sol-macro Add
json-abi
item generation (#422) - Enable ruint ssz when primitives ssz (#419)
- json-abi Permit keyword prefixes in HR parser (#420)
- Added Hash to DynSolType and StructProp (#411)
- json-abi Improve
JsonAbi::to_sol
(#408) - sol-types Add some more methods to
abi::Decoder
(#404) - sol-macro Add definition doc to structs and enums (#393)
- dyn-abi
DynSolType::coerce_str
(#380)
- Release 0.5.0
- Update git-cliff config
- Restructure tests (#421)
- Rename
TokenType
GAT and trait toToken
(#417) - Remove dead code (#416)
- Update .git-blame-ignore-revs
- Use winnow
separated
instead ofseparated0
(#403) - Clean up ABI, EIP-712, docs (#373)
- sol-macro Move generated docs below input attrs (#363)
- sol-types Remove impls for isize/usize (#362)
- SSZ implementation for alloy primitives (#407)
- Enable rand feature for re-exported ruint crate (#385)
- Cargo build instead of check (#368)
- Update rustfmt config (#406)
0.4.2 - 2023-10-09
- primitives Set serde derive feature (#359)
- Release 0.4.2
0.4.1 - 2023-10-09
- sol-macro Flatten doc strings correctly (#357)
- json-abi Fallback to tuple types for nested params in
to_sol
(#354) - sol-macro Correct
TypeArray::is_abi_dynamic
(#353) - sol-macro Dedup json abi items (#346)
- Json-abi not using anonymous when converting to interface (#342)
- sol-macro Remove extra 0x in function docs (#341)
- sol-macro Pass attributes to all generated items (#340)
- syn-solidity Set spans on generated struct names (#336)
- Serde rename resolver to types (#335)
- sol-macro Add docs to generated contract modules (#356)
- json-abi Deserialize more ContractObjects (#348)
- sol-macro Improve error messages (#345)
- sol-types Introduce
SolValue
, makeEncodable
an impl detail (#333) - syn-solidity Add even more Display impls (#339)
- sol-macro Improve generated docs (#338)
- syn-solidity Add some more Display impls (#337)
- Add parsing support for JSON items (#329)
- Add logs, add log dynamic decoding (#271)
- Release 0.4.1
- sol-types Rewrite encodable impl generics (#332)
- Add count to all_the_tuples! macro (#331)
- Enable ruint std feature (#326)
- Fix typos (#325)
- dyn-abi Make
resolve
module private (#324)
- Run miri in ci (#327)
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)
- Kuly14/cleanup (#151)
- Explain alloy vs ethers-rs intention (#146)
- Refactoring
dyn-abi
to performance parity with ethabi (#144) - 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