Highlights
syn-solidity
is now (almost) complete, as it can also parse all expression, statements, and Yul. Special thanks to @Will-Smith11, @mouseless-eth, and @0xMemoryGrinder! (#314, #268, #199)alloy-json-abi
items (likeFunction
andEvent
) can now be used in combination withalloy-dyn-abi
to ABI-encode their input or output parameters throughJsonAbiExt
(#243)- All the
encode
,encode_single
and functions and their respectives indecode*
andSolType::*
were renamed toencode_sequence
andencode
respectively.*_params
functions remain unchanged (#274) - Prefixed all ABI
encode
anddecode
-like functions withabi_
;alloy-sol-types
ABI-related items were moved into theabi
module (#311) alloy-sol-type-parser
got 10% to 50% faster, but now rejects any whitespace (#292)- Lots of bugfixes
What's Changed
- fix: hex compatibility by @DaniPopes in #244
- fix: MSRV tests by @DaniPopes in #246
- feat(primitives): allow empty input in hex macros by @DaniPopes in #245
- docs: data types typo by @DaniPopes in #248
- typo by @rodrigoherrerai in #249
- feat(sol-macro): add opt-in attributes for extra methods and derives by @DaniPopes in #250
- chore: some clippy lints by @DaniPopes in #251
- fix(syn-solidity): imports by @DaniPopes in #252
- docs: update fixed bytes docs by @DaniPopes in #255
- perf: use
slice::Iter
where possible by @DaniPopes in #256 - feat(dyn-abi): implement more ext traits for json-abi by @DaniPopes in #243
- fix: struct
eip712_data_word
by @prestwich in #258 - feat(syn-solidity): improve variable getters generation by @DaniPopes in #260
- feat(sol-macro): expand fields with attrs by @0xgregthedev in #263
- feat: add attributes to enum variants by @DaniPopes in #264
- feat(sol-macro): expand getter functions' return types by @DaniPopes in #262
- dep: pin anstyle to 1.65 compat by @prestwich in #266
- doc: add note regarding ruint::uint macro by @prestwich in #265
- chore: fix MSRV CI and dev deps by @DaniPopes in #267
- chore: update CODEOWNERS by @DaniPopes in #270
- feat(primitives): improve Bytes by @DaniPopes in #269
- Support yul ast by @mouseless-eth in #268
- chore: bump all deps by @DaniPopes in #273
- feat: add more
Bytes
conversion impls by @DaniPopes in #280 - feat: impl
bytes::Buf
for our ownBytes
by @DaniPopes in #279 - feat: use
FixedBytes
forsol_data::FixedBytes
by @DaniPopes in #276 - feat: add support for
rand
by @DaniPopes in #282 - feat: add more
FixedBytes
to int conversion impls by @DaniPopes in #281 - chore: re-export ::bytes by @DaniPopes in #278
- refactor: simplify
Eip712Domain::encode_data
by @DaniPopes in #277 - fix(syn-solidity): parse modifiers without parens by @DaniPopes in #284
- fix: rand default-features typo by @DaniPopes in #286
- feat: improve
SolError
,SolInterface
structs and implementations by @DaniPopes in #285 - docs(syn-solidity): document dollar signs in idents by @DaniPopes in #288
- fix: respect
all_derives = false
, fix custom type printing by @DaniPopes in #272 - feat(primitives): add more methods to
Function
by @DaniPopes in #290 - feat(json-abi): add
Function::signature_full
by @DaniPopes in #289 - chore: rename coding functions by @DaniPopes in #274
- feature: unsupported message for $idents by @prestwich in #293
- chore: do not implement SolType for SolStruct generically by @DaniPopes in #275
- chore: add missing
#[automatically_derived]
by @DaniPopes in #294 - refactor: rewrite type parser with
winnow
by @DaniPopes in #292 - chore: use
hex!
macro fromprimitives
re-export by @DaniPopes in #299 - chore: assert_eq! on Ok instead of unwrapping where possible by @DaniPopes in #297
- chore: sync crate level attributes by @DaniPopes in #303
- docs: improve
ResolveSolType
documentation by @DaniPopes in #296 - hash_message by @supernovahs in #304
- feat(syn-solidity): add more
Spanned
impls by @DaniPopes in #301 - feat(sol-macro): improve type expansion by @DaniPopes in #302
- perf: optimize identifier parsing by @DaniPopes in #295
- chore: unhide clippy config file by @DaniPopes in #305
- ci: cache on failure by @DaniPopes in #306
- fix: add super import on generated modules by @DaniPopes in #307
- test: move
decode_revert_reason
to alloy and add tests by @alessandromazza98 in #308 - chore: simpler ENCODED_SIZE for SolType tuples by @DaniPopes in #312
- chore: format code snippets in docs by @DaniPopes in #313
- feat(syn-solidity): visitor hooks for statements and expressions by @0xMemoryGrinder in #314
- chore: touch up #314 by @DaniPopes in #315
- test(syn-solidity): improve contract tests by @DaniPopes in #316
- chore: don't pass debug feature to winnow by @DaniPopes in #317
- chore: prefix ABI encode and decode functions with
abi_
by @DaniPopes in #311 - feat(sol-macro): add support for overloaded events by @DaniPopes in #318
- fix(sol-macro): implement EventTopic for generated enums by @DaniPopes in #320
- feat(sol-macro): add docs to generated items by @DaniPopes in #321
- docs: add automated CHANGELOG.md by @DaniPopes in #322
New Contributors
- @rodrigoherrerai made their first contribution in #249
- @0xgregthedev made their first contribution in #263
- @supernovahs made their first contribution in #304
- @alessandromazza98 made their first contribution in #308
- @0xMemoryGrinder made their first contribution in #314
Full Changelog: v0.3.2...v0.4.0