Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Rename canvas to contracts (#1265)
Browse files Browse the repository at this point in the history
* Update SVG

* Rename `canvas-kusama` folder `contracts-rococo`

* Search-Replace `canvas-kusama` with `contracts-rococo`

* Search-Replace `canvas_kusama` with `contracts_rococo`

* Search-Replace `canvas_rococo` with `contracts_rococo`

* Rename `canvas-rococo.json` to `contracts-rococo.json`

* Rename `CanvasKusamaChainSpec` to `ContractsRococoChainSpec`

* Migrate chain specs and configurations to `contracts-rococo`

* Adapt readme

* Improve directory structure

* Remove last occurrences of `canvas`

* Apply `cargo fmt`

* Update README.md

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

* Fix funny indentation

* Fix wasm path renaming

Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Wilfried Kopp <wilfried@parity.io>
Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
  • Loading branch information
4 people authored May 18, 2022
1 parent a5bfd11 commit d0e13bc
Show file tree
Hide file tree
Showing 25 changed files with 292 additions and 330 deletions.
9 changes: 4 additions & 5 deletions .github/workflows/release-02_create-draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
runtime: ["shell", "statemine", "statemint", "westmint", "rococo-parachain", "canvas-kusama"]
runtime: ["shell", "statemine", "statemint", "westmint", "rococo-parachain", "contracts-rococo"]
steps:
- name: Checkout sources
uses: actions/checkout@v3
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
STATEMINE_DIGEST: ${{ github.workspace}}/statemine-srtool-json/statemine-srtool-digest.json
STATEMINT_DIGEST: ${{ github.workspace}}/statemint-srtool-json/statemint-srtool-digest.json
ROCOCO_PARA_DIGEST: ${{ github.workspace}}/rococo-parachain-srtool-json/rococo-parachain-srtool-digest.json
CANVAS_KUSAMA_DIGEST: ${{ github.workspace}}/canvas-kusama-srtool-json/canvas-kusama-srtool-digest.json
CANVAS_KUSAMA_DIGEST: ${{ github.workspace}}/contracts-rococo-srtool-json/contracts-rococo-srtool-digest.json
REF1: ${{ github.event.inputs.ref1 }}
REF2: ${{ github.event.inputs.ref2 }}
PRE_RELEASE: ${{ github.event.inputs.pre_release }}
Expand Down Expand Up @@ -191,7 +191,7 @@ jobs:
RUNTIME_DIR: polkadot-parachains
strategy:
matrix:
runtime: ["shell", "statemine", "statemint", "westmint", "rococo-parachain", "canvas-kusama"]
runtime: ["shell", "statemine", "statemint", "westmint", "rococo-parachain", "contracts-rococo"]
steps:
- name: Checkout sources
uses: actions/checkout@v3
Expand Down Expand Up @@ -221,8 +221,7 @@ jobs:
id: fix-runtime-path
run: |
cd "${{ matrix.runtime }}-runtime/"
mv "$(sed 's/-parachain/_parachain/' <<< ${{ matrix.runtime }})_runtime.compact.compressed.wasm" "${{ matrix.runtime }}_runtime.compact.compressed.wasm" || true
mv "$(sed 's/-kusama/_kusama/' <<< ${{ matrix.runtime }})_runtime.compact.compressed.wasm" "${{ matrix.runtime }}_runtime.compact.compressed.wasm" || true
mv "$(sed -E 's/-(.*)/_\1/' <<< ${{ matrix.runtime }})_runtime.compact.compressed.wasm" "${{ matrix.runtime }}_runtime.compact.compressed.wasm" || true
- name: Upload compressed ${{ matrix.runtime }} wasm
uses: actions/upload-release-asset@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/srtool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
chain: ["statemine", "westmint", "statemint", "rococo-parachain", "shell", "canvas-kusama"]
chain: ["statemine", "westmint", "statemint", "rococo-parachain", "shell", "contracts-rococo"]
steps:
- uses: actions/checkout@v3
with:
Expand Down
134 changes: 67 additions & 67 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ members = [
"polkadot-parachains/statemint",
"polkadot-parachains/statemine",
"polkadot-parachains/westmint",
"polkadot-parachains/canvas-kusama",
"polkadot-parachains/contracts-rococo",
"test/client",
"test/relay-sproof-builder",
"test/relay-validation-worker-provider",
Expand Down
92 changes: 3 additions & 89 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,95 +59,9 @@ CHAIN=westmint # or statemine

Refer to the [setup instructions below](#local-setup) to run a local network for development.

## Canvas 🧑‍🎨
## Contracts 📝

[![matrix][k1]][k2] [![discord][l1]][l2]

[k1]: https://img.shields.io/badge/matrix-chat-brightgreen.svg?style=flat
[k2]: https://riot.im/app/#/room/#ink:matrix.parity.io
[l1]: https://img.shields.io/discord/722223075629727774?style=flat-square&label=discord
[l2]: https://discord.com/invite/wGUDt2p

This is a node implementation of `Canvas`, a common good parachain for `pallet-contracts`
based wasm smart contracts. Right now this repository only contains the `canvas-kusama` runtime
which we plan to use for both Rococo and Kusama.

If you have any questions, feel free to talk to us on [Element][k2] or on [Discord][l2]
(in the [`ink_smart-contracts`](https://discord.com/channels/722223075629727774/765280480609828864) channel).

## Developing Smart Contracts for Canvas

![Canvas Overview](./docs/canvas-overview.svg)

This node contains Substrate's smart contracts module ‒ the
[`contracts`](https://github.com/paritytech/substrate/tree/master/frame/contracts) pallet.
This `contracts` pallet takes smart contracts as WebAssembly blobs and defines an API
for everything a smart contract needs (storage access, …).
As long as a programming language compiles to WebAssembly and there exists an implementation
of this API in it, you can write a smart contract for this pallet ‒ and thus for Canvas ‒ in
that language.

This is a list of languages you can currently choose from:

* [Parity's ink!](https://github.com/paritytech/ink) for Rust
* [ask!](https://github.com/patractlabs/ask) for Assembly Script
* The [Solang](https://github.com/hyperledger-labs/solang) compiler for Solidity

There are also different user interfaces and command-line tools you can use to deploy
or interact with contracts:

* [polkadot-js](https://polkadot.js.org/apps/)
* [Canvas UI](https://paritytech.github.io/canvas-ui/) (outdated)

If you are looking for a quickstart, we can recommend
[ink!'s Guided Tutorial for Beginners](https://docs.substrate.io/tutorials/v3/ink-workshop/pt1/).

### Build & Launch a Node

To run a Canvas node that connects to Rococo (Kusama and Polkadot parachains are not deployed, yet)
you will need to compile the `polkadot-parachain` binary:

```bash
cargo build --release --locked -p polkadot-parachain
```

Once the executable is built, launch the parachain node via:

```bash
./target/release/polkadot-parachain --chain rocanvas
```

Refer to the [setup instructions below](#local-setup) to run a local network for development.

### Rococo Deployment

We have a live deployment of the Canvas parachain on [Rococo](https://wiki.polkadot.network/docs/build-pdk#rococo-testnet)
a testnet for Polkadot and Kusama parachains.
You can interact with the network through Polkadot JS Apps,
[click here for a direct link to Canvas](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-canvas-rpc.polkadot.io#/explorer).

The Canvas parachain uses the Rococo relay chain's native token (ROC) instead of having its own token.
Due to this you'll need ROC in order to deploy contracts on Canvas.

As a first step, you should create an account. See [here](https://wiki.polkadot.network/docs/learn-account-generation)
for a detailed guide.

As a second step, you have to get ROC testnet tokens through the [Rococo Faucet](https://wiki.polkadot.network/docs/learn-DOT#getting-rococo-tokens).
This is a chat room in which you need to write:

```bash
!drip YOUR_SS_58_ADDRESS:1002
```

The number `1002` is the parachain id of Canvas on Rococo, by supplying it the faucet will teleport ROC
tokens directly to your account on the parachain.

If everything worked out, the teleported ROC tokens will show up under
[the "Accounts" tab for Canvas](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-canvas-rpc.polkadot.io#/accounts).

Once you have ROC on Canvas you can deploy a contract as you would normally.
If you're unsure about this, our [guided tutorial](https://docs.substrate.io/tutorials/v3/ink-workshop/pt1/)
will clarify that for you in no time.
See [the `contracts-rococo` readme](polkadot-parachains/contracts-rococo/README.md) for details.

## Rococo 👑

Expand Down Expand Up @@ -190,7 +104,7 @@ Once the executable is built, launch collators for each parachain (repeat once e
### Parachains

* [Statemint](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-statemint-rpc.polkadot.io#/explorer)
* [Canvas on Rococo](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-canvas-rpc.polkadot.io#/explorer)
* [Contracts on Rococo](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-contracts-rpc.polkadot.io#/explorer)
* [RILT](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo.kilt.io#/explorer)

The network uses horizontal message passing (HRMP) to enable communication between parachains and
Expand Down
4 changes: 2 additions & 2 deletions polkadot-parachains/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ seedling-runtime = { path = "seedling" }
statemint-runtime = { path = "statemint" }
statemine-runtime = { path = "statemine" }
westmint-runtime = { path = "westmint" }
canvas-kusama-runtime = { path = "canvas-kusama" }
jsonrpsee = { version = "0.13.1", features = ["server"] }
contracts-rococo-runtime = { path = "contracts-rococo" }
jsonrpsee = { version = "0.13.0", features = ["server"] }
parachains-common = { path = "parachains-common" }

# Substrate
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "canvas-kusama-runtime"
name = "contracts-rococo-runtime"
version = "0.2.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2021"
Expand Down
Loading

0 comments on commit d0e13bc

Please sign in to comment.