git.delta.rocks / unique-network / refs/commits / 6f2ea23699e0

difftreelog

Merge pull request #351 from UniqueNetwork/release-v0.9.21

kozyrevdev2022-05-12parents: #6cf08e5 #b8d2ab1.patch.diff
in: master
release v921000

13 files changed

modified.envdiffbeforeafterboth
--- a/.env
+++ b/.env
@@ -1,6 +1,6 @@
 RUST_TOOLCHAIN=nightly-2022-04-07
 RUST_C=1.62.0-nightly
-POLKA_VERSION=release-v0.9.20
+POLKA_VERSION=release-v0.9.21
 UNIQUE_BRANCH=develop
 USER=***
 PASS=***
modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -396,7 +396,7 @@
  "instant",
  "pin-project-lite 0.2.9",
  "rand 0.8.5",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -410,7 +410,7 @@
  "cfg-if 1.0.0",
  "libc",
  "miniz_oxide",
- "object 0.28.3",
+ "object 0.28.4",
  "rustc-demangle",
 ]
 
@@ -977,9 +977,9 @@
 
 [[package]]
 name = "camino"
-version = "1.0.7"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23"
+checksum = "07fd178c5af4d59e83498ef15cf3f154e1a6f9d091270cb86283c65ef44e9ef0"
 dependencies = [
  "serde",
 ]
@@ -1122,9 +1122,9 @@
 
 [[package]]
 name = "clap"
-version = "3.1.16"
+version = "3.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52d4f8e4a1419219935762e32913b4430f37cb0c0200ad17a89ee18c0188a9f"
+checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b"
 dependencies = [
  "atty",
  "bitflags",
@@ -1139,9 +1139,9 @@
 
 [[package]]
 name = "clap_derive"
-version = "3.1.7"
+version = "3.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1"
+checksum = "25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c"
 dependencies = [
  "heck 0.4.0",
  "proc-macro-error",
@@ -2202,9 +2202,9 @@
 
 [[package]]
 name = "ed25519"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4"
+checksum = "d916019f70ae3a1faa1195685e290287f39207d38e6dfee727197cffcc002214"
 dependencies = [
  "signature",
 ]
@@ -2638,7 +2638,7 @@
  "sp-io",
  "sp-runtime",
  "sp-storage",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -3394,7 +3394,7 @@
  "http",
  "indexmap",
  "slab",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tokio-util 0.7.1",
  "tracing",
 ]
@@ -3588,7 +3588,7 @@
  "itoa 1.0.1",
  "pin-project-lite 0.2.9",
  "socket2 0.4.4",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tower-service",
  "tracing",
  "want",
@@ -3606,7 +3606,7 @@
  "log",
  "rustls 0.19.1",
  "rustls-native-certs 0.5.0",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tokio-rustls 0.22.0",
  "webpki 0.21.4",
 ]
@@ -3622,7 +3622,7 @@
  "log",
  "rustls 0.20.4",
  "rustls-native-certs 0.6.2",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tokio-rustls 0.23.4",
  "webpki-roots 0.22.3",
 ]
@@ -3954,7 +3954,7 @@
  "jsonrpc-core",
  "lazy_static",
  "log",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tokio-stream",
  "tokio-util 0.6.9",
  "unicase",
@@ -4002,7 +4002,7 @@
  "rustls-native-certs 0.6.2",
  "soketto",
  "thiserror",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tokio-rustls 0.23.4",
  "tokio-util 0.7.1",
  "tracing",
@@ -4028,7 +4028,7 @@
  "serde_json",
  "soketto",
  "thiserror",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tracing",
 ]
 
@@ -4047,7 +4047,7 @@
  "serde",
  "serde_json",
  "thiserror",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tracing",
 ]
 
@@ -5126,7 +5126,7 @@
  "kernel32-sys",
  "libc",
  "log",
- "miow 0.2.2",
+ "miow",
  "net2",
  "slab",
  "winapi 0.2.8",
@@ -5134,16 +5134,14 @@
 
 [[package]]
 name = "mio"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9"
+checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799"
 dependencies = [
  "libc",
  "log",
- "miow 0.3.7",
- "ntapi",
  "wasi 0.11.0+wasi-snapshot-preview1",
- "winapi 0.3.9",
+ "windows-sys",
 ]
 
 [[package]]
@@ -5171,15 +5169,6 @@
 ]
 
 [[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
 name = "more-asserts"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5353,15 +5342,6 @@
 dependencies = [
  "memchr",
  "minimal-lexical",
-]
-
-[[package]]
-name = "ntapi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-dependencies = [
- "winapi 0.3.9",
 ]
 
 [[package]]
@@ -5460,9 +5440,9 @@
 
 [[package]]
 name = "object"
-version = "0.28.3"
+version = "0.28.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456"
+checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424"
 dependencies = [
  "memchr",
 ]
@@ -5475,7 +5455,7 @@
 
 [[package]]
 name = "opal-runtime"
-version = "0.9.20"
+version = "0.9.21"
 dependencies = [
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-dmp-queue",
@@ -6884,9 +6864,9 @@
 
 [[package]]
 name = "parity-db"
-version = "0.3.12"
+version = "0.3.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e73cd0b0a78045276b19eaae8eaaa20e44a1da9a0217ff934a810d9492ae701"
+checksum = "55a7901b85874402471e131de3332dde0e51f38432c69a3853627c8e25433048"
 dependencies = [
  "blake2-rfc",
  "crc32fast",
@@ -6943,7 +6923,7 @@
  "libc",
  "log",
  "rand 0.7.3",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "winapi 0.3.9",
 ]
 
@@ -8478,7 +8458,7 @@
  "substrate-test-client",
  "tempfile",
  "test-runtime-constants",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tracing-gum",
 ]
 
@@ -8682,7 +8662,7 @@
 
 [[package]]
 name = "quartz-runtime"
-version = "0.9.20"
+version = "0.9.21"
 dependencies = [
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-dmp-queue",
@@ -9546,7 +9526,7 @@
  "sp-version",
  "thiserror",
  "tiny-bip39",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -10168,7 +10148,7 @@
  "log",
  "serde_json",
  "substrate-prometheus-endpoint",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -10231,7 +10211,7 @@
  "substrate-prometheus-endpoint",
  "tempfile",
  "thiserror",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tracing",
  "tracing-futures",
 ]
@@ -11593,9 +11573,9 @@
 
 [[package]]
 name = "ss58-registry"
-version = "1.17.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b84a70894df7a73666e0694f44b41a9571625e9546fb58a0818a565d2c7e084"
+checksum = "ceb8b72a924ccfe7882d0e26144c114503760a4d1248bb5cd06c8ab2d55404cc"
 dependencies = [
  "Inflector",
  "num-format",
@@ -11759,7 +11739,7 @@
  "log",
  "prometheus",
  "thiserror",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -11818,7 +11798,7 @@
 dependencies = [
  "futures 0.3.21",
  "substrate-test-utils-derive",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -11856,9 +11836,9 @@
 
 [[package]]
 name = "syn"
-version = "1.0.92"
+version = "1.0.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
+checksum = "04066589568b72ec65f42d65a1a52436e954b168773148893c020269563decf2"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -12077,14 +12057,14 @@
 
 [[package]]
 name = "tokio"
-version = "1.18.1"
+version = "1.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dce653fb475565de9f6fb0614b28bca8df2c430c0cf84bcd9c843f15de5414cc"
+checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395"
 dependencies = [
  "bytes 1.1.0",
  "libc",
  "memchr",
- "mio 0.8.2",
+ "mio 0.8.3",
  "num_cpus",
  "once_cell",
  "parking_lot 0.12.0",
@@ -12124,7 +12104,7 @@
 checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
 dependencies = [
  "rustls 0.19.1",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "webpki 0.21.4",
 ]
 
@@ -12135,7 +12115,7 @@
 checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
  "rustls 0.20.4",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "webpki 0.22.0",
 ]
 
@@ -12147,7 +12127,7 @@
 dependencies = [
  "futures-core",
  "pin-project-lite 0.2.9",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -12161,7 +12141,7 @@
  "futures-sink",
  "log",
  "pin-project-lite 0.2.9",
- "tokio 1.18.1",
+ "tokio 1.18.2",
 ]
 
 [[package]]
@@ -12175,7 +12155,7 @@
  "futures-io",
  "futures-sink",
  "pin-project-lite 0.2.9",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "tracing",
 ]
 
@@ -12515,7 +12495,7 @@
 
 [[package]]
 name = "unique-node"
-version = "0.9.20"
+version = "0.9.21"
 dependencies = [
  "clap",
  "cumulus-client-cli",
@@ -12591,7 +12571,7 @@
  "substrate-build-script-utils",
  "substrate-frame-rpc-system",
  "substrate-prometheus-endpoint",
- "tokio 1.18.1",
+ "tokio 1.18.2",
  "unique-rpc",
  "unique-runtime",
  "unique-runtime-common",
@@ -12649,7 +12629,7 @@
 
 [[package]]
 name = "unique-runtime"
-version = "0.9.18"
+version = "0.9.21"
 dependencies = [
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-dmp-queue",
@@ -12725,7 +12705,7 @@
 
 [[package]]
 name = "unique-runtime-common"
-version = "0.9.20"
+version = "0.9.21"
 dependencies = [
  "fp-rpc",
  "frame-support",
@@ -13627,18 +13607,18 @@
 
 [[package]]
 name = "zstd"
-version = "0.10.0+zstd.1.5.2"
+version = "0.10.2+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd"
+checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847"
 dependencies = [
  "zstd-safe",
 ]
 
 [[package]]
 name = "zstd-safe"
-version = "4.1.4+zstd.1.5.2"
+version = "4.1.6+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee"
+checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb"
 dependencies = [
  "libc",
  "zstd-sys",
modifiedDockerfile-parachaindiffbeforeafterboth
--- a/Dockerfile-parachain
+++ b/Dockerfile-parachain
@@ -4,7 +4,7 @@
 
 ARG RUST_TOOLCHAIN=nightly-2022-04-07
 #ARG RUST_C=1.62.0-nightly
-ARG POLKA_VERSION=release-v0.9.20
+ARG POLKA_VERSION=release-v0.9.21
 ARG UNIQUE_BRANCH=develop
 
 #ARG USER=***
modifiedREADME.mddiffbeforeafterboth
before · README.md
1![Docker build](https://github.com/usetech-llc/nft_parachain/workflows/Docker%20build/badge.svg)23# Unique Parachain45## Project Description67The Unique Pallet is the core of NFT functionality. Like ERC-721 standard in Ethereum ecosystem, this pallet provides the8basement for creating collections of unique non-divisible things, also called Non Fungible Tokens (NFTs), minting NFT of9a given Collection, and managing their ownership.1011The pallet also enables storing NFT properties. Though (according to ERC-721) NFT properties belong to logic of a12concrete application that operates a Collection, so purposefully the NFT Tracking Module does not have any knowledge13about properties except their byte size leaving application logic out to be controlled by Smart Contracts.1415The Unique Chain also provides:1617-   Smart Contracts Pallet and example smart contract that interacts with Unique Runtime18-   ERC-1155 Functionality (currently PoC as Re-Fungible tokens, i.e. items that are still unique, but that can be split19    between multiple users)20-   Variety of economic options for dapp producers to choose from to create freemium games and other ways to attract21    users. As a step one, we implemented an economic model when a collection sponsor can be set to pay for collection22    Transfer transactions.2324Wider Unique Ecosystem (most of it was developed during Hackusama):2526-   [SubstraPunks Game hosted on IPFS](https://github.com/usetech-llc/substrapunks)27-   [Unique Wallet and UI](https://uniqueapps.usetech.com/#/nft)28-   [NFT Asset for Unity Framework](https://github.com/usetech-llc/nft_unity)2930Please see our [walk-through instructions](doc/hackusama_walk_through.md) to try everything out!3132## Application Development3334If you are building an application that operates NFT tokens, use [this document](doc/application_development.md).353637## Building3839Building Unique chain requires special versions of Rust and toolchain. We don't use the most recent versions of everything40so that we can keep the builds stable.41421. Install Rust:4344```bash45sudo apt-get install git curl libssl-dev llvm pkg-config libclang-dev clang46curl https://sh.rustup.rs -sSf | sh47```48492. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall <toolchain>`.50513. Install install nightly 2021-11-11 and make it default:5253```bash54rustup toolchain install nightly-2022-04-0755rustup default nightly-2022-04-0756```57584. Add wasm target for nightly toolchain:5960```bash61rustup target add wasm32-unknown-unknown --toolchain nightly-2022-04-0762```63645. Build:65```bash66cargo build --features=unique-runtime,quartz-runtime --release67```6869## Building as Parachain locally7071Note: checkout this project and all related projects (see below) in the sibling folders (both under the same folder)7273### Polkadot launch utility7475```76git clone https://github.com/paritytech/polkadot-launch77```7879### Build relay8081```82git clone https://github.com/paritytech/polkadot.git83cd polkadot84git checkout release-v0.9.2085cargo build --release86```8788### Build Unique parachain8990Run in the root of this project:91```92cargo build --release93```9495### Build Acala parachain (optional, full config only)9697```98git clone https://github.com/AcalaNetwork/Acala99cd Acala100git checkout 54db3acd409a0b787f116f20e163a3b24101ce38101make build-release102```103104## Running as Parachain locally105106```107./launch-testnet.sh108```109110Optional, full setup with Acala and Statemint111```112./launch-testnet-full.sh113```114115## Run Integration Tests1161171. Install all needed dependecies118```119cd tests120yarn install121```1221232. Run tests124```125yarn test126```127128129## Code Formatting130131### Apply formatting and clippy fixes132```bash133cargo clippy134cargo fmt135```136137### Format tests138```bash139pushd tests && yarn fix ; popd140```141142### Check code style in tests143```bash144cd tests && yarn eslint --ext .ts,.js src/145```146147148## Karura token transfer149150To get started, you need to open inbound and outbound hrmp channels.151152### Next, we need to register our asset at Karura.153```154assetRegistry -> registerForeignAsset(location, metadata)155location:156	V0(X2(Parent, Parachain(PARA_ID)))157metadata:158	name         OPL159	symbol       OPL160	decimals     18161minimalBalance	 1162```163164### Next, we can send tokens from Opal to Karura:165```166polkadotXcm -> reserveTransferAssets167dest:168	V0(X2(Parent, Parachain(<KARURA_PARA_ID>)))169beneficiary:170	X1(AccountId(Any, <ACCOUNT>))171assets:172	V1(Concrete(0,Here), Fungible(<AMOUNT>))173feeAssetItem:174	0175weightLimit:176	<LIMIT>177```178179The result will be displayed in ChainState180tokens -> accounts181182### To send tokens from Karura to Opal:183```184xtokens -> transfer185186currencyId:187	ForeingAsset188		<TOKEN_ID>189190amount:191		<AMOUNT>192dest:193	V1194	(195		Parents:1,196		X2(Parachain(<KARURA_PARA_ID>), AccountId(Any, <ACCOUNT>)197	)198destWeight:199	<WEIGHT>200```
after · README.md
1![Docker build](https://github.com/usetech-llc/nft_parachain/workflows/Docker%20build/badge.svg)23# Unique Parachain45## Project Description67The Unique Pallet is the core of NFT functionality. Like ERC-721 standard in Ethereum ecosystem, this pallet provides the8basement for creating collections of unique non-divisible things, also called Non Fungible Tokens (NFTs), minting NFT of9a given Collection, and managing their ownership.1011The pallet also enables storing NFT properties. Though (according to ERC-721) NFT properties belong to logic of a12concrete application that operates a Collection, so purposefully the NFT Tracking Module does not have any knowledge13about properties except their byte size leaving application logic out to be controlled by Smart Contracts.1415The Unique Chain also provides:1617-   Smart Contracts Pallet and example smart contract that interacts with Unique Runtime18-   ERC-1155 Functionality (currently PoC as Re-Fungible tokens, i.e. items that are still unique, but that can be split19    between multiple users)20-   Variety of economic options for dapp producers to choose from to create freemium games and other ways to attract21    users. As a step one, we implemented an economic model when a collection sponsor can be set to pay for collection22    Transfer transactions.2324Wider Unique Ecosystem (most of it was developed during Hackusama):2526-   [SubstraPunks Game hosted on IPFS](https://github.com/usetech-llc/substrapunks)27-   [Unique Wallet and UI](https://uniqueapps.usetech.com/#/nft)28-   [NFT Asset for Unity Framework](https://github.com/usetech-llc/nft_unity)2930Please see our [walk-through instructions](doc/hackusama_walk_through.md) to try everything out!3132## Application Development3334If you are building an application that operates NFT tokens, use [this document](doc/application_development.md).353637## Building3839Building Unique chain requires special versions of Rust and toolchain. We don't use the most recent versions of everything40so that we can keep the builds stable.41421. Install Rust:4344```bash45sudo apt-get install git curl libssl-dev llvm pkg-config libclang-dev clang46curl https://sh.rustup.rs -sSf | sh47```48492. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall <toolchain>`.50513. Install install nightly 2021-11-11 and make it default:5253```bash54rustup toolchain install nightly-2022-04-0755rustup default nightly-2022-04-0756```57584. Add wasm target for nightly toolchain:5960```bash61rustup target add wasm32-unknown-unknown --toolchain nightly-2022-04-0762```63645. Build:65```bash66cargo build --features=unique-runtime,quartz-runtime --release67```6869## Building as Parachain locally7071Note: checkout this project and all related projects (see below) in the sibling folders (both under the same folder)7273### Polkadot launch utility7475```76git clone https://github.com/paritytech/polkadot-launch77```7879### Build relay8081```82git clone https://github.com/paritytech/polkadot.git83cd polkadot84git checkout release-v0.9.2185cargo build --release86```8788### Build Unique parachain8990Run in the root of this project:91```92cargo build --release93```9495### Build Acala parachain (optional, full config only)9697```98git clone https://github.com/AcalaNetwork/Acala99cd Acala100git checkout 54db3acd409a0b787f116f20e163a3b24101ce38101make build-release102```103104## Running as Parachain locally105106```107./launch-testnet.sh108```109110Optional, full setup with Acala and Statemint111```112./launch-testnet-full.sh113```114115## Run Integration Tests1161171. Install all needed dependecies118```119cd tests120yarn install121```1221232. Run tests124```125yarn test126```127128129## Code Formatting130131### Apply formatting and clippy fixes132```bash133cargo clippy134cargo fmt135```136137### Format tests138```bash139pushd tests && yarn fix ; popd140```141142### Check code style in tests143```bash144cd tests && yarn eslint --ext .ts,.js src/145```146147148## Karura token transfer149150To get started, you need to open inbound and outbound hrmp channels.151152### Next, we need to register our asset at Karura.153```154assetRegistry -> registerForeignAsset(location, metadata)155location:156	V0(X2(Parent, Parachain(PARA_ID)))157metadata:158	name         OPL159	symbol       OPL160	decimals     18161minimalBalance	 1162```163164### Next, we can send tokens from Opal to Karura:165```166polkadotXcm -> reserveTransferAssets167dest:168	V0(X2(Parent, Parachain(<KARURA_PARA_ID>)))169beneficiary:170	X1(AccountId(Any, <ACCOUNT>))171assets:172	V1(Concrete(0,Here), Fungible(<AMOUNT>))173feeAssetItem:174	0175weightLimit:176	<LIMIT>177```178179The result will be displayed in ChainState180tokens -> accounts181182### To send tokens from Karura to Opal:183```184xtokens -> transfer185186currencyId:187	ForeingAsset188		<TOKEN_ID>189190amount:191		<AMOUNT>192dest:193	V1194	(195		Parents:1,196		X2(Parachain(<KARURA_PARA_ID>), AccountId(Any, <ACCOUNT>)197	)198destWeight:199	<WEIGHT>200```
modifiednode/cli/Cargo.tomldiffbeforeafterboth
--- a/node/cli/Cargo.toml
+++ b/node/cli/Cargo.toml
@@ -283,7 +283,7 @@
 license = 'GPLv3'
 name = 'unique-node'
 repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.20'
+version = '0.9.21'
 
 [[bin]]
 name = 'unique-collator'
modifiedruntime/common/Cargo.tomldiffbeforeafterboth
--- a/runtime/common/Cargo.toml
+++ b/runtime/common/Cargo.toml
@@ -6,7 +6,7 @@
 license = 'All Rights Reserved'
 name = 'unique-runtime-common'
 repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.20'
+version = '0.9.21'
 
 [features]
 default = ['std']
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -10,7 +10,7 @@
 license = 'GPLv3'
 name = 'opal-runtime'
 repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.20'
+version = '0.9.21'
 
 [package.metadata.docs.rs]
 targets = ['x86_64-unknown-linux-gnu']
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -169,7 +169,7 @@
 	spec_name: create_runtime_str!(RUNTIME_NAME),
 	impl_name: create_runtime_str!(RUNTIME_NAME),
 	authoring_version: 1,
-	spec_version: 920000,
+	spec_version: 921000,
 	impl_version: 0,
 	apis: RUNTIME_API_VERSIONS,
 	transaction_version: 1,
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -10,7 +10,7 @@
 license = 'GPLv3'
 name = 'quartz-runtime'
 repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.20'
+version = '0.9.21'
 
 [package.metadata.docs.rs]
 targets = ['x86_64-unknown-linux-gnu']
modifiedruntime/quartz/src/lib.rsdiffbeforeafterboth
--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -154,7 +154,7 @@
 	spec_name: create_runtime_str!(RUNTIME_NAME),
 	impl_name: create_runtime_str!(RUNTIME_NAME),
 	authoring_version: 1,
-	spec_version: 920000,
+	spec_version: 921000,
 	impl_version: 0,
 	apis: RUNTIME_API_VERSIONS,
 	transaction_version: 1,
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -10,7 +10,7 @@
 license = 'GPLv3'
 name = 'unique-runtime'
 repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.18'
+version = '0.9.21'
 
 [package.metadata.docs.rs]
 targets = ['x86_64-unknown-linux-gnu']
modifiedruntime/unique/src/lib.rsdiffbeforeafterboth
--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -153,7 +153,7 @@
 	spec_name: create_runtime_str!(RUNTIME_NAME),
 	impl_name: create_runtime_str!(RUNTIME_NAME),
 	authoring_version: 1,
-	spec_version: 920000,
+	spec_version: 921000,
 	impl_version: 0,
 	apis: RUNTIME_API_VERSIONS,
 	transaction_version: 1,
modifiedtests/README.mddiffbeforeafterboth
--- a/tests/README.md
+++ b/tests/README.md
@@ -5,7 +5,7 @@
 1. Checkout polkadot in sibling folder with this project
 ```bash
 git clone https://github.com/paritytech/polkadot.git && cd polkadot
-git checkout release-v0.9.20
+git checkout release-v0.9.21
 ```
 
 2. Build with nightly-2021-11-11