Skip to content

v5.0.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@SkymanOne SkymanOne released this 09 Sep 21:43
· 260 commits to master since this release
09f5fba

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 to ink_env #1840
  • Warn when primitive number is annotated as event topic - #1837
  • Events 2.0 - #1827
  • Add set_block_number to off-chain test api Engine - #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