-
Notifications
You must be signed in to change notification settings - Fork 449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release ink! 5.1.0 #2317
Release ink! 5.1.0 #2317
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #2317 +/- ##
=======================================
Coverage 60.55% 60.55%
=======================================
Files 141 141
Lines 5785 5785
Branches 2394 2394
=======================================
Hits 3503 3503
Misses 2282 2282 ☔ View full report in Codecov by Sentry. |
🦑 📈 ink! Example Contracts ‒ Changes Report 📉 🦑These are the results when building the
Link to the run | Last update: Thu Nov 28 14:08:09 CET 2024 |
Version 5.1.0
This is the first ink! release outside of Parity. ink! was started at Parity and
during this year became a community project maintained by the ink! Alliance, a
loose group of former Parity employees and teams who want ink! to ensure a bright
future for ink!.
You can find more details about the community handover in
this X post.
Generally, the only thing changing on the user-facing side is that the repositories
have been moved from
paritytech
to the new GitHub organizationuse-ink
.❣ We want to say a big thank you to our Polkadot community, which recently decided on
funding the continued maintenance and development of ink! with
a Polkadot Treasury grant.
Highlights
This version of ink! comes with three highlights plus some minor fixes.
(1) XCM Support
ink! 5.1 supports the usage of XCM in contracts, developers are no longer limited
to cross-contract calls, but can now execute cross-parachain calls.
We added a contract example that demonstrates the usage:
contract-xcm
We also added a new page on our documentation website: TODO.
You can view the Rust docs of the two functions here:
xcm_send
xcm_execute
(2) Call an ink! contract from a
polkadot-sdk
runtimeink! 5.1 comes with basic support for calling contracts from a Polkadot runtime.
We've added this example
that demonstrates how to call
flipper
from apolkadot-sdk
runtime pallet.Calling a contract from the runtime is an interesting application for parachains,
as they can put logic into a contract instead of their runtime. Contracts have
a number of advantages, as they are easier to upgrade and allow for
faster development iteration cycles.
The limitations currently are:
pallet-contracts
context, as it is better to depend on a trait ratherthan a contract impl, since you are working against an interface.
(3) E2E Testing
We replaced our
drink
sandbox dependency with an internal ink! crate.In case you use DRink!:
First, you should upgrade your
drink
dependency toversion = "0.18.0"
.Second, these are the two changes you have to make:
Compatibility
The compatibility changes a bit to ink! 5.0:
>= 1.81
cargo-contract
:>= 5.0.0
polkadot-sdk
: >= v1.12.0(this release stabilized the
pallet-contracts
XCM functions that ink! uses)substrate-contracts-node
:>= 0.42.0
>= 0.18.0
Added
no-panic-handler
feature ‒ #2164xcm_execute
andxcm_send
support ‒ #1912Changed
paritytech
GitHub organization to newuse-ink
one ‒ #2220 and #2248subxt
andpolkadot-sdk
dependencies ‒ #2174drink
sandbox with internalink_sandbox
‒ #2158Fixed
burn()
clears token approval ‒ #2099[ink_e2e::test]
‒ #2162set_account_balance
now can't set balance below existential deposit ‒ #1983 (thanks @0xLucca!)[ink_e2e::test]
‒ #2162