Skip to content

Commit 1506bb3

Browse files
committed
Merge branch 'master' into cmichi-use-new-mapping-api-functions-in-examples
2 parents a27a53b + 961c7ef commit 1506bb3

File tree

7 files changed

+19
-197
lines changed

7 files changed

+19
-197
lines changed

MONTHLY_UPDATE.md

Lines changed: 1 addition & 181 deletions
Original file line numberDiff line numberDiff line change
@@ -1,183 +1,3 @@
11
# Monthly Update: Parity Smart Contracts
22

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-
[![Built with ink!](.images/badge.svg)](https://github.com/paritytech/ink)
53-
54-
```markdown
55-
[![Built with ink!](https://raw.githubusercontent.com/paritytech/ink/master/.images/badge.svg)](https://github.com/paritytech/ink)
56-
```
57-
58-
#### Flat Design
59-
60-
[![Built with ink!](.images/badge_flat.svg)](https://github.com/paritytech/ink)
61-
62-
```markdown
63-
[![Built with ink!](https://raw.githubusercontent.com/paritytech/ink/master/.images/badge_flat.svg)](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-
![Athens 2022](.images/monthly-update/athens-2022.jpg)
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)!

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Parity's ink! for writing smart contracts
55
</h1>
66

7-
[![linux][a1]][a2] [![codecov][c1]][c2] [![coveralls][d1]][d2] [![loc][e1]][e2] [![matrix][k1]][k2] [![discord][l1]][l2]
7+
[![linux][a1]][a2] [![codecov][c1]][c2] [![coveralls][d1]][d2] [![loc][e1]][e2] [![stack-exchange][s1]][s2]
88

99
[a1]: https://gitlab.parity.io/parity/ink/badges/master/pipeline.svg
1010
[a2]: https://gitlab.parity.io/parity/ink/pipelines?ref=master
@@ -26,26 +26,28 @@
2626
[k2]: https://riot.im/app/#/room/#ink:matrix.parity.io
2727
[l1]: https://img.shields.io/discord/722223075629727774?style=flat-square&label=discord
2828
[l2]: https://discord.com/invite/wGUDt2p
29+
[s1]: https://img.shields.io/badge/click-white.svg?logo=StackExchange&label=ink!%20Support%20on%20StackExchange&labelColor=white&color=blue
30+
[s2]: https://substrate.stackexchange.com/questions/tagged/ink?tab=Votes
2931

3032
> <img src="./.images/ink-squid.svg" alt="squink, the ink! mascot" style="vertical-align: middle" align="left" height="60" />ink! is an [eDSL](https://wiki.haskell.org/Embedded_domain_specific_language) to write smart contracts in Rust for blockchains built on the [Substrate](https://github.com/paritytech/substrate) framework. ink! contracts are compiled to WebAssembly.
3133
3234
<br/>
3335

3436
[Guided Tutorial for Beginners](https://docs.substrate.io/tutorials/v3/ink-workshop/pt1)&nbsp;&nbsp;&nbsp;&nbsp;
35-
[ink! Documentation Portal](https://paritytech.github.io/ink-docs)&nbsp;&nbsp;&nbsp;&nbsp;
37+
[ink! Documentation Portal](https://ink.substrate.io)&nbsp;&nbsp;&nbsp;&nbsp;
3638
[Developer Documentation](https://paritytech.github.io/ink/ink_lang/)
3739

3840

3941
<br/>
4042
</div>
4143

4244
More relevant links:
43-
* Talk to us on [Element][k2] or in [Discord][l2]
44-
on the [`ink_smart-contracts`](https://discord.com/channels/722223075629727774/765280480609828864) channel
45+
* [Substrate Stack Exchange](https://substrate.stackexchange.com/questions/tagged/ink?tab=Votes) ‒ Forum for getting your ink! questions answered
4546
* [`cargo-contract`](https://github.com/paritytech/cargo-contract) ‒ CLI tool for ink! contracts
4647
* [Contracts UI](https://paritytech.github.io/contracts-ui/) ‒ Frontend for contract instantiation and interaction
4748
* [Substrate Contracts Node](https://github.com/paritytech/substrate-contracts-node) ‒ Simple Substrate blockchain which includes smart contract functionality
48-
* [Substrate Stack Exchange](https://substrate.stackexchange.com/questions/tagged/ink/) - Forum for getting your ink! questions answered
49+
* We post announcements on [Matrix][k2] and [Discord][l2] (in the
50+
[`ink_smart-contracts`](https://discord.com/channels/722223075629727774/765280480609828864) channel).
4951

5052

5153
## Table of Contents
@@ -71,10 +73,10 @@ If you want to have a local setup you can use our [`substrate-contracts-node`](h
7173
It's a simple Substrate blockchain which includes the Substrate module for smart contract functionality ‒ the `contracts` pallet (see [How it Works](#how-it-works) for more).
7274

7375
We also have a live testnet on [Rococo](https://github.com/paritytech/cumulus/#rococo-)
74-
called [Canvas](https://paritytech.github.io/ink-docs/canvas). Canvas is a Substrate based
76+
called [Canvas](https://ink.substrate.io/canvas). Canvas is a Substrate based
7577
parachain which supports ink! smart contracts. For further instructions on using this
7678
testnet, follow the instructions in the
77-
[our documentation](https://paritytech.github.io/ink-docs/canvas#rococo-deployment).
79+
[our documentation](https://ink.substrate.io/canvas#rococo-deployment).
7880

7981
For both types of chains the [Contracts UI](https://paritytech.github.io/contracts-ui/)
8082
can be used to instantiate your contract to a chain and interact with it.
@@ -245,7 +247,7 @@ The `#[ink::test]` procedural macro enables off-chain testing. See e.g. the [`ex
245247

246248
## Developer Documentation
247249

248-
We have [a very comprehensive documentation portal](https://paritytech.github.io/ink-docs),
250+
We have [a very comprehensive documentation portal](https://ink.substrate.io),
249251
but if you are looking for the crate level documentation itself, then these are
250252
the relevant links:
251253

RELEASES.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,9 @@ ink! 3.0-rc4 is compatible with
385385
- [`substrate-contracts-node`](https://github.com/paritytech/substrate-contracts-node) version `0.1.0` or newer.
386386
- Install the newest version using `cargo install contracts-node --git https://github.com/paritytech/substrate-contracts-node.git --force`.
387387

388-
The documentation on our [Documentation Portal](https://paritytech.github.io/ink-docs)
388+
The documentation on our [Documentation Portal](https://ink.substrate.io)
389389
is up-to-date with this release candidate. Since the last release candidate we notably
390-
added a number of [Frequently Asked Questions](https://paritytech.github.io/ink-docs/faq)
390+
added a number of [Frequently Asked Questions](https://ink.substrate.io/faq)
391391
there.
392392

393393
## Quality Assurance
@@ -416,7 +416,7 @@ of key improvements to our testing setup:
416416
- Implemented the (unstable) `seal_rent_status` API ‒ [#798](https://github.com/paritytech/ink/pull/798).
417417
- Implemented the (unstable) `seal_debug_message` API ‒ [#792](https://github.com/paritytech/ink/pull/792).
418418
- Printing debug messages can now be achieved via `ink_env::debug_println!(…)`.
419-
- See [our documentation](https://paritytech.github.io/ink-docs/faq#how-do-i-print-something-to-the-console-from-the-runtime)
419+
- See [our documentation](https://ink.substrate.io/faq#how-do-i-print-something-to-the-console-from-the-runtime)
420420
for more information.
421421
- The examples have been updated to reflect this new way of printing debug messages.
422422
- Added usage comments with code examples to the `ink_env` API ‒ [#797](https://github.com/paritytech/ink/pull/797).
@@ -477,7 +477,7 @@ ink! 3.0-rc3 is compatible with
477477
## Added
478478

479479
- Implemented chain extensions feature for ink!.
480-
- ink!'s official documentation portal: https://paritytech.github.io/ink-docs/
480+
- ink!'s official documentation portal: https://ink.substrate.io/
481481
- It is now possible to pass a `salt` argument to contract instantiations.
482482
- Implemented fuzz testing for the ink! codebase.
483483

crates/storage/derive/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
//! structures that work along the `ink_storage` data structures by implementing
1919
//! `SpreadLayout` and `PackedLayout` traits.
2020
//!
21-
//! See [Spread vs. Packed](https://paritytech.github.io/ink-docs/datastructures/spread-packed-layout)
21+
//! See [Spread vs. Packed](https://ink.substrate.io/datastructures/spread-packed-layout)
2222
//! for more details of these two root strategies.
2323
//!
2424
//! # Examples

examples/delegator/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ In order to test this bundle of smart contracts you need to execute the
1313
following steps.
1414

1515
You can upload the contracts using our [Contracts UI](https://paritytech.github.io/contracts-ui/).
16-
If you want to test it locally, our [`substrate-contracts-node`](https://paritytech.github.io/ink-docs/getting-started/setup/#installing-the-substrate-smart-contracts-node)
16+
If you want to test it locally, our [`substrate-contracts-node`](https://ink.substrate.io/getting-started/setup/#installing-the-substrate-smart-contracts-node)
1717
is an easy way to get a local smart contract chain running.
1818

1919
1. Compile all contracts using the `./build-all.sh` script.

examples/rand-extension/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
It demonstrates how to call a custom Substrate function from ink!.
66

7-
See [this chapter](https://paritytech.github.io/ink-docs/macros-attributes/chain-extension)
7+
See [this chapter](https://ink.substrate.io/macros-attributes/chain-extension)
88
in our ink! documentation for more details.
99

1010
There are two parts to this example:

examples/upgradeable-contracts/delegate-calls/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ In order to test it out you need to do the following:
1818
`./upgradeable-flipper/target/ink/` folder.
1919

2020
In order to perform migrations and have proxy working for contracts with different
21-
[storage layouts](https://paritytech.github.io/ink-docs/datastructures/spread-storage-layout),
21+
[storage layouts](https://ink.substrate.io/datastructures/spread-storage-layout),
2222
we use the [`Upgradeable`](upgradeable-flipper/upgradeable.rs) type
2323
wrapper, which ensures that we write different fields of desired struct to different
2424
storage locations, while also tracking the initialization status (e.g., we uploaded

0 commit comments

Comments
 (0)