New
- Introduction of a new library for building and deploying stylus contracts:
stylus-tools - Support for cargo workspaces. Cargo-stylus now supports building and deploying contracts within a cargo workspace. Contracts are marked with a
Stylus.tomlfile. Future configuration will be added to this file to facilitate per-contract and workspace-wide configuration options for contracts. - Addition of a new
contract-client-genfeature flag which allows contracts within a crate to be used as a "library" to be called by other contracts. - Support for nested structs in return types
- More convenient integer functions for storage
- Support for custom storage slots
- Support for tuples in return types
Changed
- Update calls / deploys / logs to use noew hostio model
- Additional integration tests
- Upgrade alloy version
- More example contracts from Stylus By Example
- Use alloy::Bytes type instead of our own
- Improvements to CI
- Move
cargo-stylusinto theOffchainLabs/stylus-sdk-rsrepo to simplify development and release of new cargo-stylus versions - Updates to
cargo stylus newfor creating workspaces and individual contracts (--workspaceand--contractflags respectively) - Allow pure functions in trait-based inheritance model
- Traits used for contract routing inheritance must now use the
#[public]macro - Mini-alloc has been moved to its own crate since it has been stable for some time
Fixed
- Fix panic when using
alloy_primitives::utils::keccak256() - Proper encoding of tuples containing dynamic length types
- Add missing definitions in
export-abioutput - Support for associated types in
export-abi - Disallow shadowing of constructor function selector
- Better sanitization of names in
export-abioutput - Disallow
AbiTypedefinitions which shadow solidity reserved type names - Fix panic when using
console!macro in testing environment - Allow parameterized traits with associated types
- Increase size of
ConstStringused to define potentially long `AbiTypes - Support for solidity mapping types in
sol_storage!macro
Removed
- Removal of deprecateed code from previous versions
- Old inheritance model no longer supproted
Full Changelog: v0.9.2...v0.10.0