v5.0.0-alpha
Pre-release
Pre-release
SkymanOne
released this
09 Sep 21:43
·
298 commits
to master
since this release
The preview release of the ink! 5.0.0 release.
This release addresses the majority of issues raised in the OpenZeppelin audit
in particular, we addressed the proxy selector clashing attack.
As of this release, ink! only allows exactly one other message with a well-known reserved selector to be defined.
You can read more about the change in the PR
There are also other notable changes:
- Rework of event definitions - #1827.
- Updated upgradeable contract example illustrating
delegate_call
- Removal of unchecked arithmetic.
cargo-contract
will fail compiling the contract with raw arithmetic operations. - Introduction of an alternative off-chain E2E testing backend, drink!
Big thanks to @pmikolajczyk41 for this massive contribution!
You can see a more detailed log of changes below:
Added
- [Drink backend]: allow for arbitrary runtime - #1892
- [Drink backend]: support runtime call - #1891
- Reexport
scale
dependencies, introduce#[ink::scale_derive]
- #1890 - Upgradeable contracts example - #1889
- Persist static buffer size in metadata - #1880
- Modify static buffer size via environmental variables - #1869
- [Drink backend]: Make tests generic
E2EBackend
trait - #1867 - [Drink backend]: Backend choice ‒ #1864
- [Drink backend]: Backend traits - #1857
- [Drink backend]: Abstract error and result structs - #1844
- Added
sr25519_verify
function toink_env
#1840 - Warn when primitive number is annotated as event topic - #1837
- Events
2.0
- #1827 - Add
set_block_number
to off-chain test apiEngine
- #1806 - Stabilize
call_runtime
‒ #1749 - Schema generation - #1765
- Restrict wildcard selectors to have exactly one other message - #1708
Changed
- Reexport
scale
dependencies, introduce#[ink::scale_derive]
‒ #1890 [ink_e2e]
build contracts at runtime instead of during codegen - #1881- Use of workspace dependencies and properties - #1835
- Remove of unchecked arithmetic - #1831
- E2E crate refactoring - #1830
- Use `decode_all`` for decoding cross contract call result - #1810
- E2E: improve call API, remove
build_message
+ callback - #1782