diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3ff40c5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,51 @@ +# Changelog + +These crates follow [semver](https://semver.org). + +## [0.6.0](https://github.com/OffchainLabs/stylus-sdk-rs/releases/tag/v0.6.0) - 2024-08-30 + +### Breaking Changes + +- `#[selector(id = ...)]` syntax has been removed to avoid misleading contracts + from being implemented. +- Several methods in `RawDeploy` which were not fully implemented yet +- `#[pure]`, `#[view]` and `#[write]` attributes have been removed in favor of + using arguments to infer state mutability. +- `stylus-sdk` now ships with `mini-alloc` enabled by default. This means that + a `#[global_allocator]` should not be declared in most cases. If a custom + allocator is still needed the `mini-alloc` should be disabled (enabled by + default). +- `StorageU1` and `StorageI1` types have been removed. + +### Deprecated + +- The `#[external]` macro is now deprecated in favor of `#[public]` which + provides the same funcitonality. +- The `#[solidity_storage]` macro is now deprecated in favor of `#[storage]` + which provides the same functionality. + +### Changed + +- Ensure consistency between proc macros when parsing attributes. +- Update `sol_interface!` macro to report errors when using Solidity features + which have not yet been implemented. + +### Fixed + +- Properly encode bytes when calling external contracts. +- Properly encode BYtes and strings in return types. +- Bytes type now works properly in `export-abi`. +- `export-abi` now works for contracts with no functions with returned values. +- Off-by-one error when storing strings with length 32. +- Interfaces in `sol_interface!` no longer incorrectly inherit functions from + previous definitions. + +### Documentation + +- Various documentation updates for clarity. +- Cleaned up typos and moved TODOs to the github issue tracker. + +### Security + +- Function signatures which generate the same selector values will now fail + at compile-time to avoid misleading contract calls. diff --git a/Cargo.lock b/Cargo.lock index caebfc6..d1ea6f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -339,7 +339,7 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mini-alloc" -version = "0.5.2" +version = "0.6.0" dependencies = [ "cfg-if", "wasm-bindgen-test", @@ -565,7 +565,7 @@ dependencies = [ [[package]] name = "stylus-proc" -version = "0.5.2" +version = "0.6.0" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -582,7 +582,7 @@ dependencies = [ [[package]] name = "stylus-sdk" -version = "0.5.2" +version = "0.6.0" dependencies = [ "alloy-primitives", "alloy-sol-types", diff --git a/Cargo.toml b/Cargo.toml index 344b4dc..e0fb65b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["stylus-sdk", "stylus-proc", "mini-alloc"] resolver = "2" [workspace.package] -version = "0.5.2" +version = "0.6.0" edition = "2021" authors = ["Offchain Labs"] license = "MIT OR Apache-2.0" @@ -33,4 +33,4 @@ convert_case = "0.6.0" # members mini-alloc = { path = "mini-alloc" } stylus-sdk = { path = "stylus-sdk" } -stylus-proc = { path = "stylus-proc", version = "0.5.2" } +stylus-proc = { path = "stylus-proc", version = "0.6.0" }