diff --git a/.github/pr-custom-review.yml b/.github/pr-custom-review.yml
index b833d3a01aa..fc26ee677f0 100644
--- a/.github/pr-custom-review.yml
+++ b/.github/pr-custom-review.yml
@@ -6,7 +6,7 @@ action-review-team: ci
rules:
- name: Runtime files
check_type: changed_files
- condition: ^parachains/runtimes/assets/(statemine|statemint)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$
+ condition: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$
all_distinct:
- min_approvals: 1
teams:
@@ -20,7 +20,7 @@ rules:
condition:
include: .*
# excluding files from 'Runtime files' and 'CI files' rules and `Bridges subtree files`
- exclude: ^parachains/runtimes/assets/(statemine|statemint)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.*
+ exclude: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.*
min_approvals: 2
teams:
- core-devs
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index c67f5bb97ad..ba7739f25c2 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -17,7 +17,7 @@ jobs:
protoc --version
- name: Checkout repository
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Rust versions
run: rustup show
diff --git a/.github/workflows/fmt-check.yml b/.github/workflows/fmt-check.yml
index 498e42527e3..7571c51116b 100644
--- a/.github/workflows/fmt-check.yml
+++ b/.github/workflows/fmt-check.yml
@@ -16,7 +16,7 @@ jobs:
container:
image: paritytech/ci-linux:production
steps:
- - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Cargo fmt
run: cargo +nightly fmt --all -- --check
diff --git a/.github/workflows/release-01_branch-check.yml b/.github/workflows/release-01_branch-check.yml
index c6237b40ceb..afcd4580f17 100644
--- a/.github/workflows/release-01_branch-check.yml
+++ b/.github/workflows/release-01_branch-check.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
fetch-depth: 0
diff --git a/.github/workflows/release-10_rc-automation.yml b/.github/workflows/release-10_rc-automation.yml
index d0c669a5885..377d3830104 100644
--- a/.github/workflows/release-10_rc-automation.yml
+++ b/.github/workflows/release-10_rc-automation.yml
@@ -17,7 +17,7 @@ jobs:
pre-releases: true
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
fetch-depth: 0
- id: compute_tag
@@ -27,7 +27,7 @@ jobs:
# Get last rc tag if exists, else set it to {version}-rc1
version=${GITHUB_REF#refs/heads/release-}
echo "$version"
- echo "::set-output name=version::$version"
+ echo "version=$version" >> $GITHUB_OUTPUT
git tag -l
last_rc=$(git tag -l "$version-rc*" | sort -V | tail -n 1)
if [ -n "$last_rc" ]; then
@@ -35,11 +35,11 @@ jobs:
echo $suffix
((suffix++))
echo $suffix
- echo "::set-output name=new_tag::$version-rc$suffix"
- echo "::set-output name=first_rc::false"
+ echo "new_tag=$version-rc$suffix" >> $GITHUB_OUTPUT
+ echo "first_rc=false" >> $GITHUB_OUTPUT
else
- echo "::set-output name=new_tag::$version-rc1"
- echo "::set-output name=first_rc::true"
+ echo "new_tag=$version-rc1" >> $GITHUB_OUTPUT
+ echo "first_rc=true" >> $GITHUB_OUTPUT
fi
- name: Apply new tag
diff --git a/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml b/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
index 5a7d695ec98..f821e39dd33 100644
--- a/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
+++ b/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
@@ -14,7 +14,7 @@ on:
required: true
chain:
description: The name of the chain under test. Usually, you would pass a local chain
- default: statemine-local
+ default: asset-hub-kusama-local
required: true
jobs:
@@ -29,7 +29,7 @@ jobs:
REF_URL: ${{github.event.inputs.reference_url}}
steps:
- - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Fetch binary
run: |
diff --git a/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml b/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
index 7fde56ef1b2..93c0050ff6f 100644
--- a/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
+++ b/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
@@ -28,21 +28,21 @@ jobs:
fail-fast: false
matrix:
include:
- - runtime: statemine
- local: statemine-local
+ - runtime: asset-hub-kusama
+ local: asset-hub-kusama-local
+ relay: kusama-local
+ - runtime: asset-hub-polkadot
+ local: asset-hub-polkadot-local
relay: polkadot-local
- - runtime: statemint
- local: statemint-local
- relay: polkadot-local
- - runtime: westmint
- local: westmint-local
+ - runtime: asset-hub-westend
+ local: asset-hub-westend-local
relay: polkadot-local
- runtime: contracts-rococo
local: contracts-rococo-local
relay: polkadot-local
steps:
- - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Create tmp dir
run: |
diff --git a/.github/workflows/release-30_create-draft.yml b/.github/workflows/release-30_create-draft.yml
index c4bb546dc78..8ad63ff46cd 100644
--- a/.github/workflows/release-30_create-draft.yml
+++ b/.github/workflows/release-30_create-draft.yml
@@ -34,8 +34,8 @@ jobs:
steps:
- id: get-rust-versions
run: |
- echo "::set-output name=stable::$(rustc +stable --version)"
- echo "::set-output name=nightly::$(rustc +nightly --version)"
+ echo "stable=$(rustc +stable --version)" >> $GITHUB_OUTPUT
+ echo "nightly=$(rustc +nightly --version)" >> $GITHUB_OUTPUT
# We do not skip the entire job for client builds (although we don't need it)
# because it is a dep of the next job. However we skip the time consuming steps.
@@ -45,11 +45,11 @@ jobs:
matrix:
include:
- category: assets
- runtime: statemine
+ runtime: asset-hub-kusama
- category: assets
- runtime: statemint
+ runtime: asset-hub-polkadot
- category: assets
- runtime: westmint
+ runtime: asset-hub-westend
- category: bridge-hubs
runtime: bridge-hub-polkadot
- category: bridge-hubs
@@ -68,7 +68,7 @@ jobs:
runtime: rococo-parachain
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
ref: ${{ github.event.inputs.ref2 }}
@@ -120,13 +120,13 @@ jobs:
asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
fetch-depth: 0
path: cumulus
ref: ${{ github.event.inputs.ref2 }}
- - uses: ruby/setup-ruby@8a45918450651f5e4784b6031db26f4b9f76b251 # v1.150.0
+ - uses: ruby/setup-ruby@bc1dd263b68cb5626dbb55d5c89777d79372c484 # v1.151.0
with:
ruby-version: 3.0.0
@@ -223,11 +223,11 @@ jobs:
matrix:
include:
- category: assets
- runtime: statemine
+ runtime: asset-hub-kusama
- category: assets
- runtime: statemint
+ runtime: asset-hub-polkadot
- category: assets
- runtime: westmint
+ runtime: asset-hub-westend
- category: bridge-hubs
runtime: bridge-hub-polkadot
- category: bridge-hubs
@@ -246,14 +246,14 @@ jobs:
runtime: rococo-parachain
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
ref: ${{ github.event.inputs.ref2 }}
- name: Download artifacts
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
- - uses: ruby/setup-ruby@8a45918450651f5e4784b6031db26f4b9f76b251 # v1.150.0
+ - uses: ruby/setup-ruby@bc1dd263b68cb5626dbb55d5c89777d79372c484 # v1.151.0
with:
ruby-version: 3.0.0
@@ -267,7 +267,7 @@ jobs:
ls "$RUNTIME_DIR/${{ matrix.category }}/${{ matrix.runtime }}"
runtime_ver=$(ruby script.rb)
echo "Found version: >$runtime_ver<"
- echo "::set-output name=runtime_ver::$runtime_ver"
+ echo "runtime_ver=$runtime_ver" >> $GITHUB_OUTPUT
- name: Fix runtime name
id: fix-runtime-path
diff --git a/.github/workflows/release-50_docker-manual.yml b/.github/workflows/release-50_docker-manual.yml
index b4b2964cbe9..e48d7c8faab 100644
--- a/.github/workflows/release-50_docker-manual.yml
+++ b/.github/workflows/release-50_docker-manual.yml
@@ -25,7 +25,7 @@ jobs:
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
ref: ${{ github.event.release.tag_name }}
@@ -91,7 +91,7 @@ jobs:
./docker/scripts/build-injected-image.sh
- name: Login to Dockerhub
- uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0
+ uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
diff --git a/.github/workflows/release-50_docker.yml b/.github/workflows/release-50_docker.yml
index a2051071ffe..9a1db1a04ac 100644
--- a/.github/workflows/release-50_docker.yml
+++ b/.github/workflows/release-50_docker.yml
@@ -20,7 +20,7 @@ jobs:
steps:
- name: Checkout sources
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
ref: ${{ github.event.release.tag_name }}
@@ -90,7 +90,7 @@ jobs:
./docker/scripts/build-injected-image.sh
- name: Login to Dockerhub
- uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0
+ uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
diff --git a/.github/workflows/srtool.yml b/.github/workflows/srtool.yml
index 3ac4ff8be55..6941a79a013 100644
--- a/.github/workflows/srtool.yml
+++ b/.github/workflows/srtool.yml
@@ -32,11 +32,11 @@ jobs:
matrix:
include:
- category: assets
- runtime: statemine
+ runtime: asset-hub-kusama
- category: assets
- runtime: statemint
+ runtime: asset-hub-polkadot
- category: assets
- runtime: westmint
+ runtime: asset-hub-westend
- category: bridge-hubs
runtime: bridge-hub-polkadot
- category: bridge-hubs
@@ -54,7 +54,7 @@ jobs:
- category: testing
runtime: rococo-parachain
steps:
- - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
fetch-depth: 0
diff --git a/Cargo.lock b/Cargo.lock
index 1b3bfd30455..f70cf63c8e4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -373,6 +373,300 @@ version = "1.5.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+[[package]]
+name = "asset-hub-kusama-integration-tests"
+version = "1.0.0"
+dependencies = [
+ "asset-hub-kusama-runtime",
+ "frame-support",
+ "frame-system",
+ "integration-tests-common",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "penpal-runtime",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime",
+ "polkadot-runtime-parachains",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+ "xcm",
+ "xcm-emulator",
+ "xcm-executor",
+]
+
+[[package]]
+name = "asset-hub-kusama-runtime"
+version = "0.9.420"
+dependencies = [
+ "asset-test-utils",
+ "assets-common",
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-timestamp",
+ "cumulus-primitives-utility",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal 0.4.1",
+ "kusama-runtime-constants",
+ "log",
+ "pallet-asset-tx-payment",
+ "pallet-assets",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-bridge-transfer",
+ "pallet-bridge-transfer-primitives",
+ "pallet-collator-selection",
+ "pallet-multisig",
+ "pallet-nfts",
+ "pallet-nfts-runtime-api",
+ "pallet-proxy",
+ "pallet-session",
+ "pallet-state-trie-migration",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-uniques",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachain-info",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime-common",
+ "scale-info",
+ "smallvec",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "sp-weights",
+ "substrate-wasm-builder",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
+[[package]]
+name = "asset-hub-polkadot-integration-tests"
+version = "1.0.0"
+dependencies = [
+ "asset-hub-polkadot-runtime",
+ "frame-support",
+ "frame-system",
+ "integration-tests-common",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "penpal-runtime",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime",
+ "polkadot-runtime-parachains",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+ "xcm",
+ "xcm-emulator",
+ "xcm-executor",
+]
+
+[[package]]
+name = "asset-hub-polkadot-runtime"
+version = "0.9.420"
+dependencies = [
+ "asset-test-utils",
+ "assets-common",
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-timestamp",
+ "cumulus-primitives-utility",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal 0.4.1",
+ "log",
+ "pallet-asset-tx-payment",
+ "pallet-assets",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-bridge-transfer",
+ "pallet-bridge-transfer-primitives",
+ "pallet-collator-selection",
+ "pallet-multisig",
+ "pallet-nfts",
+ "pallet-nfts-runtime-api",
+ "pallet-proxy",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-uniques",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachain-info",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime-common",
+ "polkadot-runtime-constants",
+ "scale-info",
+ "smallvec",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "sp-weights",
+ "substrate-wasm-builder",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
+[[package]]
+name = "asset-hub-westend-integration-tests"
+version = "1.0.0"
+dependencies = [
+ "asset-hub-westend-runtime",
+ "frame-support",
+ "frame-system",
+ "integration-tests-common",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "penpal-runtime",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime",
+ "polkadot-runtime-parachains",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+ "westend-runtime",
+ "xcm",
+ "xcm-emulator",
+ "xcm-executor",
+]
+
+[[package]]
+name = "asset-hub-westend-runtime"
+version = "0.9.420"
+dependencies = [
+ "asset-test-utils",
+ "assets-common",
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-timestamp",
+ "cumulus-primitives-utility",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal 0.4.1",
+ "log",
+ "pallet-asset-tx-payment",
+ "pallet-assets",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-bridge-transfer",
+ "pallet-bridge-transfer-primitives",
+ "pallet-collator-selection",
+ "pallet-multisig",
+ "pallet-nft-fractionalization",
+ "pallet-nfts",
+ "pallet-nfts-runtime-api",
+ "pallet-proxy",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-uniques",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachain-info",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime-common",
+ "scale-info",
+ "smallvec",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
+ "substrate-wasm-builder",
+ "westend-runtime-constants",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
[[package]]
name = "asset-test-utils"
version = "1.0.0"
@@ -390,6 +684,7 @@ dependencies = [
"pallet-assets",
"pallet-balances",
"pallet-bridge-transfer",
+ "pallet-bridge-transfer-primitives",
"pallet-collator-selection",
"pallet-session",
"pallet-xcm",
@@ -421,6 +716,7 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-api",
+ "sp-runtime",
"sp-std",
"substrate-wasm-builder",
"xcm",
@@ -475,7 +771,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -486,7 +782,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -588,7 +884,7 @@ dependencies = [
[[package]]
name = "binary-merkle-tree"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"hash-db",
"log",
@@ -621,7 +917,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -744,9 +1040,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
[[package]]
name = "bounded-collections"
-version = "0.1.5"
+version = "0.1.7"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "a071c348a5ef6da1d3a87166b408170b46002382b1dda83992b5c2208cefb370"
+checksum = "07fbd1d11282a1eb134d3c3b7cf8ce213b5161c6e5f73fb1b98618482c606b64"
dependencies = [
"log",
"parity-scale-codec",
@@ -1545,9 +1841,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.3.0"
+version = "4.3.3"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc"
+checksum = "ca8f255e4b8027970e78db75e78831229c9815fdbfa67eb1a1b777a62e24b4a0"
dependencies = [
"clap_builder",
"clap_derive",
@@ -1556,9 +1852,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.3.0"
+version = "4.3.3"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990"
+checksum = "acd4f3c17c83b0ba34ffbc4f8bbd74f079413f747f84a6f89292f138057e36ab"
dependencies = [
"anstream",
"anstyle 1.0.0",
@@ -1569,14 +1865,14 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.3.0"
+version = "4.3.2"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "191d9573962933b4027f932c600cd252ce27a8ad5979418fe78e43c07996f27b"
+checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -1607,6 +1903,35 @@ dependencies = [
"unicode-width",
]
+[[package]]
+name = "collectives-polkadot-it"
+version = "0.1.0"
+dependencies = [
+ "asset-hub-polkadot-runtime",
+ "collectives-polkadot-runtime",
+ "cumulus-pallet-xcmp-queue",
+ "frame-support",
+ "frame-system",
+ "integration-tests-common",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-core-fellowship",
+ "pallet-salary",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain",
+ "polkadot-runtime",
+ "polkadot-runtime-parachains",
+ "sp-core",
+ "sp-runtime",
+ "sp-weights",
+ "xcm",
+ "xcm-emulator",
+ "xcm-executor",
+]
+
[[package]]
name = "collectives-polkadot-runtime"
version = "1.0.0"
@@ -1635,11 +1960,13 @@ dependencies = [
"pallet-balances",
"pallet-collator-selection",
"pallet-collective",
+ "pallet-core-fellowship",
"pallet-multisig",
"pallet-preimage",
"pallet-proxy",
"pallet-ranked-collective",
"pallet-referenda",
+ "pallet-salary",
"pallet-scheduler",
"pallet-session",
"pallet-timestamp",
@@ -1704,15 +2031,21 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "comfy-table"
-version = "6.0.0"
+version = "7.0.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "121d8a5b0346092c18a4b2fd6f620d7a06f0eb7ac0a45860939a0884bc579c56"
+checksum = "f9e1f7e5d046697d34b593bdba8ee31f4649366e452a2ccabb3baf3511e503d1"
dependencies = [
"strum",
"strum_macros",
"unicode-width",
]
+[[package]]
+name = "common-path"
+version = "1.0.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101"
+
[[package]]
name = "concurrent-queue"
version = "1.2.2"
@@ -2507,7 +2840,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -2839,6 +3172,7 @@ dependencies = [
"frame-system",
"frame-system-rpc-runtime-api",
"pallet-balances",
+ "pallet-glutton",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -2870,17 +3204,22 @@ dependencies = [
"cumulus-client-consensus-relay-chain",
"cumulus-client-pov-recovery",
"cumulus-client-service",
+ "cumulus-pallet-parachain-system",
"cumulus-primitives-core",
"cumulus-primitives-parachain-inherent",
"cumulus-relay-chain-inprocess-interface",
"cumulus-relay-chain-interface",
"cumulus-relay-chain-minimal-node",
+ "cumulus-test-client",
+ "cumulus-test-relay-sproof-builder",
"cumulus-test-relay-validation-worker-provider",
"cumulus-test-runtime",
"frame-system",
"frame-system-rpc-runtime-api",
"futures",
"jsonrpsee",
+ "pallet-im-online",
+ "pallet-timestamp",
"pallet-transaction-payment",
"parachains-common",
"parity-scale-codec",
@@ -2892,12 +3231,16 @@ dependencies = [
"polkadot-test-service",
"portpicker",
"rand 0.8.5",
+ "rococo-parachain-runtime",
"sc-basic-authorship",
+ "sc-block-builder",
"sc-chain-spec",
"sc-cli",
"sc-client-api",
"sc-consensus",
"sc-executor",
+ "sc-executor-common",
+ "sc-executor-wasmtime",
"sc-network",
"sc-service",
"sc-telemetry",
@@ -2905,8 +3248,12 @@ dependencies = [
"sc-transaction-pool",
"sc-transaction-pool-api",
"serde",
+ "sp-api",
"sp-arithmetic",
+ "sp-authority-discovery",
"sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-grandpa",
"sp-core",
"sp-io",
"sp-keyring",
@@ -2917,6 +3264,7 @@ dependencies = [
"sp-trie",
"substrate-test-client",
"substrate-test-utils",
+ "tempfile",
"tokio",
"tracing",
"url",
@@ -3275,6 +3623,33 @@ version = "0.3.3"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+[[package]]
+name = "docify"
+version = "0.1.13"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "18b972b74c30cbe838fc6a07665132ff94f257350e26fd01d80bc59ee7fcf129"
+dependencies = [
+ "docify_macros",
+]
+
+[[package]]
+name = "docify_macros"
+version = "0.1.13"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "c93004d1011191c56df9e853dca42f2012e7488638bcd5078935f5ce43e06cf3"
+dependencies = [
+ "common-path",
+ "derive-syn-parse",
+ "lazy_static",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.18",
+ "termcolor",
+ "walkdir",
+]
+
[[package]]
name = "downcast"
version = "0.11.0"
@@ -3463,7 +3838,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -3474,7 +3849,7 @@ checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -3522,13 +3897,13 @@ dependencies = [
[[package]]
name = "errno"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
dependencies = [
"errno-dragonfly",
"libc",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -3620,19 +3995,6 @@ dependencies = [
"quote",
]
-[[package]]
-name = "expander"
-version = "1.0.0"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84"
-dependencies = [
- "blake2",
- "fs-err",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
[[package]]
name = "expander"
version = "2.0.0"
@@ -3643,7 +4005,7 @@ dependencies = [
"fs-err",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -3814,16 +4176,16 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "fork-tree"
version = "3.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
]
[[package]]
name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
dependencies = [
"percent-encoding",
]
@@ -3837,7 +4199,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
[[package]]
name = "frame-benchmarking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-support-procedural",
@@ -3862,7 +4224,7 @@ dependencies = [
[[package]]
name = "frame-benchmarking-cli"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"Inflector",
"array-bytes 4.2.0",
@@ -3909,18 +4271,18 @@ dependencies = [
[[package]]
name = "frame-election-provider-solution-type"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-election-provider-support"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-election-provider-solution-type",
"frame-support",
@@ -3937,7 +4299,7 @@ dependencies = [
[[package]]
name = "frame-executive"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -3966,7 +4328,7 @@ dependencies = [
[[package]]
name = "frame-remote-externalities"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-recursion",
"futures",
@@ -3987,7 +4349,7 @@ dependencies = [
[[package]]
name = "frame-support"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"bitflags",
"environmental",
@@ -3996,6 +4358,7 @@ dependencies = [
"impl-trait-for-tuples",
"k256",
"log",
+ "macro_magic",
"once_cell",
"parity-scale-codec",
"paste",
@@ -4021,45 +4384,46 @@ dependencies = [
[[package]]
name = "frame-support-procedural"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"Inflector",
"cfg-expr",
"derive-syn-parse",
"frame-support-procedural-tools",
"itertools",
+ "macro_magic",
"proc-macro-warning",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-support-procedural-tools"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-system"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"cfg-if",
"frame-support",
@@ -4078,7 +4442,7 @@ dependencies = [
[[package]]
name = "frame-system-benchmarking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -4093,7 +4457,7 @@ dependencies = [
[[package]]
name = "frame-system-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -4102,7 +4466,7 @@ dependencies = [
[[package]]
name = "frame-try-runtime"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -4140,9 +4504,9 @@ dependencies = [
[[package]]
name = "fs_extra"
-version = "1.2.0"
+version = "1.3.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
[[package]]
name = "funty"
@@ -4222,7 +4586,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -4395,6 +4759,7 @@ dependencies = [
"frame-support",
"frame-system",
"frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
"frame-try-runtime",
"pallet-glutton",
"pallet-sudo",
@@ -4721,10 +5086,25 @@ dependencies = [
"rustls 0.20.7",
"rustls-native-certs",
"tokio",
- "tokio-rustls",
+ "tokio-rustls 0.23.2",
"webpki-roots",
]
+[[package]]
+name = "hyper-rustls"
+version = "0.24.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
+dependencies = [
+ "http",
+ "hyper",
+ "log",
+ "rustls 0.21.1",
+ "rustls-native-certs",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
[[package]]
name = "ident_case"
version = "1.0.1"
@@ -4744,9 +5124,9 @@ dependencies = [
[[package]]
name = "idna"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
dependencies = [
"unicode-bidi",
"unicode-normalization",
@@ -4876,6 +5256,9 @@ dependencies = [
name = "integration-tests-common"
version = "1.0.0"
dependencies = [
+ "asset-hub-kusama-runtime",
+ "asset-hub-polkadot-runtime",
+ "asset-hub-westend-runtime",
"bridge-hub-kusama-runtime",
"bridge-hub-polkadot-runtime",
"collectives-polkadot-runtime",
@@ -4906,8 +5289,8 @@ dependencies = [
"sp-core",
"sp-runtime",
"sp-weights",
- "statemine-runtime",
- "statemint-runtime",
+ "westend-runtime",
+ "westend-runtime-constants",
"xcm",
"xcm-emulator",
"xcm-executor",
@@ -4940,12 +5323,13 @@ checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074"
[[package]]
name = "io-lifetimes"
-version = "1.0.2"
+version = "1.0.11"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "e394faa0efb47f9f227f1cd89978f854542b318a6f64fa695489c9c993056656"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
dependencies = [
+ "hermit-abi 0.3.1",
"libc",
- "windows-sys 0.42.0",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -4979,8 +5363,8 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index"
checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
dependencies = [
"hermit-abi 0.3.1",
- "io-lifetimes 1.0.2",
- "rustix 0.37.3",
+ "io-lifetimes 1.0.11",
+ "rustix 0.37.19",
"windows-sys 0.48.0",
]
@@ -5053,7 +5437,7 @@ dependencies = [
"soketto",
"thiserror",
"tokio",
- "tokio-rustls",
+ "tokio-rustls 0.23.2",
"tokio-util",
"tracing",
"webpki-roots",
@@ -5095,7 +5479,7 @@ checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad"
dependencies = [
"async-trait",
"hyper",
- "hyper-rustls",
+ "hyper-rustls 0.23.0",
"jsonrpsee-core",
"jsonrpsee-types",
"rustc-hash",
@@ -5188,8 +5572,8 @@ checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7"
[[package]]
name = "kusama-runtime"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -5287,8 +5671,8 @@ dependencies = [
[[package]]
name = "kusama-runtime-constants"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -5346,9 +5730,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libc"
-version = "0.2.139"
+version = "0.2.146"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
[[package]]
name = "libloading"
@@ -5918,9 +6302,9 @@ checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f"
[[package]]
name = "linux-raw-sys"
-version = "0.3.0"
+version = "0.3.8"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]]
name = "lock_api"
@@ -5933,12 +6317,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.17"
+version = "0.4.19"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
[[package]]
name = "lru"
@@ -6005,6 +6386,53 @@ dependencies = [
"libc",
]
+[[package]]
+name = "macro_magic"
+version = "0.3.5"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "0a2d6d7fe4741b5621cf7c8048e472933877c7ea870cbf1420da55ea9f3bb08c"
+dependencies = [
+ "macro_magic_core",
+ "macro_magic_macros",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "macro_magic_core"
+version = "0.3.5"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "3005604258419767cacc5989c2dd75263f8b33773dd680734f598eb88baf5370"
+dependencies = [
+ "derive-syn-parse",
+ "macro_magic_core_macros",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "macro_magic_core_macros"
+version = "0.3.5"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "de6267819c9042df1a9e62ca279e5a34254ad5dfdcb13ff988f560d75576e8b4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "macro_magic_macros"
+version = "0.3.5"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "dc7176ac15ab2ed7f335e2398f729b9562dae0c233705bc1e1e3acd8452d403d"
+dependencies = [
+ "macro_magic_core",
+ "quote",
+ "syn 2.0.18",
+]
+
[[package]]
name = "maplit"
version = "1.0.2"
@@ -6187,7 +6615,7 @@ dependencies = [
[[package]]
name = "mmr-gadget"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"log",
@@ -6206,7 +6634,7 @@ dependencies = [
[[package]]
name = "mmr-rpc"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"anyhow",
"jsonrpsee",
@@ -6710,7 +7138,7 @@ dependencies = [
[[package]]
name = "pallet-alliance"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"frame-benchmarking",
@@ -6731,7 +7159,7 @@ dependencies = [
[[package]]
name = "pallet-asset-tx-payment"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6749,7 +7177,7 @@ dependencies = [
[[package]]
name = "pallet-assets"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6764,7 +7192,7 @@ dependencies = [
[[package]]
name = "pallet-aura"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -6780,7 +7208,7 @@ dependencies = [
[[package]]
name = "pallet-authority-discovery"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -6796,7 +7224,7 @@ dependencies = [
[[package]]
name = "pallet-authorship"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -6810,7 +7238,7 @@ dependencies = [
[[package]]
name = "pallet-babe"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6834,7 +7262,7 @@ dependencies = [
[[package]]
name = "pallet-bags-list"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6854,7 +7282,7 @@ dependencies = [
[[package]]
name = "pallet-balances"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6869,7 +7297,7 @@ dependencies = [
[[package]]
name = "pallet-beefy"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -6888,7 +7316,7 @@ dependencies = [
[[package]]
name = "pallet-beefy-mmr"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"binary-merkle-tree",
@@ -6912,7 +7340,7 @@ dependencies = [
[[package]]
name = "pallet-bounties"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7026,6 +7454,7 @@ dependencies = [
"frame-system-benchmarking",
"log",
"pallet-balances",
+ "pallet-bridge-transfer-primitives",
"parity-scale-codec",
"polkadot-parachain",
"scale-info",
@@ -7037,10 +7466,20 @@ dependencies = [
"xcm-executor",
]
+[[package]]
+name = "pallet-bridge-transfer-primitives"
+version = "0.1.0"
+dependencies = [
+ "frame-support",
+ "sp-std",
+ "xcm",
+ "xcm-builder",
+]
+
[[package]]
name = "pallet-child-bounties"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7084,7 +7523,7 @@ dependencies = [
[[package]]
name = "pallet-collective"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7101,7 +7540,7 @@ dependencies = [
[[package]]
name = "pallet-contracts"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"bitflags",
"environmental",
@@ -7130,8 +7569,8 @@ dependencies = [
[[package]]
name = "pallet-contracts-primitives"
-version = "7.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "24.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"bitflags",
"parity-scale-codec",
@@ -7144,17 +7583,17 @@ dependencies = [
[[package]]
name = "pallet-contracts-proc-macro"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "pallet-conviction-voting"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -7168,10 +7607,28 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "pallet-core-fellowship"
+version = "4.0.0-dev"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "pallet-democracy"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7189,7 +7646,7 @@ dependencies = [
[[package]]
name = "pallet-election-provider-multi-phase"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7212,7 +7669,7 @@ dependencies = [
[[package]]
name = "pallet-election-provider-support-benchmarking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7225,7 +7682,7 @@ dependencies = [
[[package]]
name = "pallet-elections-phragmen"
version = "5.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7243,8 +7700,9 @@ dependencies = [
[[package]]
name = "pallet-fast-unstake"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
+ "docify",
"frame-benchmarking",
"frame-election-provider-support",
"frame-support",
@@ -7261,7 +7719,7 @@ dependencies = [
[[package]]
name = "pallet-glutton"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"blake2",
"frame-benchmarking",
@@ -7279,7 +7737,7 @@ dependencies = [
[[package]]
name = "pallet-grandpa"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7302,7 +7760,7 @@ dependencies = [
[[package]]
name = "pallet-identity"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -7318,7 +7776,7 @@ dependencies = [
[[package]]
name = "pallet-im-online"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7338,7 +7796,7 @@ dependencies = [
[[package]]
name = "pallet-indices"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7355,7 +7813,7 @@ dependencies = [
[[package]]
name = "pallet-insecure-randomness-collective-flip"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -7369,7 +7827,7 @@ dependencies = [
[[package]]
name = "pallet-membership"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7386,7 +7844,7 @@ dependencies = [
[[package]]
name = "pallet-message-queue"
version = "7.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7405,7 +7863,7 @@ dependencies = [
[[package]]
name = "pallet-mmr"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7422,7 +7880,7 @@ dependencies = [
[[package]]
name = "pallet-multisig"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7438,7 +7896,7 @@ dependencies = [
[[package]]
name = "pallet-nft-fractionalization"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7455,7 +7913,7 @@ dependencies = [
[[package]]
name = "pallet-nfts"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -7473,7 +7931,7 @@ dependencies = [
[[package]]
name = "pallet-nfts-runtime-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"pallet-nfts",
@@ -7484,7 +7942,7 @@ dependencies = [
[[package]]
name = "pallet-nis"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7500,7 +7958,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools"
version = "1.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -7517,7 +7975,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools-benchmarking"
version = "1.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7537,7 +7995,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools-runtime-api"
version = "1.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"pallet-nomination-pools",
"parity-scale-codec",
@@ -7548,7 +8006,7 @@ dependencies = [
[[package]]
name = "pallet-offences"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -7565,7 +8023,7 @@ dependencies = [
[[package]]
name = "pallet-offences-benchmarking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7604,7 +8062,7 @@ dependencies = [
[[package]]
name = "pallet-preimage"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7621,7 +8079,7 @@ dependencies = [
[[package]]
name = "pallet-proxy"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7636,7 +8094,7 @@ dependencies = [
[[package]]
name = "pallet-ranked-collective"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7654,7 +8112,7 @@ dependencies = [
[[package]]
name = "pallet-recovery"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7669,7 +8127,7 @@ dependencies = [
[[package]]
name = "pallet-referenda"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -7685,10 +8143,28 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "pallet-salary"
+version = "4.0.0-dev"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "pallet-scheduler"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7705,7 +8181,7 @@ dependencies = [
[[package]]
name = "pallet-session"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -7726,7 +8202,7 @@ dependencies = [
[[package]]
name = "pallet-session-benchmarking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7742,7 +8218,7 @@ dependencies = [
[[package]]
name = "pallet-society"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -7756,7 +8232,7 @@ dependencies = [
[[package]]
name = "pallet-staking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7779,18 +8255,18 @@ dependencies = [
[[package]]
name = "pallet-staking-reward-curve"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "pallet-staking-reward-fn"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"log",
"sp-arithmetic",
@@ -7799,7 +8275,7 @@ dependencies = [
[[package]]
name = "pallet-staking-runtime-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7808,7 +8284,7 @@ dependencies = [
[[package]]
name = "pallet-state-trie-migration"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7825,7 +8301,7 @@ dependencies = [
[[package]]
name = "pallet-sudo"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7840,7 +8316,7 @@ dependencies = [
[[package]]
name = "pallet-timestamp"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7858,7 +8334,7 @@ dependencies = [
[[package]]
name = "pallet-tips"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7877,7 +8353,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-support",
"frame-system",
@@ -7893,7 +8369,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"jsonrpsee",
"pallet-transaction-payment-rpc-runtime-api",
@@ -7909,7 +8385,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec",
@@ -7921,7 +8397,7 @@ dependencies = [
[[package]]
name = "pallet-treasury"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7938,7 +8414,7 @@ dependencies = [
[[package]]
name = "pallet-uniques"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7953,7 +8429,7 @@ dependencies = [
[[package]]
name = "pallet-utility"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7969,7 +8445,7 @@ dependencies = [
[[package]]
name = "pallet-vesting"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7984,7 +8460,7 @@ dependencies = [
[[package]]
name = "pallet-whitelist"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7998,8 +8474,8 @@ dependencies = [
[[package]]
name = "pallet-xcm"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bounded-collections",
"frame-benchmarking",
@@ -8019,8 +8495,8 @@ dependencies = [
[[package]]
name = "pallet-xcm-benchmarks"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8479,9 +8955,9 @@ dependencies = [
[[package]]
name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pest"
@@ -8636,8 +9112,8 @@ dependencies = [
[[package]]
name = "polkadot-approval-distribution"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"polkadot-node-jaeger",
@@ -8652,8 +9128,8 @@ dependencies = [
[[package]]
name = "polkadot-availability-bitfield-distribution"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"polkadot-node-network-protocol",
@@ -8666,8 +9142,8 @@ dependencies = [
[[package]]
name = "polkadot-availability-distribution"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"derive_more",
"fatality",
@@ -8689,8 +9165,8 @@ dependencies = [
[[package]]
name = "polkadot-availability-recovery"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"fatality",
"futures",
@@ -8710,8 +9186,8 @@ dependencies = [
[[package]]
name = "polkadot-cli"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"clap",
"frame-benchmarking-cli",
@@ -8740,8 +9216,8 @@ dependencies = [
[[package]]
name = "polkadot-client"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"frame-benchmarking",
@@ -8783,8 +9259,8 @@ dependencies = [
[[package]]
name = "polkadot-collator-protocol"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"always-assert",
"bitvec",
@@ -8805,8 +9281,8 @@ dependencies = [
[[package]]
name = "polkadot-core-primitives"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -8817,8 +9293,8 @@ dependencies = [
[[package]]
name = "polkadot-dispute-distribution"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"derive_more",
"fatality",
@@ -8842,8 +9318,8 @@ dependencies = [
[[package]]
name = "polkadot-erasure-coding"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"parity-scale-codec",
"polkadot-node-primitives",
@@ -8856,8 +9332,8 @@ dependencies = [
[[package]]
name = "polkadot-gossip-support"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"futures-timer",
@@ -8876,8 +9352,8 @@ dependencies = [
[[package]]
name = "polkadot-network-bridge"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"always-assert",
"async-trait",
@@ -8899,8 +9375,8 @@ dependencies = [
[[package]]
name = "polkadot-node-collation-generation"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"parity-scale-codec",
@@ -8917,8 +9393,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-approval-voting"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"derive_more",
@@ -8946,8 +9422,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-av-store"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"futures",
@@ -8967,8 +9443,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-backing"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"fatality",
@@ -8986,8 +9462,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-bitfield-signing"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"polkadot-node-subsystem",
@@ -9001,8 +9477,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-candidate-validation"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"futures",
@@ -9021,8 +9497,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-chain-api"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"polkadot-node-metrics",
@@ -9036,8 +9512,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-chain-selection"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"futures-timer",
@@ -9053,8 +9529,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-dispute-coordinator"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"fatality",
"futures",
@@ -9072,8 +9548,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-parachains-inherent"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"futures",
@@ -9089,8 +9565,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-provisioner"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"fatality",
@@ -9107,8 +9583,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"always-assert",
"futures",
@@ -9138,8 +9614,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-checker"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"polkadot-node-primitives",
@@ -9154,8 +9630,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-common"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"cpu-time",
"futures",
@@ -9163,9 +9639,12 @@ dependencies = [
"parity-scale-codec",
"polkadot-parachain",
"polkadot-primitives",
+ "sc-executor",
"sc-executor-common",
"sc-executor-wasmtime",
"sp-core",
+ "sp-externalities",
+ "sp-io",
"sp-tracing",
"substrate-build-script-utils",
"tokio",
@@ -9174,8 +9653,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-execute-worker"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"cpu-time",
"futures",
@@ -9184,12 +9663,7 @@ dependencies = [
"polkadot-parachain",
"polkadot-primitives",
"rayon",
- "sc-executor",
- "sc-executor-common",
- "sc-executor-wasmtime",
"sp-core",
- "sp-externalities",
- "sp-io",
"sp-maybe-compressed-blob",
"sp-tracing",
"tikv-jemalloc-ctl",
@@ -9199,8 +9673,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-prepare-worker"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"libc",
@@ -9222,8 +9696,8 @@ dependencies = [
[[package]]
name = "polkadot-node-core-runtime-api"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"futures",
"lru 0.9.0",
@@ -9237,8 +9711,8 @@ dependencies = [
[[package]]
name = "polkadot-node-jaeger"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"lazy_static",
"log",
@@ -9255,8 +9729,8 @@ dependencies = [
[[package]]
name = "polkadot-node-metrics"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bs58",
"futures",
@@ -9274,8 +9748,8 @@ dependencies = [
[[package]]
name = "polkadot-node-network-protocol"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-channel",
"async-trait",
@@ -9297,8 +9771,8 @@ dependencies = [
[[package]]
name = "polkadot-node-primitives"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bounded-vec",
"futures",
@@ -9319,8 +9793,8 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"polkadot-node-jaeger",
"polkadot-node-subsystem-types",
@@ -9329,8 +9803,8 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem-test-helpers"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"futures",
@@ -9347,8 +9821,8 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem-types"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"derive_more",
@@ -9370,8 +9844,8 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem-util"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"derive_more",
@@ -9403,8 +9877,8 @@ dependencies = [
[[package]]
name = "polkadot-overseer"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"futures",
@@ -9426,8 +9900,8 @@ dependencies = [
[[package]]
name = "polkadot-parachain"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bounded-collections",
"derive_more",
@@ -9446,6 +9920,9 @@ name = "polkadot-parachain-bin"
version = "0.9.420"
dependencies = [
"assert_cmd",
+ "asset-hub-kusama-runtime",
+ "asset-hub-polkadot-runtime",
+ "asset-hub-westend-runtime",
"async-trait",
"bridge-hub-kusama-runtime",
"bridge-hub-polkadot-runtime",
@@ -9510,8 +9987,6 @@ dependencies = [
"sp-session",
"sp-timestamp",
"sp-transaction-pool",
- "statemine-runtime",
- "statemint-runtime",
"substrate-build-script-utils",
"substrate-frame-rpc-system",
"substrate-prometheus-endpoint",
@@ -9520,14 +9995,13 @@ dependencies = [
"tokio",
"try-runtime-cli",
"wait-timeout",
- "westmint-runtime",
"xcm",
]
[[package]]
name = "polkadot-performance-test"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"env_logger 0.9.0",
"kusama-runtime",
@@ -9544,8 +10018,8 @@ dependencies = [
[[package]]
name = "polkadot-primitives"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"hex-literal 0.4.1",
@@ -9570,8 +10044,8 @@ dependencies = [
[[package]]
name = "polkadot-rpc"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"jsonrpsee",
"mmr-rpc",
@@ -9602,8 +10076,8 @@ dependencies = [
[[package]]
name = "polkadot-runtime"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -9697,8 +10171,8 @@ dependencies = [
[[package]]
name = "polkadot-runtime-common"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -9743,8 +10217,8 @@ dependencies = [
[[package]]
name = "polkadot-runtime-constants"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -9757,8 +10231,8 @@ dependencies = [
[[package]]
name = "polkadot-runtime-metrics"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bs58",
"parity-scale-codec",
@@ -9769,8 +10243,8 @@ dependencies = [
[[package]]
name = "polkadot-runtime-parachains"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitflags",
"bitvec",
@@ -9814,8 +10288,8 @@ dependencies = [
[[package]]
name = "polkadot-service"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"async-trait",
"frame-benchmarking-cli",
@@ -9924,8 +10398,8 @@ dependencies = [
[[package]]
name = "polkadot-statement-distribution"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"arrayvec 0.5.2",
"fatality",
@@ -9945,8 +10419,8 @@ dependencies = [
[[package]]
name = "polkadot-statement-table"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"parity-scale-codec",
"polkadot-primitives",
@@ -9955,8 +10429,8 @@ dependencies = [
[[package]]
name = "polkadot-test-client"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"parity-scale-codec",
"polkadot-node-subsystem",
@@ -9980,8 +10454,8 @@ dependencies = [
[[package]]
name = "polkadot-test-runtime"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"frame-election-provider-support",
@@ -10041,8 +10515,8 @@ dependencies = [
[[package]]
name = "polkadot-test-service"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-benchmarking",
"frame-system",
@@ -10209,7 +10683,7 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index"
checksum = "1ceca8aaf45b5c46ec7ed39fff75f57290368c1846d33d24a122ca81416ab058"
dependencies = [
"proc-macro2",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -10284,14 +10758,14 @@ checksum = "70550716265d1ec349c41f70dd4f964b4fd88394efe4405f0c1da679c4799a07"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "proc-macro2"
-version = "1.0.59"
+version = "1.0.60"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
+checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406"
dependencies = [
"unicode-ident",
]
@@ -10821,8 +11295,8 @@ dependencies = [
[[package]]
name = "rococo-runtime"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"binary-merkle-tree",
"frame-benchmarking",
@@ -10908,8 +11382,8 @@ dependencies = [
[[package]]
name = "rococo-runtime-constants"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -11037,7 +11511,7 @@ checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03"
dependencies = [
"bitflags",
"errno 0.2.8",
- "io-lifetimes 1.0.2",
+ "io-lifetimes 1.0.11",
"libc",
"linux-raw-sys 0.1.3",
"windows-sys 0.42.0",
@@ -11045,16 +11519,16 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.37.3"
+version = "0.37.19"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2"
+checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
dependencies = [
"bitflags",
- "errno 0.3.0",
- "io-lifetimes 1.0.2",
+ "errno 0.3.1",
+ "io-lifetimes 1.0.11",
"libc",
- "linux-raw-sys 0.3.0",
- "windows-sys 0.45.0",
+ "linux-raw-sys 0.3.8",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -11082,6 +11556,18 @@ dependencies = [
"webpki 0.22.0",
]
+[[package]]
+name = "rustls"
+version = "0.21.1"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct 0.7.0",
+]
+
[[package]]
name = "rustls-native-certs"
version = "0.6.1"
@@ -11103,6 +11589,16 @@ dependencies = [
"base64 0.13.0",
]
+[[package]]
+name = "rustls-webpki"
+version = "0.100.1"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
[[package]]
name = "rustversion"
version = "1.0.12"
@@ -11156,7 +11652,7 @@ dependencies = [
[[package]]
name = "sc-allocator"
version = "4.1.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"log",
"sp-core",
@@ -11167,7 +11663,7 @@ dependencies = [
[[package]]
name = "sc-authority-discovery"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
@@ -11196,7 +11692,7 @@ dependencies = [
[[package]]
name = "sc-basic-authorship"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"futures-timer",
@@ -11219,7 +11715,7 @@ dependencies = [
[[package]]
name = "sc-block-builder"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"sc-client-api",
@@ -11234,7 +11730,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"memmap2",
"sc-chain-spec-derive",
@@ -11253,18 +11749,18 @@ dependencies = [
[[package]]
name = "sc-chain-spec-derive"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sc-cli"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"chrono",
@@ -11304,7 +11800,7 @@ dependencies = [
[[package]]
name = "sc-client-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"fnv",
"futures",
@@ -11331,7 +11827,7 @@ dependencies = [
[[package]]
name = "sc-client-db"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"hash-db",
"kvdb",
@@ -11357,7 +11853,7 @@ dependencies = [
[[package]]
name = "sc-consensus"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
@@ -11382,7 +11878,7 @@ dependencies = [
[[package]]
name = "sc-consensus-aura"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
@@ -11411,7 +11907,7 @@ dependencies = [
[[package]]
name = "sc-consensus-babe"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"fork-tree",
@@ -11447,7 +11943,7 @@ dependencies = [
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"jsonrpsee",
@@ -11469,7 +11965,7 @@ dependencies = [
[[package]]
name = "sc-consensus-beefy"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"async-channel",
@@ -11505,7 +12001,7 @@ dependencies = [
[[package]]
name = "sc-consensus-beefy-rpc"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"jsonrpsee",
@@ -11524,7 +12020,7 @@ dependencies = [
[[package]]
name = "sc-consensus-epochs"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"fork-tree",
"parity-scale-codec",
@@ -11537,7 +12033,7 @@ dependencies = [
[[package]]
name = "sc-consensus-grandpa"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ahash 0.8.2",
"array-bytes 4.2.0",
@@ -11577,7 +12073,7 @@ dependencies = [
[[package]]
name = "sc-consensus-grandpa-rpc"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"finality-grandpa",
"futures",
@@ -11597,7 +12093,7 @@ dependencies = [
[[package]]
name = "sc-consensus-slots"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
@@ -11620,7 +12116,7 @@ dependencies = [
[[package]]
name = "sc-executor"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"lru 0.10.0",
"parity-scale-codec",
@@ -11642,7 +12138,7 @@ dependencies = [
[[package]]
name = "sc-executor-common"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"sc-allocator",
"sp-maybe-compressed-blob",
@@ -11654,7 +12150,7 @@ dependencies = [
[[package]]
name = "sc-executor-wasmtime"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"anyhow",
"cfg-if",
@@ -11672,7 +12168,7 @@ dependencies = [
[[package]]
name = "sc-informant"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ansi_term",
"futures",
@@ -11688,7 +12184,7 @@ dependencies = [
[[package]]
name = "sc-keystore"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"parking_lot 0.12.1",
@@ -11702,7 +12198,7 @@ dependencies = [
[[package]]
name = "sc-network"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"async-channel",
@@ -11721,13 +12217,13 @@ dependencies = [
"mockall",
"parity-scale-codec",
"parking_lot 0.12.1",
+ "partial_sort",
"pin-project",
"rand 0.8.5",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
"sc-network-common",
- "sc-peerset",
"sc-utils",
"serde",
"serde_json",
@@ -11741,13 +12237,14 @@ dependencies = [
"substrate-prometheus-endpoint",
"thiserror",
"unsigned-varint",
+ "wasm-timer",
"zeroize",
]
[[package]]
name = "sc-network-bitswap"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-channel",
"cid",
@@ -11768,7 +12265,7 @@ dependencies = [
[[package]]
name = "sc-network-common"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -11780,7 +12277,6 @@ dependencies = [
"parity-scale-codec",
"prost-build",
"sc-consensus",
- "sc-peerset",
"sc-utils",
"serde",
"smallvec",
@@ -11796,7 +12292,7 @@ dependencies = [
[[package]]
name = "sc-network-gossip"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ahash 0.8.2",
"futures",
@@ -11806,7 +12302,6 @@ dependencies = [
"lru 0.10.0",
"sc-network",
"sc-network-common",
- "sc-peerset",
"sp-runtime",
"substrate-prometheus-endpoint",
"tracing",
@@ -11815,7 +12310,7 @@ dependencies = [
[[package]]
name = "sc-network-light"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"async-channel",
@@ -11828,7 +12323,6 @@ dependencies = [
"sc-client-api",
"sc-network",
"sc-network-common",
- "sc-peerset",
"sp-blockchain",
"sp-core",
"sp-runtime",
@@ -11838,7 +12332,7 @@ dependencies = [
[[package]]
name = "sc-network-sync"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"async-channel",
@@ -11857,7 +12351,6 @@ dependencies = [
"sc-consensus",
"sc-network",
"sc-network-common",
- "sc-peerset",
"sc-utils",
"smallvec",
"sp-arithmetic",
@@ -11873,7 +12366,7 @@ dependencies = [
[[package]]
name = "sc-network-transactions"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -11882,7 +12375,6 @@ dependencies = [
"parity-scale-codec",
"sc-network",
"sc-network-common",
- "sc-peerset",
"sc-utils",
"sp-consensus",
"sp-runtime",
@@ -11892,7 +12384,7 @@ dependencies = [
[[package]]
name = "sc-offchain"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"bytes",
@@ -11900,7 +12392,7 @@ dependencies = [
"futures",
"futures-timer",
"hyper",
- "hyper-rustls",
+ "hyper-rustls 0.24.0",
"libp2p",
"num_cpus",
"once_cell",
@@ -11910,7 +12402,6 @@ dependencies = [
"sc-client-api",
"sc-network",
"sc-network-common",
- "sc-peerset",
"sc-utils",
"sp-api",
"sp-core",
@@ -11920,26 +12411,10 @@ dependencies = [
"tracing",
]
-[[package]]
-name = "sc-peerset"
-version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
-dependencies = [
- "futures",
- "libp2p-identity",
- "log",
- "parking_lot 0.12.1",
- "partial_sort",
- "sc-utils",
- "serde_json",
- "sp-arithmetic",
- "wasm-timer",
-]
-
[[package]]
name = "sc-proposer-metrics"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -11948,7 +12423,7 @@ dependencies = [
[[package]]
name = "sc-rpc"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"jsonrpsee",
@@ -11979,7 +12454,7 @@ dependencies = [
[[package]]
name = "sc-rpc-api"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -11998,7 +12473,7 @@ dependencies = [
[[package]]
name = "sc-rpc-server"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"http",
"jsonrpsee",
@@ -12013,7 +12488,7 @@ dependencies = [
[[package]]
name = "sc-rpc-spec-v2"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -12039,7 +12514,7 @@ dependencies = [
[[package]]
name = "sc-service"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"directories",
@@ -12105,7 +12580,7 @@ dependencies = [
[[package]]
name = "sc-state-db"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"log",
"parity-scale-codec",
@@ -12116,7 +12591,7 @@ dependencies = [
[[package]]
name = "sc-storage-monitor"
version = "0.1.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"clap",
"fs4",
@@ -12132,7 +12607,7 @@ dependencies = [
[[package]]
name = "sc-sync-state-rpc"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -12151,7 +12626,7 @@ dependencies = [
[[package]]
name = "sc-sysinfo"
version = "6.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"libc",
@@ -12170,7 +12645,7 @@ dependencies = [
[[package]]
name = "sc-telemetry"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"chrono",
"futures",
@@ -12189,7 +12664,7 @@ dependencies = [
[[package]]
name = "sc-tracing"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ansi_term",
"atty",
@@ -12220,25 +12695,24 @@ dependencies = [
[[package]]
name = "sc-tracing-proc-macro"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sc-transaction-pool"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
"futures-timer",
"linked-hash-map",
"log",
- "num-traits",
"parity-scale-codec",
"parking_lot 0.12.1",
"sc-client-api",
@@ -12258,13 +12732,15 @@ dependencies = [
[[package]]
name = "sc-transaction-pool-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
"log",
+ "parity-scale-codec",
"serde",
"sp-blockchain",
+ "sp-core",
"sp-runtime",
"thiserror",
]
@@ -12272,7 +12748,7 @@ dependencies = [
[[package]]
name = "sc-utils"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-channel",
"futures",
@@ -12535,9 +13011,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
-version = "1.0.163"
+version = "1.0.164"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
+checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
dependencies = [
"serde_derive",
]
@@ -12553,13 +13029,13 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.163"
+version = "1.0.164"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
+checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -12761,8 +13237,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec"
[[package]]
name = "slot-range-helper"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"enumn",
"parity-scale-codec",
@@ -13009,7 +13485,7 @@ dependencies = [
[[package]]
name = "sp-api"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"hash-db",
"log",
@@ -13029,21 +13505,21 @@ dependencies = [
[[package]]
name = "sp-api-proc-macro"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"Inflector",
"blake2",
- "expander 1.0.0",
+ "expander 2.0.0",
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-application-crypto"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "23.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -13055,8 +13531,8 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
-version = "7.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "16.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"integer-sqrt",
"num-traits",
@@ -13070,7 +13546,7 @@ dependencies = [
[[package]]
name = "sp-authority-discovery"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -13083,7 +13559,7 @@ dependencies = [
[[package]]
name = "sp-block-builder"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -13095,7 +13571,7 @@ dependencies = [
[[package]]
name = "sp-blockchain"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"log",
@@ -13113,7 +13589,7 @@ dependencies = [
[[package]]
name = "sp-consensus"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures",
@@ -13128,7 +13604,7 @@ dependencies = [
[[package]]
name = "sp-consensus-aura"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -13146,7 +13622,7 @@ dependencies = [
[[package]]
name = "sp-consensus-babe"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -13167,7 +13643,7 @@ dependencies = [
[[package]]
name = "sp-consensus-beefy"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"lazy_static",
"parity-scale-codec",
@@ -13186,7 +13662,7 @@ dependencies = [
[[package]]
name = "sp-consensus-grandpa"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"finality-grandpa",
"log",
@@ -13204,7 +13680,7 @@ dependencies = [
[[package]]
name = "sp-consensus-slots"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -13215,8 +13691,8 @@ dependencies = [
[[package]]
name = "sp-core"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "21.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"bitflags",
@@ -13259,8 +13735,8 @@ dependencies = [
[[package]]
name = "sp-core-hashing"
-version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "9.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"blake2b_simd",
"byteorder",
@@ -13273,19 +13749,19 @@ dependencies = [
[[package]]
name = "sp-core-hashing-proc-macro"
-version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "9.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro2",
"quote",
"sp-core-hashing",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-database"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"kvdb",
"parking_lot 0.12.1",
@@ -13293,18 +13769,18 @@ dependencies = [
[[package]]
name = "sp-debug-derive"
-version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "8.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-externalities"
-version = "0.14.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "0.19.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -13315,7 +13791,7 @@ dependencies = [
[[package]]
name = "sp-inherents"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"impl-trait-for-tuples",
@@ -13329,8 +13805,8 @@ dependencies = [
[[package]]
name = "sp-io"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "23.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"bytes",
"ed25519",
@@ -13355,8 +13831,8 @@ dependencies = [
[[package]]
name = "sp-keyring"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "24.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"lazy_static",
"sp-core",
@@ -13366,8 +13842,8 @@ dependencies = [
[[package]]
name = "sp-keystore"
-version = "0.14.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "0.27.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"parity-scale-codec",
@@ -13381,7 +13857,7 @@ dependencies = [
[[package]]
name = "sp-maybe-compressed-blob"
version = "4.1.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"thiserror",
"zstd 0.12.3+zstd.1.5.2",
@@ -13390,7 +13866,7 @@ dependencies = [
[[package]]
name = "sp-metadata-ir"
version = "0.1.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-metadata",
"parity-scale-codec",
@@ -13401,7 +13877,7 @@ dependencies = [
[[package]]
name = "sp-mmr-primitives"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ckb-merkle-mountain-range",
"log",
@@ -13419,7 +13895,7 @@ dependencies = [
[[package]]
name = "sp-npos-elections"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -13433,7 +13909,7 @@ dependencies = [
[[package]]
name = "sp-offchain"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"sp-api",
"sp-core",
@@ -13442,8 +13918,8 @@ dependencies = [
[[package]]
name = "sp-panic-handler"
-version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "8.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"backtrace",
"lazy_static",
@@ -13453,7 +13929,7 @@ dependencies = [
[[package]]
name = "sp-rpc"
version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"rustc-hash",
"serde",
@@ -13462,8 +13938,8 @@ dependencies = [
[[package]]
name = "sp-runtime"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "24.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"either",
"hash256-std-hasher",
@@ -13484,8 +13960,8 @@ dependencies = [
[[package]]
name = "sp-runtime-interface"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "17.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"bytes",
"impl-trait-for-tuples",
@@ -13502,20 +13978,20 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
-version = "7.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "11.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"Inflector",
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-session"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -13529,7 +14005,7 @@ dependencies = [
[[package]]
name = "sp-staking"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -13541,8 +14017,8 @@ dependencies = [
[[package]]
name = "sp-state-machine"
-version = "0.14.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "0.28.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"hash-db",
"log",
@@ -13562,7 +14038,7 @@ dependencies = [
[[package]]
name = "sp-statement-store"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"log",
"parity-scale-codec",
@@ -13579,13 +14055,13 @@ dependencies = [
[[package]]
name = "sp-std"
-version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "8.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
[[package]]
name = "sp-storage"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "13.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -13598,7 +14074,7 @@ dependencies = [
[[package]]
name = "sp-timestamp"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"futures-timer",
@@ -13612,8 +14088,8 @@ dependencies = [
[[package]]
name = "sp-tracing"
-version = "7.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "10.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"parity-scale-codec",
"sp-std",
@@ -13625,7 +14101,7 @@ dependencies = [
[[package]]
name = "sp-transaction-pool"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"sp-api",
"sp-runtime",
@@ -13634,7 +14110,7 @@ dependencies = [
[[package]]
name = "sp-transaction-storage-proof"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"log",
@@ -13649,8 +14125,8 @@ dependencies = [
[[package]]
name = "sp-trie"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "22.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ahash 0.8.2",
"hash-db",
@@ -13672,8 +14148,8 @@ dependencies = [
[[package]]
name = "sp-version"
-version = "6.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+version = "22.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -13682,329 +14158,136 @@ dependencies = [
"serde",
"sp-core-hashing-proc-macro",
"sp-runtime",
- "sp-std",
- "sp-version-proc-macro",
- "thiserror",
-]
-
-[[package]]
-name = "sp-version-proc-macro"
-version = "4.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
-dependencies = [
- "parity-scale-codec",
- "proc-macro2",
- "quote",
- "syn 2.0.16",
-]
-
-[[package]]
-name = "sp-wasm-interface"
-version = "8.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
-dependencies = [
- "anyhow",
- "impl-trait-for-tuples",
- "log",
- "parity-scale-codec",
- "sp-std",
- "wasmtime",
-]
-
-[[package]]
-name = "sp-weights"
-version = "5.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
-dependencies = [
- "parity-scale-codec",
- "scale-info",
- "serde",
- "smallvec",
- "sp-arithmetic",
- "sp-core",
- "sp-debug-derive",
- "sp-std",
-]
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.4"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
-
-[[package]]
-name = "spinners"
-version = "4.1.0"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "08615eea740067d9899969bc2891c68a19c315cb1f66640af9a9ecb91b13bcab"
-dependencies = [
- "lazy_static",
- "maplit",
- "strum",
-]
-
-[[package]]
-name = "spki"
-version = "0.6.0"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
-dependencies = [
- "base64ct",
- "der 0.6.0",
-]
-
-[[package]]
-name = "spki"
-version = "0.7.0"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "c0445c905640145c7ea8c1993555957f65e7c46d0535b91ba501bc9bfc85522f"
-dependencies = [
- "base64ct",
- "der 0.7.1",
-]
-
-[[package]]
-name = "ss58-registry"
-version = "1.34.0"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "37a9821878e1f13aba383aa40a86fb1b33c7265774ec91e32563cb1dd1577496"
-dependencies = [
- "Inflector",
- "num-format",
- "proc-macro2",
- "quote",
- "serde",
- "serde_json",
- "unicode-xid",
-]
-
-[[package]]
-name = "ssz-rs"
-version = "0.8.0"
-source = "git+/~https://github.com/ralexstokes/ssz-rs?rev=d18af912abacbf84219be37ab3b42a9abcf10d2a#d18af912abacbf84219be37ab3b42a9abcf10d2a"
-dependencies = [
- "bitvec",
- "num-bigint",
- "sha2 0.9.8",
- "ssz-rs-derive",
- "thiserror",
-]
-
-[[package]]
-name = "ssz-rs-derive"
-version = "0.8.0"
-source = "git+/~https://github.com/ralexstokes/ssz-rs?rev=d18af912abacbf84219be37ab3b42a9abcf10d2a#d18af912abacbf84219be37ab3b42a9abcf10d2a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "statemine-it"
-version = "1.0.0"
-dependencies = [
- "frame-support",
- "frame-system",
- "integration-tests-common",
- "pallet-assets",
- "pallet-balances",
- "pallet-xcm",
- "parachains-common",
- "parity-scale-codec",
- "penpal-runtime",
- "polkadot-core-primitives",
- "polkadot-parachain",
- "polkadot-runtime",
- "polkadot-runtime-parachains",
- "sp-core",
- "sp-runtime",
- "sp-weights",
- "statemine-runtime",
- "xcm",
- "xcm-emulator",
- "xcm-executor",
-]
-
-[[package]]
-name = "statemine-runtime"
-version = "2.0.0"
-dependencies = [
- "asset-test-utils",
- "assets-common",
- "cumulus-pallet-aura-ext",
- "cumulus-pallet-dmp-queue",
- "cumulus-pallet-parachain-system",
- "cumulus-pallet-session-benchmarking",
- "cumulus-pallet-xcm",
- "cumulus-pallet-xcmp-queue",
- "cumulus-primitives-core",
- "cumulus-primitives-timestamp",
- "cumulus-primitives-utility",
- "frame-benchmarking",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "hex-literal 0.4.1",
- "kusama-runtime-constants",
- "log",
- "pallet-asset-tx-payment",
- "pallet-assets",
- "pallet-aura",
- "pallet-authorship",
- "pallet-balances",
- "pallet-bridge-transfer",
- "pallet-collator-selection",
- "pallet-multisig",
- "pallet-nfts",
- "pallet-nfts-runtime-api",
- "pallet-proxy",
- "pallet-session",
- "pallet-state-trie-migration",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
- "pallet-uniques",
- "pallet-utility",
- "pallet-xcm",
- "pallet-xcm-benchmarks",
- "parachain-info",
- "parachains-common",
- "parity-scale-codec",
- "polkadot-core-primitives",
- "polkadot-parachain",
- "polkadot-runtime-common",
- "scale-info",
- "smallvec",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
- "sp-core",
- "sp-inherents",
- "sp-io",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-std",
- "sp-transaction-pool",
- "sp-version",
- "sp-weights",
- "substrate-wasm-builder",
- "xcm",
- "xcm-builder",
- "xcm-executor",
-]
-
-[[package]]
-name = "statemint-it"
-version = "1.0.0"
-dependencies = [
- "frame-support",
- "frame-system",
- "integration-tests-common",
- "pallet-assets",
- "pallet-balances",
- "pallet-xcm",
- "parachains-common",
- "parity-scale-codec",
- "penpal-runtime",
- "polkadot-core-primitives",
- "polkadot-parachain",
- "polkadot-runtime",
- "polkadot-runtime-parachains",
- "sp-core",
- "sp-runtime",
- "sp-weights",
- "statemint-runtime",
- "xcm",
- "xcm-emulator",
- "xcm-executor",
+ "sp-std",
+ "sp-version-proc-macro",
+ "thiserror",
]
[[package]]
-name = "statemint-runtime"
-version = "1.0.0"
+name = "sp-version-proc-macro"
+version = "8.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
- "asset-test-utils",
- "assets-common",
- "cumulus-pallet-aura-ext",
- "cumulus-pallet-dmp-queue",
- "cumulus-pallet-parachain-system",
- "cumulus-pallet-session-benchmarking",
- "cumulus-pallet-xcm",
- "cumulus-pallet-xcmp-queue",
- "cumulus-primitives-core",
- "cumulus-primitives-timestamp",
- "cumulus-primitives-utility",
- "frame-benchmarking",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "hex-literal 0.4.1",
+ "parity-scale-codec",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.18",
+]
+
+[[package]]
+name = "sp-wasm-interface"
+version = "14.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
+dependencies = [
+ "anyhow",
+ "impl-trait-for-tuples",
"log",
- "pallet-asset-tx-payment",
- "pallet-assets",
- "pallet-aura",
- "pallet-authorship",
- "pallet-balances",
- "pallet-collator-selection",
- "pallet-multisig",
- "pallet-nfts",
- "pallet-nfts-runtime-api",
- "pallet-proxy",
- "pallet-session",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
- "pallet-uniques",
- "pallet-utility",
- "pallet-xcm",
- "pallet-xcm-benchmarks",
- "parachain-info",
- "parachains-common",
"parity-scale-codec",
- "polkadot-core-primitives",
- "polkadot-parachain",
- "polkadot-runtime-common",
- "polkadot-runtime-constants",
+ "sp-std",
+ "wasmtime",
+]
+
+[[package]]
+name = "sp-weights"
+version = "20.0.0"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
+dependencies = [
+ "parity-scale-codec",
"scale-info",
+ "serde",
"smallvec",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
+ "sp-arithmetic",
"sp-core",
- "sp-inherents",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
+ "sp-debug-derive",
"sp-std",
- "sp-transaction-pool",
- "sp-version",
- "sp-weights",
- "substrate-wasm-builder",
- "xcm",
- "xcm-builder",
- "xcm-executor",
]
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.4"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+
+[[package]]
+name = "spinners"
+version = "4.1.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "08615eea740067d9899969bc2891c68a19c315cb1f66640af9a9ecb91b13bcab"
+dependencies = [
+ "lazy_static",
+ "maplit",
+ "strum",
+]
+
+[[package]]
+name = "spki"
+version = "0.6.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
+dependencies = [
+ "base64ct",
+ "der 0.6.0",
+]
+
+[[package]]
+name = "spki"
+version = "0.7.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "c0445c905640145c7ea8c1993555957f65e7c46d0535b91ba501bc9bfc85522f"
+dependencies = [
+ "base64ct",
+ "der 0.7.1",
+]
+
+[[package]]
+name = "ss58-registry"
+version = "1.34.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "37a9821878e1f13aba383aa40a86fb1b33c7265774ec91e32563cb1dd1577496"
+dependencies = [
+ "Inflector",
+ "num-format",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_json",
+ "unicode-xid",
+]
+
+[[package]]
+name = "ssz-rs"
+version = "0.8.0"
+source = "git+/~https://github.com/ralexstokes/ssz-rs?rev=d18af912abacbf84219be37ab3b42a9abcf10d2a#d18af912abacbf84219be37ab3b42a9abcf10d2a"
+dependencies = [
+ "bitvec",
+ "num-bigint",
+ "sha2 0.9.8",
+ "ssz-rs-derive",
+ "thiserror",
+]
+
+[[package]]
+name = "ssz-rs-derive"
+version = "0.8.0"
+source = "git+/~https://github.com/ralexstokes/ssz-rs?rev=d18af912abacbf84219be37ab3b42a9abcf10d2a#d18af912abacbf84219be37ab3b42a9abcf10d2a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
[[package]]
name = "static_assertions"
version = "1.1.0"
@@ -14127,7 +14410,7 @@ dependencies = [
[[package]]
name = "substrate-build-script-utils"
version = "3.0.0"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"platforms",
]
@@ -14135,7 +14418,7 @@ dependencies = [
[[package]]
name = "substrate-frame-rpc-system"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"frame-system-rpc-runtime-api",
"futures",
@@ -14154,7 +14437,7 @@ dependencies = [
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"hyper",
"log",
@@ -14166,7 +14449,7 @@ dependencies = [
[[package]]
name = "substrate-rpc-client"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"jsonrpsee",
@@ -14179,7 +14462,7 @@ dependencies = [
[[package]]
name = "substrate-state-trie-migration-rpc"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"jsonrpsee",
"log",
@@ -14198,7 +14481,7 @@ dependencies = [
[[package]]
name = "substrate-test-client"
version = "2.0.1"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -14224,7 +14507,7 @@ dependencies = [
[[package]]
name = "substrate-test-utils"
version = "4.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"futures",
"substrate-test-utils-derive",
@@ -14234,18 +14517,18 @@ dependencies = [
[[package]]
name = "substrate-test-utils-derive"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "substrate-wasm-builder"
version = "5.0.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"ansi_term",
"build-helper",
@@ -14288,9 +14571,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.16"
+version = "2.0.18"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
+checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
dependencies = [
"proc-macro2",
"quote",
@@ -14344,15 +14627,16 @@ checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d"
[[package]]
name = "tempfile"
-version = "3.5.0"
+version = "3.6.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
dependencies = [
+ "autocfg",
"cfg-if",
"fastrand",
"redox_syscall 0.3.5",
- "rustix 0.37.3",
- "windows-sys 0.45.0",
+ "rustix 0.37.19",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -14372,8 +14656,8 @@ checksum = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16"
[[package]]
name = "test-runtime-constants"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -14401,7 +14685,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -14556,9 +14840,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.28.1"
+version = "1.28.2"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
dependencies = [
"autocfg",
"bytes",
@@ -14581,7 +14865,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -14606,6 +14890,16 @@ dependencies = [
"webpki 0.22.0",
]
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+/~https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.1",
+ "tokio",
+]
+
[[package]]
name = "tokio-stream"
version = "0.1.9"
@@ -14763,8 +15057,8 @@ dependencies = [
[[package]]
name = "tracing-gum"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"polkadot-node-jaeger",
"polkadot-primitives",
@@ -14774,14 +15068,14 @@ dependencies = [
[[package]]
name = "tracing-gum-proc-macro"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"expander 2.0.0",
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -14905,7 +15199,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
[[package]]
name = "try-runtime-cli"
version = "0.10.0-dev"
-source = "git+/~https://github.com/paritytech/substrate?branch=master#2bc071f33da268ae218f2f376e7aa1dbf397ec76"
+source = "git+/~https://github.com/paritytech/substrate?branch=master#e976964644d951a1eefaaa85f1d7c7d58211ddf7"
dependencies = [
"async-trait",
"clap",
@@ -14990,9 +15284,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]]
name = "uint"
-version = "0.9.1"
+version = "0.9.5"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f"
+checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52"
dependencies = [
"byteorder",
"crunchy",
@@ -15002,9 +15296,9 @@ dependencies = [
[[package]]
name = "unicode-bidi"
-version = "0.3.7"
+version = "0.3.13"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]]
name = "unicode-ident"
@@ -15014,9 +15308,9 @@ checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
[[package]]
name = "unicode-normalization"
-version = "0.1.19"
+version = "0.1.22"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
dependencies = [
"tinyvec",
]
@@ -15063,12 +15357,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
name = "url"
-version = "2.3.1"
+version = "2.4.0"
source = "registry+/~https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
dependencies = [
"form_urlencoded",
- "idna 0.3.0",
+ "idna 0.4.0",
"percent-encoding",
]
@@ -15819,8 +16113,8 @@ dependencies = [
[[package]]
name = "westend-runtime"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -15912,8 +16206,8 @@ dependencies = [
[[package]]
name = "westend-runtime-constants"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -15924,76 +16218,6 @@ dependencies = [
"sp-weights",
]
-[[package]]
-name = "westmint-runtime"
-version = "1.0.0"
-dependencies = [
- "asset-test-utils",
- "assets-common",
- "cumulus-pallet-aura-ext",
- "cumulus-pallet-dmp-queue",
- "cumulus-pallet-parachain-system",
- "cumulus-pallet-session-benchmarking",
- "cumulus-pallet-xcm",
- "cumulus-pallet-xcmp-queue",
- "cumulus-primitives-core",
- "cumulus-primitives-timestamp",
- "cumulus-primitives-utility",
- "frame-benchmarking",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "hex-literal 0.4.1",
- "log",
- "pallet-asset-tx-payment",
- "pallet-assets",
- "pallet-aura",
- "pallet-authorship",
- "pallet-balances",
- "pallet-bridge-transfer",
- "pallet-collator-selection",
- "pallet-multisig",
- "pallet-nft-fractionalization",
- "pallet-nfts",
- "pallet-nfts-runtime-api",
- "pallet-proxy",
- "pallet-session",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
- "pallet-uniques",
- "pallet-utility",
- "pallet-xcm",
- "pallet-xcm-benchmarks",
- "parachain-info",
- "parachains-common",
- "parity-scale-codec",
- "polkadot-core-primitives",
- "polkadot-parachain",
- "polkadot-runtime-common",
- "scale-info",
- "smallvec",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
- "sp-core",
- "sp-inherents",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-std",
- "sp-transaction-pool",
- "sp-version",
- "substrate-wasm-builder",
- "westend-runtime-constants",
- "xcm",
- "xcm-builder",
- "xcm-executor",
-]
-
[[package]]
name = "which"
version = "4.2.2"
@@ -16416,8 +16640,8 @@ dependencies = [
[[package]]
name = "xcm"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"bounded-collections",
"derivative",
@@ -16432,8 +16656,8 @@ dependencies = [
[[package]]
name = "xcm-builder"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"frame-support",
"frame-system",
@@ -16487,8 +16711,8 @@ dependencies = [
[[package]]
name = "xcm-executor"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"environmental",
"frame-benchmarking",
@@ -16507,13 +16731,13 @@ dependencies = [
[[package]]
name = "xcm-procedural"
-version = "0.9.41"
-source = "git+/~https://github.com/paritytech/polkadot?branch=master#710419524ece26228f70562147f704eacd00e3af"
+version = "0.9.43"
+source = "git+/~https://github.com/paritytech/polkadot?branch=master#b6b74fdf546c14bf9ac93c03916abda9ee33a52f"
dependencies = [
"Inflector",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 26c916777ba..d5b3b9c2aa9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -43,9 +43,9 @@ members = [
"parachains/runtimes/starters/shell",
"parachains/runtimes/starters/seedling",
"parachains/runtimes/assets/common",
- "parachains/runtimes/assets/statemint",
- "parachains/runtimes/assets/statemine",
- "parachains/runtimes/assets/westmint",
+ "parachains/runtimes/assets/asset-hub-polkadot",
+ "parachains/runtimes/assets/asset-hub-kusama",
+ "parachains/runtimes/assets/asset-hub-westend",
"parachains/runtimes/bridge-hubs/bridge-hub-rococo",
"parachains/runtimes/bridge-hubs/bridge-hub-kusama",
"parachains/runtimes/bridge-hubs/bridge-hub-polkadot",
@@ -54,8 +54,10 @@ members = [
"parachains/runtimes/glutton/glutton-kusama",
"parachains/runtimes/testing/penpal",
"parachains/integration-tests/emulated/common",
- "parachains/integration-tests/emulated/assets/statemine",
- "parachains/integration-tests/emulated/assets/statemint",
+ "parachains/integration-tests/emulated/assets/asset-hub-kusama",
+ "parachains/integration-tests/emulated/assets/asset-hub-polkadot",
+ "parachains/integration-tests/emulated/assets/asset-hub-westend",
+ "parachains/integration-tests/emulated/collectives/collectives-polkadot",
"test/client",
"test/relay-sproof-builder",
"test/relay-validation-worker-provider",
@@ -72,4 +74,3 @@ opt-level = 3
inherits = "release"
lto = true
codegen-units = 1
-
diff --git a/README.md b/README.md
index fe6836e03ae..b9ebebfe3a7 100644
--- a/README.md
+++ b/README.md
@@ -167,16 +167,14 @@ cargo build --release --bin polkadot-parachain
![image](https://user-images.githubusercontent.com/2915325/99548884-1be13580-2987-11eb-9a8b-20be658d34f9.png)
-## Statemint 🪙
+## Asset Hub 🪙
-This repository also contains the Statemint runtime (as well as the canary runtime Statemine and the
-test runtime Westmint).
-Statemint is a system parachain providing an asset store for the Polkadot ecosystem.
+This repository also contains the Asset Hub runtimes. Asset Hub is a system parachain providing an
+asset store for the Polkadot ecosystem.
### Build & Launch a Node
-To run a Statemine or Westmint node (Statemint is not deployed, yet) you will need to compile the
-`polkadot-parachain` binary:
+To run an Asset Hub node, you will need to compile the `polkadot-parachain` binary:
```bash
cargo build --release --locked --bin polkadot-parachain
@@ -185,7 +183,7 @@ cargo build --release --locked --bin polkadot-parachain
Once the executable is built, launch the parachain node via:
```bash
-CHAIN=westmint # or statemine
+CHAIN=asset-hub-westend # or asset-hub-kusama
./target/release/polkadot-parachain --chain $CHAIN
```
@@ -244,7 +242,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)
+* [Asset Hub](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-statemint-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)
diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml
index 5f42048d8d3..119673935eb 100644
--- a/bridges/bin/runtime-common/Cargo.toml
+++ b/bridges/bin/runtime-common/Cargo.toml
@@ -9,7 +9,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] }
hash-db = { version = "0.16.0", default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
static_assertions = { version = "1.1", optional = true }
diff --git a/bridges/docs/polkadot-kusama-bridge-overview.md b/bridges/docs/polkadot-kusama-bridge-overview.md
index 9f407b6ba00..b469720f65b 100644
--- a/bridges/docs/polkadot-kusama-bridge-overview.md
+++ b/bridges/docs/polkadot-kusama-bridge-overview.md
@@ -24,9 +24,9 @@ You won't be able to directly use bridge hub transactions to send XCM messages o
to use other parachains transactions, which will use HRMP to deliver messages to the Bridge Hub. The Bridge Hub will
just queue these messages in its outbound lane, which is dedicated to deliver messages between two parachains.
-Our first planned bridge will connect the Polkadot' Statemint and Kusama' Statemine. Bridge between those two
-parachains would allow Statemint accounts to hold wrapped KSM tokens and Statemine accounts to hold wrapped DOT
-tokens.
+Our first planned bridge will connect the Polkadot and Kusama Asset Hubs. A bridge between those two
+parachains would allow Asset Hub Polkadot accounts to hold wrapped KSM tokens and Asset Hub Kusama
+accounts to hold wrapped DOT tokens.
For that bridge (pair of parachains under different consensus systems) we'll be using the lane 00000000. Later,
when other parachains will join the bridge, they will be using other lanes for their messages.
@@ -93,13 +93,13 @@ Obviously, there should be someone who is paying relayer rewards. We want bridge
can't use fees for rewards. Instead, the parachains using the bridge, use sovereign accounts on both sides
of the bridge to cover relayer rewards.
-Bridged Parachains will have sovereign accounts at bridge hubs. For example, the Statemine (Kusama Parachain) will
-have an account at the Polkadot Bridge Hub. The Statemint (Polkadot Parachain) will have an account at the Kusama
+Bridged Parachains will have sovereign accounts at bridge hubs. For example, the Kusama Asset Hub will
+have an account at the Polkadot Bridge Hub. The Polkadot Asset Hub will have an account at the Kusama
Bridge Hub. The sovereign accounts are used as a source of funds when the relayer is calling the
`pallet_bridge_relayers::claim_rewards`.
Since messages lane is only used by the pair of parachains, there's no collision between different bridges. E.g.
-Statemine will only reward relayers that are delivering messages from Statemine. The Statemine sovereign account
+Kusama Asset Hub will only reward relayers that are delivering messages from Kusama Asset Hub. The Kusama Asset Hub sovereign account
is not used to cover rewards of bridging with some other Polkadot Parachain.
### Multiple Relayers and Rewards
diff --git a/bridges/docs/polkadot-kusama-bridge.html b/bridges/docs/polkadot-kusama-bridge.html
index dcbae0e7b17..bf248adb571 100644
--- a/bridges/docs/polkadot-kusama-bridge.html
+++ b/bridges/docs/polkadot-kusama-bridge.html
@@ -16,7 +16,7 @@
Polkadot <> Kusama Bridge
In our architecture, the lane that is used to relay messages over the bridge is determined by
- the XCM source and destinations. So e.g. bridge between Statemint and Statemine (and opposite direction)
+ the XCM source and destinations. So e.g. bridge between Asset Hubs Polkadot and Kusama (and opposite direction)
will use the lane 00000000, bridge between some other Polkadot Parachain and some other Kusama Parachain
will use the lane 00000001 and so on.
@@ -24,29 +24,29 @@ Polkadot <> Kusama Bridge
flowchart LR
subgraph Polkadot Consensus
polkadot(((Polkadot)))
- statemint(((Statemint)))
+ asset_hub_polkadot(((Polkadot Asset Hub)))
polkadot_bh(((Polkadot Bridge Hub)))
- polkadot---statemint
+ polkadot---asset_hub_polkadot
polkadot---polkadot_bh
- statemint-->|Send Message Using HRMP|polkadot_bh
+ asset_hub_polkadot-->|Send Message Using HRMP|polkadot_bh
- polkadot_bh-->|Send Message Using HRMP|statemint
- statemint-->|Dispatch the Message|statemint
+ polkadot_bh-->|Send Message Using HRMP|asset_hub_polkadot
+ asset_hub_polkadot-->|Dispatch the Message|asset_hub_polkadot
end
subgraph Kusama Consensus
kusama_bh(((Kusama Bridge Hub)))
- statemine(((Statemine)))
+ asset_hub_kusama(((Kusama Asset Hub)))
kusama(((Kusama)))
- kusama---statemine
+ kusama---asset_hub_kusama
kusama---kusama_bh
- kusama_bh-->|Send Message Using HRMP|statemine
- statemine-->|Dispatch the Message|statemine
+ kusama_bh-->|Send Message Using HRMP|asset_hub_kusama
+ asset_hub_kusama-->|Dispatch the Message|asset_hub_kusama
- statemine-->|Send Message Using HRMP|kusama_bh
+ asset_hub_kusama-->|Send Message Using HRMP|kusama_bh
end
polkadot_bh<===>|Message is relayed to the Bridged Chain using lane 00000000|kusama_bh
diff --git a/bridges/modules/grandpa/Cargo.toml b/bridges/modules/grandpa/Cargo.toml
index ea8d00b8860..64731a9ced4 100644
--- a/bridges/modules/grandpa/Cargo.toml
+++ b/bridges/modules/grandpa/Cargo.toml
@@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
finality-grandpa = { version = "0.16.2", default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
# Bridge Dependencies
@@ -22,8 +22,8 @@ bp-header-chain = { path = "../../primitives/header-chain", default-features = f
frame-support = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
frame-system = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
-sp-consensus-grandpa = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
-sp-runtime = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-consensus-grandpa = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] }
+sp-runtime = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] }
sp-std = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
sp-trie = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
diff --git a/bridges/modules/messages/Cargo.toml b/bridges/modules/messages/Cargo.toml
index 52fdea1df00..6349eb64b17 100644
--- a/bridges/modules/messages/Cargo.toml
+++ b/bridges/modules/messages/Cargo.toml
@@ -8,7 +8,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
num-traits = { version = "0.2", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
diff --git a/bridges/modules/messages/README.md b/bridges/modules/messages/README.md
index b717db6ad62..b5250d0dca0 100644
--- a/bridges/modules/messages/README.md
+++ b/bridges/modules/messages/README.md
@@ -33,8 +33,8 @@ is the runtime developer who defines what message lane and message mean for this
In our [Kusama<>Polkadot bridge](../../docs/polkadot-kusama-bridge-overview.md) we are using lane
as a channel of communication between two parachains of different relay chains. For example, lane
-`[0, 0, 0, 0]` is used for Statemint <> Statemine communications. Other lanes may be used to bridge
-another parachains.
+`[0, 0, 0, 0]` is used for Polkadot <> Kusama Asset Hub communications. Other lanes may be used to
+bridge other parachains.
## Message Workflow
diff --git a/bridges/modules/parachains/Cargo.toml b/bridges/modules/parachains/Cargo.toml
index 147111fd4ce..30c646a6e69 100644
--- a/bridges/modules/parachains/Cargo.toml
+++ b/bridges/modules/parachains/Cargo.toml
@@ -7,7 +7,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
# Bridge Dependencies
diff --git a/bridges/modules/relayers/Cargo.toml b/bridges/modules/relayers/Cargo.toml
index 2a504b0e090..d39bb3b7911 100644
--- a/bridges/modules/relayers/Cargo.toml
+++ b/bridges/modules/relayers/Cargo.toml
@@ -8,7 +8,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
# Bridge dependencies
diff --git a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs b/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
index 4c9f9e20468..78a98a42a66 100644
--- a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
+++ b/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
@@ -53,7 +53,7 @@ pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
/// This is a copy-paste from the cumulus repo's `parachains-common` crate.
const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(constants::WEIGHT_REF_TIME_PER_SECOND, 0)
.saturating_div(2)
- .set_proof_size(polkadot_primitives::v4::MAX_POV_SIZE as u64);
+ .set_proof_size(polkadot_primitives::MAX_POV_SIZE as u64);
/// All cumulus bridge hubs assume that about 5 percent of the block weight is consumed by
/// `on_initialize` handlers. This is used to limit the maximal weight of a single extrinsic.
diff --git a/bridges/primitives/header-chain/Cargo.toml b/bridges/primitives/header-chain/Cargo.toml
index e0349ebc9b9..32f81315537 100644
--- a/bridges/primitives/header-chain/Cargo.toml
+++ b/bridges/primitives/header-chain/Cargo.toml
@@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
finality-grandpa = { version = "0.16.2", default-features = false }
scale-info = { version = "2.6.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0", optional = true }
+serde = { version = "1.0", default-features = false, features = ["alloc", "derive"] }
# Bridge dependencies
@@ -19,9 +19,9 @@ bp-runtime = { path = "../runtime", default-features = false }
# Substrate Dependencies
frame-support = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
-sp-core = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
-sp-consensus-grandpa = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
-sp-runtime = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-core = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] }
+sp-consensus-grandpa = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] }
+sp-runtime = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] }
sp-std = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
[dev-dependencies]
diff --git a/bridges/primitives/header-chain/src/lib.rs b/bridges/primitives/header-chain/src/lib.rs
index 5b278454728..cf08a936234 100644
--- a/bridges/primitives/header-chain/src/lib.rs
+++ b/bridges/primitives/header-chain/src/lib.rs
@@ -27,7 +27,6 @@ use codec::{Codec, Decode, Encode, EncodeLike, MaxEncodedLen};
use core::{clone::Clone, cmp::Eq, default::Default, fmt::Debug};
use frame_support::PalletError;
use scale_info::TypeInfo;
-#[cfg(feature = "std")]
use serde::{Deserialize, Serialize};
use sp_consensus_grandpa::{AuthorityList, ConsensusLog, SetId, GRANDPA_ENGINE_ID};
use sp_runtime::{traits::Header as HeaderT, Digest, RuntimeDebug};
@@ -110,8 +109,9 @@ impl AuthoritySet {
/// Data required for initializing the GRANDPA bridge pallet.
///
/// The bridge needs to know where to start its sync from, and this provides that initial context.
-#[derive(Default, Encode, Decode, RuntimeDebug, PartialEq, Eq, Clone, TypeInfo)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+#[derive(
+ Default, Encode, Decode, RuntimeDebug, PartialEq, Eq, Clone, TypeInfo, Serialize, Deserialize,
+)]
pub struct InitializationData {
/// The header from which we should start syncing.
pub header: Box,
diff --git a/bridges/primitives/messages/Cargo.toml b/bridges/primitives/messages/Cargo.toml
index cb35b4ae65b..cc439a55ae2 100644
--- a/bridges/primitives/messages/Cargo.toml
+++ b/bridges/primitives/messages/Cargo.toml
@@ -9,7 +9,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive", "bit-vec"] }
scale-info = { version = "2.6.0", default-features = false, features = ["bit-vec", "derive"] }
-serde = { version = "1.0", optional = true, features = ["derive"] }
+serde = { version = "1.0", default-features = false, features = ["alloc", "derive"] }
# Bridge dependencies
@@ -34,7 +34,7 @@ std = [
"codec/std",
"frame-support/std",
"scale-info/std",
- "serde",
+ "serde/std",
"sp-core/std",
"sp-std/std"
]
diff --git a/bridges/primitives/messages/src/lib.rs b/bridges/primitives/messages/src/lib.rs
index 8f6c9466109..3df039d7eb8 100644
--- a/bridges/primitives/messages/src/lib.rs
+++ b/bridges/primitives/messages/src/lib.rs
@@ -39,8 +39,19 @@ pub mod storage_keys;
pub mod target_chain;
/// Messages pallet operating mode.
-#[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
-#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
+#[derive(
+ Encode,
+ Decode,
+ Clone,
+ Copy,
+ PartialEq,
+ Eq,
+ RuntimeDebug,
+ TypeInfo,
+ MaxEncodedLen,
+ serde::Serialize,
+ serde::Deserialize,
+)]
pub enum MessagesOperatingMode {
/// Basic operating mode (Normal/Halted)
Basic(BasicOperatingMode),
diff --git a/bridges/primitives/runtime/Cargo.toml b/bridges/primitives/runtime/Cargo.toml
index 694ff4e1aa6..3e6a30a061c 100644
--- a/bridges/primitives/runtime/Cargo.toml
+++ b/bridges/primitives/runtime/Cargo.toml
@@ -11,8 +11,8 @@ codec = { package = "parity-scale-codec", version = "3.1.5", default-features =
hash-db = { version = "0.16.0", default-features = false }
impl-trait-for-tuples = "0.2.2"
num-traits = { version = "0.2", default-features = false }
-scale-info = { version = "2.6.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0", optional = true, features = ["derive"] }
+scale-info = { version = "2.6.0", default-features = false, features = ["derive", "serde"] }
+serde = { version = "1.0", default-features = false, features = ["alloc", "derive"] }
# Substrate Dependencies
@@ -20,7 +20,7 @@ frame-support = { git = "/~https://github.com/paritytech/substrate", branch = "mas
frame-system = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
sp-core = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
sp-io = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
-sp-runtime = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-runtime = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["serde"] }
sp-state-machine = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
sp-std = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
sp-trie = { git = "/~https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -38,7 +38,7 @@ std = [
"hash-db/std",
"num-traits/std",
"scale-info/std",
- "serde",
+ "serde/std",
"sp-core/std",
"sp-io/std",
"sp-runtime/std",
diff --git a/bridges/primitives/runtime/src/lib.rs b/bridges/primitives/runtime/src/lib.rs
index 1922a2eb160..1ce1b7a0eed 100644
--- a/bridges/primitives/runtime/src/lib.rs
+++ b/bridges/primitives/runtime/src/lib.rs
@@ -76,8 +76,8 @@ pub const KUSAMA_CHAIN_ID: ChainId = *b"ksma";
/// Westend chain id.
pub const WESTEND_CHAIN_ID: ChainId = *b"wend";
-/// Westend chain id.
-pub const WESTMINT_CHAIN_ID: ChainId = *b"wmnt";
+/// AssetHubWestend chain id.
+pub const ASSET_HUB_WESTEND_CHAIN_ID: ChainId = *b"ahwe";
/// Rococo chain id.
pub const ROCOCO_CHAIN_ID: ChainId = *b"roco";
@@ -373,8 +373,19 @@ pub trait OperatingMode: Send + Copy + Debug + FullCodec {
}
/// Basic operating modes for a bridges module (Normal/Halted).
-#[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
-#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
+#[derive(
+ Encode,
+ Decode,
+ Clone,
+ Copy,
+ PartialEq,
+ Eq,
+ RuntimeDebug,
+ TypeInfo,
+ MaxEncodedLen,
+ serde::Serialize,
+ serde::Deserialize,
+)]
pub enum BasicOperatingMode {
/// Normal mode, when all operations are allowed.
Normal,
diff --git a/client/cli/Cargo.toml b/client/cli/Cargo.toml
index 6ba04507266..23021820a83 100644
--- a/client/cli/Cargo.toml
+++ b/client/cli/Cargo.toml
@@ -5,9 +5,9 @@ authors = ["Parity Technologies "]
edition = "2021"
[dependencies]
-clap = { version = "4.3.0", features = ["derive"] }
+clap = { version = "4.3.3", features = ["derive"] }
codec = { package = "parity-scale-codec", version = "3.0.0" }
-url = "2.3.1"
+url = "2.4.0"
# Substrate
sc-cli = { git = "/~https://github.com/paritytech/substrate", branch = "master" }
diff --git a/client/consensus/common/Cargo.toml b/client/consensus/common/Cargo.toml
index 02b36320062..9b5f9e4f1de 100644
--- a/client/consensus/common/Cargo.toml
+++ b/client/consensus/common/Cargo.toml
@@ -10,7 +10,7 @@ async-trait = "0.1.68"
codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ] }
dyn-clone = "1.0.11"
futures = "0.3.28"
-log = "0.4.17"
+log = "0.4.19"
tracing = "0.1.37"
# Substrate
diff --git a/client/consensus/common/src/level_monitor.rs b/client/consensus/common/src/level_monitor.rs
index ebdfaaf26ca..8a6bbef62f3 100644
--- a/client/consensus/common/src/level_monitor.rs
+++ b/client/consensus/common/src/level_monitor.rs
@@ -362,14 +362,18 @@ where
/// Add a new imported block information to the monitor.
pub fn block_imported(&mut self, number: NumberFor, hash: Block::Hash) {
- self.import_counter += One::one();
- self.freshness.insert(hash, self.import_counter);
- self.levels.entry(number).or_default().insert(hash);
-
- // Do cleanup once in a while, we are allowed to have some obsolete information.
let finalized_num = self.backend.blockchain().info().finalized_number;
+
+ if number > finalized_num {
+ // Only blocks above the last finalized block should be added to the monitor
+ self.import_counter += One::one();
+ self.freshness.insert(hash, self.import_counter);
+ self.levels.entry(number).or_default().insert(hash);
+ }
+
let delta: u32 = finalized_num.saturating_sub(self.lowest_level).unique_saturated_into();
if delta >= CLEANUP_THRESHOLD {
+ // Do cleanup once in a while, we are allowed to have some obsolete information.
for i in 0..delta {
let number = self.lowest_level + i.unique_saturated_into();
self.levels.remove(&number).map(|level| {
@@ -378,7 +382,6 @@ where
})
});
}
-
self.lowest_level = finalized_num;
}
}
diff --git a/client/consensus/common/src/lib.rs b/client/consensus/common/src/lib.rs
index b74829e191f..f3ef4a3023a 100644
--- a/client/consensus/common/src/lib.rs
+++ b/client/consensus/common/src/lib.rs
@@ -147,6 +147,13 @@ where
let hash = params.post_hash();
let number = *params.header.number();
+ if params.with_state() {
+ // Force imported state finality.
+ // Required for warp sync. We assume that preconditions have been
+ // checked properly and we are importing a finalized block with state.
+ params.finalized = true;
+ }
+
// Best block is determined by the relay chain, or if we are doing the initial sync
// we import all blocks as new best.
params.fork_choice = Some(sc_consensus::ForkChoiceStrategy::Custom(
diff --git a/client/network/Cargo.toml b/client/network/Cargo.toml
index 68b6054cb70..f8915beb82e 100644
--- a/client/network/Cargo.toml
+++ b/client/network/Cargo.toml
@@ -31,8 +31,8 @@ cumulus-relay-chain-interface = { path = "../relay-chain-interface" }
[dev-dependencies]
portpicker = "0.1.1"
-tokio = { version = "1.28.1", features = ["macros"] }
-url = "2.3.1"
+tokio = { version = "1.28.2", features = ["macros"] }
+url = "2.4.0"
# Substrate
sc-cli = { git = "/~https://github.com/paritytech/substrate", branch = "master" }
diff --git a/client/pov-recovery/Cargo.toml b/client/pov-recovery/Cargo.toml
index e5034da396e..62922176e25 100644
--- a/client/pov-recovery/Cargo.toml
+++ b/client/pov-recovery/Cargo.toml
@@ -31,7 +31,7 @@ cumulus-relay-chain-interface = {path = "../relay-chain-interface"}
async-trait = "0.1.68"
[dev-dependencies]
-tokio = { version = "1.28.1", features = ["macros"] }
+tokio = { version = "1.28.2", features = ["macros"] }
portpicker = "0.1.1"
# Cumulus
diff --git a/client/relay-chain-minimal-node/Cargo.toml b/client/relay-chain-minimal-node/Cargo.toml
index 866408b2cbb..c9efb6d5e52 100644
--- a/client/relay-chain-minimal-node/Cargo.toml
+++ b/client/relay-chain-minimal-node/Cargo.toml
@@ -42,4 +42,4 @@ lru = "0.9"
tracing = "0.1.37"
async-trait = "0.1.68"
futures = "0.3.28"
-tokio = { version = "1.28.1", features = ["macros"] }
+tokio = { version = "1.28.2", features = ["macros"] }
diff --git a/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs b/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs
index 10b48296bff..afe174202c5 100644
--- a/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs
+++ b/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs
@@ -21,7 +21,7 @@ use cumulus_relay_chain_rpc_interface::RelayChainRpcClient;
use futures::{Stream, StreamExt};
use polkadot_core_primitives::{Block, BlockNumber, Hash, Header};
use polkadot_overseer::RuntimeApiSubsystemClient;
-use polkadot_primitives::vstaging;
+use polkadot_primitives::slashing;
use sc_authority_discovery::{AuthorityDiscovery, Error as AuthorityDiscoveryError};
use sp_api::{ApiError, RuntimeApiInfo};
@@ -308,7 +308,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient {
Vec<(
polkadot_primitives::SessionIndex,
polkadot_primitives::CandidateHash,
- vstaging::slashing::PendingSlashes,
+ slashing::PendingSlashes,
)>,
ApiError,
> {
@@ -319,15 +319,15 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient {
&self,
at: Hash,
validator_id: polkadot_primitives::ValidatorId,
- ) -> Result, ApiError> {
+ ) -> Result , ApiError> {
Ok(self.rpc_client.parachain_host_key_ownership_proof(at, validator_id).await?)
}
async fn submit_report_dispute_lost(
&self,
at: Hash,
- dispute_proof: vstaging::slashing::DisputeProof,
- key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof,
+ dispute_proof: slashing::DisputeProof,
+ key_ownership_proof: slashing::OpaqueKeyOwnershipProof,
) -> Result , ApiError> {
Ok(self
.rpc_client
diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml
index a3a5629e4e1..91294b3971a 100644
--- a/client/relay-chain-rpc-interface/Cargo.toml
+++ b/client/relay-chain-rpc-interface/Cargo.toml
@@ -21,7 +21,7 @@ sc-client-api = { git = "/~https://github.com/paritytech/substrate", branch = "mas
sc-rpc-api = { git = "/~https://github.com/paritytech/substrate", branch = "master" }
sc-service = { git = "/~https://github.com/paritytech/substrate", branch = "master" }
-tokio = { version = "1.28.1", features = ["sync"] }
+tokio = { version = "1.28.2", features = ["sync"] }
futures = "0.3.28"
futures-timer = "3.0.2"
@@ -29,7 +29,7 @@ parity-scale-codec = "3.5.0"
jsonrpsee = { version = "0.16.2", features = ["ws-client"] }
tracing = "0.1.37"
async-trait = "0.1.68"
-url = "2.3.1"
+url = "2.4.0"
serde_json = "1.0.96"
-serde = "1.0.163"
+serde = "1.0.164"
lru = "0.9.0"
diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs
index e03525226bc..803a27d00f6 100644
--- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs
+++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs
@@ -161,7 +161,9 @@ impl ReconnectingWsClient {
}
}
-/// Worker that should be used in combination with [`RelayChainRpcClient`]. Must be polled to distribute header notifications to listeners.
+/// Worker that should be used in combination with [`crate::RelayChainRpcClient`].
+///
+/// Must be polled to distribute header notifications to listeners.
struct ReconnectingWebsocketWorker {
ws_urls: Vec,
/// Communication channel with the RPC client
diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs
index 70c64eeeffc..a352269104f 100644
--- a/client/relay-chain-rpc-interface/src/rpc_client.rs
+++ b/client/relay-chain-rpc-interface/src/rpc_client.rs
@@ -30,7 +30,7 @@ use sp_storage::StorageKey;
use cumulus_primitives_core::{
relay_chain::{
- vstaging, BlockNumber, CandidateCommitments, CandidateEvent, CandidateHash,
+ slashing, BlockNumber, CandidateCommitments, CandidateEvent, CandidateHash,
CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo,
Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage, OccupiedCoreAssumption,
PvfCheckStatement, ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode,
@@ -334,10 +334,7 @@ impl RelayChainRpcClient {
pub async fn parachain_host_unapplied_slashes(
&self,
at: RelayHash,
- ) -> Result<
- Vec<(SessionIndex, CandidateHash, vstaging::slashing::PendingSlashes)>,
- RelayChainError,
- > {
+ ) -> Result, RelayChainError> {
self.call_remote_runtime_function("ParachainHost_unapplied_slashes", at, None::<()>)
.await
}
@@ -349,7 +346,7 @@ impl RelayChainRpcClient {
&self,
at: RelayHash,
validator_id: ValidatorId,
- ) -> Result, RelayChainError> {
+ ) -> Result , RelayChainError> {
self.call_remote_runtime_function(
"ParachainHost_key_ownership_proof",
at,
@@ -365,8 +362,8 @@ impl RelayChainRpcClient {
pub async fn parachain_host_submit_report_dispute_lost(
&self,
at: RelayHash,
- dispute_proof: vstaging::slashing::DisputeProof,
- key_ownership_proof: vstaging::slashing::OpaqueKeyOwnershipProof,
+ dispute_proof: slashing::DisputeProof,
+ key_ownership_proof: slashing::OpaqueKeyOwnershipProof,
) -> Result , RelayChainError> {
self.call_remote_runtime_function(
"ParachainHost_submit_report_dispute_lost",
diff --git a/docs/release.md b/docs/release.md
index 9c0a6acc0e9..b04c4e844c4 100644
--- a/docs/release.md
+++ b/docs/release.md
@@ -37,8 +37,8 @@ performed during the release process.
### Burn In
-Ensure that Parity DevOps has run the new release on Westmint and Statemine collators for 12h prior to publishing the
-release.
+Ensure that Parity DevOps has run the new release on Westend and Kusama Asset Hub collators for 12h
+prior to publishing the release.
### Build Artifacts
@@ -84,15 +84,15 @@ To verify the order has not changed, manually start the following [Github Action
To run it, in the _Run Workflow_ dropdown:
1. **Use workflow from**: to ignore, leave `master` as default
2. **The WebSocket url of the reference node**:
- - Statemint: `wss://statemint-rpc.polkadot.io`
- - Statemine: `wss://statemine-rpc.polkadot.io`
- - Westmint: `wss://westmint-rpc.polkadot.io`
+ - Asset Hub Polkadot: `wss://statemint-rpc.polkadot.io`
+ - Asset Hub Kusama: `wss://statemine-rpc.polkadot.io`
+ - Asset Hub Westend: `wss://westmint-rpc.polkadot.io`
3. **A url to a Linux binary for the node containing the runtime to test**: Paste the URL of the latest release-candidate binary from the draft-release on Github. The binary has to previously be uploaded to S3 (Github url link to the binary is constantly changing)
- E.g: https://releases.parity.io/cumulus/v0.9.270-rc3/polkadot-parachain
4. **The name of the chain under test. Usually, you would pass a local chain**:
- - Statemint: `statemint-local`
- - Statemine: `statemine-local`
- - Westmint: `westmint-local`
+ - Asset Hub Polkadot: `asset-hub-polkadot-local`
+ - Asset Hub Kusama: `asset-hub-kusama-local`
+ - Asset Hub Westend: `asset-hub-westend-local`
5. Click **Run workflow**
When the workflow is done, click on it and download the zip artifact, inside you'll find an `output.txt` file. The things to look for in the output are lines like:
@@ -114,7 +114,7 @@ The Benchmarks can now be started from the CI. First find the CI pipeline from [
### Integration Tests
Until /~https://github.com/paritytech/ci_cd/issues/499 is done, tests will have to be run manually.
-1. Go to /~https://github.com/paritytech/parachains-integration-tests and checkout to the release branch.
+1. Go to /~https://github.com/paritytech/parachains-integration-tests and check out the release branch.
E.g. /~https://github.com/paritytech/parachains-integration-tests/tree/release-v9270-v0.9.27
for `release-parachains-v0.9.270`
2. Clone `release-parachains-` branch from Cumulus
@@ -126,5 +126,5 @@ In case the branch does not exists (it is a manual process): cherry pick parityt
6. `cargo build --release --features fast-runtime`
7. Copy `./target/polkadot` into `./bin` (in Cumulus)
8. Run the tests:
- - Statemint: `yarn zombienet-test -c ./examples/statemint/config.toml -t ./examples/statemint`
- - Statemine: `yarn zombienet-test -c ./examples/statemine/config.toml -t ./examples/statemine`
+ - Asset Hub Polkadot: `yarn zombienet-test -c ./examples/statemint/config.toml -t ./examples/statemint`
+ - Asset Hub Kusama: `yarn zombienet-test -c ./examples/statemine/config.toml -t ./examples/statemine`
diff --git a/pallets/collator-selection/Cargo.toml b/pallets/collator-selection/Cargo.toml
index f3bec9567cd..7f6da7abfc4 100644
--- a/pallets/collator-selection/Cargo.toml
+++ b/pallets/collator-selection/Cargo.toml
@@ -13,7 +13,7 @@ version = "3.0.0"
targets = ["x86_64-unknown-linux-gnu"]
[dependencies]
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
codec = { default-features = false, features = ["derive"], package = "parity-scale-codec", version = "3.0.0" }
rand = { version = "0.8.5", features = ["std_rng"], default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
diff --git a/pallets/collator-selection/src/benchmarking.rs b/pallets/collator-selection/src/benchmarking.rs
index 63c9561e7dd..2e363fd6042 100644
--- a/pallets/collator-selection/src/benchmarking.rs
+++ b/pallets/collator-selection/src/benchmarking.rs
@@ -168,7 +168,7 @@ benchmarks! {
}
set_desired_candidates {
- let max: u32 = 999;
+ let max: u32 = T::MaxCandidates::get();
let origin =
T::UpdateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
}: {
diff --git a/pallets/collator-selection/src/lib.rs b/pallets/collator-selection/src/lib.rs
index daccc4ce93c..b6a9e109a11 100644
--- a/pallets/collator-selection/src/lib.rs
+++ b/pallets/collator-selection/src/lib.rs
@@ -81,7 +81,6 @@ pub mod pallet {
use core::ops::Div;
use frame_support::{
dispatch::{DispatchClass, DispatchResultWithPostInfo},
- inherent::Vec,
pallet_prelude::*,
sp_runtime::{
traits::{AccountIdConversion, CheckedSub, Saturating, Zero},
@@ -97,6 +96,7 @@ pub mod pallet {
use pallet_session::SessionManager;
use sp_runtime::traits::Convert;
use sp_staking::SessionIndex;
+ use sp_std::vec::Vec;
/// The current storage version.
const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs
index d7b9c2bf74d..361ea3c47bd 100644
--- a/pallets/collator-selection/src/mock.rs
+++ b/pallets/collator-selection/src/mock.rs
@@ -17,7 +17,7 @@ use super::*;
use crate as collator_selection;
use frame_support::{
ord_parameter_types, parameter_types,
- traits::{ConstU32, ConstU64, FindAuthor, GenesisBuild, ValidatorRegistration},
+ traits::{ConstBool, ConstU32, ConstU64, FindAuthor, GenesisBuild, ValidatorRegistration},
PalletId,
};
use frame_system as system;
@@ -128,6 +128,7 @@ impl pallet_aura::Config for Test {
type AuthorityId = sp_consensus_aura::sr25519::AuthorityId;
type MaxAuthorities = ConstU32<100_000>;
type DisabledValidators = ();
+ type AllowMultipleBlocksPerSlot = ConstBool;
}
sp_runtime::impl_opaque_keys! {
diff --git a/pallets/dmp-queue/Cargo.toml b/pallets/dmp-queue/Cargo.toml
index c2e914cf282..ce182df2e4f 100644
--- a/pallets/dmp-queue/Cargo.toml
+++ b/pallets/dmp-queue/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ], default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
# Substrate
diff --git a/pallets/dmp-queue/src/lib.rs b/pallets/dmp-queue/src/lib.rs
index 2c4a8002a85..120df9ce9a4 100644
--- a/pallets/dmp-queue/src/lib.rs
+++ b/pallets/dmp-queue/src/lib.rs
@@ -140,10 +140,6 @@ pub mod pallet {
#[pallet::hooks]
impl Hooks> for Pallet {
- fn on_runtime_upgrade() -> Weight {
- migration::migrate_to_latest::()
- }
-
fn on_idle(_now: T::BlockNumber, max_weight: Weight) -> Weight {
// on_idle processes additional messages with any remaining block weight.
Self::service_queue(max_weight)
diff --git a/pallets/dmp-queue/src/migration.rs b/pallets/dmp-queue/src/migration.rs
index 5e1d357e142..b2323f6a60f 100644
--- a/pallets/dmp-queue/src/migration.rs
+++ b/pallets/dmp-queue/src/migration.rs
@@ -19,31 +19,34 @@
use crate::{Config, Configuration, Overweight, Pallet, DEFAULT_POV_SIZE};
use frame_support::{
pallet_prelude::*,
- traits::StorageVersion,
+ traits::{OnRuntimeUpgrade, StorageVersion},
weights::{constants::WEIGHT_REF_TIME_PER_MILLIS, Weight},
};
/// The current storage version.
-pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
+pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(2);
-/// Migrates the pallet storage to the most recent version, checking and setting the
-/// `StorageVersion`.
-pub fn migrate_to_latest() -> Weight {
- let mut weight = T::DbWeight::get().reads(1);
+/// Migrates the pallet storage to the most recent version.
+pub struct Migration(PhantomData);
- if StorageVersion::get::>() == 0 {
- weight.saturating_accrue(migrate_to_v1::());
- StorageVersion::new(1).put::>();
- weight.saturating_accrue(T::DbWeight::get().writes(1));
- }
+impl OnRuntimeUpgrade for Migration {
+ fn on_runtime_upgrade() -> Weight {
+ let mut weight = T::DbWeight::get().reads(1);
- if StorageVersion::get::>() == 1 {
- weight.saturating_accrue(migrate_to_v2::());
- StorageVersion::new(2).put::>();
- weight.saturating_accrue(T::DbWeight::get().writes(1));
- }
+ if StorageVersion::get::>() == 0 {
+ weight.saturating_accrue(migrate_to_v1::());
+ StorageVersion::new(1).put::>();
+ weight.saturating_accrue(T::DbWeight::get().writes(1));
+ }
- weight
+ if StorageVersion::get::>() == 1 {
+ weight.saturating_accrue(migrate_to_v2::());
+ StorageVersion::new(2).put::>();
+ weight.saturating_accrue(T::DbWeight::get().writes(1));
+ }
+
+ weight
+ }
}
mod v0 {
diff --git a/pallets/parachain-system/Cargo.toml b/pallets/parachain-system/Cargo.toml
index 23db13bca7c..fbe2bde74d6 100644
--- a/pallets/parachain-system/Cargo.toml
+++ b/pallets/parachain-system/Cargo.toml
@@ -10,7 +10,7 @@ bytes = { version = "1.4.0", default-features = false }
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] }
environmental = { version = "1.1.4", default-features = false }
impl-trait-for-tuples = "0.2.1"
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
# Substrate
diff --git a/pallets/parachain-system/proc-macro/Cargo.toml b/pallets/parachain-system/proc-macro/Cargo.toml
index 5caf7cb7b3b..b0883135324 100644
--- a/pallets/parachain-system/proc-macro/Cargo.toml
+++ b/pallets/parachain-system/proc-macro/Cargo.toml
@@ -9,8 +9,8 @@ description = "Proc macros provided by the parachain-system pallet"
proc-macro = true
[dependencies]
-syn = "2.0.15"
-proc-macro2 = "1.0.59"
+syn = "2.0.18"
+proc-macro2 = "1.0.60"
quote = "1.0.28"
proc-macro-crate = "1.3.1"
diff --git a/pallets/parachain-system/src/lib.rs b/pallets/parachain-system/src/lib.rs
index 5f7e1501570..4ef1c511012 100644
--- a/pallets/parachain-system/src/lib.rs
+++ b/pallets/parachain-system/src/lib.rs
@@ -57,7 +57,7 @@ use sp_runtime::{
use sp_std::{cmp, collections::btree_map::BTreeMap, prelude::*};
use xcm::latest::XcmHash;
-mod migration;
+pub mod migration;
mod relay_state_snapshot;
#[macro_use]
pub mod validate_block;
@@ -197,10 +197,6 @@ pub mod pallet {
#[pallet::hooks]
impl Hooks> for Pallet {
- fn on_runtime_upgrade() -> Weight {
- migration::on_runtime_upgrade::()
- }
-
fn on_finalize(_: T::BlockNumber) {
>::kill();
>::kill();
@@ -553,10 +549,8 @@ pub mod pallet {
/// In case of a scheduled upgrade, this storage field contains the validation code to be applied.
///
- /// As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][well_known_keys::CODE]
+ /// As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][sp_core::storage::well_known_keys::CODE]
/// which will result the next block process with the new validation code. This concludes the upgrade process.
- ///
- /// [well_known_keys::CODE]: sp_core::storage::well_known_keys::CODE
#[pallet::storage]
#[pallet::getter(fn new_validation_function)]
pub(super) type PendingValidationCode = StorageValue<_, Vec, ValueQuery>;
@@ -694,7 +688,7 @@ pub mod pallet {
/// A custom head data that should be returned as result of `validate_block`.
///
- /// See [`Pallet::set_custom_validation_head_data`] for more information.
+ /// See `Pallet::set_custom_validation_head_data` for more information.
#[pallet::storage]
pub(super) type CustomValidationHeadData = StorageValue<_, Vec, OptionQuery>;
@@ -874,7 +868,7 @@ impl Pallet {
/// Process all inbound horizontal messages relayed by the collator.
///
- /// This is similar to [`process_inbound_downward_messages`], but works on multiple inbound
+ /// This is similar to `Pallet::process_inbound_downward_messages`, but works on multiple inbound
/// channels.
///
/// **Panics** if either any of horizontal messages submitted by the collator was sent from
diff --git a/pallets/parachain-system/src/migration.rs b/pallets/parachain-system/src/migration.rs
index e3d1e11a51b..17dce3a11a9 100644
--- a/pallets/parachain-system/src/migration.rs
+++ b/pallets/parachain-system/src/migration.rs
@@ -16,32 +16,37 @@
use crate::{Config, Pallet, ReservedDmpWeightOverride, ReservedXcmpWeightOverride};
use frame_support::{
- traits::{Get, StorageVersion},
+ pallet_prelude::*,
+ traits::{Get, OnRuntimeUpgrade, StorageVersion},
weights::Weight,
};
/// The current storage version.
pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(2);
-/// Call this during the next runtime upgrade for this module.
-pub fn on_runtime_upgrade() -> Weight {
- let mut weight: Weight = T::DbWeight::get().reads(2);
+/// Migrates the pallet storage to the most recent version.
+pub struct Migration(PhantomData);
- if StorageVersion::get::>() == 0 {
- weight = weight
- .saturating_add(v1::migrate::())
- .saturating_add(T::DbWeight::get().writes(1));
- StorageVersion::new(1).put::>();
- }
+impl OnRuntimeUpgrade for Migration {
+ fn on_runtime_upgrade() -> Weight {
+ let mut weight: Weight = T::DbWeight::get().reads(2);
- if StorageVersion::get::>() == 1 {
- weight = weight
- .saturating_add(v2::migrate::())
- .saturating_add(T::DbWeight::get().writes(1));
- STORAGE_VERSION.put::>();
- }
+ if StorageVersion::get::>() == 0 {
+ weight = weight
+ .saturating_add(v1::migrate::())
+ .saturating_add(T::DbWeight::get().writes(1));
+ StorageVersion::new(1).put::>();
+ }
- weight
+ if StorageVersion::get::>() == 1 {
+ weight = weight
+ .saturating_add(v2::migrate::())
+ .saturating_add(T::DbWeight::get().writes(1));
+ StorageVersion::new(2).put::>();
+ }
+
+ weight
+ }
}
/// V2: Migrate to 2D weights for ReservedXcmpWeightOverride and ReservedDmpWeightOverride.
diff --git a/pallets/session-benchmarking/Cargo.toml b/pallets/session-benchmarking/Cargo.toml
index 111cbb85ee6..6bc7d845d70 100644
--- a/pallets/session-benchmarking/Cargo.toml
+++ b/pallets/session-benchmarking/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
license = "Apache-2.0"
homepage = "https://substrate.io"
repository = "/~https://github.com/paritytech/cumulus/"
-description = "FRAME sessions pallet benchmarking for statemint"
+description = "FRAME sessions pallet benchmarking"
readme = "README.md"
[package.metadata.docs.rs]
diff --git a/pallets/xcmp-queue/Cargo.toml b/pallets/xcmp-queue/Cargo.toml
index 2238469f05a..4c7142b7a3d 100644
--- a/pallets/xcmp-queue/Cargo.toml
+++ b/pallets/xcmp-queue/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ], default-features = false }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
rand_chacha = { version = "0.3.0", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
diff --git a/pallets/xcmp-queue/src/lib.rs b/pallets/xcmp-queue/src/lib.rs
index 93c9100f520..12ee6dae25a 100644
--- a/pallets/xcmp-queue/src/lib.rs
+++ b/pallets/xcmp-queue/src/lib.rs
@@ -115,10 +115,6 @@ pub mod pallet {
#[pallet::hooks]
impl Hooks> for Pallet {
- fn on_runtime_upgrade() -> Weight {
- migration::migrate_to_latest::()
- }
-
fn on_idle(_now: T::BlockNumber, max_weight: Weight) -> Weight {
// on_idle processes additional messages with any remaining block weight.
Self::service_xcmp_queue(max_weight)
diff --git a/pallets/xcmp-queue/src/migration.rs b/pallets/xcmp-queue/src/migration.rs
index fd1301b9491..bda54620cd9 100644
--- a/pallets/xcmp-queue/src/migration.rs
+++ b/pallets/xcmp-queue/src/migration.rs
@@ -19,31 +19,34 @@
use crate::{Config, Overweight, Pallet, QueueConfig, DEFAULT_POV_SIZE};
use frame_support::{
pallet_prelude::*,
- traits::StorageVersion,
+ traits::{OnRuntimeUpgrade, StorageVersion},
weights::{constants::WEIGHT_REF_TIME_PER_MILLIS, Weight},
};
/// The current storage version.
-pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(2);
+pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(3);
-/// Migrates the pallet storage to the most recent version, checking and setting the
-/// `StorageVersion`.
-pub fn migrate_to_latest() -> Weight {
- let mut weight = T::DbWeight::get().reads(1);
+/// Migrates the pallet storage to the most recent version.
+pub struct Migration(PhantomData);
- if StorageVersion::get::>() == 1 {
- weight.saturating_accrue(migrate_to_v2::());
- StorageVersion::new(2).put::>();
- weight.saturating_accrue(T::DbWeight::get().writes(1));
- }
+impl OnRuntimeUpgrade for Migration {
+ fn on_runtime_upgrade() -> Weight {
+ let mut weight = T::DbWeight::get().reads(1);
- if StorageVersion::get::>() == 2 {
- weight.saturating_accrue(migrate_to_v3::());
- StorageVersion::new(3).put::>();
- weight.saturating_accrue(T::DbWeight::get().writes(1));
- }
+ if StorageVersion::get::>() == 1 {
+ weight.saturating_accrue(migrate_to_v2::());
+ StorageVersion::new(2).put::>();
+ weight.saturating_accrue(T::DbWeight::get().writes(1));
+ }
- weight
+ if StorageVersion::get::>() == 2 {
+ weight.saturating_accrue(migrate_to_v3::());
+ StorageVersion::new(3).put::>();
+ weight.saturating_accrue(T::DbWeight::get().writes(1));
+ }
+
+ weight
+ }
}
mod v1 {
diff --git a/pallets/xcmp-queue/src/mock.rs b/pallets/xcmp-queue/src/mock.rs
index 873ab463cc9..d06da91bee3 100644
--- a/pallets/xcmp-queue/src/mock.rs
+++ b/pallets/xcmp-queue/src/mock.rs
@@ -168,6 +168,7 @@ impl xcm_executor::Config for XcmConfig {
type UniversalAliases = Nothing;
type CallDispatcher = RuntimeCall;
type SafeCallFilter = Everything;
+ type Aliasers = Nothing;
}
pub type XcmRouter = (
diff --git a/parachain-template/node/Cargo.toml b/parachain-template/node/Cargo.toml
index d45f915bad6..0debc5966b4 100644
--- a/parachain-template/node/Cargo.toml
+++ b/parachain-template/node/Cargo.toml
@@ -10,10 +10,10 @@ edition = "2021"
build = "build.rs"
[dependencies]
-clap = { version = "4.3.0", features = ["derive"] }
-log = "0.4.17"
+clap = { version = "4.3.3", features = ["derive"] }
+log = "0.4.19"
codec = { package = "parity-scale-codec", version = "3.0.0" }
-serde = { version = "1.0.163", features = ["derive"] }
+serde = { version = "1.0.164", features = ["derive"] }
jsonrpsee = { version = "0.16.2", features = ["server"] }
# Local
@@ -72,7 +72,6 @@ substrate-build-script-utils = { git = "/~https://github.com/paritytech/substrate"
[features]
default = []
runtime-benchmarks = [
- "try-runtime-cli/try-runtime",
"parachain-template-runtime/runtime-benchmarks",
"polkadot-cli/runtime-benchmarks",
]
diff --git a/parachain-template/pallets/template/Cargo.toml b/parachain-template/pallets/template/Cargo.toml
index f47d82c9798..1ccdc6622ba 100644
--- a/parachain-template/pallets/template/Cargo.toml
+++ b/parachain-template/pallets/template/Cargo.toml
@@ -21,7 +21,7 @@ frame-support = { git = "/~https://github.com/paritytech/substrate", default-featu
frame-system = { git = "/~https://github.com/paritytech/substrate", default-features = false, branch = "master" }
[dev-dependencies]
-serde = { version = "1.0.132" }
+serde = { version = "1.0.163" }
# Substrate
sp-core = { git = "/~https://github.com/paritytech/substrate", default-features = false, branch = "master" }
diff --git a/parachain-template/runtime/Cargo.toml b/parachain-template/runtime/Cargo.toml
index 7894ea2176e..6177e435472 100644
--- a/parachain-template/runtime/Cargo.toml
+++ b/parachain-template/runtime/Cargo.toml
@@ -17,7 +17,7 @@ substrate-wasm-builder = { git = "/~https://github.com/paritytech/substrate", bran
[dependencies]
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] }
hex-literal = { version = "0.4.1", optional = true }
-log = { version = "0.4.17", default-features = false }
+log = { version = "0.4.19", default-features = false }
scale-info = { version = "2.7.0", default-features = false, features = ["derive"] }
smallvec = "1.10.0"
diff --git a/parachain-template/runtime/src/lib.rs b/parachain-template/runtime/src/lib.rs
index b87445826a1..b2d4ea9f7dd 100644
--- a/parachain-template/runtime/src/lib.rs
+++ b/parachain-template/runtime/src/lib.rs
@@ -29,7 +29,7 @@ use frame_support::{
construct_runtime,
dispatch::DispatchClass,
parameter_types,
- traits::{ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything},
+ traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything},
weights::{
constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient,
WeightToFeeCoefficients, WeightToFeePolynomial,
@@ -422,6 +422,7 @@ impl pallet_aura::Config for Runtime {
type AuthorityId = AuraId;
type DisabledValidators = ();
type MaxAuthorities = ConstU32<100_000>;
+ type AllowMultipleBlocksPerSlot = ConstBool;
}
parameter_types! {
diff --git a/parachain-template/runtime/src/xcm_config.rs b/parachain-template/runtime/src/xcm_config.rs
index 9eea16068d0..ff996d4dde3 100644
--- a/parachain-template/runtime/src/xcm_config.rs
+++ b/parachain-template/runtime/src/xcm_config.rs
@@ -135,6 +135,7 @@ impl xcm_executor::Config for XcmConfig {
type UniversalAliases = Nothing;
type CallDispatcher = RuntimeCall;
type SafeCallFilter = Everything;
+ type Aliasers = Nothing;
}
/// No local origins on this chain are allowed to dispatch XCM sends/executions.
diff --git a/parachains/chain-specs/statemine_genesis_values.json b/parachains/chain-specs/asset-hub-kusama-genesis-values.json
similarity index 100%
rename from parachains/chain-specs/statemine_genesis_values.json
rename to parachains/chain-specs/asset-hub-kusama-genesis-values.json
diff --git a/parachains/chain-specs/statemine_genesis.json b/parachains/chain-specs/asset-hub-kusama-genesis.json
similarity index 99%
rename from parachains/chain-specs/statemine_genesis.json
rename to parachains/chain-specs/asset-hub-kusama-genesis.json
index 8b0dee2f8cf..d6eeb567c25 100644
--- a/parachains/chain-specs/statemine_genesis.json
+++ b/parachains/chain-specs/asset-hub-kusama-genesis.json
@@ -1,6 +1,6 @@
{
- "name": "Statemine",
- "id": "statemine",
+ "name": "Kusama Asset Hub",
+ "id": "asset-hub-kusama",
"chainType": "Live",
"bootNodes": [
"/ip4/127.0.0.1/tcp/30333/p2p/12D3KooWHGksh2JFMaW8AkZvyhVpmiXUJnCQbngExTLMdq753ZQR"
diff --git a/parachains/chain-specs/statemine.json b/parachains/chain-specs/asset-hub-kusama.json
similarity index 99%
rename from parachains/chain-specs/statemine.json
rename to parachains/chain-specs/asset-hub-kusama.json
index bf296a173b9..ccbe8f0326c 100644
--- a/parachains/chain-specs/statemine.json
+++ b/parachains/chain-specs/asset-hub-kusama.json
@@ -1,6 +1,6 @@
{
- "name": "Statemine",
- "id": "statemine",
+ "name": "Kusama Asset Hub",
+ "id": "asset-hub-kusama",
"chainType": "Live",
"bootNodes": [
"/ip4/34.77.217.152/tcp/30334/p2p/12D3KooWF63ZxKtZMYs5247WQA8fcTiGJb2osXykc31cmjwNLwem",
diff --git a/parachains/chain-specs/statemint_genesis_values.json b/parachains/chain-specs/asset-hub-polkadot-genesis-values.json
similarity index 100%
rename from parachains/chain-specs/statemint_genesis_values.json
rename to parachains/chain-specs/asset-hub-polkadot-genesis-values.json
diff --git a/parachains/chain-specs/statemint_genesis_values.scale b/parachains/chain-specs/asset-hub-polkadot-genesis-values.scale
similarity index 100%
rename from parachains/chain-specs/statemint_genesis_values.scale
rename to parachains/chain-specs/asset-hub-polkadot-genesis-values.scale
diff --git a/parachains/chain-specs/statemint_genesis.json b/parachains/chain-specs/asset-hub-polkadot-genesis.json
similarity index 99%
rename from parachains/chain-specs/statemint_genesis.json
rename to parachains/chain-specs/asset-hub-polkadot-genesis.json
index 2763994949e..fff9bbe1ea1 100644
--- a/parachains/chain-specs/statemint_genesis.json
+++ b/parachains/chain-specs/asset-hub-polkadot-genesis.json
@@ -1,6 +1,6 @@
{
- "name": "Statemint",
- "id": "statemint",
+ "name": "Polkadot Asset Hub",
+ "id": "asset-hub-polkadot",
"chainType": "Live",
"bootNodes": [
"/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa",
diff --git a/parachains/chain-specs/statemint.json b/parachains/chain-specs/asset-hub-polkadot.json
similarity index 99%
rename from parachains/chain-specs/statemint.json
rename to parachains/chain-specs/asset-hub-polkadot.json
index 61ca655af6c..5c18f90f70a 100644
--- a/parachains/chain-specs/statemint.json
+++ b/parachains/chain-specs/asset-hub-polkadot.json
@@ -1,6 +1,6 @@
{
- "name": "Statemint",
- "id": "statemint",
+ "name": "Polkadot Asset Hub",
+ "id": "asset-hub-polkadot",
"chainType": "Live",
"bootNodes": [
"/ip4/34.65.251.121/tcp/30334/p2p/12D3KooWG3GrM6XKMM4gp3cvemdwUvu96ziYoJmqmetLZBXE8bSa",
diff --git a/parachains/chain-specs/rockmine.json b/parachains/chain-specs/asset-hub-rococo.json
similarity index 99%
rename from parachains/chain-specs/rockmine.json
rename to parachains/chain-specs/asset-hub-rococo.json
index d774da8744a..1a9e63a1cb8 100644
--- a/parachains/chain-specs/rockmine.json
+++ b/parachains/chain-specs/asset-hub-rococo.json
@@ -1,6 +1,6 @@
{
- "name": "Rockmine",
- "id": "statemine-rococo",
+ "name": "Rococo Asset Hub",
+ "id": "asset-hub-rococo",
"chainType": "Live",
"bootNodes": [
"/dns/rococo-rockmine-collator-node-0.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWRrZMndHAopzao34uGsN7srjS3gh9nAjTGKLSyJeU31Lg",
diff --git a/parachains/chain-specs/westmint_genesis_values.json b/parachains/chain-specs/asset-hub-westend-genesis-values.json
similarity index 100%
rename from parachains/chain-specs/westmint_genesis_values.json
rename to parachains/chain-specs/asset-hub-westend-genesis-values.json
diff --git a/parachains/chain-specs/westmint_genesis.json b/parachains/chain-specs/asset-hub-westend-genesis.json
similarity index 99%
rename from parachains/chain-specs/westmint_genesis.json
rename to parachains/chain-specs/asset-hub-westend-genesis.json
index ffd30fbe2de..09d07277c41 100644
--- a/parachains/chain-specs/westmint_genesis.json
+++ b/parachains/chain-specs/asset-hub-westend-genesis.json
@@ -1,6 +1,6 @@
{
- "name": "Westmint",
- "id": "westmint",
+ "name": "Westend Asset Hub",
+ "id": "asset-hub-westend",
"chainType": "Live",
"bootNodes": [
"/ip4/127.0.0.1/tcp/30333/p2p/12D3KooWQWfQ6EBNgik1sW5by9vYagzrdsohc6NafeGPU4upnLRp"
diff --git a/parachains/chain-specs/westmint.json b/parachains/chain-specs/asset-hub-westend.json
similarity index 99%
rename from parachains/chain-specs/westmint.json
rename to parachains/chain-specs/asset-hub-westend.json
index 17d768e58d7..14aaea348e9 100644
--- a/parachains/chain-specs/westmint.json
+++ b/parachains/chain-specs/asset-hub-westend.json
@@ -1,6 +1,6 @@
{
- "name": "Westmint",
- "id": "westmint",
+ "name": "Westend Asset Hub",
+ "id": "asset-hub-westend",
"chainType": "Live",
"bootNodes": [
"/dns/westend-westmint-collator-node-0.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWJaAfPyiye7ZQBuHengTJJoMrcaz7Jj1UzHiKdNxA1Nkd",
diff --git a/parachains/chain-specs/shell-statemint-head-data b/parachains/chain-specs/shell-head-data
similarity index 100%
rename from parachains/chain-specs/shell-statemint-head-data
rename to parachains/chain-specs/shell-head-data
diff --git a/parachains/chain-specs/shell-statemint.json b/parachains/chain-specs/shell.json
similarity index 100%
rename from parachains/chain-specs/shell-statemint.json
rename to parachains/chain-specs/shell.json
diff --git a/parachains/common/src/lib.rs b/parachains/common/src/lib.rs
index 8ac464ea077..46a8af0fb2e 100644
--- a/parachains/common/src/lib.rs
+++ b/parachains/common/src/lib.rs
@@ -54,12 +54,12 @@ mod types {
// Aura consensus authority.
pub type AuraId = sp_consensus_aura::sr25519::AuthorityId;
- // Aura consensus authority used by Statemint.
+ // Aura consensus authority used by Asset Hub Polkadot.
//
// Because of registering the authorities with an ed25519 key before switching from Shell
- // to Statemint, we were required to deploy a hotfix that changed Statemint to ed22519.
- // In the future that may change again.
- pub type StatemintAuraId = sp_consensus_aura::ed25519::AuthorityId;
+ // to Asset Hub Polkadot, we were required to deploy a hotfix that changed Asset Hub Polkadot's
+ // Aura keys to ed22519. In the future that may change again.
+ pub type AssetHubPolkadotAuraId = sp_consensus_aura::ed25519::AuthorityId;
// Id used for identifying assets.
pub type AssetIdForTrustBackedAssets = u32;
diff --git a/parachains/integration-tests/e2e/assets/statemine/0_xcm/0_init.yml b/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemine/0_xcm/0_init.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/0_init.yml
diff --git a/parachains/integration-tests/e2e/assets/statemine/0_xcm/1_dmp.yml b/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemine/0_xcm/1_dmp.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/1_dmp.yml
diff --git a/parachains/integration-tests/e2e/assets/statemine/0_xcm/2_ump.yml b/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml
similarity index 97%
rename from parachains/integration-tests/e2e/assets/statemine/0_xcm/2_ump.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml
index 3cdb9547c35..9b885cb33e9 100644
--- a/parachains/integration-tests/e2e/assets/statemine/0_xcm/2_ump.yml
+++ b/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/2_ump.yml
@@ -97,10 +97,10 @@ tests:
- name: polkadotXcm.Attempted
threshold: *weight_threshold
result: [{ Complete: { refTime: '539,494,000', proofSize: '7,133' }}]
- - name: ump.ExecutedUpward
+ - name: messageQueue.Processed
chain: *relay_chain
threshold: *weight_threshold
- result: [{ Complete: { refTime: '298,716,000', proofSize: 0 }}]
+ result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '298,716,000', proofSize: '0' }, success: true }
- queries:
balance_ap_sender_after:
chain: *assets_parachain
diff --git a/parachains/integration-tests/e2e/assets/statemine/0_xcm/3_force_hrmp-open-channels.yml b/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemine/0_xcm/3_force_hrmp-open-channels.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/3_force_hrmp-open-channels.yml
diff --git a/parachains/integration-tests/e2e/assets/statemine/0_xcm/4_hrmp.yml b/parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemine/0_xcm/4_hrmp.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-kusama/0_xcm/4_hrmp.yml
diff --git a/parachains/integration-tests/e2e/assets/statemine/config.toml b/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml
similarity index 97%
rename from parachains/integration-tests/e2e/assets/statemine/config.toml
rename to parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml
index 57c8f37e24b..1ec06b3fa10 100644
--- a/parachains/integration-tests/e2e/assets/statemine/config.toml
+++ b/parachains/integration-tests/e2e/assets/asset-hub-kusama/config.toml
@@ -26,7 +26,7 @@ chain = "kusama-local"
[[parachains]]
id = 1000
-chain = "statemine-local"
+chain = "asset-hub-kusama-local"
cumulus_based = true
[[parachains.collators]]
diff --git a/parachains/integration-tests/e2e/assets/statemint/0_xcm/0_init.yml b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemint/0_xcm/0_init.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/0_init.yml
diff --git a/parachains/integration-tests/e2e/assets/statemint/0_xcm/1_dmp.yml b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemint/0_xcm/1_dmp.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/1_dmp.yml
diff --git a/parachains/integration-tests/e2e/assets/statemint/0_xcm/2_ump.yml b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml
similarity index 97%
rename from parachains/integration-tests/e2e/assets/statemint/0_xcm/2_ump.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml
index 4bdeceb765c..2e38756aeef 100644
--- a/parachains/integration-tests/e2e/assets/statemint/0_xcm/2_ump.yml
+++ b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/2_ump.yml
@@ -98,10 +98,10 @@ tests:
- name: polkadotXcm.Attempted
threshold: *weight_threshold
result: [{ Complete: { refTime: '533,283,000', proofSize: '7,096' }}]
- - name: ump.ExecutedUpward
+ - name: messageQueue.Processed
chain: *relay_chain
threshold: *weight_threshold
- result: [{ Complete: { refTime: '4,000,000,000', proofSize: 0 }}]
+ result: { origin: { Ump: { Para: '1,000' } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true }
- queries:
balance_ap_sender_after:
chain: *assets_parachain
diff --git a/parachains/integration-tests/e2e/assets/statemint/0_xcm/3_force_hrmp-open-channels.yml b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemint/0_xcm/3_force_hrmp-open-channels.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/3_force_hrmp-open-channels.yml
diff --git a/parachains/integration-tests/e2e/assets/statemint/0_xcm/4_hrmp.yml b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml
similarity index 100%
rename from parachains/integration-tests/e2e/assets/statemint/0_xcm/4_hrmp.yml
rename to parachains/integration-tests/e2e/assets/asset-hub-polkadot/0_xcm/4_hrmp.yml
diff --git a/parachains/integration-tests/e2e/assets/statemint/config.toml b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml
similarity index 97%
rename from parachains/integration-tests/e2e/assets/statemint/config.toml
rename to parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml
index 2e68734e09f..da53cd0ad4f 100644
--- a/parachains/integration-tests/e2e/assets/statemint/config.toml
+++ b/parachains/integration-tests/e2e/assets/asset-hub-polkadot/config.toml
@@ -26,7 +26,7 @@ chain = "polkadot-local"
[[parachains]]
id = 1000
-chain = "statemint-local"
+chain = "asset-hub-polkadot-local"
cumulus_based = true
[[parachains.collators]]
diff --git a/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml b/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml
index 2cd1fa68168..1171aa50da5 100644
--- a/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml
+++ b/parachains/integration-tests/e2e/collectives/collectives-polkadot/0_xcm/1_teleport.yml
@@ -130,10 +130,10 @@ tests:
- name: balances.Withdraw
chain: *relay_chain
result: { who: *checking_account, amount: 10000000000000 } # amount received and withdrawn from registry account
- - name: ump.ExecutedUpward
+ - name: messageQueue.Processed
chain: *relay_chain
threshold: *weight_threshold
- result: [{ Complete: { refTime: '4,000,000,000', proofSize: 0 }}]
+ result: { origin: { Ump: { Para: '1,001' } }, weightUsed: { refTime: '4,000,000,000', proofSize: '0' }, success: true }
- queries:
balance_rc_alice_3:
chain: *relay_chain
diff --git a/parachains/integration-tests/emulated/assets/statemint/Cargo.toml b/parachains/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml
similarity index 90%
rename from parachains/integration-tests/emulated/assets/statemint/Cargo.toml
rename to parachains/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml
index 8c6077b67e4..a25e2116873 100644
--- a/parachains/integration-tests/emulated/assets/statemint/Cargo.toml
+++ b/parachains/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml
@@ -1,9 +1,9 @@
[package]
-name = "statemint-it"
+name = "asset-hub-kusama-integration-tests"
version = "1.0.0"
authors = ["Parity Technologies "]
edition = "2021"
-description = "Statemint parachain runtime integration tests with xcm-emulator"
+description = "Asset Hub Kusama runtime integration tests with xcm-emulator"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false }
@@ -29,7 +29,7 @@ pallet-xcm = { default-features = false, git = "/~https://github.com/paritytech/po
# Cumulus
parachains-common = { path = "../../../../common" }
penpal-runtime = { path = "../../../../runtimes/testing/penpal" }
-statemint-runtime = { path = "../../../../runtimes/assets/statemint" }
+asset-hub-kusama-runtime = { path = "../../../../runtimes/assets/asset-hub-kusama" }
# Local
xcm-emulator = { default-features = false, path = "../../../../../xcm/xcm-emulator" }
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/lib.rs b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/lib.rs
new file mode 100644
index 00000000000..596d5893809
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/lib.rs
@@ -0,0 +1,46 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+pub use codec::Encode;
+pub use frame_support::{
+ assert_ok, instances::Instance1, pallet_prelude::Weight, traits::fungibles::Inspect,
+};
+pub use integration_tests_common::{
+ constants::{
+ accounts::{ALICE, BOB},
+ kusama::ED as KUSAMA_ED,
+ PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
+ },
+ AccountId, AssetHubKusama, AssetHubKusamaPallet, AssetHubKusamaReceiver, AssetHubKusamaSender,
+ BHKusama, BHKusamaPallet, BHKusamaReceiver, BHKusamaSender, BHPolkadot, BHPolkadotPallet,
+ BHPolkadotReceiver, BHPolkadotSender, Collectives, CollectivesPallet, CollectivesReceiver,
+ CollectivesSender, Kusama, KusamaMockNet, KusamaPallet, KusamaReceiver, KusamaSender,
+ PenpalKusama, PenpalKusamaReceiver, PenpalKusamaSender, PenpalPolkadot, PenpalPolkadotReceiver,
+ PenpalPolkadotSender, Polkadot, PolkadotMockNet, PolkadotPallet, PolkadotReceiver,
+ PolkadotSender,
+};
+pub use polkadot_core_primitives::InboundDownwardMessage;
+pub use xcm::{
+ prelude::*,
+ v3::{Error, NetworkId::Kusama as KusamaId},
+};
+pub use xcm_emulator::{
+ assert_expected_events, bx, cumulus_pallet_dmp_queue, helpers::weight_within_threshold,
+ Parachain as Para, RelayChain as Relay, TestExt,
+};
+
+#[cfg(test)]
+mod tests;
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/mod.rs b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/mod.rs
new file mode 100644
index 00000000000..44861d2a872
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/mod.rs
@@ -0,0 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+mod reserve_transfer;
+mod teleport;
+mod transact;
diff --git a/parachains/integration-tests/emulated/assets/statemine/src/tests/reserve_transfer.rs b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/reserve_transfer.rs
similarity index 59%
rename from parachains/integration-tests/emulated/assets/statemine/src/tests/reserve_transfer.rs
rename to parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/reserve_transfer.rs
index bbf272572ac..e1107ebb565 100644
--- a/parachains/integration-tests/emulated/assets/statemine/src/tests/reserve_transfer.rs
+++ b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/reserve_transfer.rs
@@ -1,3 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
use crate::*;
#[test]
@@ -5,13 +21,14 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
// Init tests variables
let amount = KUSAMA_ED * 1000;
let relay_sender_balance_before = Kusama::account_data_of(KusamaSender::get()).free;
- let para_receiver_balance_before = Statemine::account_data_of(StatemineReceiver::get()).free;
+ let para_receiver_balance_before =
+ AssetHubKusama::account_data_of(AssetHubKusamaReceiver::get()).free;
let origin = ::RuntimeOrigin::signed(KusamaSender::get());
let assets_para_destination: VersionedMultiLocation =
- Kusama::child_location_of(Statemine::para_id()).into();
+ Kusama::child_location_of(AssetHubKusama::para_id()).into();
let beneficiary: VersionedMultiLocation =
- AccountId32 { network: None, id: StatemineReceiver::get().into() }.into();
+ AccountId32 { network: None, id: AssetHubKusamaReceiver::get().into() }.into();
let native_assets: VersionedMultiAssets = (Here, amount).into();
let fee_asset_item = 0;
let weight_limit = WeightLimit::Unlimited;
@@ -40,11 +57,11 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
});
// Receive XCM message in Assets Parachain
- Statemine::execute_with(|| {
- type RuntimeEvent = ::RuntimeEvent;
+ AssetHubKusama::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
assert_expected_events!(
- Statemine,
+ AssetHubKusama,
vec![
RuntimeEvent::DmpQueue(cumulus_pallet_dmp_queue::Event::ExecutedDownward {
outcome: Outcome::Incomplete(_, Error::UntrustedReserveLocation),
@@ -56,7 +73,8 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
// Check if balances are updated accordingly in Relay Chain and Assets Parachain
let relay_sender_balance_after = Kusama::account_data_of(KusamaSender::get()).free;
- let para_sender_balance_after = Statemine::account_data_of(StatemineReceiver::get()).free;
+ let para_sender_balance_after =
+ AssetHubKusama::account_data_of(AssetHubKusamaReceiver::get()).free;
assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
assert_eq!(para_sender_balance_after, para_receiver_balance_before);
diff --git a/parachains/integration-tests/emulated/assets/statemine/src/tests/teleport.rs b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/teleport.rs
similarity index 55%
rename from parachains/integration-tests/emulated/assets/statemine/src/tests/teleport.rs
rename to parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/teleport.rs
index cbb07e4592e..16c0db907c3 100644
--- a/parachains/integration-tests/emulated/assets/statemine/src/tests/teleport.rs
+++ b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/teleport.rs
@@ -1,3 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
use crate::*;
#[test]
@@ -5,13 +21,14 @@ fn teleport_native_assets_from_relay_to_assets_para() {
// Init tests variables
let amount = KUSAMA_ED * 1000;
let relay_sender_balance_before = Kusama::account_data_of(KusamaSender::get()).free;
- let para_receiver_balance_before = Statemine::account_data_of(StatemineReceiver::get()).free;
+ let para_receiver_balance_before =
+ AssetHubKusama::account_data_of(AssetHubKusamaReceiver::get()).free;
let origin = ::RuntimeOrigin::signed(KusamaSender::get());
let assets_para_destination: VersionedMultiLocation =
- Kusama::child_location_of(Statemine::para_id()).into();
+ Kusama::child_location_of(AssetHubKusama::para_id()).into();
let beneficiary: VersionedMultiLocation =
- AccountId32 { network: None, id: StatemineReceiver::get().into() }.into();
+ AccountId32 { network: None, id: AssetHubKusamaReceiver::get().into() }.into();
let native_assets: VersionedMultiAssets = (Here, amount).into();
let fee_asset_item = 0;
let weight_limit = WeightLimit::Unlimited;
@@ -40,14 +57,14 @@ fn teleport_native_assets_from_relay_to_assets_para() {
});
// Receive XCM message in Assets Parachain
- Statemine::execute_with(|| {
- type RuntimeEvent = ::RuntimeEvent;
+ AssetHubKusama::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
assert_expected_events!(
- Statemine,
+ AssetHubKusama,
vec![
RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => {
- who: *who == StatemineReceiver::get().into(),
+ who: *who == AssetHubKusamaReceiver::get().into(),
},
]
);
@@ -55,7 +72,8 @@ fn teleport_native_assets_from_relay_to_assets_para() {
// Check if balances are updated accordingly in Relay Chain and Assets Parachain
let relay_sender_balance_after = Kusama::account_data_of(KusamaSender::get()).free;
- let para_sender_balance_after = Statemine::account_data_of(StatemineReceiver::get()).free;
+ let para_sender_balance_after =
+ AssetHubKusama::account_data_of(AssetHubKusamaReceiver::get()).free;
assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
assert!(para_sender_balance_after > para_receiver_balance_before);
diff --git a/parachains/integration-tests/emulated/assets/statemine/src/tests/transact.rs b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/transact.rs
similarity index 53%
rename from parachains/integration-tests/emulated/assets/statemine/src/tests/transact.rs
rename to parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/transact.rs
index 144c8cc9f21..65264c25203 100644
--- a/parachains/integration-tests/emulated/assets/statemine/src/tests/transact.rs
+++ b/parachains/integration-tests/emulated/assets/asset-hub-kusama/src/tests/transact.rs
@@ -1,3 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
use crate::*;
#[test]
@@ -6,14 +22,14 @@ fn transact_sudo_from_relay_to_assets_para() {
// Call to be executed in Assets Parachain
const ASSET_ID: u32 = 1;
- let call = ::RuntimeCall::Assets(pallet_assets::Call::<
- ::Runtime,
+ let call = ::RuntimeCall::Assets(pallet_assets::Call::<
+ ::Runtime,
Instance1,
>::force_create {
id: ASSET_ID.into(),
is_sufficient: true,
min_balance: 1000,
- owner: StatemineSender::get().into(),
+ owner: AssetHubKusamaSender::get().into(),
})
.encode()
.into();
@@ -21,7 +37,7 @@ fn transact_sudo_from_relay_to_assets_para() {
// XcmPallet send arguments
let sudo_origin = ::RuntimeOrigin::root();
let assets_para_destination: VersionedMultiLocation =
- Kusama::child_location_of(Statemine::para_id()).into();
+ Kusama::child_location_of(AssetHubKusama::para_id()).into();
let weight_limit = WeightLimit::Unlimited;
let require_weight_at_most = Weight::from_parts(1000000000, 200000);
@@ -52,7 +68,7 @@ fn transact_sudo_from_relay_to_assets_para() {
});
// Receive XCM message in Assets Parachain
- Statemine::execute_with(|| {
- assert!(::Assets::asset_exists(ASSET_ID));
+ AssetHubKusama::execute_with(|| {
+ assert!(::Assets::asset_exists(ASSET_ID));
});
}
diff --git a/parachains/integration-tests/emulated/assets/statemine/Cargo.toml b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml
similarity index 90%
rename from parachains/integration-tests/emulated/assets/statemine/Cargo.toml
rename to parachains/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml
index 42ed5ac0605..b518257b1a5 100644
--- a/parachains/integration-tests/emulated/assets/statemine/Cargo.toml
+++ b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml
@@ -1,9 +1,9 @@
[package]
-name = "statemine-it"
+name = "asset-hub-polkadot-integration-tests"
version = "1.0.0"
authors = ["Parity Technologies "]
edition = "2021"
-description = "Statemine parachain runtime integration tests with xcm-emulator"
+description = "Asset Hub Polkadot runtime integration tests with xcm-emulator"
[dependencies]
codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false }
@@ -29,7 +29,7 @@ pallet-xcm = { default-features = false, git = "/~https://github.com/paritytech/po
# Cumulus
parachains-common = { path = "../../../../common" }
penpal-runtime = { path = "../../../../runtimes/testing/penpal" }
-statemine-runtime = { path = "../../../../runtimes/assets/statemine" }
+asset-hub-polkadot-runtime = { path = "../../../../runtimes/assets/asset-hub-polkadot" }
# Local
xcm-emulator = { default-features = false, path = "../../../../../xcm/xcm-emulator" }
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/lib.rs b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/lib.rs
new file mode 100644
index 00000000000..02296fa996e
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/lib.rs
@@ -0,0 +1,50 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+pub use codec::Encode;
+pub use frame_support::{
+ assert_ok, instances::Instance1, pallet_prelude::Weight, traits::fungibles::Inspect,
+};
+pub use integration_tests_common::{
+ constants::{
+ accounts::{ALICE, BOB},
+ polkadot::ED as POLKADOT_ED,
+ PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
+ },
+ AccountId, AssetHubKusama, AssetHubKusamaPallet, AssetHubKusamaReceiver, AssetHubKusamaSender,
+ AssetHubPolkadot, AssetHubPolkadotPallet, AssetHubPolkadotReceiver, AssetHubPolkadotSender,
+ BHKusama, BHKusamaPallet, BHKusamaReceiver, BHKusamaSender, BHPolkadot, BHPolkadotPallet,
+ BHPolkadotReceiver, BHPolkadotSender, Collectives, CollectivesPallet, CollectivesReceiver,
+ CollectivesSender, Kusama, KusamaMockNet, KusamaPallet, KusamaReceiver, KusamaSender,
+ PenpalKusama, PenpalKusamaReceiver, PenpalKusamaSender, PenpalPolkadot, PenpalPolkadotReceiver,
+ PenpalPolkadotSender, Polkadot, PolkadotMockNet, PolkadotPallet, PolkadotReceiver,
+ PolkadotSender,
+};
+pub use polkadot_core_primitives::InboundDownwardMessage;
+pub use xcm::{
+ prelude::*,
+ v3::{
+ Error,
+ NetworkId::{Kusama as KusamaId, Polkadot as PolkadotId},
+ },
+};
+pub use xcm_emulator::{
+ assert_expected_events, bx, cumulus_pallet_dmp_queue, helpers::weight_within_threshold,
+ Parachain as Para, RelayChain as Relay, TestExt,
+};
+
+#[cfg(test)]
+mod tests;
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/mod.rs b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/mod.rs
new file mode 100644
index 00000000000..44861d2a872
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/mod.rs
@@ -0,0 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+mod reserve_transfer;
+mod teleport;
+mod transact;
diff --git a/parachains/integration-tests/emulated/assets/statemint/src/tests/reserve_transfer.rs b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs
similarity index 59%
rename from parachains/integration-tests/emulated/assets/statemint/src/tests/reserve_transfer.rs
rename to parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs
index b69222670b1..a880bc43b2b 100644
--- a/parachains/integration-tests/emulated/assets/statemint/src/tests/reserve_transfer.rs
+++ b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs
@@ -1,3 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
use crate::*;
#[test]
@@ -5,13 +21,14 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
// Init tests variables
let amount = POLKADOT_ED * 1000;
let relay_sender_balance_before = Polkadot::account_data_of(PolkadotSender::get()).free;
- let para_receiver_balance_before = Statemint::account_data_of(StatemintReceiver::get()).free;
+ let para_receiver_balance_before =
+ AssetHubPolkadot::account_data_of(AssetHubPolkadotReceiver::get()).free;
let origin = ::RuntimeOrigin::signed(PolkadotSender::get());
let assets_para_destination: VersionedMultiLocation =
- Polkadot::child_location_of(Statemint::para_id()).into();
+ Polkadot::child_location_of(AssetHubPolkadot::para_id()).into();
let beneficiary: VersionedMultiLocation =
- AccountId32 { network: None, id: StatemintReceiver::get().into() }.into();
+ AccountId32 { network: None, id: AssetHubPolkadotReceiver::get().into() }.into();
let native_assets: VersionedMultiAssets = (Here, amount).into();
let fee_asset_item = 0;
let weight_limit = WeightLimit::Unlimited;
@@ -40,11 +57,11 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
});
// Receive XCM message in Assets Parachain
- Statemint::execute_with(|| {
- type RuntimeEvent = ::RuntimeEvent;
+ AssetHubPolkadot::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
assert_expected_events!(
- Statemint,
+ AssetHubPolkadot,
vec![
RuntimeEvent::DmpQueue(cumulus_pallet_dmp_queue::Event::ExecutedDownward {
outcome: Outcome::Incomplete(_, Error::UntrustedReserveLocation),
@@ -56,7 +73,8 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
// Check if balances are updated accordingly in Relay Chain and Assets Parachain
let relay_sender_balance_after = Polkadot::account_data_of(PolkadotSender::get()).free;
- let para_sender_balance_after = Statemint::account_data_of(StatemintReceiver::get()).free;
+ let para_sender_balance_after =
+ AssetHubPolkadot::account_data_of(AssetHubPolkadotReceiver::get()).free;
assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
assert_eq!(para_sender_balance_after, para_receiver_balance_before);
diff --git a/parachains/integration-tests/emulated/assets/statemint/src/tests/teleport.rs b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/teleport.rs
similarity index 55%
rename from parachains/integration-tests/emulated/assets/statemint/src/tests/teleport.rs
rename to parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/teleport.rs
index 19aa5fe1f9e..6b799096054 100644
--- a/parachains/integration-tests/emulated/assets/statemint/src/tests/teleport.rs
+++ b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/teleport.rs
@@ -1,3 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
use crate::*;
#[test]
@@ -5,13 +21,14 @@ fn teleport_native_assets_from_relay_to_assets_para() {
// Init tests variables
let amount = POLKADOT_ED * 1000;
let relay_sender_balance_before = Polkadot::account_data_of(PolkadotSender::get()).free;
- let para_receiver_balance_before = Statemint::account_data_of(StatemintReceiver::get()).free;
+ let para_receiver_balance_before =
+ AssetHubPolkadot::account_data_of(AssetHubPolkadotReceiver::get()).free;
let origin = ::RuntimeOrigin::signed(PolkadotSender::get());
let assets_para_destination: VersionedMultiLocation =
- Polkadot::child_location_of(Statemint::para_id()).into();
+ Polkadot::child_location_of(AssetHubPolkadot::para_id()).into();
let beneficiary: VersionedMultiLocation =
- AccountId32 { network: None, id: StatemintReceiver::get().into() }.into();
+ AccountId32 { network: None, id: AssetHubPolkadotReceiver::get().into() }.into();
let native_assets: VersionedMultiAssets = (Here, amount).into();
let fee_asset_item = 0;
let weight_limit = WeightLimit::Unlimited;
@@ -38,14 +55,14 @@ fn teleport_native_assets_from_relay_to_assets_para() {
});
// Receive XCM message in Assets Parachain
- Statemint::execute_with(|| {
- type RuntimeEvent = ::RuntimeEvent;
+ AssetHubPolkadot::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
assert_expected_events!(
- Statemint,
+ AssetHubPolkadot,
vec![
RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => {
- who: *who == StatemintReceiver::get().into(),
+ who: *who == AssetHubPolkadotReceiver::get().into(),
},
]
);
@@ -53,7 +70,8 @@ fn teleport_native_assets_from_relay_to_assets_para() {
// Check if balances are updated accordingly in Relay Chain and Assets Parachain
let relay_sender_balance_after = Polkadot::account_data_of(PolkadotSender::get()).free;
- let para_sender_balance_after = Statemint::account_data_of(StatemintReceiver::get()).free;
+ let para_sender_balance_after =
+ AssetHubPolkadot::account_data_of(AssetHubPolkadotReceiver::get()).free;
assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
assert!(para_sender_balance_after > para_receiver_balance_before);
diff --git a/parachains/integration-tests/emulated/assets/statemint/src/tests/transact.rs b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/transact.rs
similarity index 53%
rename from parachains/integration-tests/emulated/assets/statemint/src/tests/transact.rs
rename to parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/transact.rs
index 9220d914e47..dc2f1e87d4b 100644
--- a/parachains/integration-tests/emulated/assets/statemint/src/tests/transact.rs
+++ b/parachains/integration-tests/emulated/assets/asset-hub-polkadot/src/tests/transact.rs
@@ -1,3 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
use crate::*;
#[test]
@@ -6,14 +22,14 @@ fn transact_sudo_from_relay_to_assets_para() {
// Call to be executed in Assets Parachain
const ASSET_ID: u32 = 1;
- let call = ::RuntimeCall::Assets(pallet_assets::Call::<
- ::Runtime,
+ let call = ::RuntimeCall::Assets(pallet_assets::Call::<
+ ::Runtime,
Instance1,
>::force_create {
id: ASSET_ID.into(),
is_sufficient: true,
min_balance: 1000,
- owner: StatemintSender::get().into(),
+ owner: AssetHubPolkadotSender::get().into(),
})
.encode()
.into();
@@ -21,7 +37,7 @@ fn transact_sudo_from_relay_to_assets_para() {
// XcmPallet send arguments
let sudo_origin = ::RuntimeOrigin::root();
let assets_para_destination: VersionedMultiLocation =
- Polkadot::child_location_of(Statemint::para_id()).into();
+ Polkadot::child_location_of(AssetHubPolkadot::para_id()).into();
let weight_limit = WeightLimit::Unlimited;
let require_weight_at_most = Weight::from_parts(1000000000, 200000);
@@ -52,7 +68,7 @@ fn transact_sudo_from_relay_to_assets_para() {
});
// Receive XCM message in Assets Parachain
- Statemint::execute_with(|| {
- assert!(::Assets::asset_exists(ASSET_ID));
+ AssetHubPolkadot::execute_with(|| {
+ assert!(::Assets::asset_exists(ASSET_ID));
});
}
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-westend/Cargo.toml b/parachains/integration-tests/emulated/assets/asset-hub-westend/Cargo.toml
new file mode 100644
index 00000000000..c216a84191f
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-westend/Cargo.toml
@@ -0,0 +1,37 @@
+[package]
+name = "asset-hub-westend-integration-tests"
+version = "1.0.0"
+authors = ["Parity Technologies "]
+edition = "2021"
+description = "Asset Hub Westend runtime integration tests with xcm-emulator"
+
+[dependencies]
+codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false }
+
+# Substrate
+sp-runtime = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+frame-support = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+frame-system = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+sp-core = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+sp-weights = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+pallet-balances = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+pallet-assets = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+
+# Polkadot
+polkadot-core-primitives = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+polkadot-parachain = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+polkadot-runtime-parachains = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+polkadot-runtime = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+westend-runtime = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+xcm = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+xcm-executor = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+pallet-xcm = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+
+# Cumulus
+parachains-common = { path = "../../../../common" }
+penpal-runtime = { path = "../../../../runtimes/testing/penpal" }
+asset-hub-westend-runtime = { path = "../../../../runtimes/assets/asset-hub-westend" }
+
+# Local
+xcm-emulator = { default-features = false, path = "../../../../../xcm/xcm-emulator" }
+integration-tests-common = { default-features = false, path = "../../common" }
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-westend/src/lib.rs b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/lib.rs
new file mode 100644
index 00000000000..68a5ccfaa0c
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/lib.rs
@@ -0,0 +1,45 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+pub use codec::Encode;
+pub use frame_support::{
+ assert_ok, instances::Instance1, pallet_prelude::Weight, traits::fungibles::Inspect,
+};
+pub use integration_tests_common::{
+ constants::{
+ accounts::{ALICE, BOB},
+ polkadot::ED as POLKADOT_ED,
+ PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
+ },
+ AccountId, AssetHubWestend, AssetHubWestendPallet, AssetHubWestendReceiver,
+ AssetHubWestendSender, Collectives, CollectivesPallet, CollectivesReceiver, CollectivesSender,
+ PenpalWestend, Westend, WestendPallet, WestendReceiver, WestendSender,
+};
+pub use polkadot_core_primitives::InboundDownwardMessage;
+pub use xcm::{
+ prelude::*,
+ v3::{
+ Error,
+ NetworkId::{Kusama as KusamaId, Polkadot as PolkadotId},
+ },
+};
+pub use xcm_emulator::{
+ assert_expected_events, bx, cumulus_pallet_dmp_queue, helpers::weight_within_threshold,
+ Parachain as Para, RelayChain as Relay, TestExt,
+};
+
+#[cfg(test)]
+mod tests;
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/mod.rs b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/mod.rs
new file mode 100644
index 00000000000..44861d2a872
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/mod.rs
@@ -0,0 +1,19 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+mod reserve_transfer;
+mod teleport;
+mod transact;
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs
new file mode 100644
index 00000000000..8a0191a6fe6
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/reserve_transfer.rs
@@ -0,0 +1,81 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+use crate::*;
+
+#[test]
+fn reserve_transfer_native_asset_from_relay_to_assets() {
+ // Init tests variables
+ let amount = POLKADOT_ED * 1000;
+ let relay_sender_balance_before = Westend::account_data_of(WestendSender::get()).free;
+ let para_receiver_balance_before =
+ AssetHubWestend::account_data_of(AssetHubWestendReceiver::get()).free;
+
+ let origin = ::RuntimeOrigin::signed(WestendSender::get());
+ let assets_para_destination: VersionedMultiLocation =
+ Westend::child_location_of(AssetHubWestend::para_id()).into();
+ let beneficiary: VersionedMultiLocation =
+ AccountId32 { network: None, id: AssetHubWestendReceiver::get().into() }.into();
+ let native_assets: VersionedMultiAssets = (Here, amount).into();
+ let fee_asset_item = 0;
+ let weight_limit = WeightLimit::Unlimited;
+
+ // Send XCM message from Relay Chain
+ Westend::execute_with(|| {
+ assert_ok!(::XcmPallet::limited_reserve_transfer_assets(
+ origin,
+ bx!(assets_para_destination),
+ bx!(beneficiary),
+ bx!(native_assets),
+ fee_asset_item,
+ weight_limit,
+ ));
+
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_expected_events!(
+ Westend,
+ vec![
+ RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted { outcome: Outcome::Complete(weight) }) => {
+ weight: weight_within_threshold((REF_TIME_THRESHOLD, PROOF_SIZE_THRESHOLD), Weight::from_parts(731_495_000, 0), *weight),
+ },
+ ]
+ );
+ });
+
+ // Receive XCM message in Assets Parachain
+ AssetHubWestend::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_expected_events!(
+ AssetHubWestend,
+ vec![
+ RuntimeEvent::DmpQueue(cumulus_pallet_dmp_queue::Event::ExecutedDownward {
+ outcome: Outcome::Incomplete(_, Error::UntrustedReserveLocation),
+ ..
+ }) => {},
+ ]
+ );
+ });
+
+ // Check if balances are updated accordingly in Relay Chain and Assets Parachain
+ let relay_sender_balance_after = Westend::account_data_of(WestendSender::get()).free;
+ let para_sender_balance_after =
+ AssetHubWestend::account_data_of(AssetHubWestendReceiver::get()).free;
+
+ assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
+ assert_eq!(para_sender_balance_after, para_receiver_balance_before);
+}
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs
new file mode 100644
index 00000000000..c8a57933b05
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/teleport.rs
@@ -0,0 +1,78 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+use crate::*;
+
+#[test]
+fn teleport_native_assets_from_relay_to_assets_para() {
+ // Init tests variables
+ let amount = POLKADOT_ED * 1000;
+ let relay_sender_balance_before = Westend::account_data_of(WestendSender::get()).free;
+ let para_receiver_balance_before =
+ AssetHubWestend::account_data_of(AssetHubWestendReceiver::get()).free;
+
+ let origin = ::RuntimeOrigin::signed(WestendSender::get());
+ let assets_para_destination: VersionedMultiLocation =
+ Westend::child_location_of(AssetHubWestend::para_id()).into();
+ let beneficiary: VersionedMultiLocation =
+ AccountId32 { network: None, id: AssetHubWestendReceiver::get().into() }.into();
+ let native_assets: VersionedMultiAssets = (Here, amount).into();
+ let fee_asset_item = 0;
+ let weight_limit = WeightLimit::Unlimited;
+
+ // Send XCM message from Relay Chain
+ Westend::execute_with(|| {
+ assert_ok!(::XcmPallet::limited_teleport_assets(
+ origin,
+ bx!(assets_para_destination),
+ bx!(beneficiary),
+ bx!(native_assets),
+ fee_asset_item,
+ weight_limit,
+ ));
+
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_expected_events!(
+ Westend,
+ vec![
+ RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted { outcome: Outcome::Complete { .. } }) => {},
+ ]
+ );
+ });
+
+ // Receive XCM message in Assets Parachain
+ AssetHubWestend::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_expected_events!(
+ AssetHubWestend,
+ vec![
+ RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => {
+ who: *who == AssetHubWestendReceiver::get().into(),
+ },
+ ]
+ );
+ });
+
+ // Check if balances are updated accordingly in Relay Chain and Assets Parachain
+ let relay_sender_balance_after = Westend::account_data_of(WestendSender::get()).free;
+ let para_sender_balance_after =
+ AssetHubWestend::account_data_of(AssetHubWestendReceiver::get()).free;
+
+ assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
+ assert!(para_sender_balance_after > para_receiver_balance_before);
+}
diff --git a/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/transact.rs b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/transact.rs
new file mode 100644
index 00000000000..e71a9174848
--- /dev/null
+++ b/parachains/integration-tests/emulated/assets/asset-hub-westend/src/tests/transact.rs
@@ -0,0 +1,74 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+use crate::*;
+
+#[test]
+fn transact_sudo_from_relay_to_assets_para() {
+ // Init tests variables
+ // Call to be executed in Assets Parachain
+ const ASSET_ID: u32 = 1;
+
+ let call = ::RuntimeCall::Assets(pallet_assets::Call::<
+ ::Runtime,
+ Instance1,
+ >::force_create {
+ id: ASSET_ID.into(),
+ is_sufficient: true,
+ min_balance: 1000,
+ owner: AssetHubWestendSender::get().into(),
+ })
+ .encode()
+ .into();
+
+ // XcmPallet send arguments
+ let sudo_origin = ::RuntimeOrigin::root();
+ let assets_para_destination: VersionedMultiLocation =
+ Westend::child_location_of(AssetHubWestend::para_id()).into();
+
+ let weight_limit = WeightLimit::Unlimited;
+ let require_weight_at_most = Weight::from_parts(1000000000, 200000);
+ let origin_kind = OriginKind::Superuser;
+ let check_origin = None;
+
+ let xcm = VersionedXcm::from(Xcm(vec![
+ UnpaidExecution { weight_limit, check_origin },
+ Transact { require_weight_at_most, origin_kind, call },
+ ]));
+
+ // Send XCM message from Relay Chain
+ Westend::execute_with(|| {
+ assert_ok!(::XcmPallet::send(
+ sudo_origin,
+ bx!(assets_para_destination),
+ bx!(xcm),
+ ));
+
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_expected_events!(
+ Westend,
+ vec![
+ RuntimeEvent::XcmPallet(pallet_xcm::Event::Sent { .. }) => {},
+ ]
+ );
+ });
+
+ // Receive XCM message in Assets Parachain
+ AssetHubWestend::execute_with(|| {
+ assert!(::Assets::asset_exists(ASSET_ID));
+ });
+}
diff --git a/parachains/integration-tests/emulated/assets/statemine/src/lib.rs b/parachains/integration-tests/emulated/assets/statemine/src/lib.rs
deleted file mode 100644
index 7616a871b84..00000000000
--- a/parachains/integration-tests/emulated/assets/statemine/src/lib.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-pub use codec::Encode;
-pub use frame_support::{
- assert_ok, instances::Instance1, pallet_prelude::Weight, traits::fungibles::Inspect,
-};
-pub use integration_tests_common::{
- constants::{
- accounts::{ALICE, BOB},
- kusama::ED as KUSAMA_ED,
- PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
- },
- AccountId, BHKusama, BHKusamaPallet, BHKusamaReceiver, BHKusamaSender, BHPolkadot,
- BHPolkadotPallet, BHPolkadotReceiver, BHPolkadotSender, Collectives, CollectivesPallet,
- CollectivesReceiver, CollectivesSender, Kusama, KusamaMockNet, KusamaPallet, KusamaReceiver,
- KusamaSender, PenpalKusama, PenpalKusamaReceiver, PenpalKusamaSender, PenpalPolkadot,
- PenpalPolkadotReceiver, PenpalPolkadotSender, Polkadot, PolkadotMockNet, PolkadotPallet,
- PolkadotReceiver, PolkadotSender, Statemine, StateminePallet, StatemineReceiver,
- StatemineSender,
-};
-pub use polkadot_core_primitives::InboundDownwardMessage;
-pub use xcm::{
- prelude::*,
- v3::{Error, NetworkId::Kusama as KusamaId},
-};
-pub use xcm_emulator::{
- assert_expected_events, bx, cumulus_pallet_dmp_queue, helpers::weight_within_threshold,
- Parachain as Para, RelayChain as Relay, TestExt,
-};
-
-#[cfg(test)]
-mod tests;
diff --git a/parachains/integration-tests/emulated/assets/statemine/src/tests/mod.rs b/parachains/integration-tests/emulated/assets/statemine/src/tests/mod.rs
deleted file mode 100644
index 996f9fd0aae..00000000000
--- a/parachains/integration-tests/emulated/assets/statemine/src/tests/mod.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-mod reserve_transfer;
-mod teleport;
-mod transact;
diff --git a/parachains/integration-tests/emulated/assets/statemint/src/lib.rs b/parachains/integration-tests/emulated/assets/statemint/src/lib.rs
deleted file mode 100644
index f7ca680a800..00000000000
--- a/parachains/integration-tests/emulated/assets/statemint/src/lib.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-pub use codec::Encode;
-pub use frame_support::{
- assert_ok, instances::Instance1, pallet_prelude::Weight, traits::fungibles::Inspect,
-};
-pub use integration_tests_common::{
- constants::{
- accounts::{ALICE, BOB},
- polkadot::ED as POLKADOT_ED,
- PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
- },
- AccountId, BHKusama, BHKusamaPallet, BHKusamaReceiver, BHKusamaSender, BHPolkadot,
- BHPolkadotPallet, BHPolkadotReceiver, BHPolkadotSender, Collectives, CollectivesPallet,
- CollectivesReceiver, CollectivesSender, Kusama, KusamaMockNet, KusamaPallet, KusamaReceiver,
- KusamaSender, PenpalKusama, PenpalKusamaReceiver, PenpalKusamaSender, PenpalPolkadot,
- PenpalPolkadotReceiver, PenpalPolkadotSender, Polkadot, PolkadotMockNet, PolkadotPallet,
- PolkadotReceiver, PolkadotSender, Statemine, StateminePallet, StatemineReceiver,
- StatemineSender, Statemint, StatemintPallet, StatemintReceiver, StatemintSender,
-};
-pub use polkadot_core_primitives::InboundDownwardMessage;
-pub use xcm::{
- prelude::*,
- v3::{
- Error,
- NetworkId::{Kusama as KusamaId, Polkadot as PolkadotId},
- },
-};
-pub use xcm_emulator::{
- assert_expected_events, bx, cumulus_pallet_dmp_queue, helpers::weight_within_threshold,
- Parachain as Para, RelayChain as Relay, TestExt,
-};
-
-#[cfg(test)]
-mod tests;
diff --git a/parachains/integration-tests/emulated/assets/statemint/src/tests/mod.rs b/parachains/integration-tests/emulated/assets/statemint/src/tests/mod.rs
deleted file mode 100644
index 996f9fd0aae..00000000000
--- a/parachains/integration-tests/emulated/assets/statemint/src/tests/mod.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-mod reserve_transfer;
-mod teleport;
-mod transact;
diff --git a/parachains/integration-tests/emulated/collectives/collectives-polkadot/Cargo.toml b/parachains/integration-tests/emulated/collectives/collectives-polkadot/Cargo.toml
new file mode 100644
index 00000000000..b836994e5f8
--- /dev/null
+++ b/parachains/integration-tests/emulated/collectives/collectives-polkadot/Cargo.toml
@@ -0,0 +1,39 @@
+[package]
+name = "collectives-polkadot-it"
+version = "0.1.0"
+authors = ["Parity Technologies "]
+edition = "2021"
+description = "Polkadot Collectives parachain runtime integration tests based on xcm-emulator"
+
+[dev-dependencies]
+codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false }
+
+# Substrate
+sp-runtime = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+frame-support = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+frame-system = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+sp-core = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+sp-weights = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+pallet-balances = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+pallet-assets = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+pallet-core-fellowship = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+pallet-salary = { default-features = false, git = "/~https://github.com/paritytech/substrate", branch = "master" }
+
+# Polkadot
+polkadot-core-primitives = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+polkadot-parachain = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+polkadot-runtime-parachains = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+polkadot-runtime = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+xcm = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+xcm-executor = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+pallet-xcm = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+
+# Cumulus
+parachains-common = { path = "../../../../common" }
+cumulus-pallet-xcmp-queue = { default-features = false, path = "../../../../../pallets/xcmp-queue" }
+collectives-polkadot-runtime = { path = "../../../../runtimes/collectives/collectives-polkadot" }
+asset-hub-polkadot-runtime = { path = "../../../../runtimes/assets/asset-hub-polkadot" }
+
+# Local
+xcm-emulator = { default-features = false, path = "../../../../../xcm/xcm-emulator" }
+integration-tests-common = { default-features = false, path = "../../common" }
diff --git a/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/lib.rs b/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/lib.rs
new file mode 100644
index 00000000000..d83ddfffd99
--- /dev/null
+++ b/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/lib.rs
@@ -0,0 +1,30 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+//! Collectives Parachain integration tests based on xcm-emulator.
+
+#![cfg(test)]
+
+pub use frame_support::assert_ok;
+pub use integration_tests_common::{
+ constants::accounts::ALICE, AccountId, AssetHubPolkadot as AssetHub,
+ AssetHubPolkadotPallet as AssetHubPallet, Collectives, CollectivesPallet, Polkadot,
+ PolkadotMockNet,
+};
+pub use xcm::prelude::*;
+pub use xcm_emulator::{assert_expected_events, Parachain};
+
+mod tests;
diff --git a/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/fellowship.rs b/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/fellowship.rs
new file mode 100644
index 00000000000..233fd67083d
--- /dev/null
+++ b/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/fellowship.rs
@@ -0,0 +1,77 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+//! Integration tests concerning the Fellowship.
+
+use crate::*;
+use collectives_polkadot_runtime::fellowship::FellowshipSalaryPaymaster;
+use frame_support::traits::{
+ fungibles::{Create, Mutate},
+ tokens::Pay,
+};
+use sp_core::crypto::Ss58Codec;
+use xcm_emulator::TestExt;
+
+#[test]
+fn pay_salary() {
+ let asset_id: u32 = 1984;
+ let pay_from: AccountId =
+ ::from_string("13w7NdvSR1Af8xsQTArDtZmVvjE8XhWNdL4yed3iFHrUNCnS")
+ .unwrap();
+ let pay_to = Polkadot::account_id_of(ALICE);
+ let pay_amount = 9000;
+
+ AssetHub::execute_with(|| {
+ type AssetHubAssets = ::Assets;
+
+ assert_ok!(>::create(
+ asset_id,
+ pay_to.clone(),
+ true,
+ pay_amount / 2
+ ));
+ assert_ok!(>::mint_into(asset_id, &pay_from, pay_amount * 2));
+ });
+
+ Collectives::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_ok!(FellowshipSalaryPaymaster::pay(&pay_to, (), pay_amount));
+ assert_expected_events!(
+ Collectives,
+ vec![
+ RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. }) => {},
+ ]
+ );
+ });
+
+ AssetHub::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
+
+ assert_expected_events!(
+ AssetHub,
+ vec![
+ RuntimeEvent::Assets(pallet_assets::Event::Transferred { asset_id: id, from, to, amount }) => {
+ asset_id: id == &asset_id,
+ from: from == &pay_from,
+ to: to == &pay_to,
+ amount: amount == &pay_amount,
+ },
+ RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::Success { .. }) => {},
+ ]
+ );
+ });
+}
diff --git a/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/mod.rs b/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/mod.rs
new file mode 100644
index 00000000000..1ede78b5979
--- /dev/null
+++ b/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/mod.rs
@@ -0,0 +1,17 @@
+// Copyright Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+mod fellowship;
diff --git a/parachains/integration-tests/emulated/common/Cargo.toml b/parachains/integration-tests/emulated/common/Cargo.toml
index a13ceac2cff..340ca874993 100644
--- a/parachains/integration-tests/emulated/common/Cargo.toml
+++ b/parachains/integration-tests/emulated/common/Cargo.toml
@@ -32,6 +32,8 @@ polkadot-runtime = { git = "/~https://github.com/paritytech/polkadot", branch = "m
polkadot-runtime-constants = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
kusama-runtime = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
kusama-runtime-constants = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+westend-runtime = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
+westend-runtime-constants = { git = "/~https://github.com/paritytech/polkadot", branch = "master" }
xcm = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
xcm-executor = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
pallet-xcm = { default-features = false, git = "/~https://github.com/paritytech/polkadot", branch = "master" }
@@ -41,8 +43,9 @@ parachains-common = { path = "../../../common" }
parachain-info = { path = "../../../pallets/parachain-info" }
cumulus-primitives-core = { path = "../../../../primitives/core" }
penpal-runtime = { path = "../../../runtimes/testing/penpal" }
-statemint-runtime = { path = "../../../runtimes/assets/statemint" }
-statemine-runtime = { path = "../../../runtimes/assets/statemine" }
+asset-hub-polkadot-runtime = { path = "../../../runtimes/assets/asset-hub-polkadot" }
+asset-hub-kusama-runtime = { path = "../../../runtimes/assets/asset-hub-kusama" }
+asset-hub-westend-runtime = { path = "../../../runtimes/assets/asset-hub-westend" }
collectives-polkadot-runtime = { path = "../../../runtimes/collectives/collectives-polkadot" }
bridge-hub-kusama-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-kusama" }
bridge-hub-polkadot-runtime = { path = "../../../runtimes/bridge-hubs/bridge-hub-polkadot" }
@@ -51,4 +54,6 @@ xcm-emulator = { default-features = false, path = "../../../../xcm/xcm-emulator"
[features]
runtime-benchmarks = [
"kusama-runtime/runtime-benchmarks",
+ "polkadot-runtime/runtime-benchmarks",
+ "westend-runtime/runtime-benchmarks",
]
diff --git a/parachains/integration-tests/emulated/common/src/constants.rs b/parachains/integration-tests/emulated/common/src/constants.rs
index 694137fe094..cd4d321457e 100644
--- a/parachains/integration-tests/emulated/common/src/constants.rs
+++ b/parachains/integration-tests/emulated/common/src/constants.rs
@@ -1,6 +1,6 @@
use grandpa::AuthorityId as GrandpaId;
use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
-pub use parachains_common::{AccountId, AuraId, Balance, BlockNumber, StatemintAuraId};
+pub use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance, BlockNumber};
use polkadot_primitives::{AssignmentId, ValidatorId};
pub use polkadot_runtime_parachains::configuration::HostConfiguration;
use polkadot_service::chain_spec::get_authority_keys_from_seed_no_beefy;
@@ -71,15 +71,15 @@ pub mod accounts {
pub mod collators {
use super::*;
- pub fn invulnerables_statemint() -> Vec<(AccountId, StatemintAuraId)> {
+ pub fn invulnerables_asset_hub_polkadot() -> Vec<(AccountId, AssetHubPolkadotAuraId)> {
vec![
(
get_account_id_from_seed::("Alice"),
- get_from_seed::("Alice"),
+ get_from_seed::("Alice"),
),
(
get_account_id_from_seed::("Bob"),
- get_from_seed::("Bob"),
+ get_from_seed::("Bob"),
),
]
}
@@ -209,6 +209,102 @@ pub mod polkadot {
}
}
+pub mod westend {
+ use super::*;
+ use westend_runtime_constants::currency::UNITS as WND;
+ pub const ED: Balance = westend_runtime_constants::currency::EXISTENTIAL_DEPOSIT;
+ const ENDOWMENT: u128 = 1_000_000 * WND;
+ const STASH: u128 = 100 * WND;
+
+ pub fn get_host_config() -> HostConfiguration {
+ HostConfiguration {
+ max_upward_queue_count: 10,
+ max_upward_queue_size: 51200,
+ max_upward_message_size: 51200,
+ max_upward_message_num_per_candidate: 10,
+ max_downward_message_size: 51200,
+ ..Default::default()
+ }
+ }
+
+ fn session_keys(
+ babe: BabeId,
+ grandpa: GrandpaId,
+ im_online: ImOnlineId,
+ para_validator: ValidatorId,
+ para_assignment: AssignmentId,
+ authority_discovery: AuthorityDiscoveryId,
+ ) -> westend_runtime::SessionKeys {
+ westend_runtime::SessionKeys {
+ babe,
+ grandpa,
+ im_online,
+ para_validator,
+ para_assignment,
+ authority_discovery,
+ }
+ }
+
+ pub fn genesis() -> Storage {
+ let genesis_config = westend_runtime::GenesisConfig {
+ system: westend_runtime::SystemConfig {
+ code: westend_runtime::WASM_BINARY.unwrap().to_vec(),
+ },
+ balances: westend_runtime::BalancesConfig {
+ balances: accounts::init_balances()
+ .iter()
+ .cloned()
+ .map(|k| (k, ENDOWMENT))
+ .collect(),
+ },
+ session: westend_runtime::SessionConfig {
+ keys: validators::initial_authorities()
+ .iter()
+ .map(|x| {
+ (
+ x.0.clone(),
+ x.0.clone(),
+ westend::session_keys(
+ x.2.clone(),
+ x.3.clone(),
+ x.4.clone(),
+ x.5.clone(),
+ x.6.clone(),
+ x.7.clone(),
+ ),
+ )
+ })
+ .collect::>(),
+ },
+ staking: westend_runtime::StakingConfig {
+ validator_count: validators::initial_authorities().len() as u32,
+ minimum_validator_count: 1,
+ stakers: validators::initial_authorities()
+ .iter()
+ .map(|x| {
+ (x.0.clone(), x.1.clone(), STASH, westend_runtime::StakerStatus::Validator)
+ })
+ .collect(),
+ invulnerables: validators::initial_authorities()
+ .iter()
+ .map(|x| x.0.clone())
+ .collect(),
+ force_era: pallet_staking::Forcing::ForceNone,
+ slash_reward_fraction: Perbill::from_percent(10),
+ ..Default::default()
+ },
+ babe: westend_runtime::BabeConfig {
+ authorities: Default::default(),
+ epoch_config: Some(westend_runtime::BABE_GENESIS_EPOCH_CONFIG),
+ },
+ configuration: westend_runtime::ConfigurationConfig { config: get_host_config() },
+ ..Default::default()
+ };
+
+ genesis_config.build_storage().unwrap()
+ }
+}
+
// Kusama
pub mod kusama {
use super::*;
@@ -305,29 +401,87 @@ pub mod kusama {
}
}
-// Statemint
-pub mod statemint {
+// Asset Hub Polkadot
+pub mod asset_hub_polkadot {
+ use super::*;
+ pub const PARA_ID: u32 = 1000;
+ pub const ED: Balance = asset_hub_polkadot_runtime::constants::currency::EXISTENTIAL_DEPOSIT;
+
+ pub fn genesis() -> Storage {
+ let genesis_config = asset_hub_polkadot_runtime::GenesisConfig {
+ system: asset_hub_polkadot_runtime::SystemConfig {
+ code: asset_hub_polkadot_runtime::WASM_BINARY
+ .expect("WASM binary was not build, please build it!")
+ .to_vec(),
+ },
+ balances: asset_hub_polkadot_runtime::BalancesConfig {
+ balances: accounts::init_balances()
+ .iter()
+ .cloned()
+ .map(|k| (k, ED * 4096))
+ .collect(),
+ },
+ parachain_info: asset_hub_polkadot_runtime::ParachainInfoConfig {
+ parachain_id: PARA_ID.into(),
+ },
+ collator_selection: asset_hub_polkadot_runtime::CollatorSelectionConfig {
+ invulnerables: collators::invulnerables_asset_hub_polkadot()
+ .iter()
+ .cloned()
+ .map(|(acc, _)| acc)
+ .collect(),
+ candidacy_bond: ED * 16,
+ ..Default::default()
+ },
+ session: asset_hub_polkadot_runtime::SessionConfig {
+ keys: collators::invulnerables_asset_hub_polkadot()
+ .into_iter()
+ .map(|(acc, aura)| {
+ (
+ acc.clone(), // account id
+ acc, // validator id
+ asset_hub_polkadot_runtime::SessionKeys { aura }, // session keys
+ )
+ })
+ .collect(),
+ },
+ aura: Default::default(),
+ aura_ext: Default::default(),
+ parachain_system: Default::default(),
+ polkadot_xcm: asset_hub_polkadot_runtime::PolkadotXcmConfig {
+ safe_xcm_version: Some(SAFE_XCM_VERSION),
+ },
+ };
+
+ genesis_config.build_storage().unwrap()
+ }
+}
+
+// Asset Hub Westend
+pub mod asset_hub_westend {
use super::*;
pub const PARA_ID: u32 = 1000;
- pub const ED: Balance = statemint_runtime::constants::currency::EXISTENTIAL_DEPOSIT;
+ pub const ED: Balance = asset_hub_westend_runtime::constants::currency::EXISTENTIAL_DEPOSIT;
pub fn genesis() -> Storage {
- let genesis_config = statemint_runtime::GenesisConfig {
- system: statemint_runtime::SystemConfig {
- code: statemint_runtime::WASM_BINARY
+ let genesis_config = asset_hub_westend_runtime::GenesisConfig {
+ system: asset_hub_westend_runtime::SystemConfig {
+ code: asset_hub_westend_runtime::WASM_BINARY
.expect("WASM binary was not build, please build it!")
.to_vec(),
},
- balances: statemint_runtime::BalancesConfig {
+ balances: asset_hub_westend_runtime::BalancesConfig {
balances: accounts::init_balances()
.iter()
.cloned()
.map(|k| (k, ED * 4096))
.collect(),
},
- parachain_info: statemint_runtime::ParachainInfoConfig { parachain_id: PARA_ID.into() },
- collator_selection: statemint_runtime::CollatorSelectionConfig {
- invulnerables: collators::invulnerables_statemint()
+ parachain_info: asset_hub_westend_runtime::ParachainInfoConfig {
+ parachain_id: PARA_ID.into(),
+ },
+ collator_selection: asset_hub_westend_runtime::CollatorSelectionConfig {
+ invulnerables: collators::invulnerables()
.iter()
.cloned()
.map(|(acc, _)| acc)
@@ -335,14 +489,14 @@ pub mod statemint {
candidacy_bond: ED * 16,
..Default::default()
},
- session: statemint_runtime::SessionConfig {
- keys: collators::invulnerables_statemint()
+ session: asset_hub_westend_runtime::SessionConfig {
+ keys: collators::invulnerables()
.into_iter()
.map(|(acc, aura)| {
(
- acc.clone(), // account id
- acc, // validator id
- statemint_runtime::SessionKeys { aura }, // session keys
+ acc.clone(), // account id
+ acc, // validator id
+ asset_hub_westend_runtime::SessionKeys { aura }, // session keys
)
})
.collect(),
@@ -350,7 +504,7 @@ pub mod statemint {
aura: Default::default(),
aura_ext: Default::default(),
parachain_system: Default::default(),
- polkadot_xcm: statemint_runtime::PolkadotXcmConfig {
+ polkadot_xcm: asset_hub_westend_runtime::PolkadotXcmConfig {
safe_xcm_version: Some(SAFE_XCM_VERSION),
},
};
@@ -359,28 +513,30 @@ pub mod statemint {
}
}
-// Statemint
-pub mod statemine {
+// Asset Hub Kusama
+pub mod asset_hub_kusama {
use super::*;
pub const PARA_ID: u32 = 1000;
- pub const ED: Balance = statemine_runtime::constants::currency::EXISTENTIAL_DEPOSIT;
+ pub const ED: Balance = asset_hub_kusama_runtime::constants::currency::EXISTENTIAL_DEPOSIT;
pub fn genesis() -> Storage {
- let genesis_config = statemine_runtime::GenesisConfig {
- system: statemine_runtime::SystemConfig {
- code: statemine_runtime::WASM_BINARY
+ let genesis_config = asset_hub_kusama_runtime::GenesisConfig {
+ system: asset_hub_kusama_runtime::SystemConfig {
+ code: asset_hub_kusama_runtime::WASM_BINARY
.expect("WASM binary was not build, please build it!")
.to_vec(),
},
- balances: statemine_runtime::BalancesConfig {
+ balances: asset_hub_kusama_runtime::BalancesConfig {
balances: accounts::init_balances()
.iter()
.cloned()
.map(|k| (k, ED * 4096))
.collect(),
},
- parachain_info: statemine_runtime::ParachainInfoConfig { parachain_id: PARA_ID.into() },
- collator_selection: statemine_runtime::CollatorSelectionConfig {
+ parachain_info: asset_hub_kusama_runtime::ParachainInfoConfig {
+ parachain_id: PARA_ID.into(),
+ },
+ collator_selection: asset_hub_kusama_runtime::CollatorSelectionConfig {
invulnerables: collators::invulnerables()
.iter()
.cloned()
@@ -389,14 +545,14 @@ pub mod statemine {
candidacy_bond: ED * 16,
..Default::default()
},
- session: statemine_runtime::SessionConfig {
+ session: asset_hub_kusama_runtime::SessionConfig {
keys: collators::invulnerables()
.into_iter()
.map(|(acc, aura)| {
(
- acc.clone(), // account id
- acc, // validator id
- statemine_runtime::SessionKeys { aura }, // session keys
+ acc.clone(), // account id
+ acc, // validator id
+ asset_hub_kusama_runtime::SessionKeys { aura }, // session keys
)
})
.collect(),
@@ -404,7 +560,7 @@ pub mod statemine {
aura: Default::default(),
aura_ext: Default::default(),
parachain_system: Default::default(),
- polkadot_xcm: statemine_runtime::PolkadotXcmConfig {
+ polkadot_xcm: asset_hub_kusama_runtime::PolkadotXcmConfig {
safe_xcm_version: Some(SAFE_XCM_VERSION),
},
};
diff --git a/parachains/integration-tests/emulated/common/src/lib.rs b/parachains/integration-tests/emulated/common/src/lib.rs
index 49e919b5de9..2b2af134a51 100644
--- a/parachains/integration-tests/emulated/common/src/lib.rs
+++ b/parachains/integration-tests/emulated/common/src/lib.rs
@@ -2,20 +2,41 @@ pub mod constants;
pub use constants::{
accounts::{ALICE, BOB},
- bridge_hub_kusama, bridge_hub_polkadot, collectives, kusama, penpal, polkadot, statemine,
- statemint,
+ asset_hub_kusama, asset_hub_polkadot, asset_hub_westend, bridge_hub_kusama,
+ bridge_hub_polkadot, collectives, kusama, penpal, polkadot, westend,
};
use frame_support::{parameter_types, sp_io, sp_tracing};
-pub use parachains_common::{AccountId, AuraId, Balance, BlockNumber, StatemintAuraId};
+pub use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance, BlockNumber};
pub use sp_core::{sr25519, storage::Storage, Get};
use xcm::prelude::*;
use xcm_emulator::{
decl_test_networks, decl_test_parachains, decl_test_relay_chains, Parachain, RelayChain,
TestExt,
};
-use xcm_executor::traits::Convert;
+use xcm_executor::traits::ConvertLocation;
decl_test_relay_chains! {
+ #[api_version(5)]
+ pub struct Westend {
+ genesis = westend::genesis(),
+ on_init = (),
+ runtime = {
+ Runtime: westend_runtime::Runtime,
+ RuntimeOrigin: westend_runtime::RuntimeOrigin,
+ RuntimeCall: westend_runtime::RuntimeCall,
+ RuntimeEvent: westend_runtime::RuntimeEvent,
+ MessageQueue: westend_runtime::MessageQueue,
+ XcmConfig: westend_runtime::xcm_config::XcmConfig,
+ SovereignAccountOf: westend_runtime::xcm_config::LocationConverter, //TODO: rename to SovereignAccountOf,
+ System: westend_runtime::System,
+ Balances: westend_runtime::Balances,
+ },
+ pallets_extra = {
+ XcmPallet: westend_runtime::XcmPallet,
+ Sudo: westend_runtime::Sudo,
+ }
+ },
+ #[api_version(5)]
pub struct Polkadot {
genesis = polkadot::genesis(),
on_init = (),
@@ -34,6 +55,7 @@ decl_test_relay_chains! {
XcmPallet: polkadot_runtime::XcmPallet,
}
},
+ #[api_version(5)]
pub struct Kusama {
genesis = kusama::genesis(),
on_init = (),
@@ -55,26 +77,49 @@ decl_test_relay_chains! {
}
decl_test_parachains! {
+ // Westend
+ pub struct AssetHubWestend {
+ genesis = asset_hub_westend::genesis(),
+ on_init = (),
+ runtime = {
+ Runtime: asset_hub_westend_runtime::Runtime,
+ RuntimeOrigin: asset_hub_westend_runtime::RuntimeOrigin,
+ RuntimeCall: asset_hub_westend_runtime::RuntimeCall,
+ RuntimeEvent: asset_hub_westend_runtime::RuntimeEvent,
+ XcmpMessageHandler: asset_hub_westend_runtime::XcmpQueue,
+ DmpMessageHandler: asset_hub_westend_runtime::DmpQueue,
+ LocationToAccountId: asset_hub_westend_runtime::xcm_config::LocationToAccountId,
+ System: asset_hub_westend_runtime::System,
+ Balances: asset_hub_westend_runtime::Balances,
+ ParachainSystem: asset_hub_westend_runtime::ParachainSystem,
+ ParachainInfo: asset_hub_westend_runtime::ParachainInfo,
+ },
+ pallets_extra = {
+ PolkadotXcm: asset_hub_westend_runtime::PolkadotXcm,
+ Assets: asset_hub_westend_runtime::Assets,
+ ForeignAssets: asset_hub_westend_runtime::ForeignAssets,
+ }
+ },
// Polkadot
- pub struct Statemint {
- genesis = statemint::genesis(),
+ pub struct AssetHubPolkadot {
+ genesis = asset_hub_polkadot::genesis(),
on_init = (),
runtime = {
- Runtime: statemint_runtime::Runtime,
- RuntimeOrigin: statemint_runtime::RuntimeOrigin,
- RuntimeCall: statemint_runtime::RuntimeCall,
- RuntimeEvent: statemint_runtime::RuntimeEvent,
- XcmpMessageHandler: statemint_runtime::XcmpQueue,
- DmpMessageHandler: statemint_runtime::DmpQueue,
- LocationToAccountId: statemint_runtime::xcm_config::LocationToAccountId,
- System: statemint_runtime::System,
- Balances: statemint_runtime::Balances,
- ParachainSystem: statemint_runtime::ParachainSystem,
- ParachainInfo: statemint_runtime::ParachainInfo,
+ Runtime: asset_hub_polkadot_runtime::Runtime,
+ RuntimeOrigin: asset_hub_polkadot_runtime::RuntimeOrigin,
+ RuntimeCall: asset_hub_polkadot_runtime::RuntimeCall,
+ RuntimeEvent: asset_hub_polkadot_runtime::RuntimeEvent,
+ XcmpMessageHandler: asset_hub_polkadot_runtime::XcmpQueue,
+ DmpMessageHandler: asset_hub_polkadot_runtime::DmpQueue,
+ LocationToAccountId: asset_hub_polkadot_runtime::xcm_config::LocationToAccountId,
+ System: asset_hub_polkadot_runtime::System,
+ Balances: asset_hub_polkadot_runtime::Balances,
+ ParachainSystem: asset_hub_polkadot_runtime::ParachainSystem,
+ ParachainInfo: asset_hub_polkadot_runtime::ParachainInfo,
},
pallets_extra = {
- PolkadotXcm: statemint_runtime::PolkadotXcm,
- Assets: statemint_runtime::Assets,
+ PolkadotXcm: asset_hub_polkadot_runtime::PolkadotXcm,
+ Assets: asset_hub_polkadot_runtime::Assets,
}
},
pub struct PenpalPolkadot {
@@ -98,27 +143,49 @@ decl_test_parachains! {
Assets: penpal_runtime::Assets,
}
},
+ pub struct PenpalWestend {
+ genesis = penpal::genesis(penpal::PARA_ID),
+ on_init = (),
+ runtime = {
+ Runtime: penpal_runtime::Runtime,
+ RuntimeOrigin: penpal_runtime::RuntimeOrigin,
+ RuntimeCall: penpal_runtime::RuntimeCall,
+ RuntimeEvent: penpal_runtime::RuntimeEvent,
+ XcmpMessageHandler: penpal_runtime::XcmpQueue,
+ DmpMessageHandler: penpal_runtime::DmpQueue,
+ LocationToAccountId: penpal_runtime::xcm_config::LocationToAccountId,
+ System: penpal_runtime::System,
+ Balances: penpal_runtime::Balances,
+ ParachainSystem: penpal_runtime::ParachainSystem,
+ ParachainInfo: penpal_runtime::ParachainInfo,
+ },
+ pallets_extra = {
+ PolkadotXcm: penpal_runtime::PolkadotXcm,
+ Assets: penpal_runtime::Assets,
+ }
+ },
+
// Kusama
- pub struct Statemine {
- genesis = statemine::genesis(),
+ pub struct AssetHubKusama {
+ genesis = asset_hub_kusama::genesis(),
on_init = (),
runtime = {
- Runtime: statemine_runtime::Runtime,
- RuntimeOrigin: statemine_runtime::RuntimeOrigin,
- RuntimeCall: statemine_runtime::RuntimeCall,
- RuntimeEvent: statemine_runtime::RuntimeEvent,
- XcmpMessageHandler: statemine_runtime::XcmpQueue,
- DmpMessageHandler: statemine_runtime::DmpQueue,
- LocationToAccountId: statemine_runtime::xcm_config::LocationToAccountId,
- System: statemine_runtime::System,
- Balances: statemine_runtime::Balances,
- ParachainSystem: statemine_runtime::ParachainSystem,
- ParachainInfo: statemine_runtime::ParachainInfo,
+ Runtime: asset_hub_kusama_runtime::Runtime,
+ RuntimeOrigin: asset_hub_kusama_runtime::RuntimeOrigin,
+ RuntimeCall: asset_hub_kusama_runtime::RuntimeCall,
+ RuntimeEvent: asset_hub_kusama_runtime::RuntimeEvent,
+ XcmpMessageHandler: asset_hub_kusama_runtime::XcmpQueue,
+ DmpMessageHandler: asset_hub_kusama_runtime::DmpQueue,
+ LocationToAccountId: asset_hub_kusama_runtime::xcm_config::LocationToAccountId,
+ System: asset_hub_kusama_runtime::System,
+ Balances: asset_hub_kusama_runtime::Balances,
+ ParachainSystem: asset_hub_kusama_runtime::ParachainSystem,
+ ParachainInfo: asset_hub_kusama_runtime::ParachainInfo,
},
pallets_extra = {
- PolkadotXcm: statemine_runtime::PolkadotXcm,
- Assets: statemine_runtime::Assets,
- ForeignAssets: statemine_runtime::Assets,
+ PolkadotXcm: asset_hub_kusama_runtime::PolkadotXcm,
+ Assets: asset_hub_kusama_runtime::Assets,
+ ForeignAssets: asset_hub_kusama_runtime::Assets,
}
},
pub struct PenpalKusama {
@@ -208,7 +275,7 @@ decl_test_networks! {
pub struct PolkadotMockNet {
relay_chain = Polkadot,
parachains = vec![
- Statemint,
+ AssetHubPolkadot,
PenpalPolkadot,
Collectives,
BHPolkadot,
@@ -217,10 +284,17 @@ decl_test_networks! {
pub struct KusamaMockNet {
relay_chain = Kusama,
parachains = vec![
- Statemine,
+ AssetHubKusama,
PenpalKusama,
BHKusama,
],
+ },
+ pub struct WestendMockNet {
+ relay_chain = Westend,
+ parachains = vec![
+ AssetHubWestend,
+ PenpalWestend,
+ ],
}
}
@@ -231,18 +305,27 @@ parameter_types! {
// Kusama
pub KusamaSender: AccountId = Kusama::account_id_of(ALICE);
pub KusamaReceiver: AccountId = Kusama::account_id_of(BOB);
- // Statemint
- pub StatemintSender: AccountId = Statemint::account_id_of(ALICE);
- pub StatemintReceiver: AccountId = Statemint::account_id_of(BOB);
- // Statemine
- pub StatemineSender: AccountId = Statemine::account_id_of(ALICE);
- pub StatemineReceiver: AccountId = Statemine::account_id_of(BOB);
+ // Westend
+ pub WestendSender: AccountId = Westend::account_id_of(ALICE);
+ pub WestendReceiver: AccountId = Westend::account_id_of(BOB);
+ // Asset Hub Westend
+ pub AssetHubWestendSender: AccountId = AssetHubWestend::account_id_of(ALICE);
+ pub AssetHubWestendReceiver: AccountId = AssetHubWestend::account_id_of(BOB);
+ // Asset Hub Polkadot
+ pub AssetHubPolkadotSender: AccountId = AssetHubPolkadot::account_id_of(ALICE);
+ pub AssetHubPolkadotReceiver: AccountId = AssetHubPolkadot::account_id_of(BOB);
+ // Asset Hub Kusama
+ pub AssetHubKusamaSender: AccountId = AssetHubKusama::account_id_of(ALICE);
+ pub AssetHubKusamaReceiver: AccountId = AssetHubKusama::account_id_of(BOB);
// Penpal Polkadot
pub PenpalPolkadotSender: AccountId = PenpalPolkadot::account_id_of(ALICE);
pub PenpalPolkadotReceiver: AccountId = PenpalPolkadot::account_id_of(BOB);
// Penpal Kusama
pub PenpalKusamaSender: AccountId = PenpalKusama::account_id_of(ALICE);
pub PenpalKusamaReceiver: AccountId = PenpalKusama::account_id_of(BOB);
+ // Penpal Westend
+ pub PenpalWestendSender: AccountId = PenpalWestend::account_id_of(ALICE);
+ pub PenpalWestendReceiver: AccountId = PenpalWestend::account_id_of(BOB);
// Collectives
pub CollectivesSender: AccountId = Collectives::account_id_of(ALICE);
pub CollectivesReceiver: AccountId = Collectives::account_id_of(BOB);
diff --git a/parachains/pallets/bridge-transfer/Cargo.toml b/parachains/pallets/bridge-transfer/Cargo.toml
index 505949daa50..b4e47e472ba 100644
--- a/parachains/pallets/bridge-transfer/Cargo.toml
+++ b/parachains/pallets/bridge-transfer/Cargo.toml
@@ -27,6 +27,9 @@ xcm = { git = "/~https://github.com/paritytech/polkadot", default-features = false
xcm-builder = { git = "/~https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
xcm-executor = { git = "/~https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
+# Cumulus
+pallet-bridge-transfer-primitives = { path = "./primitives", default-features = false }
+
[dev-dependencies]
sp-version = { git = "/~https://github.com/paritytech/substrate", branch = "master" }
pallet-balances = { git = "/~https://github.com/paritytech/substrate", branch = "master" }
@@ -39,6 +42,7 @@ std = [
"codec/std",
"log/std",
"scale-info/std",
+ "pallet-bridge-transfer-primitives/std",
"sp-std/std",
"sp-runtime/std",
"frame-support/std",
diff --git a/parachains/pallets/bridge-transfer/primitives/Cargo.toml b/parachains/pallets/bridge-transfer/primitives/Cargo.toml
new file mode 100644
index 00000000000..2ac8cf450e2
--- /dev/null
+++ b/parachains/pallets/bridge-transfer/primitives/Cargo.toml
@@ -0,0 +1,28 @@
+[package]
+name = "pallet-bridge-transfer-primitives"
+version = "0.1.0"
+authors = ["Parity Technologies "]
+edition = "2021"
+license = "Apache-2.0"
+homepage = "https://docs.substrate.io/"
+repository = "/~https://github.com/paritytech/cumulus/"
+description = "Pallet with primitives for message transfer through bridges"
+
+[dependencies]
+
+# Substrate
+sp-std = { git = "/~https://github.com/paritytech/substrate", default-features = false, branch = "master" }
+frame-support = { git = "/~https://github.com/paritytech/substrate", default-features = false, branch = "master" }
+
+# Polkadot
+xcm = { git = "/~https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
+xcm-builder = { git = "/~https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
+
+[features]
+default = ["std"]
+std = [
+ "sp-std/std",
+ "frame-support/std",
+ "xcm/std",
+ "xcm-builder/std",
+]
diff --git a/parachains/pallets/bridge-transfer/primitives/src/asset_filter.rs b/parachains/pallets/bridge-transfer/primitives/src/asset_filter.rs
new file mode 100644
index 00000000000..d59cb2a9f26
--- /dev/null
+++ b/parachains/pallets/bridge-transfer/primitives/src/asset_filter.rs
@@ -0,0 +1,72 @@
+// Copyright (C) 2023 Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Primitives for matching asset `MultiLocation`.
+
+use xcm::prelude::*;
+
+/// Trait for matching asset location
+pub trait MatchAssetLocation {
+ fn matches(&self, location: &MultiLocation) -> bool;
+}
+
+/// Simple asset location filter
+#[derive(Debug)]
+pub enum AssetFilter {
+ ByMultiLocation(MultiLocationFilter),
+}
+
+impl MatchAssetLocation for AssetFilter {
+ fn matches(&self, asset_location: &MultiLocation) -> bool {
+ match self {
+ AssetFilter::ByMultiLocation(by_location) => by_location.matches(asset_location),
+ }
+ }
+}
+
+#[derive(Debug, Default)]
+pub struct MultiLocationFilter {
+ /// Requested location equals to `MultiLocation`
+ pub equals_any: sp_std::vec::Vec,
+ /// Requested location starts with `MultiLocation`
+ pub starts_with_any: sp_std::vec::Vec,
+}
+
+impl MultiLocationFilter {
+ pub fn add_equals(mut self, filter: MultiLocation) -> Self {
+ self.equals_any.push(filter);
+ self
+ }
+ pub fn add_starts_with(mut self, filter: MultiLocation) -> Self {
+ self.starts_with_any.push(filter);
+ self
+ }
+}
+
+impl MatchAssetLocation for MultiLocationFilter {
+ fn matches(&self, location: &MultiLocation) -> bool {
+ for filter in &self.equals_any {
+ if location.eq(filter) {
+ return true
+ }
+ }
+ for filter in &self.starts_with_any {
+ if location.starts_with(filter) {
+ return true
+ }
+ }
+ false
+ }
+}
diff --git a/parachains/pallets/bridge-transfer/primitives/src/config.rs b/parachains/pallets/bridge-transfer/primitives/src/config.rs
new file mode 100644
index 00000000000..eac3bcbc7e6
--- /dev/null
+++ b/parachains/pallets/bridge-transfer/primitives/src/config.rs
@@ -0,0 +1,121 @@
+// Copyright (C) 2023 Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Primitives for easier configuration.
+
+use crate::{
+ AssetFilter, EnsureReachableDestination, MaybePaidLocation, ReachableDestination,
+ ReachableDestinationError,
+};
+use frame_support::{
+ traits::{ConstU32, Get},
+ BoundedBTreeMap,
+};
+use xcm::prelude::*;
+use xcm_builder::ExporterFor;
+
+/// Configuration represents bridge to target location with possible asset filtering
+#[derive(Debug)]
+pub struct BridgeConfig {
+ /// Location, which is able to bridge XCM messages to bridged network
+ pub bridge_location: MaybePaidLocation,
+ /// Contains target destination on bridged network. E.g.: MultiLocation of Statemine/t on different consensus + its configuration
+ pub allowed_target_locations: sp_std::vec::Vec<(MaybePaidLocation, Option)>,
+}
+
+impl BridgeConfig {
+ pub fn new(bridge_location: MaybePaidLocation) -> Self {
+ Self { bridge_location, allowed_target_locations: Default::default() }
+ }
+
+ pub fn add_target_location(
+ mut self,
+ target_location: MaybePaidLocation,
+ asset_filter: Option,
+ ) -> Self {
+ self.allowed_target_locations.push((target_location, asset_filter));
+ self
+ }
+
+ pub fn allowed_target_location_for(
+ &self,
+ destination: &MultiLocation,
+ ) -> Option<(&MaybePaidLocation, &Option)> {
+ for (allowed_target_location, asset_filter) in &self.allowed_target_locations {
+ if destination.starts_with(&allowed_target_location.location) ||
+ destination.eq(&allowed_target_location.location)
+ {
+ return Some((allowed_target_location, asset_filter))
+ }
+ }
+ None
+ }
+}
+
+/// Type represents all "stored" `BridgeConfig`s.
+pub type BridgesConfig = BoundedBTreeMap>;
+
+/// Builder for creating `BridgesConfig`.
+#[derive(Default)]
+pub struct BridgesConfigBuilder {
+ configs: BoundedBTreeMap>,
+}
+impl BridgesConfigBuilder {
+ pub fn add_or_panic(mut self, network_id: NetworkId, bridge_config: BridgeConfig) -> Self {
+ self.configs.try_insert(network_id, bridge_config).expect("check bounds");
+ self
+ }
+
+ pub fn build(self) -> BoundedBTreeMap> {
+ self.configs
+ }
+}
+
+/// Adapter for accessing `BridgesConfig`.
+pub struct BridgesConfigAdapter(sp_std::marker::PhantomData);
+
+/// Adapter implementation of `ExporterFor` for `BridgesConfig`
+impl> ExporterFor for BridgesConfigAdapter {
+ fn exporter_for(
+ network: &NetworkId,
+ _remote_location: &InteriorMultiLocation,
+ _message: &Xcm<()>,
+ ) -> Option<(MultiLocation, Option)> {
+ Bridges::get().get(network).map(|config| {
+ (config.bridge_location.location, config.bridge_location.maybe_fee.clone())
+ })
+ }
+}
+
+/// Adapter implementation of `EnsureReachableDestination` for `BridgesConfig`
+impl> EnsureReachableDestination for BridgesConfigAdapter {
+ fn ensure_destination(
+ remote_network: NetworkId,
+ remote_destination: MultiLocation,
+ ) -> Result {
+ if let Some(config) = Bridges::get().get(&remote_network) {
+ if let Some((allowed_target_location, _)) =
+ config.allowed_target_location_for(&remote_destination)
+ {
+ return Ok(ReachableDestination {
+ bridge: config.bridge_location.clone(),
+ target: allowed_target_location.clone(),
+ target_destination: remote_destination,
+ })
+ }
+ }
+ Err(ReachableDestinationError::UnsupportedDestination)
+ }
+}
diff --git a/parachains/pallets/bridge-transfer/primitives/src/lib.rs b/parachains/pallets/bridge-transfer/primitives/src/lib.rs
new file mode 100644
index 00000000000..9f01f25d416
--- /dev/null
+++ b/parachains/pallets/bridge-transfer/primitives/src/lib.rs
@@ -0,0 +1,64 @@
+// Copyright (C) 2023 Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Primitives for bridge transfer pallet.
+
+// Ensure we're `no_std` when compiling for Wasm.
+#![cfg_attr(not(feature = "std"), no_std)]
+
+use xcm::prelude::*;
+
+mod asset_filter;
+pub use asset_filter::*;
+
+mod config;
+pub use config::*;
+
+/// Represents some `MultiLocation` with information if we need to pay fees or not.
+#[derive(Clone, Debug, PartialEq)]
+pub struct MaybePaidLocation {
+ pub location: MultiLocation,
+ pub maybe_fee: Option,
+}
+
+/// Represents ensured/verified reachable destination.
+#[derive(Clone, Debug)]
+#[cfg_attr(feature = "std", derive(PartialEq))]
+pub struct ReachableDestination {
+ /// Bridge location
+ pub bridge: MaybePaidLocation,
+ /// Target location (e.g. remote parachain in different consensus)
+ pub target: MaybePaidLocation,
+ /// Destination on target (e.g. account on remote parachain in different consensus)
+ pub target_destination: MultiLocation,
+}
+
+/// Ensures if `remote_destination` is reachable for requested `remote_network`.
+pub trait EnsureReachableDestination {
+ fn ensure_destination(
+ remote_network: NetworkId,
+ remote_destination: MultiLocation,
+ ) -> Result;
+}
+
+/// Error type for [EnsureReachableDestination]
+#[derive(Debug)]
+pub enum ReachableDestinationError {
+ UnsupportedDestination,
+ UnsupportedXcmVersion,
+}
+
+/// Reserve location as `MultiLocation` with `AssetFilter`
+pub type ReserveLocation = (MultiLocation, AssetFilter);
diff --git a/parachains/pallets/bridge-transfer/src/benchmarking.rs b/parachains/pallets/bridge-transfer/src/benchmarking.rs
index 08a9672fe4d..10ca3d94f4e 100644
--- a/parachains/pallets/bridge-transfer/src/benchmarking.rs
+++ b/parachains/pallets/bridge-transfer/src/benchmarking.rs
@@ -17,79 +17,50 @@
//! `BridgeTransfer` pallet benchmarks.
-use crate::{
- AllowedExporters, AllowedReserveLocations, AllowedUniversalAliases, BenchmarkHelper, Call,
- Config, Event, Pallet, PingMessageBuilder,
-};
+use crate::{BenchmarkHelper, Call, Config, Event, Pallet};
use frame_benchmarking::{benchmarks, BenchmarkError};
use frame_support::{
- ensure,
+ assert_ok, ensure,
traits::{EnsureOrigin, Get},
};
use sp_std::prelude::*;
use xcm::prelude::*;
-#[cfg(feature = "runtime-benchmarks")]
-impl Pallet {
- #[cfg(feature = "runtime-benchmarks")]
- pub fn insert_universal_alias_for_benchmarks((location, junction): (MultiLocation, Junction)) {
- assert!(matches!(
- AllowedUniversalAliases::::try_mutate(location, |junctions| junctions
- .try_insert(junction)),
- Ok(true)
- ));
- }
-}
-
benchmarks! {
transfer_asset_via_bridge {
- let _ = T::TransferAssetOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
+ let _ = T::AssetTransferOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
// every asset has its own configuration and ledger, so there's a performance dependency
// (be sure to use "worst" of assets)
- let max_assets_limit = T::MaxAssetsLimit::get();
+ let max_assets_limit = T::AssetsLimit::get();
ensure!(max_assets_limit > 0, "MaxAssetsLimit not set up correctly.");
- let (bridged_network, bridge_config) = T::BenchmarkHelper::bridge_config()
- .ok_or(BenchmarkError::Stop("missing `bridge_config` data"))?;
- let (origin, assets, destination) = T::BenchmarkHelper::prepare_asset_transfer()
- .ok_or(BenchmarkError::Stop("missing `prepare_asset_transfer` data"))?;
+
+ // get desired remote destination
+ let desired_bridged_location = T::BenchmarkHelper::desired_bridged_location()
+ .ok_or(BenchmarkError::Stop("missing `desired_bridged_location` data"))?;
+
+ // resolve expected reserve account
+ let assumed_reserve_account = Pallet::::resolve_reserve_account(&desired_bridged_location.1);
+
+ // prepare all requirements
+ let (origin, assets, destination) = T::BenchmarkHelper::prepare_asset_transfer_for(
+ desired_bridged_location.clone(),
+ assumed_reserve_account,
+ ).ok_or(BenchmarkError::Stop("missing `prepare_asset_transfer` data"))?;
+
+ // check assets
let assets_count = match &assets {
VersionedMultiAssets::V2(assets) => assets.len(),
VersionedMultiAssets::V3(assets) => assets.len(),
};
ensure!(assets_count == max_assets_limit as usize, "`assets` not set up correctly for worst case.");
- AllowedExporters::::insert(bridged_network, bridge_config);
- }: _(origin, Box::new(assets), Box::new(destination))
- verify {
- // we don't care about message hash or sender cost here, just check that the transfer has been initiated
- let actual_event = frame_system::Pallet::::events().pop().map(|r| r.event);
- let expected_event: ::RuntimeEvent = Event::TransferInitiated {
- message_id: Default::default(),
- forwarded_message_id: Default::default(),
- sender_cost: Default::default(),
- }.into();
- assert!(matches!(actual_event, Some(expected_event)));
- }
-
- ping_via_bridge {
- let _ = T::TransferPingOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
-
- let (bridged_network, bridge_config) = T::BenchmarkHelper::bridge_config()
- .ok_or(BenchmarkError::Stop("missing `bridge_config` data"))?;
- AllowedExporters::::insert(bridged_network, bridge_config);
- let (origin, destination) = T::BenchmarkHelper::prepare_ping_transfer()
- .ok_or(BenchmarkError::Stop("missing `prepare_ping_transfer` data"))?;
+ // check destination if configuration is ok
+ assert_ok!(::ensure_destination(
+ desired_bridged_location.0,
+ destination.clone().try_into().map_err(|_|BenchmarkError::Stop("invalid configuration or data"))?));
- let origin_location = T::TransferPingOrigin::ensure_origin(origin.clone()).map_err(|_| BenchmarkError::Stop("invalid `origin`"),
- )?;
- let (_, _, destination_location) = Pallet::::ensure_remote_destination(destination.clone()).map_err(|_|
- BenchmarkError::Stop("invalid `destination_location`"),
- )?;
- let _ = T::PingMessageBuilder::try_build(&origin_location, &bridged_network, &destination_location).ok_or(
- BenchmarkError::Stop("invalid `PingMessageBuilder`"),
- )?;
- }: _(origin, Box::new(destination))
+ }: _(origin, Box::new(assets), Box::new(destination))
verify {
// we don't care about message hash or sender cost here, just check that the transfer has been initiated
let actual_event = frame_system::Pallet::::events().pop().map(|r| r.event);
@@ -101,101 +72,5 @@ benchmarks! {
assert!(matches!(actual_event, Some(expected_event)));
}
- add_exporter_config {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let (bridged_network, bridge_config) = T::BenchmarkHelper::bridge_config()
- .ok_or(BenchmarkError::Stop("missing `bridge_config` data"))?;
- }: _(origin, bridged_network, Box::new(bridge_config.clone()))
- verify {
- assert_eq!(AllowedExporters::::get(bridged_network), Some(bridge_config));
- }
-
- remove_exporter_config {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let (bridged_network, bridge_config) = T::BenchmarkHelper::bridge_config()
- .ok_or(BenchmarkError::Stop("missing `bridge_config` data"))?;
- AllowedExporters::::insert(bridged_network, bridge_config);
- }: _(origin, bridged_network)
- verify {
- assert_eq!(AllowedExporters::::get(bridged_network), None);
- }
-
- update_exporter_config {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let (bridged_network, bridge_config) = T::BenchmarkHelper::bridge_config()
- .ok_or(BenchmarkError::Stop("missing `bridge_config` data"))?;
- AllowedExporters::::insert(bridged_network, bridge_config);
-
- let bridge_location_fee = None;
- let target_location_fee = Some(xcm::VersionedMultiAsset::V3(MultiAsset {
- id: Concrete(MultiLocation::parent()),
- fun: Fungible(1_000_0000),
- }));
- }: _(origin, bridged_network, bridge_location_fee.clone().map(Box::new), target_location_fee.clone().map(Box::new))
- verify {
- let exporter = AllowedExporters::::get(bridged_network).unwrap();
- assert_eq!(exporter.bridge_location_fee, bridge_location_fee.map(|fee| MultiAsset::try_from(fee).unwrap()));
- assert_eq!(exporter.max_target_location_fee, target_location_fee.map(|fee| MultiAsset::try_from(fee).unwrap()));
- }
-
- add_universal_alias {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let (location, junction) = match T::BenchmarkHelper::universal_alias() {
- Some(alias) => alias,
- None => match T::UniversalAliasesLimit::get() > 0_u32 {
- true => return Err(BenchmarkError::Stop("missing `universal_alias` data")),
- false => return Err(BenchmarkError::Weightless),
- }
- };
- }: _(origin, Box::new(location.clone()), junction)
- verify {
- assert!(AllowedUniversalAliases::::get(&location.try_as().unwrap()).contains(&junction));
- }
-
- remove_universal_alias {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let (location, junction) = match T::BenchmarkHelper::universal_alias() {
- Some(alias) => alias,
- None => match T::UniversalAliasesLimit::get() > 0_u32 {
- true => return Err(BenchmarkError::Stop("missing `universal_alias` data")),
- false => return Err(BenchmarkError::Weightless),
- }
- };
- Pallet::::insert_universal_alias_for_benchmarks((location.clone().try_into().unwrap(), junction));
- }: _(origin, Box::new(location.clone()), vec![junction.clone()])
- verify {
- assert!(!AllowedUniversalAliases::::get(&location.try_as().unwrap()).contains(&junction));
- }
-
- add_reserve_location {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let location = match T::BenchmarkHelper::reserve_location() {
- Some(location) => location,
- None => match T::ReserveLocationsLimit::get() > 0_u32 {
- true => return Err(BenchmarkError::Stop("missing `reserve_location` data")),
- false => return Err(BenchmarkError::Weightless),
- }
- };
- }: _(origin, Box::new(location.clone()))
- verify {
- assert!(AllowedReserveLocations::::get().contains(&location.try_as().unwrap()));
- }
-
- remove_reserve_location {
- let origin = T::AdminOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
- let location = match T::BenchmarkHelper::reserve_location() {
- Some(location) => location,
- None => match T::ReserveLocationsLimit::get() > 0_u32 {
- true => return Err(BenchmarkError::Stop("missing `reserve_location` data")),
- false => return Err(BenchmarkError::Weightless),
- }
- };
- let multilocation: MultiLocation = location.clone().try_into().unwrap();
- assert!(AllowedReserveLocations::::try_mutate(|locations| locations.try_insert(multilocation)).unwrap());
- }: _(origin, vec![location.clone()])
- verify {
- assert!(!AllowedReserveLocations::::get().contains(&location.try_as().unwrap()));
- }
-
impl_benchmark_test_suite!(Pallet, crate::tests::new_test_ext(), crate::tests::TestRuntime);
}
diff --git a/parachains/pallets/bridge-transfer/src/features.rs b/parachains/pallets/bridge-transfer/src/features.rs
new file mode 100644
index 00000000000..14e52950bf3
--- /dev/null
+++ b/parachains/pallets/bridge-transfer/src/features.rs
@@ -0,0 +1,185 @@
+// Copyright (C) 2023 Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crate::{
+ types::{AssetTransferKind, ResolveAssetTransferKind},
+ LOG_TARGET,
+};
+use frame_support::traits::{ContainsPair, Get};
+use pallet_bridge_transfer_primitives::{BridgesConfig, MatchAssetLocation, ReserveLocation};
+use xcm::prelude::*;
+use xcm_builder::ensure_is_remote;
+
+/// Adapter verifies if it is allowed to receive `MultiAsset` from `MultiLocation`.
+///
+/// Note: `MultiLocation` has to be from different global consensus.
+pub struct IsTrustedBridgedReserveLocationForConcreteAsset(
+ sp_std::marker::PhantomData<(UniversalLocation, Reserves)>,
+);
+impl<
+ UniversalLocation: Get,
+ Reserves: Get>,
+ > ContainsPair
+ for IsTrustedBridgedReserveLocationForConcreteAsset
+{
+ fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool {
+ let universal_source = UniversalLocation::get();
+ log::trace!(
+ target: "xcm::contains",
+ "IsTrustedBridgedReserveLocationForConcreteAsset asset: {:?}, origin: {:?}, universal_source: {:?}",
+ asset, origin, universal_source
+ );
+
+ // check remote origin
+ let _ = match ensure_is_remote(universal_source, *origin) {
+ Ok(devolved) => devolved,
+ Err(_) => {
+ log::trace!(
+ target: "xcm::contains",
+ "IsTrustedBridgedReserveLocationForConcreteAsset origin: {:?} is not remote to the universal_source: {:?}",
+ origin, universal_source
+ );
+ return false
+ },
+ };
+
+ // check asset location
+ let asset_location = match &asset.id {
+ Concrete(location) => location,
+ _ => return false,
+ };
+
+ // check asset according to the configured reserve locations
+ for (reserve_location, asset_filter) in Reserves::get() {
+ if origin.eq(&reserve_location) {
+ if asset_filter.matches(asset_location) {
+ return true
+ }
+ }
+ }
+
+ false
+ }
+}
+
+/// Adapter verifies if it is allowed to transfer out `MultiAsset` to the `MultiLocation`.
+///
+/// Note: `MultiLocation` has to be from different global consensus.
+pub struct IsAllowedReserveBasedTransferForConcreteAssetToBridgedLocation<
+ UniversalLocation,
+ Bridges,
+>(sp_std::marker::PhantomData<(UniversalLocation, Bridges)>);
+impl, Bridges: Get>
+ ContainsPair
+ for IsAllowedReserveBasedTransferForConcreteAssetToBridgedLocation
+{
+ fn contains(asset: &MultiAsset, to_location: &MultiLocation) -> bool {
+ let universal_source = UniversalLocation::get();
+ log::trace!(
+ target: "xcm::contains",
+ "IsAllowedReserveBasedTransferForConcreteAssetToBridgedLocation asset: {:?}, to_location: {:?}, universal_source: {:?}",
+ asset, to_location, universal_source
+ );
+
+ // check remote origin
+ let (remote_network, _) = match ensure_is_remote(universal_source, *to_location) {
+ Ok(devolved) => devolved,
+ Err(_) => {
+ log::trace!(
+ target: "xcm::contains",
+ "IsAllowedReserveBasedTransferForConcreteAssetToBridgedLocation to_location: {:?} is not remote to the universal_source: {:?}",
+ to_location, universal_source
+ );
+ return false
+ },
+ };
+
+ // check asset location
+ let asset_location = match &asset.id {
+ Concrete(location) => location,
+ _ => return false,
+ };
+
+ // check asset according to the config
+ if let Some(config) = Bridges::get().get(&remote_network) {
+ if let Some((_, Some(asset_filter))) = config.allowed_target_location_for(&to_location)
+ {
+ return asset_filter.matches(asset_location)
+ }
+ }
+
+ false
+ }
+}
+
+/// Implementation of `ResolveTransferKind` which tries to resolve all kinds of transfer.
+pub struct ConcreteAssetTransferKindResolver<
+ IsReserveLocationForAsset,
+ IsAllowedReserveBasedTransferForAsset,
+>(sp_std::marker::PhantomData<(IsReserveLocationForAsset, IsAllowedReserveBasedTransferForAsset)>);
+
+impl<
+ IsReserveLocationForAsset: ContainsPair,
+ IsAllowedReserveBasedTransferForAsset: ContainsPair,
+ > ResolveAssetTransferKind
+ for ConcreteAssetTransferKindResolver<
+ IsReserveLocationForAsset,
+ IsAllowedReserveBasedTransferForAsset,
+ >
+{
+ fn resolve(asset: &MultiAsset, target_location: &MultiLocation) -> AssetTransferKind {
+ log::trace!(
+ target: LOG_TARGET,
+ "ConcreteAssetTransferKindResolver resolve asset: {:?}, target_location: {:?}",
+ asset, target_location
+ );
+
+ // accepts only Concrete
+ match &asset.id {
+ Concrete(_) => (),
+ _ => return AssetTransferKind::Unsupported,
+ };
+
+ // check if target_location is allowed for requested asset to be transferred there
+ let is_reserve_based_candidate =
+ IsAllowedReserveBasedTransferForAsset::contains(asset, target_location);
+
+ // check if we are trying to transfer back reserve-deposited assets
+ // other words: if target_location is a known reserve location for asset
+ let is_withdraw_reserve_candidate =
+ IsReserveLocationForAsset::contains(asset, target_location);
+
+ match (is_reserve_based_candidate, is_withdraw_reserve_candidate) {
+ (true, false) => AssetTransferKind::ReserveBased,
+ (false, true) => AssetTransferKind::WithdrawReserve,
+ (true, true) => {
+ log::warn!(
+ target: LOG_TARGET,
+ "ConcreteAssetTransferKindResolver invalid configuration of transfer kind resolve for asset: {:?} and target_location: {:?} - is_reserve_based_candidate/is_withdraw_reserve_candidate: {:?}/{:?}",
+ asset, target_location, is_reserve_based_candidate, is_withdraw_reserve_candidate
+ );
+ AssetTransferKind::Unsupported
+ },
+ (false, false) => {
+ log::trace!(
+ target: LOG_TARGET,
+ "ConcreteAssetTransferKindResolver unsupported transfer kind for asset: {:?} and target_location: {:?} - is_reserve_based_candidate/is_withdraw_reserve_candidate: {:?}/{:?}",
+ asset, target_location, is_reserve_based_candidate, is_withdraw_reserve_candidate
+ );
+ AssetTransferKind::Unsupported
+ },
+ }
+ }
+}
diff --git a/parachains/pallets/bridge-transfer/src/impls.rs b/parachains/pallets/bridge-transfer/src/impls.rs
index 65b6adb1d79..9eb0e6cfcac 100644
--- a/parachains/pallets/bridge-transfer/src/impls.rs
+++ b/parachains/pallets/bridge-transfer/src/impls.rs
@@ -13,44 +13,252 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-use crate::{Config, Pallet};
-use frame_support::traits::{Contains, ContainsPair};
+use crate::{
+ types::{AssetTransferKind, ResolveAssetTransferKind},
+ Config, Error, Event, Pallet, LOG_TARGET,
+};
+use frame_support::{pallet_prelude::Get, transactional};
+use frame_system::unique;
+use pallet_bridge_transfer_primitives::{
+ EnsureReachableDestination, ReachableDestination, ReachableDestinationError,
+};
+use sp_runtime::DispatchError;
use xcm::prelude::*;
-use xcm_builder::ExporterFor;
-
-/// `ExporterFor` implementation to check if we can transfer anything to `NetworkId`
-impl ExporterFor for Pallet {
- fn exporter_for(
- network: &NetworkId,
- _remote_location: &InteriorMultiLocation,
- _message: &Xcm<()>,
- ) -> Option<(MultiLocation, Option)> {
- Self::allowed_exporters(network)
- .map(|bridge_config| (bridge_config.bridge_location, bridge_config.bridge_location_fee))
+use xcm_builder::ensure_is_remote;
+use xcm_executor::traits::TransactAsset;
+
+impl From for Error {
+ fn from(value: ReachableDestinationError) -> Self {
+ match value {
+ ReachableDestinationError::UnsupportedDestination => Error::::UnsupportedDestination,
+ ReachableDestinationError::UnsupportedXcmVersion => Error::::UnsupportedXcmVersion,
+ }
}
}
-/// Verifies if we have `(MultiLocation, Junction)` in allowed universal aliases.
-pub struct AllowedUniversalAliasesOf(sp_std::marker::PhantomData);
-impl Contains<(MultiLocation, Junction)> for AllowedUniversalAliasesOf {
- fn contains((location, junction): &(MultiLocation, Junction)) -> bool {
- log::trace!(target: "xcm::contains", "AllowedUniversalAliasesOf location: {:?}, junction: {:?}", location, junction);
- Pallet::::allowed_universal_aliases(location).contains(junction)
+impl Pallet {
+ /// Validates destination and check if we support bridging to this remote global consensus
+ ///
+ /// Returns: correct remote location, where we should be able to bridge
+ pub(crate) fn ensure_reachable_remote_destination(
+ remote_destination: MultiLocation,
+ ) -> Result> {
+ let devolved = ensure_is_remote(T::UniversalLocation::get(), remote_destination)
+ .map_err(|_| Error::::UnsupportedDestination)?;
+ let (remote_network, _) = devolved;
+
+ T::BridgedDestinationValidator::ensure_destination(remote_network, remote_destination)
+ .map_err(Into::into)
}
-}
-/// Verifies if we can allow `(MultiAsset, MultiLocation)` as trusted reserve.
-pub struct IsAllowedReserveOf(sp_std::marker::PhantomData<(T, F)>);
-impl> ContainsPair
- for IsAllowedReserveOf
-{
- fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool {
- log::trace!(target: "xcm::contains", "IsAllowedReserveOf asset: {:?}, origin: {:?}", asset, origin);
- // first check - if we have configured origin as trusted reserve location
- if !Pallet::::allowed_reserve_locations().contains(origin) {
- return false
+ /// Tries to initiate transfer assets over bridge.
+ #[transactional]
+ pub(crate) fn initiate_transfer_asset_via_bridge_in_transaction(
+ origin_location: MultiLocation,
+ destination: ReachableDestination,
+ assets: MultiAssets,
+ ) -> Result<(), DispatchError> {
+ // Resolve reserve account
+ let reserve_account = Self::resolve_reserve_account(&destination);
+
+ // Target destination
+ let target_location = destination.target.location;
+
+ // UniversalLocation as sovereign account location on target_location (as target_location sees UniversalLocation)
+ let universal_location_as_sovereign_account_on_target_location =
+ T::UniversalLocation::get()
+ .invert_target(&target_location)
+ .map_err(|_| Error::::InvalidTargetLocation)?;
+
+ // Prepare some XcmContext
+ let xcm_context = XcmContext::with_message_id(unique(reserve_account));
+
+ // Resolve/iterate all assets and how to transfer them
+ let mut reserve_assets_deposited = xcm_executor::Assets::new();
+ let mut reserved_assets_for_withdrawal = xcm_executor::Assets::new();
+ for asset in assets.into_inner() {
+ // first we need to know what kind of transfer it is
+ match T::AssetTransferKindResolver::resolve(&asset, &target_location) {
+ AssetTransferKind::ReserveBased =>
+ // Move asset to reserve account
+ T::AssetTransactor::transfer_asset(
+ &asset,
+ &origin_location,
+ &reserve_account,
+ &xcm_context,
+ )
+ .and_then(|reserved_asset| {
+ Self::deposit_event(Event::ReserveAssetsDeposited {
+ from: origin_location,
+ to: reserve_account,
+ assets: reserved_asset.clone().into(),
+ });
+ reserve_assets_deposited.subsume_assets(reserved_asset);
+ Ok(())
+ })
+ .map_err(|e| {
+ log::error!(
+ target: LOG_TARGET,
+ "AssetTransactor failed to reserve assets from origin_location: {:?} to reserve_account: {:?} for assets: {:?}, error: {:?}",
+ origin_location,
+ reserve_account,
+ asset,
+ e
+ );
+ Error::::FailedToReserve
+ })?,
+ AssetTransferKind::WithdrawReserve => {
+ // Just withdraw/burn asset here
+ T::AssetTransactor::withdraw_asset(
+ &asset,
+ &origin_location,
+ Some(&xcm_context),
+ )
+ .and_then(|withdrawn_asset| {
+ Self::deposit_event(Event::AssetsWithdrawn {
+ from: origin_location,
+ assets: withdrawn_asset.clone().into(),
+ });
+ reserved_assets_for_withdrawal.subsume_assets(withdrawn_asset);
+ Ok(())
+ })
+ .map_err(|e| {
+ log::error!(
+ target: LOG_TARGET,
+ "AssetTransactor failed to withdraw assets from origin_location: {:?} for assets: {:?}, error: {:?}",
+ origin_location,
+ asset,
+ e
+ );
+ Error::::FailedToWithdraw
+ })?
+ }
+ AssetTransferKind::Unsupported => return Err(Error::::UnsupportedAssetTransferKind.into()),
+ }
+ }
+
+ // Prepare xcm msg for the other side.
+
+ // Reanchor stuff - we need to convert local asset id/MultiLocation to format that could be understood by different consensus and from their point-of-view
+ reserve_assets_deposited.reanchor(&target_location, T::UniversalLocation::get(), None);
+ reserved_assets_for_withdrawal.reanchor(
+ &target_location,
+ T::UniversalLocation::get(),
+ None,
+ );
+ let remote_destination_reanchored = destination.target_destination
+ .reanchored(&target_location, T::UniversalLocation::get())
+ .map_err(|errored_dest| {
+ log::error!(
+ target: LOG_TARGET,
+ "Failed to reanchor remote_destination: {:?} for target_destination: {:?} and universal_location: {:?}",
+ errored_dest,
+ target_location,
+ T::UniversalLocation::get()
+ );
+ Error::::InvalidRemoteDestination
+ })?;
+
+ // prepare xcm message
+ // 1. buy execution (if needed) -> (we expect UniversalLocation's sovereign account should pay)
+ let (mut xcm_instructions, maybe_buy_execution) = match destination.target.maybe_fee {
+ Some(target_location_fee) => (
+ sp_std::vec![
+ WithdrawAsset(target_location_fee.clone().into()),
+ BuyExecution { fees: target_location_fee.clone(), weight_limit: Unlimited },
+ ],
+ Some(target_location_fee),
+ ),
+ None => (
+ sp_std::vec![UnpaidExecution { check_origin: None, weight_limit: Unlimited }],
+ None,
+ ),
+ };
+
+ // 2. add deposit reserved asset to destination account (if any)
+ if !reserve_assets_deposited.is_empty() {
+ xcm_instructions.extend(sp_std::vec![
+ ReserveAssetDeposited(reserve_assets_deposited.clone().into()),
+ DepositAsset {
+ assets: MultiAssetFilter::from(MultiAssets::from(reserve_assets_deposited)),
+ beneficiary: remote_destination_reanchored
+ },
+ ]);
}
- // second check - we need to pass additional `(asset, origin)` filter
- F::contains(asset, origin)
+
+ // 3. add withdraw/move reserve from sovereign account to destination (if any)
+ if !reserved_assets_for_withdrawal.is_empty() {
+ xcm_instructions.extend(sp_std::vec![
+ // we expect here, that origin is a sovereign account which was used as **reserve account**
+ WithdrawAsset(reserved_assets_for_withdrawal.clone().into()),
+ DepositAsset {
+ assets: MultiAssetFilter::from(MultiAssets::from(
+ reserved_assets_for_withdrawal
+ )),
+ beneficiary: remote_destination_reanchored
+ },
+ ]);
+ }
+
+ // 4. add return unspent weight/asset back to the UniversalLocation's sovereign account on target
+ if let Some(target_location_fee) = maybe_buy_execution {
+ xcm_instructions.extend(sp_std::vec![
+ RefundSurplus,
+ DepositAsset {
+ assets: MultiAssetFilter::from(MultiAssets::from(target_location_fee)),
+ beneficiary: universal_location_as_sovereign_account_on_target_location
+ },
+ ]);
+ }
+
+ Self::initiate_bridge_transfer(
+ target_location,
+ xcm_context.message_id,
+ xcm_instructions.into(),
+ )
+ .map_err(Into::into)
+ }
+
+ /// Tries to send xcm message over bridge
+ fn initiate_bridge_transfer(
+ dest: MultiLocation,
+ message_id: XcmHash,
+ mut xcm: Xcm<()>,
+ ) -> Result<(), Error> {
+ // append message_id
+ xcm.0.extend(sp_std::vec![SetTopic(message_id)]);
+
+ log::info!(
+ target: LOG_TARGET,
+ "[T::BridgeXcmSender] send to bridge, dest: {:?}, xcm: {:?}, message_id: {:?}",
+ dest,
+ xcm,
+ message_id,
+ );
+
+ // call bridge
+ // TODO: check-parameter - should we handle `sender_cost` somehow ?
+ let (forwarded_message_id, sender_cost) = send_xcm::(dest, xcm)
+ .map_err(|e| {
+ log::error!(
+ target: LOG_TARGET,
+ "[T::BridgeXcmSender] SendError occurred, error: {:?}",
+ e
+ );
+ Error::::BridgeCallError
+ })?;
+
+ // just fire event
+ Self::deposit_event(Event::TransferInitiated {
+ message_id,
+ forwarded_message_id,
+ sender_cost,
+ });
+ Ok(())
+ }
+
+ /// Resolve (sovereign) account which will be used as reserve account
+ pub(crate) fn resolve_reserve_account(destination: &ReachableDestination) -> MultiLocation {
+ destination.target.location
}
}
diff --git a/parachains/pallets/bridge-transfer/src/lib.rs b/parachains/pallets/bridge-transfer/src/lib.rs
index 4ad8ef11cbb..12a91faa44b 100644
--- a/parachains/pallets/bridge-transfer/src/lib.rs
+++ b/parachains/pallets/bridge-transfer/src/lib.rs
@@ -15,109 +15,40 @@
//! # Bridge Transfer Pallet
//!
-//! Module which could help with different transfers through bridges,
-//! e.g. move assets between different global consensus...
-//!
-//! ## Overview
-//!
-//! Pallet supports configuration for two independent scenarios:
-//!
-//! ### Transfer out
-//!
-//! * see (Config for transfer out) in the code
-//! * if you want to allow initiate bridge transfer from runtime,
-//! actually pallet supports asset transfer and ping with dedicated extrinsics `transfer_asset_via_bridge` / `ping_via_bridge`
-//! * e.g. for asset transfer with correct configuration it sends `ReserveAssetDeposited` over bridge,
-//! you can configure bridge location and allowed target location with `AllowedExporters`
-//!
-//! ### Transfer in
-//!
-//! * see (Config for transfer in) in the code
-//! * e.g. if you want to allow process xcm `UniversalOrigin` instruction,
-//! you can configure "allowed universal aliases" here and then use it for `xcm_executor::Config`:
-//! `type UniversalAliases = AllowedUniversalAliasesOf;`
-//! * e.g. if you want to allow process xcm `ReserveAssetDeposited` instruction,
-//! you can configure "allowed reserve locations" here and then use it for `xcm_executor::Config`:
-//! ```nocompile
-//! type IsReserve = IsAllowedReserveOf<
-//! Runtime,
-//! IsDifferentGlobalConsensusConcreteAsset,
-//! >;
-//! ```
-//!
-//! Transfer in/out are independent so you can configure just to receive or just to send part.
-//! All configuration is done by dedicated extrinsics under `AdminOrigin` so for example runtime can allow to change this configuration just by governance.
+//! Module supports transfer assets over bridges between different consensus chain.
+//! With fine-grained configuration you can control transferred assets (out/in) between different consensus chain.
+//! "Transfer asset over bridge" recognize two kinds of transfer see `types::AssetTransferKind`.
// Ensure we're `no_std` when compiling for Wasm.
#![cfg_attr(not(feature = "std"), no_std)]
-use codec::{Decode, Encode, MaxEncodedLen};
-use frame_support::{transactional, BoundedBTreeSet};
-use scale_info::TypeInfo;
-use sp_runtime::RuntimeDebug;
-use sp_std::boxed::Box;
-
pub use pallet::*;
-use xcm::prelude::*;
+pub use pallet_bridge_transfer_primitives::MaybePaidLocation;
+
+pub mod features;
+mod impls;
+mod types;
+pub mod weights;
#[cfg(feature = "runtime-benchmarks")]
mod benchmarking;
-pub mod impls;
-pub mod weights;
+
+#[cfg(test)]
+mod tests;
/// The log target of this pallet.
pub const LOG_TARGET: &str = "runtime::bridge-transfer";
-#[derive(Clone, Encode, Decode, Eq, PartialEq, RuntimeDebug, MaxEncodedLen, TypeInfo)]
-pub struct BridgeConfig {
- /// Contains location, which is able to bridge XCM messages to bridged network
- pub bridge_location: MultiLocation,
- /// Fee which could be needed to pay in `bridge_location`
- /// `MultiAsset` is here from the point of view of `bridge_location`, e.g.: `MultiLocation::parent()` means relay chain token of `bridge_location`
- pub bridge_location_fee: Option,
-
- /// Contains target destination on bridged network. E.g.: MultiLocation of Statemine/t on different consensus
- // TODO:check-parameter - lets start with 1..1, maybe later we could extend this with BoundedVec
- // TODO: bridged bridge-hub should have router for this
- pub allowed_target_location: MultiLocation,
- // TODO:check-parameter - can we store Option and then aviod using `Unlimited`?
- /// If `None` then `UnpaidExecution` is used, else `Withdraw(target_location_fee)/BuyExecution(target_location_fee, Unlimited)`
- /// `MultiAsset` is here from the point of view of `allowed_target_location`, e.g.: `MultiLocation::parent()` means relay chain token of `allowed_target_location`
- pub max_target_location_fee: Option,
-}
-
-/// Trait for constructing ping message.
-pub trait PingMessageBuilder {
- fn try_build(
- local_origin: &MultiLocation,
- network: &NetworkId,
- remote_destination: &MultiLocation,
- ) -> Option>;
-}
-
-impl PingMessageBuilder for () {
- fn try_build(_: &MultiLocation, _: &NetworkId, _: &MultiLocation) -> Option> {
- None
- }
-}
-
-/// Builder creates xcm message just with `Trap` instruction.
-pub struct UnpaidTrapMessageBuilder(sp_std::marker::PhantomData);
-impl> PingMessageBuilder
- for UnpaidTrapMessageBuilder
-{
- fn try_build(_: &MultiLocation, _: &NetworkId, _: &MultiLocation) -> Option> {
- Some(Xcm(sp_std::vec![Trap(TrapCode::get())]))
- }
-}
-
#[frame_support::pallet]
pub mod pallet {
pub use crate::weights::WeightInfo;
- use super::*;
+ use crate::types::ResolveAssetTransferKind;
use frame_support::pallet_prelude::*;
- use frame_system::{pallet_prelude::*, unique};
+ use frame_system::pallet_prelude::*;
+ use pallet_bridge_transfer_primitives::EnsureReachableDestination;
+ use sp_std::boxed::Box;
+ use xcm::prelude::*;
use xcm_executor::traits::TransactAsset;
#[pallet::pallet]
@@ -126,50 +57,47 @@ pub mod pallet {
/// Everything we need to run benchmarks.
#[cfg(feature = "runtime-benchmarks")]
pub trait BenchmarkHelper {
- /// Returns proper bridge configuration, supported by the runtime.
+ /// Returns proper destination for NetworkId, supported by the runtime.
///
/// We expect that the XCM environment (`BridgeXcmSender`) has everything enabled
/// to support transfer to this destination **after** `prepare_asset_transfer` call.
- fn bridge_config() -> Option<(NetworkId, BridgeConfig)> {
- None
- }
+ fn desired_bridged_location(
+ ) -> Option<(NetworkId, pallet_bridge_transfer_primitives::ReachableDestination)>;
/// Prepare environment for assets transfer and return transfer origin and assets
/// to transfer. After this function is called, we expect `transfer_asset_via_bridge`
/// to succeed, so in proper environment, it should:
///
- /// - deposit enough funds (fee from `bridge_config()` and transferred assets) to the sender account;
+ /// - deposit enough funds (fee from `desired_bridged_location()` and transferred assets) to the sender account;
///
/// - ensure that the `BridgeXcmSender` is properly configured for the transfer;
///
/// - be close to the worst possible scenario - i.e. if some account may need to be created during
/// the assets transfer, it should be created. If there are multiple bridges, the "worst possible"
/// (in terms of performance) bridge must be selected for the transfer.
- fn prepare_asset_transfer(
- ) -> Option<(RuntimeOrigin, VersionedMultiAssets, VersionedMultiLocation)> {
- None
- }
-
- /// Prepare environment for ping transfer and return transfer origin and assets
- /// to transfer. After this function is called, we expect `ping_via_bridge`
- /// to succeed, so in proper environment, it should:
- ///
- /// - deposit enough funds (fee from `bridge_config()`) to the sender account;
- ///
- /// - ensure that the `BridgeXcmSender` is properly configured for the transfer;
- ///
- /// - be close to the worst possible scenario - i.e. if some account may need to be created during
- /// it should be created. If there are multiple bridges, the "worst possible"
- /// (in terms of performance) bridge must be selected for the transfer.
- fn prepare_ping_transfer() -> Option<(RuntimeOrigin, VersionedMultiLocation)> {
- None
- }
+ fn prepare_asset_transfer_for(
+ desired_bridged_location: (
+ NetworkId,
+ pallet_bridge_transfer_primitives::ReachableDestination,
+ ),
+ assumed_reserve_account: MultiLocation,
+ ) -> Option<(RuntimeOrigin, VersionedMultiAssets, VersionedMultiLocation)>;
+ }
- fn universal_alias() -> Option<(VersionedMultiLocation, Junction)> {
+ #[cfg(feature = "runtime-benchmarks")]
+ impl BenchmarkHelper for () {
+ fn desired_bridged_location(
+ ) -> Option<(NetworkId, pallet_bridge_transfer_primitives::ReachableDestination)> {
None
}
- fn reserve_location() -> Option {
+ fn prepare_asset_transfer_for(
+ _desired_bridged_location: (
+ NetworkId,
+ pallet_bridge_transfer_primitives::ReachableDestination,
+ ),
+ _assumed_reserve_account: MultiLocation,
+ ) -> Option<(RuntimeOrigin, VersionedMultiAssets, VersionedMultiLocation)> {
None
}
}
@@ -185,83 +113,42 @@ pub mod pallet {
/// Weight information for extrinsics in this pallet.
type WeightInfo: WeightInfo;
- /// The configurable origin to allow bridges configuration management
- type AdminOrigin: EnsureOrigin;
-
- /// Max allowed universal aliases per one `MultiLocation`
- /// (Config for transfer in)
- type UniversalAliasesLimit: Get;
- /// Max allowed reserve locations
- /// (Config for transfer in)
- type ReserveLocationsLimit: Get;
-
/// How to withdraw and deposit an asset for reserve.
/// (Config for transfer out)
type AssetTransactor: TransactAsset;
- /// XCM sender which sends messages to the BridgeHub
- /// (Config for transfer out)
- type BridgeXcmSender: SendXcm;
+ /// Transfer kind resolver for `asset` to `target_location`.
+ type AssetTransferKindResolver: ResolveAssetTransferKind;
/// Required origin for asset transfer. If successful, it resolves to `MultiLocation`.
/// (Config for transfer out)
- type TransferAssetOrigin: EnsureOrigin;
+ type AssetTransferOrigin: EnsureOrigin;
/// Max count of assets in one call
/// (Config for transfer out)
- type MaxAssetsLimit: Get