|
1 | 1 | # Monthly Update: Parity Smart Contracts |
2 | 2 |
|
3 | | -## What is this? |
4 | | -Hey there reader 👋! |
5 | | - |
6 | | -This is meant to be a high-level overview of the changes that have taken place as part of |
7 | | -Parity's Web Assembly (Wasm) smart contract efforts. These efforts include the [`ink!`](https://github.com/paritytech/ink) |
8 | | -programming language, the [`pallet-contracts`](https://github.com/paritytech/substrate/tree/master/frame/contracts) execution environment, the [`cargo-contract`](https://github.com/paritytech/cargo-contract) |
9 | | -development tool, and the [Canvas parachain](https://github.com/paritytech/cumulus/tree/master/polkadot-parachains/canvas-kusama). For anything UI related go check out the |
10 | | -[`contracts-ui` repository](https://github.com/paritytech/contracts-ui). |
11 | | - |
12 | | -If these updates are too high-level for you you can always check out the release notes for |
13 | | -the various projects: |
14 | | -- [`ink!`](https://github.com/paritytech/ink/blob/master/RELEASES.md) |
15 | | -- [`pallet-contracts`](https://github.com/paritytech/substrate/blob/master/frame/contracts/CHANGELOG.md) |
16 | | -- [`cargo-contract`](https://github.com/paritytech/cargo-contract/blob/master/CHANGELOG.md) |
17 | | - |
18 | | -If you're new here and aren't sure where to get started with ink! check out our |
19 | | -[guided tutorial for beginners](https://docs.substrate.io/tutorials/v3/ink-workshop/pt1/). |
20 | | - |
21 | | -This was inspired by the [Polkadot Staking Progress Report](https://gist.github.com/kianenigma/aa835946455b9a3f167821b9d05ba376) ❤️. |
22 | | - |
23 | | -## April 2022 |
24 | | - |
25 | | -### Releases 🆕 |
26 | | - |
27 | | -For ink! we released [v3.0.1](https://github.com/paritytech/ink/releases/tag/v3.0.1) with |
28 | | -minor bugfixes. Besides that we made a number of improvements to our examples ‒ mostly to |
29 | | -our [upgradeable contracts examples](https://github.com/paritytech/ink/tree/master/examples/upgradeable-contracts). |
30 | | - |
31 | | -For [`cargo-contract`](https://github.com/paritytech/cargo-contract) we released |
32 | | -[v1.1.1](https://github.com/paritytech/cargo-contract/releases/tag/v1.1.1) and |
33 | | -[v1.2.0](https://github.com/paritytech/cargo-contract/releases/tag/v1.2.0) |
34 | | -with bug fixes, a new sub-command `decode`, and improved support for the `call` and |
35 | | -`instantiate` sub-commands. |
36 | | - |
37 | | -For tutorials, development and testing we recommend using our |
38 | | -[`substrate-contracts-node`](https://github.com/paritytech/substrate-contracts-node). |
39 | | -We issued the release [v0.13.0](https://github.com/paritytech/substrate-contracts-node/releases/tag/v0.13.0), |
40 | | -which is in sync with a recent Substrate `master` (see the release notes for the specific commit hash). |
41 | | -Pre-built binaries for the release are available for Linux and Mac. |
42 | | - |
43 | | -### Community Badges 🙌 |
44 | | - |
45 | | -We've added two versions of a community badge. |
46 | | - |
47 | | -If you have a public repository with an ink! contract it would be awesome |
48 | | -if you could add one of those! |
49 | | - |
50 | | -#### Normal Design |
51 | | - |
52 | | -[](https://github.com/paritytech/ink) |
53 | | - |
54 | | -```markdown |
55 | | -[](https://github.com/paritytech/ink) |
56 | | -``` |
57 | | - |
58 | | -#### Flat Design |
59 | | - |
60 | | -[](https://github.com/paritytech/ink) |
61 | | - |
62 | | -```markdown |
63 | | -[](https://github.com/paritytech/ink) |
64 | | -``` |
65 | | - |
66 | | -### Team Retreat in Athens 🇬🇷 |
67 | | - |
68 | | -We ‒ the developers working on ink!, Substrate's [`pallet-contracts`](https://github.com/paritytech/substrate/tree/master/frame/contracts), |
69 | | -and the [Contracts UI](https://github.com/paritytech/contracts-ui) ‒ |
70 | | -went on a team retreat in April. We discussed our roadmap for the rest |
71 | | -of this year, as well as some technical designs of how we want to implement |
72 | | -e.g. XCM in ink!. We're normally working across different time zones, with |
73 | | -some of us embracing the digital nomad lifestyle. Hence it was very |
74 | | -productive to gather together for a week. |
75 | | - |
76 | | -We also did a little hackathon to do some dog-fooding: we've built a |
77 | | -Dapp that makes use of all components by the above teams. We plan |
78 | | -to open source it soon, stay tuned for that 😎. |
79 | | - |
80 | | -There's a lot on the horizon and we're enthusiastic about the rest of this year! |
81 | | - |
82 | | - |
83 | | - |
84 | | -### Spanish Twitter Space 🐦 |
85 | | - |
86 | | -[Hernando](https://github.com/hcastano) was a guest at the spanish Polkadot |
87 | | -Twitter Space. The space has been recorded: |
88 | | - |
89 | | -* https://twitter.com/i/spaces/1MnGnkgmNdBJO |
90 | | -* https://twitter.com/i/spaces/1jMKgedkMgYJL |
91 | | - |
92 | | -The network connection of the organizer had a bad day, hence it's two |
93 | | -recordings. |
94 | | - |
95 | | -### StackExchange Public Beta |
96 | | - |
97 | | -The [Substrate & Polkadot StackExchange](https://substrate.stackexchange.com/) site |
98 | | -has graduated from its private beta ‒ the site is now in public beta! |
99 | | - |
100 | | -This means that the site is now indexed by search engines and can be |
101 | | -browsed without any user account. |
102 | | - |
103 | | -If you have any questions regarding ink! or smart contracts on Substrate this is |
104 | | -the place to be. |
105 | | - |
106 | | -### Canvas Update |
107 | | - |
108 | | -You may know that we were working on a common good smart contracts parachain |
109 | | -named Canvas. We've decided to put this project on hold. This gives us more |
110 | | -room to make ink! and the [`pallet-contracts`](https://github.com/paritytech/substrate/tree/master/frame/contracts) |
111 | | -as competitive as possible, as well as help parachain teams include those. |
112 | | -This is not to say that we'll never get back to Canvas, but as of right now |
113 | | -we're no longer working on this project. |
114 | | - |
115 | | -## March 2022 |
116 | | - |
117 | | -### StackExchange Beta |
118 | | - |
119 | | -We are participating in the Beta of [the Substrate StackExchange](https://substrate.stackexchange.com/) site! |
120 | | - |
121 | | -If this StackExchange site gains traction it will be made available to the general public. |
122 | | -To reach this goal it's important to have the community engage there though. |
123 | | - |
124 | | -Head over to [substrate.stackexchange.com](https://substrate.stackexchange.com/) |
125 | | -to ask us any questions (there is an `ink` tag)! |
126 | | - |
127 | | -### ink! 3.0 🦑 |
128 | | -The star of the show this month is the release of ink! 3.0: |
129 | | - |
130 | | -- You can find the release notes [here](https://github.com/paritytech/ink/releases/tag/v3.0.0). |
131 | | -- We've also published a blog post with some more context:<br> |
132 | | -[ink! 3.0: Parity’s Rust-Based Language for WASM Smart Contracts Gets a Major Update](https://www.parity.io/blog/ink-3-0-paritys-rust-based-language-gets-a-major-update). |
133 | | - |
134 | | -The team has been working on this release for a while. If you're a developer you're |
135 | | -probably aware of this thanks to the long list of release candidates (`v3.0.0-rcX`) we've |
136 | | -pushed out in preparation for the stable 3.0 release. |
137 | | - |
138 | | -The main idea behind ink! 3.0 is that it's just Rust. The syntax is pretty much |
139 | | -identical, and all the tooling you know and love, such as `rust-analyzer` and Clippy, |
140 | | -just works. |
141 | | - |
142 | | -Some other included changes worth highlighting: |
143 | | -- Reduced contract sizes for better performance in a parachain context. |
144 | | -- Support for cross-contract calls, making it easier to write complex applications. |
145 | | -- Trait support, allowing for a more Rusty development experience. |
146 | | - |
147 | | -### cargo-contract 1.0 |
148 | | -Alongside the release of ink! 3.0 we're also releasing [`cargo-contract`](https://github.com/paritytech/cargo-contract) in |
149 | | -its first stable version 1.0. |
150 | | -`cargo-contract` is a handy developer tool for building, testing, and deploying ink! |
151 | | -contracts. |
152 | | - |
153 | | -Some notable updates in this release include: |
154 | | -- Support for uploading and calling contracts on a chain with `pallet-contracts`. |
155 | | -- Linting rules for ink! contracts, giving developers warnings about common errors. |
156 | | - |
157 | | -### Delegate Call |
158 | | -Another update worth pointing out is the addition of `delegate_call`. What this allows is |
159 | | -a way for contracts to forward a call they received to another contract. |
160 | | - |
161 | | -One use case for this is implementing a [Proxy Upgrade Pattern](https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies) for smart contracts. |
162 | | - |
163 | | -``` |
164 | | -User ---- tx ---> Proxy ----------> Implementation_v0 |
165 | | - | |
166 | | - ------------> Implementation_v1 |
167 | | - | |
168 | | - ------------> Implementation_v2 |
169 | | -``` |
170 | | - |
171 | | -This required some work in both `pallet-contracts` and ink!. Shoutout to the team over |
172 | | -at [Supercolony](https://supercolony.net/) for driving the development here! |
173 | | - |
174 | | -We now have two example contracts for writing upgradeable contracts in ink!. |
175 | | -[See here](https://github.com/paritytech/ink/tree/master/examples/upgradeable-contracts) |
176 | | -for a deeper explanation. |
177 | | - |
178 | | -### Workshop & Talk at EthDenver |
179 | | - |
180 | | -[Hernando](https://github.com/hcastano) and [Achim](https://github.com/achimcc) went to EthDenver to |
181 | | -give a workshop and talk regarding ink! on the Substrate stage! |
182 | | - |
183 | | -The recording is available [here](https://www.youtube.com/watch?t=7122&v=NrG3co6UWEg). |
| 3 | +The monthly update has been moved to [https://ink.substrate.io/monthly-update](https://ink.substrate.io/monthly-update)! |
0 commit comments