March '22
StackExchange Beta
We are participating in the Beta of the Substrate StackExchange site!
If this StackExchange site gains traction it will be made available to the general public. To reach this goal it's important to have the community engage there though.
Head over to substrate.stackexchange.com
to ask us any questions (there is an ink
tag)!
ink! 3.0 🦑
The star of the show this month is the release of ink! 3.0:
- You can find the release notes here.
- We've also published a blog post with some more context: ink! 3.0: Parity’s Rust-Based Language for WASM Smart Contracts Gets a Major Update.
The team has been working on this release for a while. If you're a developer you're
probably aware of this thanks to the long list of release candidates (v3.0.0-rcX
) we've
pushed out in preparation for the stable 3.0 release.
The main idea behind ink! 3.0 is that it's just Rust. The syntax is pretty much
identical, and all the tooling you know and love, such as rust-analyzer
and Clippy,
just works.
Some other included changes worth highlighting:
- Reduced contract sizes for better performance in a parachain context.
- Support for cross-contract calls, making it easier to write complex applications.
- Trait support, allowing for a more Rusty development experience.
cargo-contract 1.0
Alongside the release of ink! 3.0 we're also releasing cargo-contract
in
its first stable version 1.0.
cargo-contract
is a handy developer tool for building, testing, and deploying ink!
contracts.
Some notable updates in this release include:
- Support for uploading and calling contracts on a chain with
pallet-contracts
. - Linting rules for ink! contracts, giving developers warnings about common errors.
Delegate Call
Another update worth pointing out is the addition of delegate_call
. What this allows is
a way for contracts to forward a call they received to another contract.
One use case for this is implementing a Proxy Upgrade Pattern for smart contracts.
User ---- tx ---> Proxy ----------> Implementation_v0
|
------------> Implementation_v1
|
------------> Implementation_v2
This required some work in both pallet-contracts
and ink!. Shoutout to the team over
at Supercolony for driving the development here!
We now have two example contracts for writing upgradeable contracts in ink!. See here for a deeper explanation.
Workshop & Talk at EthDenver
Hernando and Achim went to EthDenver to give a workshop and talk regarding ink! on the Substrate stage!
The recording is available here.