Releases: alloy-rs/core
alloy-core v0.5.0
Highlights
- Implemented more utilities in [
alloy-primitives
] (#432) - Added
sol-macro
json-abi
item generation through#[sol(abi)]
(#422) - Added
sol-macro
SolEventInterface
(#426) - Added support for SSZ (#407)
- Added
dyn-abi
DynSolType::coerce_str
(#380) - Renamed
sol-types
SolType::TokenType
GAT andTokenType
trait toToken
(#417)
What's Changed
- chore(sol-types): remove impls for isize/usize by @DaniPopes in #362
- chore(sol-macro): move generated docs below input attrs by @DaniPopes in #363
- fix(syn-solidity): struct fields formatting by @DaniPopes in #364
- fix(sol-macro): correct
SolCall::abi_decode_returns
by @DaniPopes in #367 - ci: cargo build instead of check by @DaniPopes in #368
- fix(sol-macro): bug fixes by @DaniPopes in #372
- docs(
alloy-sol-types
): Switch incorrect function docs by @Evalir in #374 - chore: clean up ABI, EIP-712, docs by @DaniPopes in #373
- feat(dyn-abi):
DynSolType::coerce_str
by @DaniPopes in #380 - fix(sol-types):
SolInterface::MIN_DATA_LENGTH
overflow by @DaniPopes in #383 - fix(dyn-abi): generate Int, Uint, FixedBytes adjusted to their size by @DaniPopes in #384
- enable rand feature for re-exported ruint crate by @cool-mestorf in #385
- fix(json-abi):
Param.ty
is not always a validTypeSpecifier
by @DaniPopes in #386 - test: add errors abi test by @mattsse in #390
- fix(sol-macro): keep more attributes on contract module by @DaniPopes in #391
- feat(sol-macro): add definition doc to structs and enums by @DaniPopes in #393
- fix: don't use directory symlinks by @DaniPopes in #394
- fix(primitives): Signed cleanup by @DaniPopes in #395
- fix: avoid symlinks by @DaniPopes in #396
- fix(sol-type-parser): normalize
u?int
tou?int256
by @DaniPopes in #397 - fix(syn-solidity): allow some duplicate attributes by @DaniPopes in #399
- fix(dyn-abi): handle empty hex strings by @DaniPopes in #400
- chore: use winnow
separated
instead ofseparated0
by @DaniPopes in #403 - feat(sol-types): add some more methods to
abi::Decoder
by @DaniPopes in #404 - fmt: update rustfmt config by @DaniPopes in #406
- SSZ implementation for alloy primitives by @loocapro in #407
- feat(json-abi): improve
JsonAbi::to_sol
by @DaniPopes in #408 - fix(dyn-abi): correctly parse strings in
coerce_str
by @DaniPopes in #410 - feat: Added Hash to DynSolType and StructProp by @NianSol in #411
- fix: wrong as_u8 generated for enum by @huyhduong1401 in #413
- fix: rust keyword conflict by @Will-Smith11 in #405
- fix(syn-solidity): raw keyword identifiers by @DaniPopes in #415
- chore: remove dead code by @DaniPopes in #416
- chore: rename
TokenType
GAT and trait toToken
by @DaniPopes in #417 - fix(sol-types): remove
SolType::ENCODED_SIZE
default by @DaniPopes in #418 - feat(json-abi): permit keyword prefixes in HR parser by @DaniPopes in #420
- chore: restructure tests by @DaniPopes in #421
- feat: enable ruint ssz when primitives ssz by @prestwich in #419
- feat(sol-macro): add
json-abi
item generation by @DaniPopes in #422 - fix(sol-macro): correctly print Custom types in parameters by @DaniPopes in #425
- test: check version before running Solc by @DaniPopes in #428
- fix(sol-macro): handle outer attrs in abigen input by @DaniPopes in #429
- feat(sol-macro):
SolEventInterface
:SolInterface
for contract events enum by @DaniPopes in #426 - fix(sol-types): ContractError decoding by @DaniPopes in #430
- feat(sol-types): add empty
bytes
andstring
specialization by @DaniPopes in #435 - feat(primitives): improve utils by @DaniPopes in #432
- fix(sol-types): many ABI coder fixes by @DaniPopes in #434
- feat(primitives): left and right padding conversions by @prestwich in #424
New Contributors
- @Evalir made their first contribution in #374
- @cool-mestorf made their first contribution in #385
- @mattsse made their first contribution in #390
- @loocapro made their first contribution in #407
- @NianSol made their first contribution in #411
- @huyhduong1401 made their first contribution in #413
Full Changelog: v0.4.2...v0.5.0
alloy-core v0.4.2
Bug fix for alloy-primitives
features. Main changes in v0.4.1.
What's Changed
- fix(primitives): set serde derive feature by @DaniPopes in #359
Full Changelog: v0.4.1...v0.4.2
alloy-core v0.4.1
Highlights
alloy-primitives
now has a primitiveLog
struct (#271)- Added Human-Readable ABI support for
alloy-json-abi
items (#329) - Added
SolValue
convenience trait toalloy-sol-types
(#333) - Implemented
std::fmt::Display
on moresyn-solidity
items (#337, #339) - Original source of
sol!
generated items is now displayed in documentation code blocks (#356) - Bug fixes
What's Changed
- docs: fix changelog link by @DaniPopes in #323
- chore(dyn-abi): make
resolve
module private by @DaniPopes in #324 - chore: fix typos by @DaniPopes in #325
- chore: enable ruint std feature by @DaniPopes in #326
- ci: run miri in ci by @DaniPopes in #327
- docs: add scope to changelog commits by @DaniPopes in #328
- feat: add logs, add log dynamic decoding by @DaniPopes in #271
- feat: add parsing support for JSON items by @DaniPopes in #329
- chore: add count to all_the_tuples! macro by @DaniPopes in #331
- chore(sol-types): rewrite encodable impl generics by @DaniPopes in #332
- fix: serde rename resolver to types by @prestwich in #335
- fix(syn-solidity): set spans on generated struct names by @DaniPopes in #336
- feat(syn-solidity): add some more Display impls by @DaniPopes in #337
- feat(sol-macro): improve generated docs by @DaniPopes in #338
- feat(syn-solidity): add even more Display impls by @DaniPopes in #339
- fix(sol-macro): pass attributes to all generated items by @DaniPopes in #340
- fix(sol-macro): remove extra 0x in function docs by @DaniPopes in #341
- feat(sol-types): introduce
SolValue
, makeEncodable
an impl detail by @DaniPopes in #333 - fix: json-abi not using anonymous when converting to interface by @Will-Smith11 in #342
- feat(sol-macro): improve error messages by @DaniPopes in #345
- fix(sol-macro): dedup json abi items by @DaniPopes in #346
- feat(json-abi): deserialize more ContractObjects by @DaniPopes in #348
- fix(sol-macro): correct
TypeArray::is_abi_dynamic
by @DaniPopes in #353 - fix(json-abi): fallback to tuple types for nested params in
to_sol
by @DaniPopes in #354 - test: add regression test for #351 by @DaniPopes in #355
- feat(sol-macro): add docs to generated contract modules by @DaniPopes in #356
- fix(sol-macro): flatten doc strings correctly by @DaniPopes in #357
Full Changelog: v0.4.0...v0.4.1
alloy-core v0.4.0
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
alloy-core v0.3.2
What's Changed
- fix(sol-macro): don't panic when encountering functions without names by @DaniPopes in #217
- feat(sol-macro): expand getter functions for public state variables by @DaniPopes in #218
- fix(sol-macro): encode UDVTs as their underlying type in EIP-712 by @DaniPopes in #220
- fix bincode serialization by @Wollac in #223
- chore: clippy by @DaniPopes in #225
- feat(dyn-abi): allow
T: Into<Cow<str>>
ineip712_domain!
by @DaniPopes in #222 - fix(sol-macro): snake_case'd function names by @DaniPopes in #226
- chore(json-abi): avoid unsafe, remove unused generics by @DaniPopes in #229
- feat: function type by @DaniPopes in #224
- perf: refactor TypeSpecifier parsing by @DaniPopes in #230
- perf: optimize some stuff by @DaniPopes in #231
- feat(dyn-abi): add match functions to value and doc aliases by @DaniPopes in #234
- feat(syn-solidity): add statements and expressions by @Will-Smith11 in #199
- feat: Add support for function input/output encoding/decoding by @davebryson in #227
- chore(primitives): discourage use of
B160
by @DaniPopes in #235 - feat(primitives): more
FixedBytes<N>
<->[u8; N]
conversions by @DaniPopes in #239 - Port ethabi json tests by @mouseless-eth in #232
- fix(json-abi): properly handle Param
type
field by @DaniPopes in #233 - feat: implement abi2sol by @DaniPopes in #228
New Contributors
- @Wollac made their first contribution in #223
- @Will-Smith11 made their first contribution in #199
- @davebryson made their first contribution in #227
- @mouseless-eth made their first contribution in #232
Full Changelog: v0.3.1...v0.3.2
alloy-core v0.3.1
What's Changed
- docs: update README.md by @DaniPopes in #208
- docs(json-abi): add README.md by @DaniPopes in #209
- docs: add ambiguity details to Encodable rustdoc by @prestwich in #211
- feat: support
ethabi
Contract methods by @andyrobert3 in #195 - chore: bump ruint to 1.10.1 + alloc by @prestwich in #213
- doc: update no-std not in readme by @prestwich in #215
New Contributors
- @andyrobert3 made their first contribution in #195
Full Changelog: v0.3.0...v0.3.1
alloy-core v0.3.0
Highlights
alloy-rlp
andalloy-rlp-derive
are now maintained in a separate repository (https://github.com/alloy-rs/rlp), and as such may differ in versioning- Added 3 new crates:
alloy-sol-type-parser
: A simple parser for Solidity type stringsalloy-dyn-abi
: Run-time ABI and EIP-712 implementationsalloy-json-abi
: JSON-ABI implementation
What's Changed
- chore: move macro doctests to separate folder by @DaniPopes in #140
- chore: add smaller image for favicon by @DaniPopes in #142
- refactor: do not generate SolCall for return values by @prestwich in #134
- refactor: Rename Sol*::Tuple to Parameters/Arguments by @shawnharmsen in #145
- Explain alloy vs ethers-rs intention by @moh-eulith in #146
- Rename
domain
macro and add more docs by @prestwich in #147 - doc: request that PR contributors allow maintainer edits by @prestwich in #148
- chore: clean ups by @DaniPopes in #150
- Kuly14/cleanup by @prestwich in #151
- fix(alloy-primitives): fix broken documentation link by @mrice32 in #152
- chore: warn on all rustdoc lints by @DaniPopes in #154
- Refactoring
dyn-abi
to performance parity with ethabi by @prestwich in #144 - fix: doc in dyn-abi by @prestwich in #155
- fix(sol-types): empty data decode by @DaniPopes in #159
- feat(primitives): fixed bytes macros by @DaniPopes in #156
- feat:
SolEnum
andSolInterface
by @DaniPopes in #153 - feat(primitives): add some impls by @DaniPopes in #162
- feat(json-abi): add more impls by @DaniPopes in #164
- feature: DynSolType::decode_params by @prestwich in #166
- Significant dyn-abi fixes :) by @prestwich in #168
- fix: remove unwrap in decode_populate by @prestwich in #172
- feat(dyn-abi): clean up and improve performance by @DaniPopes in #174
- chore(dyn-abi): gate eip712 behind a feature by @DaniPopes in #176
- docs(rlp): move example to README.md by @DaniPopes in #177
- feat(dyn-abi): cfg CustomStruct for eip712, rm CustomValue by @DaniPopes in #178
- feat(dyn-abi): add arbitrary impls and proptests by @DaniPopes in #175
- feat/refactor(rlp): improve implementations by @DaniPopes in #182
- feat: Solidity type parser by @prestwich in #181
- feat(sol-macro):
#[sol]
attributes and JSON ABI support by @DaniPopes in #173 - doc: add parser to readme by @prestwich in #183
- chore: move rlp crates to a separate repo by @DaniPopes in #187
- docs: add licensing note to README.md by @DaniPopes in #186
- feat: native keccak feature flag by @rachel-bousfield in #185
- chore: remove remaining refs to rlp by @DaniPopes in #190
- feat(dyb-abi): impl ResolveSolType for Rc by @DaniPopes in #189
- chore: clippy by @DaniPopes in #196
- ci: cache wasm job by @DaniPopes in #197
- test: run UI tests only on nightly by @DaniPopes in #194
- fix: remove unused method body on solstruct by @prestwich in #200
- chore: replace
ruint2
withruint
by @DaniPopes in #192 - fix: correct encodeType expansion for nested structs by @prestwich in #203
- feature: bytes handles numeric arrays and bytearrays in deser by @prestwich in #202
- chore: add release.toml by @DaniPopes in #205
- chore: wrap Bytes methods which return Self by @DaniPopes in #206
New Contributors
- @shawnharmsen made their first contribution in #145
- @moh-eulith made their first contribution in #146
- @mrice32 made their first contribution in #152
- @rachel-bousfield made their first contribution in #185
Full Changelog: v0.2.0...v0.3.0
Alloy: Fast, battle-tested and well-documented building blocks for Ethereum, in Rust
We’re excited to announce alloy-rs/core, a rewrite of the popular ethers-core package and the ethabi crate. Core offers:
- Alloy Primitives: We provide new fundamental types for hashes, fixed-byte arrays, and signed and unsigned integers (built on Remco’s uint library). These types implement common traits sanely (no more truncated hashes like “0x1234…5678”), aim for no_std compatibility, and provide common helper functions for usage in applications.
- Alloy RLP: A canonical RLP implementation.
- Alloy RPC Types: All the RPC types when talking to a chain are available using our newly defined types.
- Syn Solidity: A
syn
-powered Solidtiy parser, specifically designed for Rust procedural macros. It aims to mimic the behavior of the official Solidity compiler (Solc) when it comes to parsing valid Solidity code. This is a powerful abstraction which we leverage for building performant compile-time functionalities, like static ABI coders (see below). - Alloy Solidity Types: A compile-time representation of Ethereum's type system with ABI and EIP-712 support. This allows for clean UX and high encoding/decoding speed without redundant layers of abstraction. This static abi encoder is built on a robust representation of Solidity’s type system in Rust. Users access it via the sol! procedural macro, which parses Solidity snippets to generate native Rust code. The static encoder benches at 2-3x faster (!!) than current Rust implementations which are 1+ order of magnitude faster than other languages.
Here is a low-level example of how you can use these new primitives:
use alloy_primitives::Address;
use alloy_sol_types::{sol, SolType};
// Type definition: generates a new struct that implements `SolType`
sol! {
type MyType is uint256;
}
// Type aliases
type B32 = sol! { bytes32 };
// This is equivalent to the following:
// type B32 = alloy_sol_types::sol_data::Bytes<32>;
type SolArrayOf<T> = sol! { T[] };
type SolTuple = sol! { tuple(address, bytes, string) };
let _ = <sol!(bool)>::encode_single(&true);
let _ = B32::encode_single(&[0; 32]);
let _ = SolArrayOf::<sol!(bool)>::encode_single(&vec![true, false]);
let _ = SolTuple::encode_single(&(Address::ZERO, vec![0; 32], "hello".to_string()));
Here's a higher-level example, showing a roundtrip ABI encoding of an ERC20 transfer:
use alloy_primitives::{Address, U256};
use alloy_sol_types::{sol, SolCall};
use hex_literal::hex;
sol! {
#[derive(Debug, PartialEq)]
interface IERC20 {
function transfer(address to, uint256 amount) external returns (bool);
}
}
// random mainnet ERC20 transfer
// https://etherscan.io/tx/0x947332ff624b5092fb92e8f02cdbb8a50314e861a4b39c29a286b3b75432165e
let data = hex!(
"a9059cbb"
"0000000000000000000000008bc47be1e3abbaba182069c89d08a61fa6c2b292"
"0000000000000000000000000000000000000000000000000000000253c51700"
);
let expected = IERC20::transferCall {
to: Address::from(hex!("8bc47be1e3abbaba182069c89d08a61fa6c2b292")),
amount: U256::from(9995360000_u64),
};
assert_eq!(data[..4], IERC20::transferCall::SELECTOR);
let decoded = IERC20::IERC20Calls::decode(&data, true).unwrap();
assert_eq!(decoded, IERC20::IERC20Calls::transfer(expected));
assert_eq!(decoded.encode(), data);
Alloy is really powerful!
These crates will act as the solid foundation we’ve always wanted for Ethereum in Rust, informed by the lessons from our last 3 years of Rust Ethereum engineering. The code for these crates is under active development on github. We love new contributors. The pre-1.0.0 version of these crates are available on [crates.io](https://crates.
io/crates/alloy-primitives), and docs.rs.
PRs included in this release:
- feature: add uint as submodule by @prestwich in #1
- Prestwich/dyn enc by @prestwich in #2
- Generic signed int implementation by @prestwich in #3
- Implement ABI for I256 by @prestwich in #5
- Prestwich/int-edge-cases by @prestwich in #4
- Dynamic EIP-712 by @prestwich in #6
- ci: add initial Continuous Integration Workflows using GitHub® Actions™ by @DaniPopes in #8
- feat: improve macros by @DaniPopes in #7
- Prestwich/ingest encode type by @prestwich in #15
- chore: use workspace.{package,dependencies} by @DaniPopes in #17
- fix: add alloc features in no_std by @prestwich in #18
- Add Address w/ checksum support to
primitives
by @prestwich in #19 - chore: add missing deny.toml by @DaniPopes in #23
- chore: update error type by @DaniPopes in #22
- Sol Type re-factoring by @prestwich in #20
- fix: sol macro parsing and expansion by @DaniPopes in #21
- feat: use
const-hex
instead ofhex
by @DaniPopes in #25 - feature: standard solidity revert & panic by @prestwich in #28
- feat(sol-type-parser): parse and expand custom errors and functions by @DaniPopes in #24
- doc: brief doc on the type system by @prestwich in #26
- refactor: remerge SolType and SolDataType by @prestwich in #30
- chore: use crates.io uint, move crates to
crates/*
by @DaniPopes in #31 - doc: main lib README by @prestwich in #34
- chore: pre-release mega cleanup by @DaniPopes in #35
- Prestwich/crate readmes by @prestwich in #41
- fmt: add rustfmt.toml by @DaniPopes in #42
- chore: add fmt commit to .git-blame-ignore-revs by @DaniPopes in #43
- doc: note on no_std support by @prestwich in #44
- chore: rename crates by @DaniPopes in #45
- ci: fix rustdoc job, docs by @DaniPopes in #46
- fix: type check int for dirty high bytes by @prestwich in #47
- fix: hex breaking change by @DaniPopes in #50
- feat: add PanicKind enum by @DaniPopes in #54
- fix: rlp impls by @DaniPopes in #56
- feat: primitive utils and improvements by @DaniPopes in #52
- doc: Contributing doc by @prestwich in #49
- feat: support function overloading in
sol!
by @DaniPopes in #53 - refactor:
sol!
AST and macro expansion by @DaniPopes in #61 - ci: fix dep job, add feature-checks job by @DaniPopes in #64
- feat: move Solidity syn AST to
syn-solidity
by @DaniPopes in #63 - fix: extra-traits in syn-solidity by @prestwich in #65
- chore: remove syn "full" feature by @DaniPopes in #66
- chore: enable
feature(doc_cfg, doc_auto_cfg)
by @DaniPopes in #67 - chore: rename to Alloy by @DaniPopes in #69
- feat/perf: abi benchmarks by @DaniPopes in #57
- feat: syn-solidity visitors by @DaniPopes in #68
- chore: feature-gate
getrandom
, document in README.md by @DaniPopes in #71 - docs: rlp-derive README.md by @DaniPopes in #70
- ci: add WASM job by @DaniPopes in #76
- test: bless tests after updating to syn 2.0.19 by @DaniPopes in #79
- Revert "test: bless tests after updating to syn 2.0.19" by @DaniPopes in #80
- feature: abi-json crate by @prestwich in #78
- feat:
sol!
contracts by @DaniPopes in #77 - fix: make detokenize infallible by @prestwich in #86
- test: add more json abi tests by @DaniPopes in #89
- refactor: implement
SolType
for{Ui,I}nt<N>
andFixedBytes<N>
with const-generics by @DaniPopes in #92 - refactor: change is_dynamic to a const DYNAMIC by @prestwich in #99
- fix: add
repr(C)
to json-abi items by @DaniPopes in #100 - feat: issue and PR templates #33...