diff --git a/.github/scripts/check-workspace.py b/.github/scripts/check-workspace.py
index d200122fee9f7035dce8c811e7c24c003d9545a4..1f8f103e4e157a8c1c804a618652741193ca5a00 100644
--- a/.github/scripts/check-workspace.py
+++ b/.github/scripts/check-workspace.py
@@ -18,7 +18,7 @@ def parse_args():
parser.add_argument('workspace_dir', help='The directory to check', metavar='workspace_dir', type=str, nargs=1)
parser.add_argument('--exclude', help='Exclude crate paths from the check', metavar='exclude', type=str, nargs='*', default=[])
-
+
args = parser.parse_args()
return (args.workspace_dir[0], args.exclude)
@@ -26,7 +26,7 @@ def main(root, exclude):
workspace_crates = get_members(root, exclude)
all_crates = get_crates(root, exclude)
print(f'📦 Found {len(all_crates)} crates in total')
-
+
check_duplicates(workspace_crates)
check_missing(workspace_crates, all_crates)
check_links(all_crates)
@@ -48,14 +48,14 @@ def get_members(workspace_dir, exclude):
if not 'members' in root_manifest['workspace']:
return []
-
+
members = []
for member in root_manifest['workspace']['members']:
if member in exclude:
print(f'❌ Excluded member should not appear in the workspace {member}')
sys.exit(1)
members.append(member)
-
+
return members
# List all members of the workspace.
@@ -74,12 +74,12 @@ def get_crates(workspace_dir, exclude_crates) -> dict:
with open(path, "r") as f:
content = f.read()
manifest = toml.loads(content)
-
+
if 'workspace' in manifest:
if root != workspace_dir:
print("⏩ Excluded recursive workspace at %s" % path)
continue
-
+
# Cut off the root path and the trailing /Cargo.toml.
path = path[len(workspace_dir)+1:-11]
name = manifest['package']['name']
@@ -87,7 +87,7 @@ def get_crates(workspace_dir, exclude_crates) -> dict:
print("⏩ Excluded crate %s at %s" % (name, path))
continue
crates[name] = (path, manifest)
-
+
return crates
# Check that there are no duplicate entries in the workspace.
@@ -138,23 +138,23 @@ def check_links(all_crates):
if not 'path' in deps[dep]:
broken.append((name, dep_name, "crate must be linked via `path`"))
return
-
+
def check_crate(deps):
to_checks = ['dependencies', 'dev-dependencies', 'build-dependencies']
for to_check in to_checks:
if to_check in deps:
check_deps(deps[to_check])
-
+
# There could possibly target dependant deps:
if 'target' in manifest:
# Target dependant deps can only have one level of nesting:
for _, target in manifest['target'].items():
check_crate(target)
-
+
check_crate(manifest)
-
+
links.sort()
broken.sort()
diff --git a/.github/scripts/common/lib.sh b/.github/scripts/common/lib.sh
index bd12d9c6e6ff773f8513189a381d725243e53eb5..29dc269ffd23b1f51e1eb2b87a61544de0cbb57f 100755
--- a/.github/scripts/common/lib.sh
+++ b/.github/scripts/common/lib.sh
@@ -237,6 +237,61 @@ fetch_release_artifacts() {
popd > /dev/null
}
+# Fetch the release artifacts like binary and sigantures from S3. Assumes the ENV are set:
+# - RELEASE_ID
+# - GITHUB_TOKEN
+# - REPO in the form paritytech/polkadot
+fetch_release_artifacts_from_s3() {
+ echo "Version : $VERSION"
+ echo "Repo : $REPO"
+ echo "Binary : $BINARY"
+ OUTPUT_DIR=${OUTPUT_DIR:-"./release-artifacts/${BINARY}"}
+ echo "OUTPUT_DIR : $OUTPUT_DIR"
+
+ URL_BASE=$(get_s3_url_base $BINARY)
+ echo "URL_BASE=$URL_BASE"
+
+ URL_BINARY=$URL_BASE/$VERSION/$BINARY
+ URL_SHA=$URL_BASE/$VERSION/$BINARY.sha256
+ URL_ASC=$URL_BASE/$VERSION/$BINARY.asc
+
+ # Fetch artifacts
+ mkdir -p "$OUTPUT_DIR"
+ pushd "$OUTPUT_DIR" > /dev/null
+
+ echo "Fetching artifacts..."
+ for URL in $URL_BINARY $URL_SHA $URL_ASC; do
+ echo "Fetching %s" "$URL"
+ curl --progress-bar -LO "$URL" || echo "Missing $URL"
+ done
+
+ pwd
+ ls -al --color
+ popd > /dev/null
+
+}
+
+# Pass the name of the binary as input, it will
+# return the s3 base url
+function get_s3_url_base() {
+ name=$1
+ case $name in
+ polkadot | polkadot-execute-worker | polkadot-prepare-worker | staking-miner)
+ printf "https://releases.parity.io/polkadot"
+ ;;
+
+ polkadot-parachain)
+ printf "https://releases.parity.io/cumulus"
+ ;;
+
+ *)
+ printf "UNSUPPORTED BINARY $name"
+ exit 1
+ ;;
+ esac
+}
+
+
# Check the checksum for a given binary
function check_sha256() {
echo "Checking SHA256 for $1"
@@ -248,13 +303,11 @@ function check_sha256() {
function import_gpg_keys() {
GPG_KEYSERVER=${GPG_KEYSERVER:-"keyserver.ubuntu.com"}
SEC="9D4B2B6EB8F97156D19669A9FF0812D491B96798"
- WILL="2835EAF92072BC01D188AF2C4A092B93E97CE1E2"
EGOR="E6FC4D4782EB0FA64A4903CCDB7D3555DD3932D3"
- MARA="533C920F40E73A21EEB7E9EBF27AEA7E7594C9CF"
MORGAN="2E92A9D8B15D7891363D1AE8AF9E6C43F7F8C4CF"
echo "Importing GPG keys from $GPG_KEYSERVER in parallel"
- for key in $SEC $WILL $EGOR $MARA $MORGAN; do
+ for key in $SEC $EGOR $MORGAN; do
(
echo "Importing GPG key $key"
gpg --no-tty --quiet --keyserver $GPG_KEYSERVER --recv-keys $key
@@ -344,3 +397,40 @@ function find_runtimes() {
done
echo $JSON
}
+
+# Filter the version matches the particular pattern and return it.
+# input: version (v1.8.0 or v1.8.0-rc1)
+# output: none
+filter_version_from_input() {
+ version=$1
+ regex="(^v[0-9]+\.[0-9]+\.[0-9]+)$|(^v[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+)$"
+
+ if [[ $version =~ $regex ]]; then
+ if [ -n "${BASH_REMATCH[1]}" ]; then
+ echo "${BASH_REMATCH[1]}"
+ elif [ -n "${BASH_REMATCH[2]}" ]; then
+ echo "${BASH_REMATCH[2]}"
+ fi
+ else
+ echo "Invalid version: $version"
+ exit 1
+ fi
+
+}
+
+# Check if the release_id is valid number
+# input: release_id
+# output: release_id or exit 1
+check_release_id() {
+ input=$1
+
+ release_id=$(echo "$input" | sed 's/[^0-9]//g')
+
+ if [[ $release_id =~ ^[0-9]+$ ]]; then
+ echo "$release_id"
+ else
+ echo "Invalid release_id from input: $input"
+ exit 1
+ fi
+
+}
diff --git a/.github/workflows/check-licenses.yml b/.github/workflows/check-licenses.yml
index e1e92d288ceae235d23fa36c31d592092fe8b0ba..c32b6fcf89e06bb56cefc0517e1dcab1d1ef0f37 100644
--- a/.github/workflows/check-licenses.yml
+++ b/.github/workflows/check-licenses.yml
@@ -42,5 +42,4 @@ jobs:
shopt -s globstar
npx @paritytech/license-scanner scan \
--ensure-licenses ${{ env.LICENSES }} \
- --exclude ./substrate/bin/node-template \
-- ./substrate/**/*.rs
diff --git a/.github/workflows/release-50_publish-docker.yml b/.github/workflows/release-50_publish-docker.yml
index ecbac01cd3a5b2aaed679cfaf2ade0b04900531a..67e93ee96574de1f1e3e29f1bf6d90085865100d 100644
--- a/.github/workflows/release-50_publish-docker.yml
+++ b/.github/workflows/release-50_publish-docker.yml
@@ -36,7 +36,7 @@ on:
-H "Authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/$OWNER/$REPO/releases | \
jq '.[] | { name: .name, id: .id }'
required: true
- type: string
+ type: number
registry:
description: Container registry
@@ -61,7 +61,6 @@ permissions:
contents: write
env:
- RELEASE_ID: ${{ inputs.release_id }}
ENGINE: docker
REGISTRY: ${{ inputs.registry }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -71,6 +70,7 @@ env:
# EVENT_ACTION: ${{ github.event.action }}
EVENT_NAME: ${{ github.event_name }}
IMAGE_TYPE: ${{ inputs.image_type }}
+ VERSION: ${{ inputs.version }}
jobs:
fetch-artifacts: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build
@@ -95,13 +95,16 @@ jobs:
# chmod a+x $BINARY
# ls -al
- - name: Fetch rc artifacts or release artifacts based on release id
+ - name: Fetch rc artifacts or release artifacts from s3 based on version
#this step runs only if the workflow is triggered manually
if: ${{ env.EVENT_NAME == 'workflow_dispatch' }}
run: |
. ./.github/scripts/common/lib.sh
- fetch_release_artifacts
+ VERSION=$(filter_version_from_input "${{ inputs.version }}")
+ echo "VERSION=${VERSION}" >> $GITHUB_ENV
+
+ fetch_release_artifacts_from_s3
- name: Cache the artifacts
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3
@@ -147,7 +150,10 @@ jobs:
if: ${{ env.IMAGE_TYPE == 'rc' }}
id: fetch_rc_refs
run: |
- release=release-${{ inputs.release_id }} && \
+ . ./.github/scripts/common/lib.sh
+
+ RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
+ release=release-$RELEASE_ID && \
echo "release=${release}" >> $GITHUB_OUTPUT
commit=$(git rev-parse --short HEAD) && \
diff --git a/.github/workflows/release-99_notif-published.yml b/.github/workflows/release-99_notif-published.yml
index 732db15d9c0c056a9d037785bbce3c87f1bc2620..05c9d6a47f551860c51e318b01b495ca662e902e 100644
--- a/.github/workflows/release-99_notif-published.yml
+++ b/.github/workflows/release-99_notif-published.yml
@@ -16,12 +16,6 @@ jobs:
- name: "RelEng: Polkadot Release Coordination"
room: '!cqAmzdIcbOFwrdrubV:parity.io'
pre-release: true
- - name: 'General: Rust, Polkadot, Substrate'
- room: '!aJymqQYtCjjqImFLSb:parity.io'
- pre-release: false
- - name: 'Team: DevOps'
- room: '!lUslSijLMgNcEKcAiE:parity.io'
- pre-release: true
# External
- name: 'Ledger <> Polkadot Coordination'
@@ -48,7 +42,9 @@ jobs:
access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
server: m.parity.io
message: |
- A (pre)release has been ${{github.event.action}} in **${{github.event.repository.full_name}}:**
+ @room
+
+ A new node release has been ${{github.event.action}} in **${{github.event.repository.full_name}}:**
Release version: [${{github.event.release.tag_name}}](${{github.event.release.html_url}})
-----
diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml
index 15b4869997be186c71cecbc89060b7591d71ffa3..f8de6135572565d9d16465e68aa3f0bace915cc5 100644
--- a/.gitlab/pipeline/build.yml
+++ b/.gitlab/pipeline/build.yml
@@ -91,7 +91,7 @@ build-rustdoc:
- .run-immediately
variables:
SKIP_WASM_BUILD: 1
- RUSTDOCFLAGS: ""
+ RUSTDOCFLAGS: "--default-theme=ayu --html-in-header ./docs/sdk/headers/header.html --extend-css ./docs/sdk/headers/theme.css"
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
when: on_success
@@ -337,7 +337,7 @@ build-runtimes-polkavm:
- .common-refs
- .run-immediately
script:
- - SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p minimal-runtime
+ - SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p minimal-template-runtime
- SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p westend-runtime
- SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p rococo-runtime
- SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p polkadot-test-runtime
diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml
index 4d71a473372d3f0caaccfd6f791392c0d5c992f3..52da33550508ede16c9577346e6985d869b5e8ae 100644
--- a/.gitlab/pipeline/check.yml
+++ b/.gitlab/pipeline/check.yml
@@ -259,3 +259,19 @@ find-fail-ci-phrase:
echo "No $ASSERT_REGEX was found, exiting with 0";
exit 0;
fi
+
+check-core-crypto-features:
+ stage: check
+ extends:
+ - .docker-env
+ - .common-refs
+ script:
+ - pushd substrate/primitives/core
+ - ./check-features-variants.sh
+ - popd
+ - pushd substrate/primitives/application-crypto
+ - ./check-features-variants.sh
+ - popd
+ - pushd substrate/primitives/keyring
+ - ./check-features-variants.sh
+ - popd
diff --git a/.gitlab/pipeline/test.yml b/.gitlab/pipeline/test.yml
index 9f774aab271938138bb78975c48e2de6caf35aa1..d244316000aaf152810c396e37e470694be506cc 100644
--- a/.gitlab/pipeline/test.yml
+++ b/.gitlab/pipeline/test.yml
@@ -25,6 +25,7 @@ test-linux-stable:
# "upgrade_version_checks_should_work" is currently failing
- |
time cargo nextest run \
+ --filter-expr 'not deps(/polkadot-subsystem-bench/)' \
--workspace \
--locked \
--release \
@@ -69,7 +70,7 @@ test-linux-stable-runtime-benchmarks:
# but still want to have debug assertions.
RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
script:
- - time cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
+ - time cargo nextest run --filter-expr 'not deps(/polkadot-subsystem-bench/)' --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
# can be used to run all tests
# test-linux-stable-all:
@@ -493,3 +494,15 @@ test-syscalls:
printf "The x86_64 syscalls used by the worker binaries have changed. Please review if this is expected and update polkadot/scripts/list-syscalls/*-worker-syscalls as needed.\n";
fi
allow_failure: false # this rarely triggers in practice
+
+subsystem-regression-tests:
+ stage: test
+ extends:
+ - .docker-env
+ - .common-refs
+ - .run-immediately
+ script:
+ - cargo bench --profile=testnet -p polkadot-availability-recovery --bench availability-recovery-regression-bench --features subsystem-benchmarks
+ tags:
+ - benchmark
+ allow_failure: true
diff --git a/.gitlab/pipeline/zombienet.yml b/.gitlab/pipeline/zombienet.yml
index 55120e66d0e53c740b16a7ee6276230f42c172ef..8d308714fab3cb44827bb202fce0939f52f730ad 100644
--- a/.gitlab/pipeline/zombienet.yml
+++ b/.gitlab/pipeline/zombienet.yml
@@ -1,7 +1,7 @@
.zombienet-refs:
extends: .build-refs
variables:
- ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.91"
+ ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.95"
include:
# substrate tests
diff --git a/Cargo.lock b/Cargo.lock
index 410b45d00183aa93fe7b6182bc80ac4cebf26e09..b055c79cbbf541ffe5dbad1a62bb30e621514705 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -191,7 +191,7 @@ checksum = "c0391754c09fab4eae3404d19d0d297aa1c670c1775ab51d8a5312afeca23157"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -202,11 +202,11 @@ checksum = "8a98ad1696a2e17f010ae8e43e9f2a1e930ed176a8e3ff77acfeff6dfb07b42c"
dependencies = [
"const-hex",
"dunce",
- "heck",
+ "heck 0.4.1",
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
"syn-solidity",
"tiny-keccak",
]
@@ -309,9 +309,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.75"
+version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
[[package]]
name = "approx"
@@ -322,6 +322,20 @@ dependencies = [
"num-traits",
]
+[[package]]
+name = "aquamarine"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760"
+dependencies = [
+ "include_dir",
+ "itertools 0.10.5",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
[[package]]
name = "aquamarine"
version = "0.5.0"
@@ -333,7 +347,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -730,12 +744,6 @@ dependencies = [
"nodrop",
]
-[[package]]
-name = "arrayvec"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-
[[package]]
name = "arrayvec"
version = "0.7.4"
@@ -833,6 +841,7 @@ dependencies = [
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
+ "penpal-runtime",
"rococo-runtime",
"rococo-system-emulated-network",
"sp-runtime",
@@ -954,6 +963,7 @@ dependencies = [
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
+ "penpal-runtime",
"polkadot-runtime-common",
"sp-runtime",
"staging-xcm",
@@ -1218,7 +1228,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -1235,7 +1245,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -1320,7 +1330,7 @@ dependencies = [
"ark-std 0.4.0",
"dleq_vrf",
"fflonk",
- "merlin 3.0.0",
+ "merlin",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"ring 0.1.0",
@@ -1417,7 +1427,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -1426,9 +1436,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f"
dependencies = [
- "bitcoin_hashes",
- "rand",
- "rand_core 0.6.4",
+ "bitcoin_hashes 0.11.0",
"serde",
"unicode-normalization",
]
@@ -1448,12 +1456,28 @@ version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+[[package]]
+name = "bitcoin-internals"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb"
+
[[package]]
name = "bitcoin_hashes"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4"
+[[package]]
+name = "bitcoin_hashes"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b"
+dependencies = [
+ "bitcoin-internals",
+ "hex-conservative",
+]
+
[[package]]
name = "bitflags"
version = "1.3.2"
@@ -1545,18 +1569,6 @@ dependencies = [
"constant_time_eq 0.3.0",
]
-[[package]]
-name = "block-buffer"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array 0.12.4",
-]
-
[[package]]
name = "block-buffer"
version = "0.9.0"
@@ -1575,15 +1587,6 @@ dependencies = [
"generic-array 0.14.7",
]
-[[package]]
-name = "block-padding"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
-
[[package]]
name = "blocking"
version = "1.3.1"
@@ -2610,28 +2613,28 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.1"
+version = "4.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
dependencies = [
"clap_builder",
- "clap_derive 4.5.0",
+ "clap_derive 4.5.3",
]
[[package]]
name = "clap-num"
-version = "1.0.2"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488557e97528174edaa2ee268b23a809e0c598213a4bbcb4f34575a46fda147e"
+checksum = "0e063d263364859dc54fb064cedb7c122740cd4733644b14b176c097f51e8ab7"
dependencies = [
"num-traits",
]
[[package]]
name = "clap_builder"
-version = "4.5.1"
+version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
dependencies = [
"anstream",
"anstyle",
@@ -2646,7 +2649,7 @@ version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
]
[[package]]
@@ -2655,7 +2658,7 @@ version = "3.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro-error",
"proc-macro2",
"quote",
@@ -2664,14 +2667,14 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.5.0"
+version = "4.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
dependencies = [
- "heck",
+ "heck 0.5.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -2840,11 +2843,10 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "colored"
-version = "2.0.4"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
dependencies = [
- "is-terminal",
"lazy_static",
"windows-sys 0.48.0",
]
@@ -2872,7 +2874,7 @@ dependencies = [
"ark-std 0.4.0",
"fflonk",
"getrandom_or_panic",
- "merlin 3.0.0",
+ "merlin",
"rand_chacha 0.3.1",
]
@@ -3381,7 +3383,7 @@ dependencies = [
"anes",
"cast",
"ciborium",
- "clap 4.5.1",
+ "clap 4.5.3",
"criterion-plot",
"futures",
"is-terminal",
@@ -3512,16 +3514,6 @@ dependencies = [
"subtle 2.5.0",
]
-[[package]]
-name = "crypto-mac"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
-dependencies = [
- "generic-array 0.14.7",
- "subtle 2.5.0",
-]
-
[[package]]
name = "ctr"
version = "0.7.0"
@@ -3544,7 +3536,7 @@ dependencies = [
name = "cumulus-client-cli"
version = "0.7.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"parity-scale-codec",
"sc-chain-spec",
"sc-cli",
@@ -3903,7 +3895,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -4055,7 +4047,7 @@ dependencies = [
"cumulus-primitives-core",
"cumulus-primitives-proof-size-hostfunction",
"cumulus-test-runtime",
- "docify",
+ "docify 0.2.7",
"frame-support",
"frame-system",
"log",
@@ -4166,6 +4158,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-overseer",
"polkadot-primitives",
+ "polkadot-service",
"sc-authority-discovery",
"sc-client-api",
"sc-network",
@@ -4306,7 +4299,7 @@ name = "cumulus-test-service"
version = "0.1.0"
dependencies = [
"async-trait",
- "clap 4.5.1",
+ "clap 4.5.3",
"criterion 0.5.1",
"cumulus-client-cli",
"cumulus-client-consensus-common",
@@ -4379,19 +4372,6 @@ dependencies = [
"url",
]
-[[package]]
-name = "curve25519-dalek"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216"
-dependencies = [
- "byteorder",
- "digest 0.8.1",
- "rand_core 0.5.1",
- "subtle 2.5.0",
- "zeroize",
-]
-
[[package]]
name = "curve25519-dalek"
version = "3.2.0"
@@ -4430,7 +4410,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -4470,7 +4450,7 @@ dependencies = [
"proc-macro2",
"quote",
"scratch",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -4487,7 +4467,7 @@ checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -4695,7 +4675,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -4735,13 +4715,39 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+[[package]]
+name = "docify"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af1b04e6ef3d21119d3eb7b032bca17f99fe041e9c072f30f32cc0e1a2b1f3c4"
+dependencies = [
+ "docify_macros 0.1.16",
+]
+
[[package]]
name = "docify"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2"
dependencies = [
- "docify_macros",
+ "docify_macros 0.2.7",
+]
+
+[[package]]
+name = "docify_macros"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b5610df7f2acf89a1bb5d1a66ae56b1c7fcdcfe3948856fb3ace3f644d70eb7"
+dependencies = [
+ "common-path",
+ "derive-syn-parse",
+ "lazy_static",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.53",
+ "termcolor",
+ "walkdir",
]
[[package]]
@@ -4756,7 +4762,7 @@ dependencies = [
"proc-macro2",
"quote",
"regex",
- "syn 2.0.50",
+ "syn 2.0.53",
"termcolor",
"toml 0.8.8",
"walkdir",
@@ -4823,6 +4829,7 @@ dependencies = [
"digest 0.10.7",
"elliptic-curve",
"rfc6979",
+ "serdect",
"signature",
"spki",
]
@@ -4889,9 +4896,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
[[package]]
name = "elliptic-curve"
-version = "0.13.5"
+version = "0.13.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
dependencies = [
"base16ct",
"crypto-bigint",
@@ -4902,6 +4909,7 @@ dependencies = [
"pkcs8",
"rand_core 0.6.4",
"sec1",
+ "serdect",
"subtle 2.5.0",
"zeroize",
]
@@ -4925,6 +4933,7 @@ dependencies = [
"parachains-common",
"parity-scale-codec",
"paste",
+ "polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-runtime-parachains",
"sc-consensus-grandpa",
@@ -4958,7 +4967,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro2",
"quote",
"syn 1.0.109",
@@ -4981,7 +4990,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -4992,7 +5001,7 @@ checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -5045,9 +5054,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "erased-serde"
-version = "0.3.30"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "837c0466252947ada828b975e12daf82e18bb5444e4df87be6038d4469e2a3d2"
+checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3"
dependencies = [
"serde",
]
@@ -5182,7 +5191,7 @@ dependencies = [
"fs-err",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -5195,12 +5204,6 @@ dependencies = [
"once_cell",
]
-[[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
[[package]]
name = "fallible-iterator"
version = "0.2.0"
@@ -5310,7 +5313,7 @@ dependencies = [
"ark-poly",
"ark-serialize 0.4.2",
"ark-std 0.4.0",
- "merlin 3.0.0",
+ "merlin",
]
[[package]]
@@ -5450,7 +5453,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
name = "frame"
version = "0.0.1-dev"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-executive",
"frame-support",
"frame-system",
@@ -5509,7 +5512,7 @@ dependencies = [
"Inflector",
"array-bytes 6.1.0",
"chrono",
- "clap 4.5.1",
+ "clap 4.5.3",
"comfy-table",
"frame-benchmarking",
"frame-support",
@@ -5575,7 +5578,7 @@ dependencies = [
"quote",
"scale-info",
"sp-arithmetic",
- "syn 2.0.50",
+ "syn 2.0.53",
"trybuild",
]
@@ -5601,7 +5604,7 @@ dependencies = [
name = "frame-election-solution-type-fuzzer"
version = "2.0.0-alpha.5"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"frame-election-provider-solution-type",
"frame-election-provider-support",
"frame-support",
@@ -5618,6 +5621,7 @@ dependencies = [
name = "frame-executive"
version = "28.0.0"
dependencies = [
+ "aquamarine 0.3.3",
"array-bytes 6.1.0",
"frame-support",
"frame-system",
@@ -5674,11 +5678,11 @@ dependencies = [
name = "frame-support"
version = "28.0.0"
dependencies = [
- "aquamarine",
+ "aquamarine 0.5.0",
"array-bytes 6.1.0",
"assert_matches",
"bitflags 1.3.2",
- "docify",
+ "docify 0.2.7",
"environmental",
"frame-metadata",
"frame-support-procedural",
@@ -5708,6 +5712,7 @@ dependencies = [
"sp-staking",
"sp-state-machine",
"sp-std 14.0.0",
+ "sp-timestamp",
"sp-tracing 16.0.0",
"sp-weights",
"static_assertions",
@@ -5730,7 +5735,7 @@ dependencies = [
"quote",
"regex",
"sp-crypto-hashing",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -5741,7 +5746,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -5750,7 +5755,7 @@ version = "11.0.0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -5821,7 +5826,7 @@ version = "28.0.0"
dependencies = [
"cfg-if",
"criterion 0.4.0",
- "docify",
+ "docify 0.2.7",
"frame-support",
"log",
"parity-scale-codec",
@@ -5983,7 +5988,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -6266,9 +6271,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
[[package]]
name = "handlebars"
-version = "4.3.7"
+version = "5.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d"
+checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4"
dependencies = [
"log",
"pest",
@@ -6337,6 +6342,12 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
[[package]]
name = "hermit-abi"
version = "0.1.19"
@@ -6358,6 +6369,12 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+[[package]]
+name = "hex-conservative"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2"
+
[[package]]
name = "hex-literal"
version = "0.4.1"
@@ -6383,16 +6400,6 @@ dependencies = [
"digest 0.9.0",
]
-[[package]]
-name = "hmac"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
-dependencies = [
- "crypto-mac 0.11.0",
- "digest 0.9.0",
-]
-
[[package]]
name = "hmac"
version = "0.12.1"
@@ -6934,7 +6941,7 @@ version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69fc56131589f82e57805f7338b87023db4aafef813555708b159787e34ad6bc"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
@@ -6993,14 +7000,15 @@ dependencies = [
[[package]]
name = "k256"
-version = "0.13.1"
+version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc"
+checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b"
dependencies = [
"cfg-if",
"ecdsa",
"elliptic-curve",
"once_cell",
+ "serdect",
"sha2 0.10.7",
]
@@ -7080,6 +7088,7 @@ dependencies = [
"pallet-lottery",
"pallet-membership",
"pallet-message-queue",
+ "pallet-migrations",
"pallet-mixnet",
"pallet-mmr",
"pallet-multisig",
@@ -7583,7 +7592,7 @@ version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f"
dependencies = [
- "heck",
+ "heck 0.4.1",
"quote",
"syn 1.0.109",
]
@@ -7836,9 +7845,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.20"
+version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
dependencies = [
"serde",
"value-bag",
@@ -7924,7 +7933,7 @@ dependencies = [
"macro_magic_core",
"macro_magic_macros",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -7938,7 +7947,7 @@ dependencies = [
"macro_magic_core_macros",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -7949,7 +7958,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -7960,7 +7969,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3"
dependencies = [
"macro_magic_core",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -8078,18 +8087,6 @@ dependencies = [
"hash-db",
]
-[[package]]
-name = "merlin"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
-dependencies = [
- "byteorder",
- "keccak",
- "rand_core 0.5.1",
- "zeroize",
-]
-
[[package]]
name = "merlin"
version = "3.0.0"
@@ -8126,15 +8123,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
-name = "minimal-node"
-version = "4.0.0-dev"
+name = "minimal-template-node"
+version = "0.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"frame",
"futures",
"futures-timer",
"jsonrpsee",
- "minimal-runtime",
+ "minimal-template-runtime",
"sc-basic-authorship",
"sc-cli",
"sc-client-api",
@@ -8161,12 +8158,12 @@ dependencies = [
]
[[package]]
-name = "minimal-runtime"
-version = "0.1.0"
+name = "minimal-template-runtime"
+version = "0.0.0"
dependencies = [
"frame",
- "frame-support",
"pallet-balances",
+ "pallet-minimal-template",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -8188,9 +8185,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.8.8"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
@@ -8598,7 +8595,7 @@ name = "node-bench"
version = "0.9.0-dev"
dependencies = [
"array-bytes 6.1.0",
- "clap 4.5.1",
+ "clap 4.5.3",
"derive_more",
"fs_extra",
"futures",
@@ -8675,60 +8672,16 @@ dependencies = [
name = "node-runtime-generate-bags"
version = "3.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"generate-bags",
"kitchensink-runtime",
]
-[[package]]
-name = "node-template"
-version = "4.0.0-dev"
-dependencies = [
- "clap 4.5.1",
- "frame-benchmarking",
- "frame-benchmarking-cli",
- "frame-system",
- "futures",
- "jsonrpsee",
- "node-template-runtime",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc",
- "sc-basic-authorship",
- "sc-cli",
- "sc-client-api",
- "sc-consensus",
- "sc-consensus-aura",
- "sc-consensus-grandpa",
- "sc-executor",
- "sc-network",
- "sc-offchain",
- "sc-rpc-api",
- "sc-service",
- "sc-telemetry",
- "sc-transaction-pool",
- "sc-transaction-pool-api",
- "serde_json",
- "sp-api",
- "sp-block-builder",
- "sp-blockchain",
- "sp-consensus-aura",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-inherents",
- "sp-io",
- "sp-keyring",
- "sp-runtime",
- "sp-timestamp",
- "substrate-build-script-utils",
- "substrate-frame-rpc-system",
- "try-runtime-cli",
-]
-
[[package]]
name = "node-template-release"
version = "3.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"flate2",
"fs_extra",
"glob",
@@ -8738,45 +8691,6 @@ dependencies = [
"toml_edit 0.19.15",
]
-[[package]]
-name = "node-template-runtime"
-version = "4.0.0-dev"
-dependencies = [
- "frame-benchmarking",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "pallet-aura",
- "pallet-balances",
- "pallet-grandpa",
- "pallet-sudo",
- "pallet-template",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
- "parity-scale-codec",
- "scale-info",
- "serde_json",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-genesis-builder",
- "sp-inherents",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-std 14.0.0",
- "sp-storage 19.0.0",
- "sp-transaction-pool",
- "sp-version",
- "substrate-wasm-builder",
-]
-
[[package]]
name = "node-testing"
version = "3.0.0-dev"
@@ -9300,8 +9214,8 @@ dependencies = [
name = "pallet-bags-list"
version = "27.0.0"
dependencies = [
- "aquamarine",
- "docify",
+ "aquamarine 0.5.0",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-election-provider-support",
"frame-support",
@@ -9349,7 +9263,7 @@ dependencies = [
name = "pallet-balances"
version = "28.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -9665,12 +9579,11 @@ dependencies = [
"anyhow",
"frame-system",
"parity-wasm",
- "polkavm-linker 0.5.0",
+ "polkavm-linker",
"sp-runtime",
"tempfile",
"toml 0.8.8",
"twox-hash",
- "wat",
]
[[package]]
@@ -9717,7 +9630,7 @@ version = "18.0.0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -9727,7 +9640,7 @@ dependencies = [
"bitflags 1.3.2",
"parity-scale-codec",
"paste",
- "polkavm-derive 0.5.0",
+ "polkavm-derive",
"scale-info",
]
@@ -9964,6 +9877,26 @@ dependencies = [
"sp-std 14.0.0",
]
+[[package]]
+name = "pallet-example-single-block-migrations"
+version = "0.0.1"
+dependencies = [
+ "docify 0.2.7",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-try-runtime",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-version",
+]
+
[[package]]
name = "pallet-example-split"
version = "10.0.0"
@@ -10005,6 +9938,7 @@ dependencies = [
"pallet-example-frame-crate",
"pallet-example-kitchensink",
"pallet-example-offchain-worker",
+ "pallet-example-single-block-migrations",
"pallet-example-split",
"pallet-example-tasks",
]
@@ -10013,7 +9947,7 @@ dependencies = [
name = "pallet-fast-unstake"
version = "27.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-election-provider-support",
"frame-support",
@@ -10211,26 +10145,59 @@ dependencies = [
]
[[package]]
-name = "pallet-mixnet"
-version = "0.4.0"
+name = "pallet-migrations"
+version = "1.0.0"
dependencies = [
+ "docify 0.1.16",
"frame-benchmarking",
+ "frame-executive",
"frame-support",
"frame-system",
+ "impl-trait-for-tuples",
"log",
"parity-scale-codec",
+ "pretty_assertions",
"scale-info",
- "serde",
- "sp-application-crypto",
- "sp-arithmetic",
+ "sp-api",
+ "sp-block-builder",
+ "sp-core",
"sp-io",
- "sp-mixnet",
"sp-runtime",
"sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+ "sp-version",
]
[[package]]
-name = "pallet-mmr"
+name = "pallet-minimal-template"
+version = "0.0.0"
+dependencies = [
+ "frame",
+ "parity-scale-codec",
+ "scale-info",
+]
+
+[[package]]
+name = "pallet-mixnet"
+version = "0.4.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-io",
+ "sp-mixnet",
+ "sp-runtime",
+ "sp-std 14.0.0",
+]
+
+[[package]]
+name = "pallet-mmr"
version = "27.0.0"
dependencies = [
"array-bytes 6.1.0",
@@ -10485,7 +10452,7 @@ dependencies = [
name = "pallet-paged-list"
version = "0.6.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10511,14 +10478,13 @@ dependencies = [
[[package]]
name = "pallet-parachain-template"
-version = "0.7.0"
+version = "0.0.0"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"parity-scale-codec",
"scale-info",
- "serde",
"sp-core",
"sp-io",
"sp-runtime",
@@ -10528,7 +10494,7 @@ dependencies = [
name = "pallet-parameters"
version = "0.0.1"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10689,7 +10655,7 @@ dependencies = [
name = "pallet-safe-mode"
version = "9.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10746,7 +10712,7 @@ dependencies = [
name = "pallet-scheduler"
version = "29.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10892,7 +10858,7 @@ dependencies = [
"proc-macro2",
"quote",
"sp-runtime",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -10959,7 +10925,7 @@ dependencies = [
name = "pallet-sudo"
version = "28.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10973,7 +10939,7 @@ dependencies = [
[[package]]
name = "pallet-template"
-version = "4.0.0-dev"
+version = "0.0.0"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10983,14 +10949,13 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
name = "pallet-timestamp"
version = "27.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11094,7 +11059,7 @@ dependencies = [
name = "pallet-treasury"
version = "27.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11114,7 +11079,7 @@ dependencies = [
name = "pallet-tx-pause"
version = "9.0.0"
dependencies = [
- "docify",
+ "docify 0.2.7",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11296,9 +11261,9 @@ dependencies = [
[[package]]
name = "parachain-template-node"
-version = "0.1.0"
+version = "0.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"color-print",
"cumulus-client-cli",
"cumulus-client-collator",
@@ -11354,7 +11319,7 @@ dependencies = [
[[package]]
name = "parachain-template-runtime"
-version = "0.7.0"
+version = "0.0.0"
dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
@@ -11471,6 +11436,19 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "parity-bip39"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9"
+dependencies = [
+ "bitcoin_hashes 0.13.0",
+ "rand",
+ "rand_core 0.6.4",
+ "serde",
+ "unicode-normalization",
+]
+
[[package]]
name = "parity-bytes"
version = "0.1.2"
@@ -11626,19 +11604,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156"
[[package]]
-name = "paste"
-version = "1.0.14"
+name = "password-hash"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle 2.5.0",
+]
[[package]]
-name = "pbkdf2"
-version = "0.8.0"
+name = "paste"
+version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa"
-dependencies = [
- "crypto-mac 0.11.0",
-]
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
[[package]]
name = "pbkdf2"
@@ -11647,6 +11627,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
dependencies = [
"digest 0.10.7",
+ "password-hash",
]
[[package]]
@@ -11673,9 +11654,8 @@ dependencies = [
"frame-support",
"parachains-common",
"penpal-runtime",
- "rococo-emulated-chain",
"sp-core",
- "westend-emulated-chain",
+ "staging-xcm",
]
[[package]]
@@ -11737,7 +11717,6 @@ dependencies = [
"staging-xcm-builder",
"staging-xcm-executor",
"substrate-wasm-builder",
- "testnet-parachains-constants",
]
[[package]]
@@ -11974,7 +11953,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -12015,7 +11994,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -12181,6 +12160,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "polkadot-subsystem-bench",
"rand",
"sc-network",
"schnellru",
@@ -12212,6 +12192,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "polkadot-subsystem-bench",
"rand",
"sc-network",
"schnellru",
@@ -12228,7 +12209,7 @@ name = "polkadot-cli"
version = "7.0.0"
dependencies = [
"cfg-if",
- "clap 4.5.1",
+ "clap 4.5.3",
"frame-benchmarking-cli",
"futures",
"log",
@@ -12415,6 +12396,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rstest",
"sp-core",
"sp-keyring",
"sp-maybe-compressed-blob",
@@ -12437,7 +12419,7 @@ dependencies = [
"kvdb",
"kvdb-memorydb",
"log",
- "merlin 3.0.0",
+ "merlin",
"parity-scale-codec",
"parking_lot 0.12.1",
"polkadot-node-jaeger",
@@ -12666,6 +12648,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rstest",
"sc-keystore",
"sp-application-crypto",
"sp-core",
@@ -12689,6 +12672,8 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rstest",
+ "schnellru",
"sp-application-crypto",
"sp-keystore",
"thiserror",
@@ -13075,7 +13060,7 @@ dependencies = [
"async-trait",
"bridge-hub-rococo-runtime",
"bridge-hub-westend-runtime",
- "clap 4.5.1",
+ "clap 4.5.3",
"collectives-westend-runtime",
"color-print",
"contracts-rococo-runtime",
@@ -13382,13 +13367,28 @@ version = "0.0.1"
dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
- "docify",
+ "docify 0.2.7",
"frame",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
"kitchensink-runtime",
+ "pallet-assets",
"pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collective",
"pallet-default-config-example",
+ "pallet-democracy",
+ "pallet-example-offchain-worker",
+ "pallet-example-single-block-migrations",
"pallet-examples",
+ "pallet-multisig",
+ "pallet-proxy",
+ "pallet-scheduler",
"pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-utility",
"parity-scale-codec",
"sc-cli",
"sc-client-db",
@@ -13407,7 +13407,9 @@ dependencies = [
"sp-core",
"sp-io",
"sp-keyring",
+ "sp-offchain",
"sp-runtime",
+ "sp-version",
"staging-chain-spec-builder",
"staging-node-cli",
"staging-parachain-info",
@@ -13422,6 +13424,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"async-trait",
+ "bitvec",
"env_logger 0.9.3",
"frame-benchmarking",
"frame-benchmarking-cli",
@@ -13593,7 +13596,7 @@ dependencies = [
"async-trait",
"bincode",
"bitvec",
- "clap 4.5.1",
+ "clap 4.5.3",
"clap-num",
"color-eyre",
"colored",
@@ -13635,7 +13638,7 @@ dependencies = [
"sc-keystore",
"sc-network",
"sc-service",
- "schnorrkel 0.9.1",
+ "schnorrkel 0.11.4",
"serde",
"serde_yaml",
"sha1",
@@ -13687,7 +13690,7 @@ version = "1.0.0"
dependencies = [
"assert_matches",
"async-trait",
- "clap 4.5.1",
+ "clap 4.5.3",
"color-eyre",
"futures",
"futures-timer",
@@ -13834,106 +13837,94 @@ dependencies = [
name = "polkadot-voter-bags"
version = "7.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"generate-bags",
"sp-io",
"westend-runtime",
]
[[package]]
-name = "polkavm-common"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88b4e215c80fe876147f3d58158d5dfeae7dabdd6047e175af77095b78d0035c"
-
-[[package]]
-name = "polkavm-common"
-version = "0.8.0"
+name = "polkavm"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817"
+checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
+dependencies = [
+ "libc",
+ "log",
+ "polkavm-assembler",
+ "polkavm-common",
+ "polkavm-linux-raw",
+]
[[package]]
-name = "polkavm-derive"
-version = "0.5.0"
+name = "polkavm-assembler"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6380dbe1fb03ecc74ad55d841cfc75480222d153ba69ddcb00977866cbdabdb8"
+checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1"
dependencies = [
- "polkavm-derive-impl 0.5.0",
- "syn 2.0.50",
+ "log",
]
[[package]]
-name = "polkavm-derive"
-version = "0.8.0"
+name = "polkavm-common"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125"
+checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92"
dependencies = [
- "polkavm-derive-impl-macro",
+ "log",
]
[[package]]
-name = "polkavm-derive-impl"
-version = "0.5.0"
+name = "polkavm-derive"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc8211b3365bbafb2fb32057d68b0e1ca55d079f5cf6f9da9b98079b94b3987d"
+checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
dependencies = [
- "polkavm-common 0.5.0",
- "proc-macro2",
- "quote",
- "syn 2.0.50",
+ "polkavm-derive-impl-macro",
]
[[package]]
name = "polkavm-derive-impl"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c"
+checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
dependencies = [
- "polkavm-common 0.8.0",
+ "polkavm-common",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
name = "polkavm-derive-impl-macro"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66"
+checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
dependencies = [
- "polkavm-derive-impl 0.8.0",
- "syn 2.0.50",
+ "polkavm-derive-impl",
+ "syn 2.0.53",
]
[[package]]
name = "polkavm-linker"
-version = "0.5.0"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5a668bb33c7f0b5f4ca91adb1e1e71cf4930fef5e6909f46c2180d65cce37d0"
+checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39"
dependencies = [
"gimli 0.28.0",
"hashbrown 0.14.3",
"log",
"object 0.32.2",
- "polkavm-common 0.5.0",
+ "polkavm-common",
"regalloc2 0.9.3",
"rustc-demangle",
]
[[package]]
-name = "polkavm-linker"
-version = "0.8.2"
+name = "polkavm-linux-raw"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdec1451cb18261d5d01de82acc15305e417fb59588cdcb3127d3dcc9672b925"
-dependencies = [
- "gimli 0.28.0",
- "hashbrown 0.14.3",
- "log",
- "object 0.32.2",
- "polkavm-common 0.8.0",
- "regalloc2 0.9.3",
- "rustc-demangle",
-]
+checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120"
[[package]]
name = "polling"
@@ -14107,7 +14098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
dependencies = [
"proc-macro2",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -14198,7 +14189,7 @@ checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -14270,7 +14261,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -14332,7 +14323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
dependencies = [
"bytes",
- "heck",
+ "heck 0.4.1",
"itertools 0.10.5",
"lazy_static",
"log",
@@ -14370,7 +14361,7 @@ dependencies = [
"itertools 0.11.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -14713,7 +14704,7 @@ checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -14801,7 +14792,7 @@ checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
name = "remote-ext-tests-bags-list"
version = "1.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"frame-system",
"log",
"pallet-bags-list-remote-tests",
@@ -14884,7 +14875,7 @@ dependencies = [
"blake2 0.10.6",
"common",
"fflonk",
- "merlin 3.0.0",
+ "merlin",
]
[[package]]
@@ -15204,7 +15195,7 @@ dependencies = [
"regex",
"relative-path",
"rustc_version 0.4.0",
- "syn 2.0.50",
+ "syn 2.0.53",
"unicode-ident",
]
@@ -15627,7 +15618,7 @@ name = "sc-chain-spec"
version = "27.0.0"
dependencies = [
"array-bytes 6.1.0",
- "docify",
+ "docify 0.2.7",
"log",
"memmap2 0.9.3",
"parity-scale-codec",
@@ -15658,7 +15649,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -15666,9 +15657,8 @@ name = "sc-cli"
version = "0.36.0"
dependencies = [
"array-bytes 6.1.0",
- "bip39",
"chrono",
- "clap 4.5.1",
+ "clap 4.5.3",
"fdlimit",
"futures",
"futures-timer",
@@ -15676,6 +15666,7 @@ dependencies = [
"libp2p-identity",
"log",
"names",
+ "parity-bip39",
"parity-scale-codec",
"rand",
"regex",
@@ -16147,6 +16138,7 @@ dependencies = [
"paste",
"regex",
"sc-executor-common",
+ "sc-executor-polkavm",
"sc-executor-wasmtime",
"sc-runtime-test",
"sc-tracing",
@@ -16176,6 +16168,7 @@ dependencies = [
name = "sc-executor-common"
version = "0.29.0"
dependencies = [
+ "polkavm",
"sc-allocator",
"sp-maybe-compressed-blob",
"sp-wasm-interface 20.0.0",
@@ -16183,6 +16176,16 @@ dependencies = [
"wasm-instrument",
]
+[[package]]
+name = "sc-executor-polkavm"
+version = "0.29.0"
+dependencies = [
+ "log",
+ "polkavm",
+ "sc-executor-common",
+ "sp-wasm-interface 20.0.0",
+]
+
[[package]]
name = "sc-executor-wasmtime"
version = "0.29.0"
@@ -16630,7 +16633,6 @@ dependencies = [
"hyper",
"jsonrpsee",
"log",
- "pin-project",
"serde_json",
"substrate-prometheus-endpoint",
"tokio",
@@ -16827,7 +16829,7 @@ dependencies = [
name = "sc-storage-monitor"
version = "0.16.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"fs4",
"log",
"sp-core",
@@ -16929,7 +16931,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -17067,22 +17069,6 @@ dependencies = [
"hashbrown 0.13.2",
]
-[[package]]
-name = "schnorrkel"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862"
-dependencies = [
- "arrayref",
- "arrayvec 0.5.2",
- "curve25519-dalek 2.1.3",
- "merlin 2.0.1",
- "rand_core 0.5.1",
- "sha2 0.8.2",
- "subtle 2.5.0",
- "zeroize",
-]
-
[[package]]
name = "schnorrkel"
version = "0.10.2"
@@ -17092,7 +17078,7 @@ dependencies = [
"arrayref",
"arrayvec 0.7.4",
"curve25519-dalek-ng",
- "merlin 3.0.0",
+ "merlin",
"rand_core 0.6.4",
"sha2 0.9.9",
"subtle-ng",
@@ -17110,7 +17096,7 @@ dependencies = [
"arrayvec 0.7.4",
"curve25519-dalek 4.1.2",
"getrandom_or_panic",
- "merlin 3.0.0",
+ "merlin",
"rand_core 0.6.4",
"serde_bytes",
"sha2 0.10.7",
@@ -17156,6 +17142,7 @@ dependencies = [
"der",
"generic-array 0.14.7",
"pkcs8",
+ "serdect",
"subtle 2.5.0",
"zeroize",
]
@@ -17346,7 +17333,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -17403,9 +17390,9 @@ dependencies = [
[[package]]
name = "serde_yaml"
-version = "0.9.32"
+version = "0.9.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
+checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
dependencies = [
"indexmap 2.2.3",
"itoa",
@@ -17414,6 +17401,16 @@ dependencies = [
"unsafe-libyaml",
]
+[[package]]
+name = "serdect"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177"
+dependencies = [
+ "base16ct",
+ "serde",
+]
+
[[package]]
name = "serial_test"
version = "2.0.0"
@@ -17436,7 +17433,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -17474,18 +17471,6 @@ dependencies = [
"digest 0.10.7",
]
-[[package]]
-name = "sha2"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
-dependencies = [
- "block-buffer 0.7.3",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug 0.2.3",
-]
-
[[package]]
name = "sha2"
version = "0.9.9"
@@ -17720,13 +17705,13 @@ dependencies = [
"hmac 0.12.1",
"itertools 0.11.0",
"libsecp256k1",
- "merlin 3.0.0",
+ "merlin",
"no-std-net",
"nom",
"num-bigint",
"num-rational",
"num-traits",
- "pbkdf2 0.12.2",
+ "pbkdf2",
"pin-project",
"poly1305 0.8.0",
"rand",
@@ -17818,7 +17803,7 @@ dependencies = [
[[package]]
name = "snowbridge-beacon-primitives"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"byte-slice-cast",
"frame-support",
@@ -17842,7 +17827,7 @@ dependencies = [
[[package]]
name = "snowbridge-core"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"ethabi-decode",
"frame-support",
@@ -17865,7 +17850,7 @@ dependencies = [
[[package]]
name = "snowbridge-ethereum"
-version = "0.1.0"
+version = "0.3.0"
dependencies = [
"ethabi-decode",
"ethbloom",
@@ -17904,7 +17889,7 @@ dependencies = [
[[package]]
name = "snowbridge-outbound-queue-merkle-tree"
-version = "0.1.1"
+version = "0.3.0"
dependencies = [
"array-bytes 4.2.0",
"env_logger 0.9.3",
@@ -17919,7 +17904,7 @@ dependencies = [
[[package]]
name = "snowbridge-outbound-queue-runtime-api"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -17933,7 +17918,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-ethereum-client"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"bp-runtime",
"byte-slice-cast",
@@ -17979,7 +17964,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-inbound-queue"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"alloy-primitives",
"alloy-rlp",
@@ -18012,7 +17997,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-inbound-queue-fixtures"
-version = "0.9.0"
+version = "0.10.0"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -18026,7 +18011,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-outbound-queue"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"bridge-hub-common",
"ethabi-decode",
@@ -18051,7 +18036,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-system"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"ethabi-decode",
"frame-benchmarking",
@@ -18079,7 +18064,7 @@ dependencies = [
[[package]]
name = "snowbridge-router-primitives"
-version = "0.0.0"
+version = "0.9.0"
dependencies = [
"ethabi-decode",
"frame-support",
@@ -18102,7 +18087,7 @@ dependencies = [
[[package]]
name = "snowbridge-runtime-common"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"frame-support",
"frame-system",
@@ -18118,7 +18103,7 @@ dependencies = [
[[package]]
name = "snowbridge-runtime-test-common"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"assets-common",
"bridge-hub-test-utils",
@@ -18195,7 +18180,7 @@ dependencies = [
[[package]]
name = "snowbridge-system-runtime-api"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"parity-scale-codec",
"snowbridge-core",
@@ -18242,6 +18227,87 @@ dependencies = [
"sha-1 0.9.8",
]
+[[package]]
+name = "solochain-template-node"
+version = "0.0.0"
+dependencies = [
+ "clap 4.5.3",
+ "frame-benchmarking-cli",
+ "frame-system",
+ "futures",
+ "jsonrpsee",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc",
+ "sc-basic-authorship",
+ "sc-cli",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-consensus-aura",
+ "sc-consensus-grandpa",
+ "sc-executor",
+ "sc-network",
+ "sc-offchain",
+ "sc-rpc-api",
+ "sc-service",
+ "sc-telemetry",
+ "sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "serde_json",
+ "solochain-template-runtime",
+ "sp-api",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-timestamp",
+ "substrate-build-script-utils",
+ "substrate-frame-rpc-system",
+ "try-runtime-cli",
+]
+
+[[package]]
+name = "solochain-template-runtime"
+version = "0.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "pallet-aura",
+ "pallet-balances",
+ "pallet-grandpa",
+ "pallet-sudo",
+ "pallet-template",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 14.0.0",
+ "sp-storage 19.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "substrate-wasm-builder",
+]
+
[[package]]
name = "sp-api"
version = "26.0.0"
@@ -18275,7 +18341,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -18337,7 +18403,6 @@ dependencies = [
"scale-info",
"serde",
"sp-crypto-hashing",
- "sp-std 14.0.0",
"static_assertions",
]
@@ -18379,7 +18444,6 @@ dependencies = [
"sp-api",
"sp-application-crypto",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18389,7 +18453,6 @@ dependencies = [
"sp-api",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18436,7 +18499,6 @@ dependencies = [
"sp-consensus-slots",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -18454,7 +18516,6 @@ dependencies = [
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -18475,7 +18536,6 @@ dependencies = [
"sp-keystore",
"sp-mmr-primitives",
"sp-runtime",
- "sp-std 14.0.0",
"strum 0.24.1",
"w3f-bls",
]
@@ -18494,7 +18554,6 @@ dependencies = [
"sp-core",
"sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18505,7 +18564,6 @@ dependencies = [
"sp-api",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18520,7 +18578,6 @@ dependencies = [
"sp-consensus-slots",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18530,7 +18587,6 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"serde",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -18540,7 +18596,6 @@ version = "28.0.0"
dependencies = [
"array-bytes 6.1.0",
"bandersnatch_vrfs",
- "bip39",
"bitflags 1.3.2",
"blake2 0.10.6",
"bounded-collections",
@@ -18553,10 +18608,12 @@ dependencies = [
"hash256-std-hasher",
"impl-serde",
"itertools 0.10.5",
+ "k256",
"lazy_static",
"libsecp256k1",
"log",
- "merlin 3.0.0",
+ "merlin",
+ "parity-bip39",
"parity-scale-codec",
"parking_lot 0.12.1",
"paste",
@@ -18645,7 +18702,6 @@ dependencies = [
"ark-ed-on-bls12-381-bandersnatch-ext",
"ark-scale 0.0.12",
"sp-runtime-interface 24.0.0",
- "sp-std 14.0.0",
]
[[package]]
@@ -18668,7 +18724,7 @@ version = "0.0.0"
dependencies = [
"quote",
"sp-crypto-hashing",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -18686,7 +18742,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf5
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -18695,7 +18751,7 @@ version = "14.0.0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -18715,7 +18771,6 @@ version = "0.25.0"
dependencies = [
"environmental",
"parity-scale-codec",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
]
@@ -18726,7 +18781,6 @@ dependencies = [
"serde_json",
"sp-api",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18739,7 +18793,6 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
]
@@ -18752,6 +18805,7 @@ dependencies = [
"libsecp256k1",
"log",
"parity-scale-codec",
+ "polkavm-derive",
"rustversion",
"secp256k1",
"sp-core",
@@ -18803,7 +18857,6 @@ dependencies = [
"frame-metadata",
"parity-scale-codec",
"scale-info",
- "sp-std 14.0.0",
]
[[package]]
@@ -18814,7 +18867,6 @@ dependencies = [
"scale-info",
"sp-api",
"sp-application-crypto",
- "sp-std 14.0.0",
]
[[package]]
@@ -18831,7 +18883,6 @@ dependencies = [
"sp-core",
"sp-debug-derive 14.0.0",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
]
@@ -18846,7 +18897,6 @@ dependencies = [
"sp-arithmetic",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
"substrate-test-utils",
]
@@ -18854,7 +18904,7 @@ dependencies = [
name = "sp-npos-elections-fuzzer"
version = "2.0.0-alpha.5"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"honggfuzz",
"rand",
"sp-npos-elections",
@@ -18893,7 +18943,7 @@ dependencies = [
name = "sp-runtime"
version = "31.0.1"
dependencies = [
- "docify",
+ "docify 0.2.7",
"either",
"hash256-std-hasher",
"impl-trait-for-tuples",
@@ -18943,7 +18993,7 @@ dependencies = [
"bytes",
"impl-trait-for-tuples",
"parity-scale-codec",
- "polkavm-derive 0.8.0",
+ "polkavm-derive",
"primitive-types",
"rustversion",
"sp-core",
@@ -18969,7 +19019,7 @@ dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -18981,7 +19031,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -19033,7 +19083,6 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -19046,7 +19095,6 @@ dependencies = [
"serde",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -19066,7 +19114,6 @@ dependencies = [
"sp-externalities 0.25.0",
"sp-panic-handler",
"sp-runtime",
- "sp-std 14.0.0",
"sp-trie",
"thiserror",
"tracing",
@@ -19092,7 +19139,6 @@ dependencies = [
"sp-externalities 0.25.0",
"sp-runtime",
"sp-runtime-interface 24.0.0",
- "sp-std 14.0.0",
"thiserror",
"x25519-dalek 2.0.0",
]
@@ -19128,7 +19174,6 @@ dependencies = [
"ref-cast",
"serde",
"sp-debug-derive 14.0.0",
- "sp-std 14.0.0",
]
[[package]]
@@ -19141,7 +19186,6 @@ dependencies = [
"sp-application-crypto",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -19152,7 +19196,6 @@ dependencies = [
"parity-scale-codec",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
]
@@ -19173,7 +19216,6 @@ name = "sp-tracing"
version = "16.0.0"
dependencies = [
"parity-scale-codec",
- "sp-std 14.0.0",
"tracing",
"tracing-core",
"tracing-subscriber 0.2.25",
@@ -19197,7 +19239,6 @@ dependencies = [
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"sp-trie",
]
@@ -19220,7 +19261,6 @@ dependencies = [
"sp-core",
"sp-externalities 0.25.0",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
"tracing",
"trie-bench",
@@ -19253,7 +19293,7 @@ dependencies = [
"proc-macro2",
"quote",
"sp-version",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -19277,7 +19317,6 @@ dependencies = [
"impl-trait-for-tuples",
"log",
"parity-scale-codec",
- "sp-std 14.0.0",
"wasmtime",
]
@@ -19293,7 +19332,6 @@ dependencies = [
"smallvec",
"sp-arithmetic",
"sp-debug-derive 14.0.0",
- "sp-std 14.0.0",
]
[[package]]
@@ -19377,7 +19415,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
name = "staging-chain-spec-builder"
version = "2.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"log",
"sc-chain-spec",
"serde_json",
@@ -19390,7 +19428,7 @@ version = "3.0.0-dev"
dependencies = [
"array-bytes 6.1.0",
"assert_cmd",
- "clap 4.5.1",
+ "clap 4.5.3",
"clap_complete",
"criterion 0.4.0",
"frame-benchmarking",
@@ -19500,7 +19538,7 @@ dependencies = [
name = "staging-node-inspect"
version = "0.12.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"parity-scale-codec",
"sc-cli",
"sc-client-api",
@@ -19681,7 +19719,7 @@ version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
@@ -19694,31 +19732,31 @@ version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
- "heck",
+ "heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
name = "subkey"
version = "9.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"sc-cli",
]
[[package]]
name = "substrate-bip39"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328"
+version = "0.4.7"
dependencies = [
- "hmac 0.11.0",
- "pbkdf2 0.8.0",
- "schnorrkel 0.9.1",
- "sha2 0.9.9",
+ "bip39",
+ "hmac 0.12.1",
+ "pbkdf2",
+ "rustc-hex",
+ "schnorrkel 0.11.4",
+ "sha2 0.10.7",
"zeroize",
]
@@ -19747,7 +19785,7 @@ dependencies = [
name = "substrate-frame-cli"
version = "32.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"frame-support",
"frame-system",
"sc-cli",
@@ -19904,7 +19942,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"sp-transaction-pool",
"sp-trie",
@@ -19965,7 +20002,7 @@ dependencies = [
"console",
"filetime",
"parity-wasm",
- "polkavm-linker 0.8.2",
+ "polkavm-linker",
"sp-maybe-compressed-blob",
"strum 0.24.1",
"tempfile",
@@ -20096,9 +20133,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.50"
+version = "2.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
dependencies = [
"proc-macro2",
"quote",
@@ -20114,7 +20151,7 @@ dependencies = [
"paste",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -20228,7 +20265,7 @@ dependencies = [
name = "test-parachain-adder-collator"
version = "1.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"futures",
"futures-timer",
"log",
@@ -20276,7 +20313,7 @@ dependencies = [
name = "test-parachain-undying-collator"
version = "1.0.0"
dependencies = [
- "clap 4.5.1",
+ "clap 4.5.3",
"futures",
"futures-timer",
"log",
@@ -20379,7 +20416,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -20540,7 +20577,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -20747,7 +20784,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -20789,7 +20826,7 @@ dependencies = [
"proc-macro-crate 3.0.0",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
@@ -20971,7 +21008,7 @@ version = "0.38.0"
dependencies = [
"assert_cmd",
"async-trait",
- "clap 4.5.1",
+ "clap 4.5.3",
"frame-remote-externalities",
"frame-try-runtime",
"hex",
@@ -21144,9 +21181,9 @@ dependencies = [
[[package]]
name = "unsafe-libyaml"
-version = "0.2.10"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
name = "unsigned-varint"
@@ -21209,9 +21246,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "value-bag"
-version = "1.4.1"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
+checksum = "8fec26a25bd6fca441cdd0f769fd7f891bae119f996de31f86a5eddccef54c1d"
dependencies = [
"value-bag-serde1",
"value-bag-sval2",
@@ -21219,9 +21256,9 @@ dependencies = [
[[package]]
name = "value-bag-serde1"
-version = "1.4.1"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0b9f3feef403a50d4d67e9741a6d8fc688bcbb4e4f31bd4aab72cc690284394"
+checksum = "ead5b693d906686203f19a49e88c477fb8c15798b68cf72f60b4b5521b4ad891"
dependencies = [
"erased-serde",
"serde",
@@ -21230,9 +21267,9 @@ dependencies = [
[[package]]
name = "value-bag-sval2"
-version = "1.4.1"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30b24f4146b6f3361e91cbf527d1fb35e9376c3c0cef72ca5ec5af6d640fad7d"
+checksum = "3b9d0f4a816370c3a0d7d82d603b62198af17675b12fe5e91de6b47ceb505882"
dependencies = [
"sval",
"sval_buffer",
@@ -21354,7 +21391,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
"wasm-bindgen-shared",
]
@@ -21388,7 +21425,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -22405,7 +22442,7 @@ dependencies = [
"proc-macro2",
"quote",
"staging-xcm",
- "syn 2.0.50",
+ "syn 2.0.53",
"trybuild",
]
@@ -22527,14 +22564,14 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
dependencies = [
"zeroize_derive",
]
@@ -22547,7 +22584,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.50",
+ "syn 2.0.53",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 1d27cfe95392b32a4d867595ace4733beeb2ff69..01d6ef8e87bdaf4dcf0e4f73dfde59df76f500c4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,6 +3,7 @@ authors = ["Parity Technologies "]
edition = "2021"
repository = "https://github.com/paritytech/polkadot-sdk.git"
license = "GPL-3.0-only"
+homepage = "https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html"
[workspace]
resolver = "2"
@@ -74,9 +75,6 @@ members = [
"cumulus/pallets/solo-to-para",
"cumulus/pallets/xcm",
"cumulus/pallets/xcmp-queue",
- "cumulus/parachain-template/node",
- "cumulus/parachain-template/pallets/template",
- "cumulus/parachain-template/runtime",
"cumulus/parachains/common",
"cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo",
"cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend",
@@ -219,11 +217,6 @@ members = [
"polkadot/xcm/xcm-simulator",
"polkadot/xcm/xcm-simulator/example",
"polkadot/xcm/xcm-simulator/fuzzer",
- "substrate/bin/minimal/node",
- "substrate/bin/minimal/runtime",
- "substrate/bin/node-template/node",
- "substrate/bin/node-template/pallets/template",
- "substrate/bin/node-template/runtime",
"substrate/bin/node/bench",
"substrate/bin/node/cli",
"substrate/bin/node/inspect",
@@ -256,6 +249,7 @@ members = [
"substrate/client/db",
"substrate/client/executor",
"substrate/client/executor/common",
+ "substrate/client/executor/polkavm",
"substrate/client/executor/runtime-test",
"substrate/client/executor/wasmtime",
"substrate/client/informant",
@@ -337,6 +331,7 @@ members = [
"substrate/frame/examples/frame-crate",
"substrate/frame/examples/kitchensink",
"substrate/frame/examples/offchain-worker",
+ "substrate/frame/examples/single-block-migrations",
"substrate/frame/examples/split",
"substrate/frame/examples/tasks",
"substrate/frame/executive",
@@ -351,6 +346,7 @@ members = [
"substrate/frame/membership",
"substrate/frame/merkle-mountain-range",
"substrate/frame/message-queue",
+ "substrate/frame/migrations",
"substrate/frame/mixnet",
"substrate/frame/multisig",
"substrate/frame/nft-fractionalization",
@@ -501,7 +497,20 @@ members = [
"substrate/utils/frame/rpc/system",
"substrate/utils/frame/try-runtime/cli",
"substrate/utils/prometheus",
+ "substrate/utils/substrate-bip39",
"substrate/utils/wasm-builder",
+
+ "templates/minimal/node",
+ "templates/minimal/pallets/template",
+ "templates/minimal/runtime",
+
+ "templates/solochain/node",
+ "templates/solochain/pallets/template",
+ "templates/solochain/runtime",
+
+ "templates/parachain/node",
+ "templates/parachain/pallets/template",
+ "templates/parachain/runtime",
]
default-members = ["polkadot", "substrate/bin/node/cli"]
@@ -535,16 +544,17 @@ extra-unused-type-parameters = { level = "allow", priority = 2 } # stylistic
default_constructed_unit_structs = { level = "allow", priority = 2 } # stylistic
[workspace.dependencies]
-polkavm-linker = "0.8.2"
-polkavm-derive = "0.8.0"
-log = { version = "0.4.20", default-features = false }
+polkavm = "0.9.3"
+polkavm-linker = "0.9.2"
+polkavm-derive = "0.9.1"
+log = { version = "0.4.21", default-features = false }
quote = { version = "1.0.33" }
serde = { version = "1.0.197", default-features = false }
serde-big-array = { version = "0.3.2" }
serde_derive = { version = "1.0.117" }
serde_json = { version = "1.0.114", default-features = false }
serde_yaml = { version = "0.9" }
-syn = { version = "2.0.50" }
+syn = { version = "2.0.53" }
thiserror = { version = "1.0.48" }
[profile.release]
diff --git a/bridges/bin/runtime-common/src/mock.rs b/bridges/bin/runtime-common/src/mock.rs
index 8877a4fd95ce33150824b78674f38860616cf820..deee4524e8586d45c01f08126e84b9c619cfeba2 100644
--- a/bridges/bin/runtime-common/src/mock.rs
+++ b/bridges/bin/runtime-common/src/mock.rs
@@ -141,7 +141,7 @@ parameter_types! {
pub const ReserveId: [u8; 8] = *b"brdgrlrs";
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Hash = ThisChainHash;
type Hashing = ThisChainHasher;
@@ -158,12 +158,13 @@ impl pallet_utility::Config for TestRuntime {
type WeightInfo = ();
}
-#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
+#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)]
impl pallet_balances::Config for TestRuntime {
type ReserveIdentifier = [u8; 8];
type AccountStore = System;
}
+#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig)]
impl pallet_transaction_payment::Config for TestRuntime {
type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter;
type OperationalFeeMultiplier = ConstU8<5>;
diff --git a/bridges/bin/runtime-common/src/priority_calculator.rs b/bridges/bin/runtime-common/src/priority_calculator.rs
index a597fb9e2f49289360acfd7ee305b44eb7874a3e..c2737128e3422dd72ca3b49d66151268d719e0bc 100644
--- a/bridges/bin/runtime-common/src/priority_calculator.rs
+++ b/bridges/bin/runtime-common/src/priority_calculator.rs
@@ -128,7 +128,7 @@ mod integrity_tests {
Runtime::RuntimeCall: Dispatchable,
BalanceOf: Send + Sync + FixedPointOperand,
{
- // esimate priority of transaction that delivers one message and has large tip
+ // estimate priority of transaction that delivers one message and has large tip
let maximal_messages_in_delivery_transaction =
Runtime::MaxUnconfirmedMessagesAtInboundLane::get();
let small_with_tip_priority =
diff --git a/bridges/bin/runtime-common/src/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/refund_relayer_extension.rs
index bfcb82ad166c3a2a60891c1e18f2ad22e085cb1b..8e901d72821fe1dfb749f4227c2875f1d807fccc 100644
--- a/bridges/bin/runtime-common/src/refund_relayer_extension.rs
+++ b/bridges/bin/runtime-common/src/refund_relayer_extension.rs
@@ -16,7 +16,7 @@
//! Signed extension that refunds relayer if he has delivered some new messages.
//! It also refunds transaction cost if the transaction is an `utility.batchAll()`
-//! with calls that are: delivering new messsage and all necessary underlying headers
+//! with calls that are: delivering new message and all necessary underlying headers
//! (parachain or relay chain).
use crate::messages_call_ext::{
diff --git a/bridges/modules/grandpa/README.md b/bridges/modules/grandpa/README.md
index 43ee5c316d1b76ec8fc94b0c3819b1340a6ce75c..992bd2cc47228249310c56747416b07be6e1e287 100644
--- a/bridges/modules/grandpa/README.md
+++ b/bridges/modules/grandpa/README.md
@@ -27,7 +27,7 @@ for provided header.
There are two main things in GRANDPA that help building light clients:
- there's no need to import all headers of the bridged chain. Light client may import finalized headers or just
- some of finalized headders that it consider useful. While the validators set stays the same, the client may
+ some of finalized headers that it consider useful. While the validators set stays the same, the client may
import any header that is finalized by this set;
- when validators set changes, the GRANDPA gadget adds next set to the header. So light client doesn't need to
diff --git a/bridges/modules/grandpa/src/mock.rs b/bridges/modules/grandpa/src/mock.rs
index e41e89341b312eb252bddce6e918e8367a5ce27f..4318d663a2e17fe80199830d443f5b6a85fae441 100644
--- a/bridges/modules/grandpa/src/mock.rs
+++ b/bridges/modules/grandpa/src/mock.rs
@@ -42,7 +42,7 @@ construct_runtime! {
}
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Block = Block;
}
diff --git a/bridges/modules/messages/src/mock.rs b/bridges/modules/messages/src/mock.rs
index af92120539854347111d0562e284dc59e6e251d9..ec63f15b94b5205d744b1379bd6697a4ae43534a 100644
--- a/bridges/modules/messages/src/mock.rs
+++ b/bridges/modules/messages/src/mock.rs
@@ -77,14 +77,14 @@ frame_support::construct_runtime! {
pub type DbWeight = RocksDbWeight;
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Block = Block;
type AccountData = pallet_balances::AccountData;
type DbWeight = DbWeight;
}
-#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
+#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)]
impl pallet_balances::Config for TestRuntime {
type ReserveIdentifier = [u8; 8];
type AccountStore = System;
diff --git a/bridges/modules/parachains/src/mock.rs b/bridges/modules/parachains/src/mock.rs
index 143f11d986371c4907f79fc4faf55143d3679034..3af3fd3e76398eaefdb7a9380344371ec44d27d7 100644
--- a/bridges/modules/parachains/src/mock.rs
+++ b/bridges/modules/parachains/src/mock.rs
@@ -161,7 +161,7 @@ construct_runtime! {
}
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Block = Block;
}
diff --git a/bridges/modules/relayers/src/mock.rs b/bridges/modules/relayers/src/mock.rs
index 667b10e5c125ed74bad2aa7796756f372578c2ce..3124787896c3e1ee20014fc21b87ccbc19e6a2c2 100644
--- a/bridges/modules/relayers/src/mock.rs
+++ b/bridges/modules/relayers/src/mock.rs
@@ -59,14 +59,14 @@ parameter_types! {
pub const Lease: BlockNumber = 8;
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Block = Block;
type AccountData = pallet_balances::AccountData;
type DbWeight = DbWeight;
}
-#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
+#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)]
impl pallet_balances::Config for TestRuntime {
type ReserveIdentifier = [u8; 8];
type AccountStore = System;
diff --git a/bridges/modules/xcm-bridge-hub-router/src/mock.rs b/bridges/modules/xcm-bridge-hub-router/src/mock.rs
index 6dbfba5f6fdc1f521fb2fdf000ffb778740435e6..54e10966d51b23e7be5010b39cb9cb7d6a3b0118 100644
--- a/bridges/modules/xcm-bridge-hub-router/src/mock.rs
+++ b/bridges/modules/xcm-bridge-hub-router/src/mock.rs
@@ -64,7 +64,7 @@ parameter_types! {
pub UnknownXcmVersionLocation: Location = Location::new(2, [GlobalConsensus(BridgedNetworkId::get()), Parachain(9999)]);
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Block = Block;
}
diff --git a/bridges/modules/xcm-bridge-hub/src/mock.rs b/bridges/modules/xcm-bridge-hub/src/mock.rs
index e40e1f9fb65157feffebeaa53e16c7def2ad22e0..4c09bce56d73eea717ad5149084e2ae337e48e87 100644
--- a/bridges/modules/xcm-bridge-hub/src/mock.rs
+++ b/bridges/modules/xcm-bridge-hub/src/mock.rs
@@ -64,7 +64,7 @@ parameter_types! {
pub const ExistentialDeposit: Balance = 1;
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type AccountId = AccountId;
type AccountData = pallet_balances::AccountData;
@@ -72,7 +72,7 @@ impl frame_system::Config for TestRuntime {
type Lookup = IdentityLookup;
}
-#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
+#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)]
impl pallet_balances::Config for TestRuntime {
type AccountStore = System;
}
diff --git a/bridges/primitives/test-utils/src/lib.rs b/bridges/primitives/test-utils/src/lib.rs
index f23ddd1a10d3681900b024999aef279ea6fcb91d..1d80890779bf8310b393d585749e96f9577196a1 100644
--- a/bridges/primitives/test-utils/src/lib.rs
+++ b/bridges/primitives/test-utils/src/lib.rs
@@ -129,7 +129,7 @@ pub fn make_justification_for_header(
votes_ancestries.push(child.clone());
}
- // The header we need to use when pre-commiting is the one at the highest height
+ // The header we need to use when pre-committing is the one at the highest height
// on our chain.
let precommit_candidate = chain.last().map(|h| (h.hash(), *h.number())).unwrap();
unsigned_precommits.push(precommit_candidate);
diff --git a/bridges/snowbridge/pallets/ethereum-client/Cargo.toml b/bridges/snowbridge/pallets/ethereum-client/Cargo.toml
index 99b4290531145dba85521574a6d5004e7696cb08..c8999633c97abb00174e38e16ed5618e7baf0b59 100644
--- a/bridges/snowbridge/pallets/ethereum-client/Cargo.toml
+++ b/bridges/snowbridge/pallets/ethereum-client/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-pallet-ethereum-client"
description = "Snowbridge Ethereum Client Pallet"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/ethereum-client/src/mock.rs b/bridges/snowbridge/pallets/ethereum-client/src/mock.rs
index 3ce34eee191ac48fa95789e03d88e54ff017a2d7..799b14f4773e421a37b75d226d7829ce8bb7dcf6 100644
--- a/bridges/snowbridge/pallets/ethereum-client/src/mock.rs
+++ b/bridges/snowbridge/pallets/ethereum-client/src/mock.rs
@@ -95,7 +95,7 @@ frame_support::construct_runtime!(
}
);
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for Test {
type Block = Block;
}
diff --git a/bridges/snowbridge/pallets/inbound-queue/Cargo.toml b/bridges/snowbridge/pallets/inbound-queue/Cargo.toml
index c26ef90a22dbeca766cb7064c1947b52c2e99794..b850496cd4e14cd906565d488450b339a29f463f 100644
--- a/bridges/snowbridge/pallets/inbound-queue/Cargo.toml
+++ b/bridges/snowbridge/pallets/inbound-queue/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-pallet-inbound-queue"
description = "Snowbridge Inbound Queue Pallet"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/inbound-queue/fixtures/Cargo.toml b/bridges/snowbridge/pallets/inbound-queue/fixtures/Cargo.toml
index 61f1421e056773c4f078390f9c48f7b8fa0420d3..64605a42f0d383d838429eb9b82b5f6cf238ab09 100644
--- a/bridges/snowbridge/pallets/inbound-queue/fixtures/Cargo.toml
+++ b/bridges/snowbridge/pallets/inbound-queue/fixtures/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-pallet-inbound-queue-fixtures"
description = "Snowbridge Inbound Queue Test Fixtures"
-version = "0.9.0"
+version = "0.10.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/inbound-queue/src/mock.rs b/bridges/snowbridge/pallets/inbound-queue/src/mock.rs
index 110f611c6766020039bd1f73def900914da8cae2..086b27cb8280a5357b56e50065124c0d20f0e5a7 100644
--- a/bridges/snowbridge/pallets/inbound-queue/src/mock.rs
+++ b/bridges/snowbridge/pallets/inbound-queue/src/mock.rs
@@ -3,7 +3,7 @@
use super::*;
use frame_support::{
- parameter_types,
+ derive_impl, parameter_types,
traits::{ConstU128, ConstU32, Everything},
weights::IdentityFee,
};
@@ -47,10 +47,9 @@ parameter_types! {
type Balance = u128;
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for Test {
type BaseCallFilter = Everything;
- type BlockWeights = ();
- type BlockLength = ();
type RuntimeOrigin = RuntimeOrigin;
type RuntimeCall = RuntimeCall;
type RuntimeTask = RuntimeTask;
@@ -60,16 +59,8 @@ impl frame_system::Config for Test {
type Lookup = IdentityLookup;
type RuntimeEvent = RuntimeEvent;
type BlockHashCount = BlockHashCount;
- type DbWeight = ();
- type Version = ();
type PalletInfo = PalletInfo;
type AccountData = pallet_balances::AccountData;
- type OnNewAccount = ();
- type OnKilledAccount = ();
- type SystemWeightInfo = ();
- type SS58Prefix = ();
- type OnSetCode = ();
- type MaxConsumers = frame_support::traits::ConstU32<16>;
type Nonce = u64;
type Block = Block;
}
diff --git a/bridges/snowbridge/pallets/outbound-queue/Cargo.toml b/bridges/snowbridge/pallets/outbound-queue/Cargo.toml
index 40e57db4bbd9e5d6e32cee84e586a8858b2222cf..f16a28cb1e457d9ebfb7804fa013e5b57858f79e 100644
--- a/bridges/snowbridge/pallets/outbound-queue/Cargo.toml
+++ b/bridges/snowbridge/pallets/outbound-queue/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-pallet-outbound-queue"
description = "Snowbridge Outbound Queue Pallet"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml b/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml
index c185d5af7062045f40946fcbd3c45cb62b932216..0606e9de33056c9dffae50befcc1da5e865dca44 100644
--- a/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml
+++ b/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-outbound-queue-merkle-tree"
description = "Snowbridge Outbound Queue Merkle Tree"
-version = "0.1.1"
+version = "0.3.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/outbound-queue/runtime-api/Cargo.toml b/bridges/snowbridge/pallets/outbound-queue/runtime-api/Cargo.toml
index 347b3bae493b7491790854be7a28f82386d2ee4b..cb68fd0a250a92e7f6a6693f3aebf1c8553308aa 100644
--- a/bridges/snowbridge/pallets/outbound-queue/runtime-api/Cargo.toml
+++ b/bridges/snowbridge/pallets/outbound-queue/runtime-api/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-outbound-queue-runtime-api"
description = "Snowbridge Outbound Queue Runtime API"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/outbound-queue/src/mock.rs b/bridges/snowbridge/pallets/outbound-queue/src/mock.rs
index dd8fee4e2ed08ec0f3090b765fa882b063a98300..850b13dcf310e0b5660f5d80685787761380bd2f 100644
--- a/bridges/snowbridge/pallets/outbound-queue/src/mock.rs
+++ b/bridges/snowbridge/pallets/outbound-queue/src/mock.rs
@@ -3,7 +3,7 @@
use super::*;
use frame_support::{
- parameter_types,
+ derive_impl, parameter_types,
traits::{Everything, Hooks},
weights::IdentityFee,
};
@@ -37,10 +37,9 @@ parameter_types! {
pub const BlockHashCount: u64 = 250;
}
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for Test {
type BaseCallFilter = Everything;
- type BlockWeights = ();
- type BlockLength = ();
type RuntimeOrigin = RuntimeOrigin;
type RuntimeCall = RuntimeCall;
type RuntimeTask = RuntimeTask;
@@ -50,16 +49,7 @@ impl frame_system::Config for Test {
type Lookup = IdentityLookup;
type RuntimeEvent = RuntimeEvent;
type BlockHashCount = BlockHashCount;
- type DbWeight = ();
- type Version = ();
type PalletInfo = PalletInfo;
- type AccountData = ();
- type OnNewAccount = ();
- type OnKilledAccount = ();
- type SystemWeightInfo = ();
- type SS58Prefix = ();
- type OnSetCode = ();
- type MaxConsumers = frame_support::traits::ConstU32<16>;
type Nonce = u64;
type Block = Block;
}
diff --git a/bridges/snowbridge/pallets/system/Cargo.toml b/bridges/snowbridge/pallets/system/Cargo.toml
index f6c642e7376f7f068af1fe3c2cf9b11a2c50f2cc..5ad04290de044a2c8ed13aa092f5ea033aaafb97 100644
--- a/bridges/snowbridge/pallets/system/Cargo.toml
+++ b/bridges/snowbridge/pallets/system/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-pallet-system"
description = "Snowbridge System Pallet"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/system/runtime-api/Cargo.toml b/bridges/snowbridge/pallets/system/runtime-api/Cargo.toml
index 355d2d29147f3cd84ae013363db874c9b9739b8e..eb02ae1db529730f51743e79a322e54db44fee51 100644
--- a/bridges/snowbridge/pallets/system/runtime-api/Cargo.toml
+++ b/bridges/snowbridge/pallets/system/runtime-api/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-system-runtime-api"
description = "Snowbridge System Runtime API"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/pallets/system/src/mock.rs b/bridges/snowbridge/pallets/system/src/mock.rs
index edc3f141b0735d7439b120c51da836fb8a77bd04..a711eab5d3d4ea5068af634fedbbc173f8186395 100644
--- a/bridges/snowbridge/pallets/system/src/mock.rs
+++ b/bridges/snowbridge/pallets/system/src/mock.rs
@@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: 2023 Snowfork
use crate as snowbridge_system;
use frame_support::{
- parameter_types,
- traits::{tokens::fungible::Mutate, ConstU128, ConstU16, ConstU64, ConstU8},
+ derive_impl, parameter_types,
+ traits::{tokens::fungible::Mutate, ConstU128, ConstU64, ConstU8},
weights::IdentityFee,
PalletId,
};
@@ -95,11 +95,9 @@ frame_support::construct_runtime!(
}
);
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for Test {
type BaseCallFilter = frame_support::traits::Everything;
- type BlockWeights = ();
- type BlockLength = ();
- type DbWeight = ();
type RuntimeOrigin = RuntimeOrigin;
type RuntimeCall = RuntimeCall;
type RuntimeTask = RuntimeTask;
@@ -109,15 +107,8 @@ impl frame_system::Config for Test {
type Lookup = IdentityLookup;
type RuntimeEvent = RuntimeEvent;
type BlockHashCount = ConstU64<250>;
- type Version = ();
type PalletInfo = PalletInfo;
type AccountData = pallet_balances::AccountData;
- type OnNewAccount = ();
- type OnKilledAccount = ();
- type SystemWeightInfo = ();
- type SS58Prefix = ConstU16<42>;
- type OnSetCode = ();
- type MaxConsumers = frame_support::traits::ConstU32<16>;
type Nonce = u64;
type Block = Block;
}
diff --git a/bridges/snowbridge/parachain/pallets/ethereum-beacon-client/src/mock.rs b/bridges/snowbridge/parachain/pallets/ethereum-beacon-client/src/mock.rs
new file mode 100644
index 0000000000000000000000000000000000000000..d2cca373e92bd1a70f2ee68a7913214967b2dec0
--- /dev/null
+++ b/bridges/snowbridge/parachain/pallets/ethereum-beacon-client/src/mock.rs
@@ -0,0 +1,259 @@
+// SPDX-License-Identifier: Apache-2.0
+// SPDX-FileCopyrightText: 2023 Snowfork
+use crate as ethereum_beacon_client;
+use frame_support::parameter_types;
+use pallet_timestamp;
+use primitives::{Fork, ForkVersions};
+use sp_core::H256;
+use sp_runtime::traits::{BlakeTwo256, IdentityLookup};
+
+#[cfg(not(feature = "beacon-spec-mainnet"))]
+pub mod minimal {
+ use super::*;
+
+ use crate::config;
+ use frame_support::derive_impl;
+ use hex_literal::hex;
+ use primitives::CompactExecutionHeader;
+ use snowbridge_core::inbound::{Log, Proof};
+ use sp_runtime::BuildStorage;
+ use std::{fs::File, path::PathBuf};
+
+ type Block = frame_system::mocking::MockBlock;
+
+ frame_support::construct_runtime!(
+ pub enum Test {
+ System: frame_system::{Pallet, Call, Storage, Event},
+ Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
+ EthereumBeaconClient: ethereum_beacon_client::{Pallet, Call, Storage, Event},
+ }
+ );
+
+ parameter_types! {
+ pub const BlockHashCount: u64 = 250;
+ pub const SS58Prefix: u8 = 42;
+ }
+
+ #[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
+ impl frame_system::Config for Test {
+ type BaseCallFilter = frame_support::traits::Everything;
+ type RuntimeOrigin = RuntimeOrigin;
+ type RuntimeCall = RuntimeCall;
+ type RuntimeTask = RuntimeTask;
+ type Hash = H256;
+ type Hashing = BlakeTwo256;
+ type AccountId = u64;
+ type Lookup = IdentityLookup;
+ type RuntimeEvent = RuntimeEvent;
+ type BlockHashCount = BlockHashCount;
+ type PalletInfo = PalletInfo;
+ type SS58Prefix = SS58Prefix;
+ type Nonce = u64;
+ type Block = Block;
+ }
+
+ impl pallet_timestamp::Config for Test {
+ type Moment = u64;
+ type OnTimestampSet = ();
+ type MinimumPeriod = ();
+ type WeightInfo = ();
+ }
+
+ parameter_types! {
+ pub const ExecutionHeadersPruneThreshold: u32 = 10;
+ pub const ChainForkVersions: ForkVersions = ForkVersions{
+ genesis: Fork {
+ version: [0, 0, 0, 1], // 0x00000001
+ epoch: 0,
+ },
+ altair: Fork {
+ version: [1, 0, 0, 1], // 0x01000001
+ epoch: 0,
+ },
+ bellatrix: Fork {
+ version: [2, 0, 0, 1], // 0x02000001
+ epoch: 0,
+ },
+ capella: Fork {
+ version: [3, 0, 0, 1], // 0x03000001
+ epoch: 0,
+ },
+ };
+ }
+
+ impl ethereum_beacon_client::Config for Test {
+ type RuntimeEvent = RuntimeEvent;
+ type ForkVersions = ChainForkVersions;
+ type MaxExecutionHeadersToKeep = ExecutionHeadersPruneThreshold;
+ type WeightInfo = ();
+ }
+
+ // Build genesis storage according to the mock runtime.
+ pub fn new_tester() -> sp_io::TestExternalities {
+ let t = frame_system::GenesisConfig::::default().build_storage().unwrap();
+ let mut ext = sp_io::TestExternalities::new(t);
+ let _ = ext.execute_with(|| Timestamp::set(RuntimeOrigin::signed(1), 30_000));
+ ext
+ }
+
+ fn load_fixture(basename: &str) -> Result
+ where
+ T: for<'de> serde::Deserialize<'de>,
+ {
+ let filepath: PathBuf =
+ [env!("CARGO_MANIFEST_DIR"), "tests", "fixtures", basename].iter().collect();
+ serde_json::from_reader(File::open(filepath).unwrap())
+ }
+
+ pub fn load_execution_header_update_fixture() -> primitives::ExecutionHeaderUpdate {
+ load_fixture("execution-header-update.minimal.json").unwrap()
+ }
+
+ pub fn load_checkpoint_update_fixture(
+ ) -> primitives::CheckpointUpdate<{ config::SYNC_COMMITTEE_SIZE }> {
+ load_fixture("initial-checkpoint.minimal.json").unwrap()
+ }
+
+ pub fn load_sync_committee_update_fixture(
+ ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> {
+ load_fixture("sync-committee-update.minimal.json").unwrap()
+ }
+
+ pub fn load_finalized_header_update_fixture(
+ ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> {
+ load_fixture("finalized-header-update.minimal.json").unwrap()
+ }
+
+ pub fn load_next_sync_committee_update_fixture(
+ ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> {
+ load_fixture("next-sync-committee-update.minimal.json").unwrap()
+ }
+
+ pub fn load_next_finalized_header_update_fixture(
+ ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> {
+ load_fixture("next-finalized-header-update.minimal.json").unwrap()
+ }
+
+ pub fn get_message_verification_payload() -> (Log, Proof) {
+ (
+ Log {
+ address: hex!("ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0").into(),
+ topics: vec![
+ hex!("1b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ad").into(),
+ hex!("00000000000000000000000000000000000000000000000000000000000003e8").into(),
+ hex!("0000000000000000000000000000000000000000000000000000000000000001").into(),
+ ],
+ data: hex!("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004b000f000000000000000100d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec701345772617070656420457468657210574554481235003511000000000000000000000000000000000000000000").into(),
+ },
+ Proof {
+ block_hash: hex!("05aaa60b0f27cce9e71909508527264b77ee14da7b5bf915fcc4e32715333213").into(),
+ tx_index: 0,
+ data: (vec![
+ hex!("cf0d1c1ba57d1e0edfb59786c7e30c2b7e12bd54612b00cd21c4eaeecedf44fb").to_vec(),
+ hex!("d21fc4f68ab05bc4dcb23c67008e92c4d466437cdd6ed7aad0c008944c185510").to_vec(),
+ hex!("b9890f91ca0d77aa2a4adfaf9b9e40c94cac9e638b6d9797923865872944b646").to_vec(),
+ ], vec![
+ hex!("f90131a0b601337b3aa10a671caa724eba641e759399979856141d3aea6b6b4ac59b889ba00c7d5dd48be9060221a02fb8fa213860b4c50d47046c8fa65ffaba5737d569e0a094601b62a1086cd9c9cb71a7ebff9e718f3217fd6e837efe4246733c0a196f63a06a4b0dd0aefc37b3c77828c8f07d1b7a2455ceb5dbfd3c77d7d6aeeddc2f7e8ca0d6e8e23142cdd8ec219e1f5d8b56aa18e456702b195deeaa210327284d42ade4a08a313d4c87023005d1ab631bbfe3f5de1e405d0e66d0bef3e033f1e5711b5521a0bf09a5d9a48b10ade82b8d6a5362a15921c8b5228a3487479b467db97411d82fa0f95cccae2a7c572ef3c566503e30bac2b2feb2d2f26eebf6d870dcf7f8cf59cea0d21fc4f68ab05bc4dcb23c67008e92c4d466437cdd6ed7aad0c008944c1855108080808080808080").to_vec(),
+ hex!("f851a0b9890f91ca0d77aa2a4adfaf9b9e40c94cac9e638b6d9797923865872944b646a060a634b9280e3a23fb63375e7bbdd9ab07fd379ab6a67e2312bbc112195fa358808080808080808080808080808080").to_vec(),
+ hex!("f9030820b9030402f90300018301d6e2b9010000000000000800000000000020040008000000000000000000000000400000008000000000000000000000000000000000000000000000000000000000042010000000001000000000000000000000000000000000040000000000000000000000000000000000000000000000008000000000000000002000000000000000000000000200000000000000200000000000100000000040000001000200008000000000000200000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000f901f5f87a942ffa5ecdbe006d30397c7636d3e015eee251369ff842a0c965575a00553e094ca7c5d14f02e107c258dda06867cbf9e0e69f80e71bbcc1a000000000000000000000000000000000000000000000000000000000000003e8a000000000000000000000000000000000000000000000000000000000000003e8f9011c94ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0f863a01b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ada000000000000000000000000000000000000000000000000000000000000003e8a00000000000000000000000000000000000000000000000000000000000000001b8a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004b000f000000000000000100d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec701345772617070656420457468657210574554481235003511000000000000000000000000000000000000000000f858948cf6147918a5cbb672703f879f385036f8793a24e1a01449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5ba0000000000000000000000000440edffa1352b13227e8ee646f3ea37456dec701").to_vec(),
+ ]),
+ }
+ )
+ }
+
+ pub fn get_message_verification_header() -> CompactExecutionHeader {
+ CompactExecutionHeader {
+ parent_hash: hex!("04a7f6ab8282203562c62f38b0ab41d32aaebe2c7ea687702b463148a6429e04")
+ .into(),
+ block_number: 55,
+ state_root: hex!("894d968712976d613519f973a317cb0781c7b039c89f27ea2b7ca193f7befdb3")
+ .into(),
+ receipts_root: hex!("cf0d1c1ba57d1e0edfb59786c7e30c2b7e12bd54612b00cd21c4eaeecedf44fb")
+ .into(),
+ }
+ }
+}
+
+#[cfg(feature = "beacon-spec-mainnet")]
+pub mod mainnet {
+ use super::*;
+ use frame_support::derive_impl;
+
+ type Block = frame_system::mocking::MockBlock;
+ use sp_runtime::BuildStorage;
+
+ frame_support::construct_runtime!(
+ pub enum Test {
+ System: frame_system::{Pallet, Call, Storage, Event},
+ Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
+ EthereumBeaconClient: ethereum_beacon_client::{Pallet, Call, Storage, Event},
+ }
+ );
+
+ parameter_types! {
+ pub const BlockHashCount: u64 = 250;
+ pub const SS58Prefix: u8 = 42;
+ }
+
+ #[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
+ impl frame_system::Config for Test {
+ type BaseCallFilter = frame_support::traits::Everything;
+ type RuntimeOrigin = RuntimeOrigin;
+ type RuntimeCall = RuntimeCall;
+ type RuntimeTask = RuntimeTask;
+ type Hash = H256;
+ type Hashing = BlakeTwo256;
+ type AccountId = u64;
+ type Lookup = IdentityLookup;
+ type RuntimeEvent = RuntimeEvent;
+ type BlockHashCount = BlockHashCount;
+ type PalletInfo = PalletInfo;
+ type SS58Prefix = SS58Prefix;
+ type Nonce = u64;
+ type Block = Block;
+ }
+
+ impl pallet_timestamp::Config for Test {
+ type Moment = u64;
+ type OnTimestampSet = ();
+ type MinimumPeriod = ();
+ type WeightInfo = ();
+ }
+
+ parameter_types! {
+ pub const ChainForkVersions: ForkVersions = ForkVersions{
+ genesis: Fork {
+ version: [0, 0, 16, 32], // 0x00001020
+ epoch: 0,
+ },
+ altair: Fork {
+ version: [1, 0, 16, 32], // 0x01001020
+ epoch: 36660,
+ },
+ bellatrix: Fork {
+ version: [2, 0, 16, 32], // 0x02001020
+ epoch: 112260,
+ },
+ capella: Fork {
+ version: [3, 0, 16, 32], // 0x03001020
+ epoch: 162304,
+ },
+ };
+ pub const ExecutionHeadersPruneThreshold: u32 = 10;
+ }
+
+ impl ethereum_beacon_client::Config for Test {
+ type RuntimeEvent = RuntimeEvent;
+ type ForkVersions = ChainForkVersions;
+ type MaxExecutionHeadersToKeep = ExecutionHeadersPruneThreshold;
+ type WeightInfo = ();
+ }
+
+ // Build genesis storage according to the mock runtime.
+ pub fn new_tester() -> sp_io::TestExternalities {
+ let t = frame_system::GenesisConfig::::default().build_storage().unwrap();
+ let mut ext = sp_io::TestExternalities::new(t);
+ let _ = ext.execute_with(|| Timestamp::set(RuntimeOrigin::signed(1), 30_000));
+ ext
+ }
+}
diff --git a/bridges/snowbridge/primitives/beacon/Cargo.toml b/bridges/snowbridge/primitives/beacon/Cargo.toml
index e021bb01071471b56d44f4a430c9ae5b7bdca57d..d181fa1d3945a704a3d1e1e28fea67b7dea0ee15 100644
--- a/bridges/snowbridge/primitives/beacon/Cargo.toml
+++ b/bridges/snowbridge/primitives/beacon/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-beacon-primitives"
description = "Snowbridge Beacon Primitives"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/primitives/core/Cargo.toml b/bridges/snowbridge/primitives/core/Cargo.toml
index 090c48c403fecf76b598abcc390ffa054a8281a3..9a299ad0ae92326a6d0bb0391baf81e6e5bad663 100644
--- a/bridges/snowbridge/primitives/core/Cargo.toml
+++ b/bridges/snowbridge/primitives/core/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-core"
description = "Snowbridge Core"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/primitives/ethereum/Cargo.toml b/bridges/snowbridge/primitives/ethereum/Cargo.toml
index 399139cef3816a2f840f4937a7449034aea9638d..9fa725a6c0565a5f42847d89149878f8997d07a0 100644
--- a/bridges/snowbridge/primitives/ethereum/Cargo.toml
+++ b/bridges/snowbridge/primitives/ethereum/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-ethereum"
description = "Snowbridge Ethereum"
-version = "0.1.0"
+version = "0.3.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/primitives/router/Cargo.toml b/bridges/snowbridge/primitives/router/Cargo.toml
index 750a2a73e6372c138cb4420d5f06f26d35b90ab4..ded773e0d38917b7834679b3e521dfbe9539e51b 100644
--- a/bridges/snowbridge/primitives/router/Cargo.toml
+++ b/bridges/snowbridge/primitives/router/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-router-primitives"
description = "Snowbridge Router Primitives"
-version = "0.0.0"
+version = "0.9.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/runtime/runtime-common/Cargo.toml b/bridges/snowbridge/runtime/runtime-common/Cargo.toml
index d4c86f8aa750134df8dfbe22a277a872e77f9175..bf5e9a8832dcf48113d5f74a92a060687da2fe4e 100644
--- a/bridges/snowbridge/runtime/runtime-common/Cargo.toml
+++ b/bridges/snowbridge/runtime/runtime-common/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-runtime-common"
description = "Snowbridge Runtime Common"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition.workspace = true
repository.workspace = true
diff --git a/bridges/snowbridge/runtime/test-common/Cargo.toml b/bridges/snowbridge/runtime/test-common/Cargo.toml
index ec4466b34265fd344e870f92f64eea014ad76b98..4e8b311cb97812bb94140aa02405b3a174064a8f 100644
--- a/bridges/snowbridge/runtime/test-common/Cargo.toml
+++ b/bridges/snowbridge/runtime/test-common/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "snowbridge-runtime-test-common"
description = "Snowbridge Runtime Tests"
-version = "0.0.0"
+version = "0.2.0"
authors = ["Snowfork "]
edition = "2021"
license = "Apache-2.0"
diff --git a/bridges/snowbridge/runtime/test-common/src/lib.rs b/bridges/snowbridge/runtime/test-common/src/lib.rs
index 29b0e738c182e3a9dd930fe8596fc5430470d5e0..7455adf76170acefd50f06e8a40ef1c79028f49f 100644
--- a/bridges/snowbridge/runtime/test-common/src/lib.rs
+++ b/bridges/snowbridge/runtime/test-common/src/lib.rs
@@ -40,6 +40,7 @@ where
}
pub fn send_transfer_token_message(
+ ethereum_chain_id: u64,
assethub_parachain_id: u32,
weth_contract_address: H160,
destination_address: H160,
@@ -89,7 +90,7 @@ where
WithdrawAsset(Assets::from(vec![fee.clone()])),
BuyExecution { fees: fee, weight_limit: Unlimited },
ExportMessage {
- network: Ethereum { chain_id: 11155111 },
+ network: Ethereum { chain_id: ethereum_chain_id },
destination: Here,
xcm: inner_xcm,
},
@@ -107,6 +108,7 @@ where
}
pub fn send_transfer_token_message_success(
+ ethereum_chain_id: u64,
collator_session_key: CollatorSessionKeys,
runtime_para_id: u32,
assethub_parachain_id: u32,
@@ -149,6 +151,7 @@ pub fn send_transfer_token_message_success(
initial_fund::(assethub_parachain_id, 5_000_000_000_000);
let outcome = send_transfer_token_message::(
+ ethereum_chain_id,
assethub_parachain_id,
weth_contract_address,
destination_address,
@@ -205,6 +208,7 @@ pub fn ethereum_outbound_queue_processes_messages_before_message_queue_works<
XcmConfig,
AllPalletsWithoutSystem,
>(
+ ethereum_chain_id: u64,
collator_session_key: CollatorSessionKeys,
runtime_para_id: u32,
assethub_parachain_id: u32,
@@ -249,6 +253,7 @@ pub fn ethereum_outbound_queue_processes_messages_before_message_queue_works<
initial_fund::(assethub_parachain_id, 5_000_000_000_000);
let outcome = send_transfer_token_message::(
+ ethereum_chain_id,
assethub_parachain_id,
weth_contract_address,
destination_address,
@@ -290,6 +295,7 @@ pub fn ethereum_outbound_queue_processes_messages_before_message_queue_works<
}
pub fn send_unpaid_transfer_token_message(
+ ethereum_chain_id: u64,
collator_session_key: CollatorSessionKeys,
runtime_para_id: u32,
assethub_parachain_id: u32,
@@ -353,7 +359,7 @@ pub fn send_unpaid_transfer_token_message(
let xcm = Xcm(vec![
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
ExportMessage {
- network: Ethereum { chain_id: 11155111 },
+ network: Ethereum { chain_id: ethereum_chain_id },
destination: Here,
xcm: inner_xcm,
},
@@ -375,6 +381,7 @@ pub fn send_unpaid_transfer_token_message(
#[allow(clippy::too_many_arguments)]
pub fn send_transfer_token_message_failure(
+ ethereum_chain_id: u64,
collator_session_key: CollatorSessionKeys,
runtime_para_id: u32,
assethub_parachain_id: u32,
@@ -414,6 +421,7 @@ pub fn send_transfer_token_message_failure(
initial_fund::(assethub_parachain_id, initial_amount);
let outcome = send_transfer_token_message::(
+ ethereum_chain_id,
assethub_parachain_id,
weth_contract_address,
destination_address,
diff --git a/bridges/snowbridge/scripts/contribute-upstream.sh b/bridges/snowbridge/scripts/contribute-upstream.sh
index 8aa2d2a7035e2f213c0fc2090952b4b162739963..32005b770ecf44cb9af18c61f830243ed5287e68 100755
--- a/bridges/snowbridge/scripts/contribute-upstream.sh
+++ b/bridges/snowbridge/scripts/contribute-upstream.sh
@@ -40,10 +40,12 @@ git checkout "$branch_name"
# remove everything we think is not required for our needs
rm -rf rust-toolchain.toml
+rm -rf codecov.yml
rm -rf $SNOWBRIDGE_FOLDER/.cargo
rm -rf $SNOWBRIDGE_FOLDER/.github
rm -rf $SNOWBRIDGE_FOLDER/SECURITY.md
rm -rf $SNOWBRIDGE_FOLDER/.gitignore
+rm -rf $SNOWBRIDGE_FOLDER/rustfmt.toml
rm -rf $SNOWBRIDGE_FOLDER/templates
rm -rf $SNOWBRIDGE_FOLDER/pallets/ethereum-client/fuzz
diff --git a/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh b/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh
index de5be2e0af8861008781ca3eab81f0422dc81e91..66c9ddc037b8efb005d2239b174eb5710dddaf53 100755
--- a/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh
+++ b/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh
@@ -24,12 +24,6 @@ source "$FRAMEWORK_PATH/utils/bridges.sh"
# &MultiLocation { parents: 2, interior: X1(GlobalConsensus(Rococo)) }).unwrap()
# ).to_ss58check_with_version(42_u16.into())
# );
-# println!("GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT=\"{}\"",
-# frame_support::sp_runtime::AccountId32::new(
-# GlobalConsensusParachainConvertsFor::::convert_location(
-# &MultiLocation { parents: 2, interior: X2(GlobalConsensus(Rococo), Parachain(1000)) }).unwrap()
-# ).to_ss58check_with_version(42_u16.into())
-# );
# println!("ASSET_HUB_WESTEND_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WESTEND=\"{}\"",
# frame_support::sp_runtime::AccountId32::new(
# SiblingParachainConvertsVia::::convert_location(
@@ -44,12 +38,6 @@ source "$FRAMEWORK_PATH/utils/bridges.sh"
# &MultiLocation { parents: 2, interior: X1(GlobalConsensus(Westend)) }).unwrap()
# ).to_ss58check_with_version(42_u16.into())
# );
-# println!("GLOBAL_CONSENSUS_WESTEND_ASSET_HUB_WESTEND_1000_SOVEREIGN_ACCOUNT=\"{}\"",
-# frame_support::sp_runtime::AccountId32::new(
-# GlobalConsensusParachainConvertsFor::::convert_location(
-# &MultiLocation { parents: 2, interior: X2(GlobalConsensus(Westend), Parachain(1000)) }).unwrap()
-# ).to_ss58check_with_version(42_u16.into())
-# );
# println!("ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO=\"{}\"",
# frame_support::sp_runtime::AccountId32::new(
# SiblingParachainConvertsVia::::convert_location(
@@ -58,10 +46,8 @@ source "$FRAMEWORK_PATH/utils/bridges.sh"
# );
# }
GLOBAL_CONSENSUS_ROCOCO_SOVEREIGN_ACCOUNT="5GxRGwT8bU1JeBPTUXc7LEjZMxNrK8MyL2NJnkWFQJTQ4sii"
-GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT="5CfNu7eH3SJvqqPt3aJh38T8dcFvhGzEohp9tsd41ANhXDnQ"
ASSET_HUB_WESTEND_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WESTEND="5Eg2fntNprdN3FgH4sfEaaZhYtddZQSQUqvYJ1f2mLtinVhV"
GLOBAL_CONSENSUS_WESTEND_SOVEREIGN_ACCOUNT="5He2Qdztyxxa4GoagY6q1jaiLMmKy1gXS7PdZkhfj8ZG9hk5"
-GLOBAL_CONSENSUS_WESTEND_ASSET_HUB_WESTEND_1000_SOVEREIGN_ACCOUNT="5GUD9X494SnhfBTNReHwhV1599McpyVrAqFY6WnTfVQVYNUM"
ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO="5Eg2fntNprdN3FgH4sfEaaZhYtddZQSQUqvYJ1f2mLtinVhV"
# Expected sovereign accounts for rewards on BridgeHubs.
@@ -201,12 +187,6 @@ case "$1" in
"$GLOBAL_CONSENSUS_WESTEND_SOVEREIGN_ACCOUNT" \
10000000000 \
true
- # drip SA which holds reserves
- transfer_balance \
- "ws://127.0.0.1:9910" \
- "//Alice" \
- "$GLOBAL_CONSENSUS_WESTEND_ASSET_HUB_WESTEND_1000_SOVEREIGN_ACCOUNT" \
- $((1000000000000 + 50000000000 * 20))
# HRMP
open_hrmp_channels \
"ws://127.0.0.1:9942" \
@@ -266,12 +246,6 @@ case "$1" in
"$GLOBAL_CONSENSUS_ROCOCO_SOVEREIGN_ACCOUNT" \
10000000000 \
true
- # drip SA which holds reserves
- transfer_balance \
- "ws://127.0.0.1:9010" \
- "//Alice" \
- "$GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT" \
- $((1000000000000000 + 50000000000 * 20))
# HRMP
open_hrmp_channels \
"ws://127.0.0.1:9945" \
@@ -319,6 +293,7 @@ case "$1" in
$XCM_VERSION
;;
reserve-transfer-assets-from-asset-hub-rococo-local)
+ amount=$2
ensure_polkadot_js_api
# send ROCs to Alice account on AHW
limited_reserve_transfer_assets \
@@ -326,11 +301,12 @@ case "$1" in
"//Alice" \
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Westend" }, { "Parachain": 1000 } ] } } }')" \
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
- "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 1, "interior": "Here" } }, "fun": { "Fungible": 5000000000000 } } ] }')" \
+ "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 1, "interior": "Here" } }, "fun": { "Fungible": '$amount' } } ] }')" \
0 \
"Unlimited"
;;
withdraw-reserve-assets-from-asset-hub-rococo-local)
+ amount=$2
ensure_polkadot_js_api
# send back only 100000000000 wrappedWNDs to Alice account on AHW
limited_reserve_transfer_assets \
@@ -338,11 +314,12 @@ case "$1" in
"//Alice" \
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Westend" }, { "Parachain": 1000 } ] } } }')" \
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
- "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 2, "interior": { "X1": { "GlobalConsensus": "Westend" } } } }, "fun": { "Fungible": 3000000000000 } } ] }')" \
+ "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 2, "interior": { "X1": { "GlobalConsensus": "Westend" } } } }, "fun": { "Fungible": '$amount' } } ] }')" \
0 \
"Unlimited"
;;
reserve-transfer-assets-from-asset-hub-westend-local)
+ amount=$2
ensure_polkadot_js_api
# send WNDs to Alice account on AHR
limited_reserve_transfer_assets \
@@ -350,11 +327,12 @@ case "$1" in
"//Alice" \
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Rococo" }, { "Parachain": 1000 } ] } } }')" \
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
- "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 1, "interior": "Here" } }, "fun": { "Fungible": 5000000000000 } } ] }')" \
+ "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 1, "interior": "Here" } }, "fun": { "Fungible": '$amount' } } ] }')" \
0 \
"Unlimited"
;;
withdraw-reserve-assets-from-asset-hub-westend-local)
+ amount=$2
ensure_polkadot_js_api
# send back only 100000000000 wrappedROCs to Alice account on AHR
limited_reserve_transfer_assets \
@@ -362,7 +340,7 @@ case "$1" in
"//Alice" \
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Rococo" }, { "Parachain": 1000 } ] } } }')" \
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
- "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 2, "interior": { "X1": { "GlobalConsensus": "Rococo" } } } }, "fun": { "Fungible": 3000000000000 } } ] }')" \
+ "$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 2, "interior": { "X1": { "GlobalConsensus": "Rococo" } } } }, "fun": { "Fungible": '$amount' } } ] }')" \
0 \
"Unlimited"
;;
diff --git a/bridges/testing/framework/js-helpers/native-assets-balance-increased.js b/bridges/testing/framework/js-helpers/native-assets-balance-increased.js
index a35c753d97326d7b200c33844e9c5b8be22dfebc..749c3e2fec32ac0af4d244c53cb4ac1c6237817a 100644
--- a/bridges/testing/framework/js-helpers/native-assets-balance-increased.js
+++ b/bridges/testing/framework/js-helpers/native-assets-balance-increased.js
@@ -3,12 +3,13 @@ async function run(nodeName, networkInfo, args) {
const api = await zombie.connect(wsUri, userDefinedTypes);
const accountAddress = args[0];
+ const expectedIncrease = BigInt(args[1]);
const initialAccountData = await api.query.system.account(accountAddress);
const initialAccountBalance = initialAccountData.data['free'];
while (true) {
const accountData = await api.query.system.account(accountAddress);
const accountBalance = accountData.data['free'];
- if (accountBalance > initialAccountBalance) {
+ if (accountBalance > initialAccountBalance + expectedIncrease) {
return accountBalance;
}
@@ -17,4 +18,4 @@ async function run(nodeName, networkInfo, args) {
}
}
-module.exports = { run }
+module.exports = {run}
diff --git a/bridges/testing/tests/0001-asset-transfer/roc-reaches-westend.zndsl b/bridges/testing/tests/0001-asset-transfer/roc-reaches-westend.zndsl
index 4725362ae826ec6d8313ec45c0ce21f70f244ca6..cdb7d28e940cf1ac90562e761cdbad00e95e1748 100644
--- a/bridges/testing/tests/0001-asset-transfer/roc-reaches-westend.zndsl
+++ b/bridges/testing/tests/0001-asset-transfer/roc-reaches-westend.zndsl
@@ -2,11 +2,11 @@ Description: User is able to transfer ROC from Rococo Asset Hub to Westend Asset
Network: {{ENV_PATH}}/bridge_hub_westend_local_network.toml
Creds: config
-# send ROC to //Alice from Rococo AH to Westend AH
-asset-hub-westend-collator1: run {{ENV_PATH}}/helper.sh with "reserve-transfer-assets-from-asset-hub-rococo-local" within 120 seconds
+# send 5 ROC to //Alice from Rococo AH to Westend AH
+asset-hub-westend-collator1: run {{ENV_PATH}}/helper.sh with "reserve-transfer-assets-from-asset-hub-rococo-local 5000000000000" within 120 seconds
-# check that //Alice received the ROC on Westend AH
-asset-hub-westend-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,0,Rococo" within 300 seconds
+# check that //Alice received at least 4.8 ROC on Westend AH
+asset-hub-westend-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,4800000000000,Rococo" within 600 seconds
# check that the relayer //Charlie is rewarded by Westend AH
bridge-hub-westend-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000002,0x6268726F,ThisChain,0" within 30 seconds
diff --git a/bridges/testing/tests/0001-asset-transfer/wnd-reaches-rococo.zndsl b/bridges/testing/tests/0001-asset-transfer/wnd-reaches-rococo.zndsl
index 77267239c3b12bb1c3caf88f9bb01bfd98f2c121..dbc03864e2b6e5e10636532ad965860b381fa8f2 100644
--- a/bridges/testing/tests/0001-asset-transfer/wnd-reaches-rococo.zndsl
+++ b/bridges/testing/tests/0001-asset-transfer/wnd-reaches-rococo.zndsl
@@ -2,11 +2,11 @@ Description: User is able to transfer WND from Westend Asset Hub to Rococo Asset
Network: {{ENV_PATH}}/bridge_hub_rococo_local_network.toml
Creds: config
-# send WND to //Alice from Westend AH to Rococo AH
-asset-hub-rococo-collator1: run {{ENV_PATH}}/helper.sh with "reserve-transfer-assets-from-asset-hub-westend-local" within 120 seconds
+# send 5 WND to //Alice from Westend AH to Rococo AH
+asset-hub-rococo-collator1: run {{ENV_PATH}}/helper.sh with "reserve-transfer-assets-from-asset-hub-westend-local 5000000000000" within 120 seconds
-# check that //Alice received the WND on Rococo AH
-asset-hub-rococo-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,0,Westend" within 300 seconds
+# check that //Alice received at least 4.8 WND on Rococo AH
+asset-hub-rococo-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,4800000000000,Westend" within 600 seconds
# check that the relayer //Charlie is rewarded by Rococo AH
bridge-hub-rococo-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000002,0x62687764,ThisChain,0" within 30 seconds
diff --git a/bridges/testing/tests/0001-asset-transfer/wroc-reaches-rococo.zndsl b/bridges/testing/tests/0001-asset-transfer/wroc-reaches-rococo.zndsl
index f72b76e6026b6a0a24fa16fc4d08f79ba07f5e60..9967732cabe15e020060eb0a53fd8ce1440180e5 100644
--- a/bridges/testing/tests/0001-asset-transfer/wroc-reaches-rococo.zndsl
+++ b/bridges/testing/tests/0001-asset-transfer/wroc-reaches-rococo.zndsl
@@ -2,9 +2,9 @@ Description: User is able to transfer ROC from Rococo Asset Hub to Westend Asset
Network: {{ENV_PATH}}/bridge_hub_westend_local_network.toml
Creds: config
-# send wROC back to Alice from Westend AH to Rococo AH
-asset-hub-rococo-collator1: run {{ENV_PATH}}/helper.sh with "withdraw-reserve-assets-from-asset-hub-westend-local" within 120 seconds
+# send 3 wROC back to Alice from Westend AH to Rococo AH
+asset-hub-rococo-collator1: run {{ENV_PATH}}/helper.sh with "withdraw-reserve-assets-from-asset-hub-westend-local 3000000000000" within 120 seconds
-# check that //Alice received the wROC on Rococo AH
+# check that //Alice received at least 2.8 wROC on Rococo AH
# (we wait until //Alice account increases here - there are no other transactions that may increase it)
-asset-hub-rococo-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/native-assets-balance-increased.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" within 300 seconds
+asset-hub-rococo-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/native-assets-balance-increased.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,2800000000000" within 600 seconds
diff --git a/bridges/testing/tests/0001-asset-transfer/wwnd-reaches-westend.zndsl b/bridges/testing/tests/0001-asset-transfer/wwnd-reaches-westend.zndsl
index 9d893c8d90a80df97b33b7ff16297700c7a8253a..2037b0baf3c0aac2a0e1a8f297c6baa155ac680f 100644
--- a/bridges/testing/tests/0001-asset-transfer/wwnd-reaches-westend.zndsl
+++ b/bridges/testing/tests/0001-asset-transfer/wwnd-reaches-westend.zndsl
@@ -2,9 +2,9 @@ Description: User is able to transfer ROC from Rococo Asset Hub to Westend Asset
Network: {{ENV_PATH}}/bridge_hub_westend_local_network.toml
Creds: config
-# send wWND back to Alice from Rococo AH to Westend AH
-asset-hub-westend-collator1: run {{ENV_PATH}}/helper.sh with "withdraw-reserve-assets-from-asset-hub-rococo-local" within 120 seconds
+# send 3 wWND back to Alice from Rococo AH to Westend AH
+asset-hub-westend-collator1: run {{ENV_PATH}}/helper.sh with "withdraw-reserve-assets-from-asset-hub-rococo-local 3000000000000" within 120 seconds
-# check that //Alice received the wWND on Westend AH
+# check that //Alice received at least 2.8 wWND on Westend AH
# (we wait until //Alice account increases here - there are no other transactions that may increase it)
-asset-hub-westend-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/native-assets-balance-increased.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" within 300 seconds
+asset-hub-westend-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/native-assets-balance-increased.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,2800000000000" within 600 seconds
diff --git a/cumulus/client/cli/Cargo.toml b/cumulus/client/cli/Cargo.toml
index eaf0d5d5d7f78e578644bf35f83d9543ad9af4bd..0b2edb593c405bef266fa7e389a996fe3a2fcec1 100644
--- a/cumulus/client/cli/Cargo.toml
+++ b/cumulus/client/cli/Cargo.toml
@@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
workspace = true
[dependencies]
-clap = { version = "4.5.1", features = ["derive"] }
+clap = { version = "4.5.3", features = ["derive"] }
codec = { package = "parity-scale-codec", version = "3.0.0" }
url = "2.4.0"
diff --git a/cumulus/client/consensus/aura/src/lib.rs b/cumulus/client/consensus/aura/src/lib.rs
index 8e4bc658e44bfdc173f3fdb66518da883edcb05b..ed6f5bdd4d6984350c5f59a3753618c3a038f323 100644
--- a/cumulus/client/consensus/aura/src/lib.rs
+++ b/cumulus/client/consensus/aura/src/lib.rs
@@ -54,7 +54,10 @@ use std::{
mod import_queue;
pub use import_queue::{build_verifier, import_queue, BuildVerifierParams, ImportQueueParams};
-pub use sc_consensus_aura::{slot_duration, AuraVerifier, BuildAuraWorkerParams, SlotProportion};
+pub use sc_consensus_aura::{
+ slot_duration, standalone::slot_duration_at, AuraVerifier, BuildAuraWorkerParams,
+ SlotProportion,
+};
pub use sc_consensus_slots::InherentDataProviderExt;
pub mod collator;
diff --git a/cumulus/client/network/src/tests.rs b/cumulus/client/network/src/tests.rs
index d986635f961c914c9ec6fa970b20170f9f8b9cbc..3f5757d5eac13cd751a89e77545a937b3223c9a0 100644
--- a/cumulus/client/network/src/tests.rs
+++ b/cumulus/client/network/src/tests.rs
@@ -144,7 +144,7 @@ impl RelayChainInterface for DummyRelayChainInterface {
persisted_validation_data_hash: PHash::random(),
pov_hash: PHash::random(),
erasure_root: PHash::random(),
- signature: sp_core::sr25519::Signature([0u8; 64]).into(),
+ signature: sp_core::sr25519::Signature::default().into(),
validation_code_hash: ValidationCodeHash::from(PHash::random()),
},
commitments: CandidateCommitments {
@@ -325,7 +325,7 @@ async fn make_gossip_message_and_header(
persisted_validation_data_hash: PHash::random(),
pov_hash: PHash::random(),
erasure_root: PHash::random(),
- signature: sp_core::sr25519::Signature([0u8; 64]).into(),
+ signature: sp_core::sr25519::Signature::default().into(),
para_head: polkadot_parachain_primitives::primitives::HeadData(header.encode()).hash(),
validation_code_hash: ValidationCodeHash::from(PHash::random()),
},
@@ -516,7 +516,7 @@ async fn check_statement_seconded() {
persisted_validation_data_hash: PHash::random(),
pov_hash: PHash::random(),
erasure_root: PHash::random(),
- signature: sp_core::sr25519::Signature([0u8; 64]).into(),
+ signature: sp_core::sr25519::Signature::default().into(),
validation_code_hash: ValidationCodeHash::from(PHash::random()),
},
},
diff --git a/cumulus/client/parachain-inherent/src/lib.rs b/cumulus/client/parachain-inherent/src/lib.rs
index 57353638e197acf255b73080c6802e94647c2090..051eb6764c8ce97a8305a07bdddb8f06f61fe4bc 100644
--- a/cumulus/client/parachain-inherent/src/lib.rs
+++ b/cumulus/client/parachain-inherent/src/lib.rs
@@ -159,7 +159,7 @@ impl ParachainInherentDataProvider {
target: LOG_TARGET,
relay_parent = ?relay_parent,
error = ?e,
- "An error occured during requesting the downward messages.",
+ "An error occurred during requesting the downward messages.",
);
})
.ok()?;
@@ -171,7 +171,7 @@ impl ParachainInherentDataProvider {
target: LOG_TARGET,
relay_parent = ?relay_parent,
error = ?e,
- "An error occured during requesting the inbound HRMP messages.",
+ "An error occurred during requesting the inbound HRMP messages.",
);
})
.ok()?;
diff --git a/cumulus/client/relay-chain-minimal-node/Cargo.toml b/cumulus/client/relay-chain-minimal-node/Cargo.toml
index 0b1e001e007a493f521f10c2659653699da04d0c..98240c92adab38ea103f14699e1e49f7449b3d24 100644
--- a/cumulus/client/relay-chain-minimal-node/Cargo.toml
+++ b/cumulus/client/relay-chain-minimal-node/Cargo.toml
@@ -24,6 +24,7 @@ polkadot-node-collation-generation = { path = "../../../polkadot/node/collation-
polkadot-node-core-runtime-api = { path = "../../../polkadot/node/core/runtime-api" }
polkadot-node-core-chain-api = { path = "../../../polkadot/node/core/chain-api" }
polkadot-node-core-prospective-parachains = { path = "../../../polkadot/node/core/prospective-parachains" }
+polkadot-service = { path = "../../../polkadot/node/service" }
# substrate deps
sc-authority-discovery = { path = "../../../substrate/client/authority-discovery" }
diff --git a/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs b/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs
index ab56b62c4ca59b3058e9724032e2e09264a45640..8d8a2920b4efaa70a9b59ba42ccd26a2e4cb64d5 100644
--- a/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs
+++ b/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs
@@ -14,7 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Cumulus. If not, see .
-use std::pin::Pin;
+use std::{
+ collections::{BTreeMap, VecDeque},
+ pin::Pin,
+};
use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult};
use cumulus_relay_chain_rpc_interface::RelayChainRpcClient;
@@ -25,6 +28,7 @@ use polkadot_primitives::{
async_backing::{AsyncBackingParams, BackingState},
slashing,
vstaging::{ApprovalVotingParams, NodeFeatures},
+ CoreIndex,
};
use sc_authority_discovery::{AuthorityDiscovery, Error as AuthorityDiscoveryError};
use sc_client_api::AuxStore;
@@ -442,6 +446,13 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient {
async fn node_features(&self, at: Hash) -> Result {
Ok(self.rpc_client.parachain_host_node_features(at).await?)
}
+
+ async fn claim_queue(
+ &self,
+ at: Hash,
+ ) -> Result>, ApiError> {
+ Ok(self.rpc_client.parachain_host_claim_queue(at).await?)
+ }
}
#[async_trait::async_trait]
diff --git a/cumulus/client/relay-chain-minimal-node/src/collator_overseer.rs b/cumulus/client/relay-chain-minimal-node/src/collator_overseer.rs
index 5f5bf338ef9907756adb1eab3f0541e870677fe5..f01ef8b05ecba77cf6458fdfe80e966b3a67e6a3 100644
--- a/cumulus/client/relay-chain-minimal-node/src/collator_overseer.rs
+++ b/cumulus/client/relay-chain-minimal-node/src/collator_overseer.rs
@@ -15,159 +15,29 @@
// along with Polkadot. If not, see .
use futures::{select, StreamExt};
-use parking_lot::Mutex;
-use std::{collections::HashMap, sync::Arc};
+use std::sync::Arc;
-use polkadot_availability_recovery::AvailabilityRecoverySubsystem;
-use polkadot_collator_protocol::{CollatorProtocolSubsystem, ProtocolSide};
-use polkadot_network_bridge::{
- Metrics as NetworkBridgeMetrics, NetworkBridgeRx as NetworkBridgeRxSubsystem,
- NetworkBridgeTx as NetworkBridgeTxSubsystem,
-};
-use polkadot_node_collation_generation::CollationGenerationSubsystem;
-use polkadot_node_core_chain_api::ChainApiSubsystem;
-use polkadot_node_core_prospective_parachains::ProspectiveParachainsSubsystem;
-use polkadot_node_core_runtime_api::RuntimeApiSubsystem;
-use polkadot_node_network_protocol::{
- peer_set::{PeerSet, PeerSetProtocolNames},
- request_response::{
- v1::{self, AvailableDataFetchingRequest},
- v2, IncomingRequestReceiver, ReqProtocolNames,
- },
-};
-use polkadot_node_subsystem_util::metrics::{prometheus::Registry, Metrics};
use polkadot_overseer::{
- BlockInfo, DummySubsystem, Handle, Overseer, OverseerConnector, OverseerHandle, SpawnGlue,
- UnpinHandle,
+ BlockInfo, Handle, Overseer, OverseerConnector, OverseerHandle, SpawnGlue, UnpinHandle,
};
-use polkadot_primitives::CollatorPair;
+use polkadot_service::overseer::{collator_overseer_builder, OverseerGenArgs};
-use sc_authority_discovery::Service as AuthorityDiscoveryService;
-use sc_network::{NetworkStateInfo, NotificationService};
use sc_service::TaskManager;
use sc_utils::mpsc::tracing_unbounded;
-use cumulus_primitives_core::relay_chain::{Block, Hash as PHash};
use cumulus_relay_chain_interface::RelayChainError;
use crate::BlockChainRpcClient;
-/// Arguments passed for overseer construction.
-pub(crate) struct CollatorOverseerGenArgs<'a> {
- /// Runtime client generic, providing the `ProvieRuntimeApi` trait besides others.
- pub runtime_client: Arc,
- /// Underlying network service implementation.
- pub network_service: Arc>,
- /// Syncing oracle.
- pub sync_oracle: Box,
- /// Underlying authority discovery service.
- pub authority_discovery_service: AuthorityDiscoveryService,
- /// Receiver for collation request protocol v1.
- pub collation_req_receiver_v1: IncomingRequestReceiver,
- /// Receiver for collation request protocol v2.
- pub collation_req_receiver_v2: IncomingRequestReceiver,
- /// Receiver for availability request protocol
- pub available_data_req_receiver: IncomingRequestReceiver,
- /// Prometheus registry, commonly used for production systems, less so for test.
- pub registry: Option<&'a Registry>,
- /// Task spawner to be used throughout the overseer and the APIs it provides.
- pub spawner: sc_service::SpawnTaskHandle,
- /// Determines the behavior of the collator.
- pub collator_pair: CollatorPair,
- /// Request response protocols
- pub req_protocol_names: ReqProtocolNames,
- /// Peerset protocols name mapping
- pub peer_set_protocol_names: PeerSetProtocolNames,
- /// Notification services for validation/collation protocols.
- pub notification_services: HashMap>,
-}
-
fn build_overseer(
connector: OverseerConnector,
- CollatorOverseerGenArgs {
- runtime_client,
- network_service,
- sync_oracle,
- authority_discovery_service,
- collation_req_receiver_v1,
- collation_req_receiver_v2,
- available_data_req_receiver,
- registry,
- spawner,
- collator_pair,
- req_protocol_names,
- peer_set_protocol_names,
- notification_services,
- }: CollatorOverseerGenArgs<'_>,
+ args: OverseerGenArgs,
) -> Result<
(Overseer, Arc>, OverseerHandle),
RelayChainError,
> {
- let spawner = SpawnGlue(spawner);
- let network_bridge_metrics: NetworkBridgeMetrics = Metrics::register(registry)?;
- let notification_sinks = Arc::new(Mutex::new(HashMap::new()));
-
- let builder = Overseer::builder()
- .availability_distribution(DummySubsystem)
- .availability_recovery(AvailabilityRecoverySubsystem::for_collator(
- available_data_req_receiver,
- Metrics::register(registry)?,
- ))
- .availability_store(DummySubsystem)
- .bitfield_distribution(DummySubsystem)
- .bitfield_signing(DummySubsystem)
- .candidate_backing(DummySubsystem)
- .candidate_validation(DummySubsystem)
- .pvf_checker(DummySubsystem)
- .chain_api(ChainApiSubsystem::new(runtime_client.clone(), Metrics::register(registry)?))
- .collation_generation(CollationGenerationSubsystem::new(Metrics::register(registry)?))
- .collator_protocol({
- let side = ProtocolSide::Collator {
- peer_id: network_service.local_peer_id(),
- collator_pair,
- request_receiver_v1: collation_req_receiver_v1,
- request_receiver_v2: collation_req_receiver_v2,
- metrics: Metrics::register(registry)?,
- };
- CollatorProtocolSubsystem::new(side)
- })
- .network_bridge_rx(NetworkBridgeRxSubsystem::new(
- network_service.clone(),
- authority_discovery_service.clone(),
- sync_oracle,
- network_bridge_metrics.clone(),
- peer_set_protocol_names.clone(),
- notification_services,
- notification_sinks.clone(),
- ))
- .network_bridge_tx(NetworkBridgeTxSubsystem::new(
- network_service,
- authority_discovery_service,
- network_bridge_metrics,
- req_protocol_names,
- peer_set_protocol_names,
- notification_sinks,
- ))
- .provisioner(DummySubsystem)
- .runtime_api(RuntimeApiSubsystem::new(
- runtime_client.clone(),
- Metrics::register(registry)?,
- spawner.clone(),
- ))
- .statement_distribution(DummySubsystem)
- .prospective_parachains(ProspectiveParachainsSubsystem::new(Metrics::register(registry)?))
- .approval_distribution(DummySubsystem)
- .approval_voting(DummySubsystem)
- .gossip_support(DummySubsystem)
- .dispute_coordinator(DummySubsystem)
- .dispute_distribution(DummySubsystem)
- .chain_selection(DummySubsystem)
- .activation_external_listeners(Default::default())
- .span_per_active_leaf(Default::default())
- .active_leaves(Default::default())
- .supports_parachains(runtime_client)
- .metrics(Metrics::register(registry)?)
- .spawner(spawner);
+ let builder =
+ collator_overseer_builder(args).map_err(|e| RelayChainError::Application(e.into()))?;
builder
.build_with_connector(connector)
@@ -175,7 +45,7 @@ fn build_overseer(
}
pub(crate) fn spawn_overseer(
- overseer_args: CollatorOverseerGenArgs,
+ overseer_args: OverseerGenArgs,
task_manager: &TaskManager,
relay_chain_rpc_client: Arc,
) -> Result {
diff --git a/cumulus/client/relay-chain-minimal-node/src/lib.rs b/cumulus/client/relay-chain-minimal-node/src/lib.rs
index d121d2d3356765d9327fdaa0a8c0563c3917266f..4bccca59fe3ea2eec816513778885f43c9504d51 100644
--- a/cumulus/client/relay-chain-minimal-node/src/lib.rs
+++ b/cumulus/client/relay-chain-minimal-node/src/lib.rs
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Polkadot. If not, see .
-use collator_overseer::{CollatorOverseerGenArgs, NewMinimalNode};
+use collator_overseer::NewMinimalNode;
use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult};
use cumulus_relay_chain_rpc_interface::{RelayChainRpcClient, RelayChainRpcInterface, Url};
@@ -29,6 +29,7 @@ use polkadot_node_network_protocol::{
use polkadot_node_subsystem_util::metrics::prometheus::Registry;
use polkadot_primitives::CollatorPair;
+use polkadot_service::{overseer::OverseerGenArgs, IsParachainNode};
use sc_authority_discovery::Service as AuthorityDiscoveryService;
use sc_network::{config::FullNetworkConfiguration, Event, NetworkEventStream, NetworkService};
@@ -172,10 +173,10 @@ async fn new_minimal_relay_chain(
}
let genesis_hash = relay_chain_rpc_client.block_get_hash(Some(0)).await?.unwrap_or_default();
- let peer_set_protocol_names =
+ let peerset_protocol_names =
PeerSetProtocolNames::new(genesis_hash, config.chain_spec.fork_id());
let is_authority = if role.is_authority() { IsAuthority::Yes } else { IsAuthority::No };
- let notification_services = peer_sets_info(is_authority, &peer_set_protocol_names)
+ let notification_services = peer_sets_info(is_authority, &peerset_protocol_names)
.into_iter()
.map(|(config, (peerset, service))| {
net_config.add_notification_protocol(config);
@@ -184,14 +185,14 @@ async fn new_minimal_relay_chain(
.collect::>>();
let request_protocol_names = ReqProtocolNames::new(genesis_hash, config.chain_spec.fork_id());
- let (collation_req_receiver_v1, collation_req_receiver_v2, available_data_req_receiver) =
+ let (collation_req_v1_receiver, collation_req_v2_receiver, available_data_req_receiver) =
build_request_response_protocol_receivers(&request_protocol_names, &mut net_config);
let best_header = relay_chain_rpc_client
.chain_get_header(None)
.await?
.ok_or_else(|| RelayChainError::RpcCallError("Unable to fetch best header".to_string()))?;
- let (network, network_starter, sync_oracle) = build_collator_network(
+ let (network, network_starter, sync_service) = build_collator_network(
&config,
net_config,
task_manager.spawn_handle(),
@@ -208,19 +209,20 @@ async fn new_minimal_relay_chain(
prometheus_registry.cloned(),
);
- let overseer_args = CollatorOverseerGenArgs {
+ let overseer_args = OverseerGenArgs {
runtime_client: relay_chain_rpc_client.clone(),
network_service: network,
- sync_oracle,
+ sync_service,
authority_discovery_service,
- collation_req_receiver_v1,
- collation_req_receiver_v2,
+ collation_req_v1_receiver,
+ collation_req_v2_receiver,
available_data_req_receiver,
registry: prometheus_registry,
spawner: task_manager.spawn_handle(),
- collator_pair,
+ is_parachain_node: IsParachainNode::Collator(collator_pair),
+ overseer_message_channel_capacity_override: None,
req_protocol_names: request_protocol_names,
- peer_set_protocol_names,
+ peerset_protocol_names,
notification_services,
};
@@ -240,10 +242,10 @@ fn build_request_response_protocol_receivers(
IncomingRequestReceiver,
IncomingRequestReceiver,
) {
- let (collation_req_receiver_v1, cfg) =
+ let (collation_req_v1_receiver, cfg) =
IncomingRequest::get_config_receiver(request_protocol_names);
config.add_request_response_protocol(cfg);
- let (collation_req_receiver_v2, cfg) =
+ let (collation_req_v2_receiver, cfg) =
IncomingRequest::get_config_receiver(request_protocol_names);
config.add_request_response_protocol(cfg);
let (available_data_req_receiver, cfg) =
@@ -251,5 +253,5 @@ fn build_request_response_protocol_receivers(
config.add_request_response_protocol(cfg);
let cfg = Protocol::ChunkFetchingV1.get_outbound_only_config(request_protocol_names);
config.add_request_response_protocol(cfg);
- (collation_req_receiver_v1, collation_req_receiver_v2, available_data_req_receiver)
+ (collation_req_v1_receiver, collation_req_v2_receiver, available_data_req_receiver)
}
diff --git a/cumulus/client/relay-chain-minimal-node/src/network.rs b/cumulus/client/relay-chain-minimal-node/src/network.rs
index 95785063c1aeb6649d7154fa39e4e111e226def3..7286fab7907cb6d475b81a4dfd97c5d001180873 100644
--- a/cumulus/client/relay-chain-minimal-node/src/network.rs
+++ b/cumulus/client/relay-chain-minimal-node/src/network.rs
@@ -40,7 +40,11 @@ pub(crate) fn build_collator_network(
genesis_hash: Hash,
best_header: Header,
) -> Result<
- (Arc>, NetworkStarter, Box),
+ (
+ Arc>,
+ NetworkStarter,
+ Arc,
+ ),
Error,
> {
let protocol_id = config.protocol_id();
@@ -112,7 +116,7 @@ pub(crate) fn build_collator_network(
let network_starter = NetworkStarter::new(network_start_tx);
- Ok((network_service, network_starter, Box::new(SyncOracle {})))
+ Ok((network_service, network_starter, Arc::new(SyncOracle {})))
}
fn adjust_network_config_light_in_peers(config: &mut NetworkConfiguration) {
diff --git a/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs b/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs
index 6578210a259c956b1c817f579f66e84258a8ab3e..8cf5ccf0c707e5f8e3529462041f75a17ea6c117 100644
--- a/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs
+++ b/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs
@@ -24,6 +24,7 @@ use jsonrpsee::{
};
use serde::de::DeserializeOwned;
use serde_json::Value as JsonValue;
+use std::collections::VecDeque;
use tokio::sync::mpsc::Sender as TokioSender;
use parity_scale_codec::{Decode, Encode};
@@ -34,10 +35,10 @@ use cumulus_primitives_core::{
slashing,
vstaging::{ApprovalVotingParams, NodeFeatures},
BlockNumber, CandidateCommitments, CandidateEvent, CandidateHash,
- CommittedCandidateReceipt, CoreState, DisputeState, ExecutorParams, GroupRotationInfo,
- Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage, OccupiedCoreAssumption,
- PvfCheckStatement, ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode,
- ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature,
+ CommittedCandidateReceipt, CoreIndex, CoreState, DisputeState, ExecutorParams,
+ GroupRotationInfo, Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage,
+ OccupiedCoreAssumption, PvfCheckStatement, ScrapedOnChainVotes, SessionIndex, SessionInfo,
+ ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature,
},
InboundDownwardMessage, ParaId, PersistedValidationData,
};
@@ -647,6 +648,14 @@ impl RelayChainRpcClient {
.await
}
+ pub async fn parachain_host_claim_queue(
+ &self,
+ at: RelayHash,
+ ) -> Result>, RelayChainError> {
+ self.call_remote_runtime_function("ParachainHost_claim_queue", at, None::<()>)
+ .await
+ }
+
pub async fn validation_code_hash(
&self,
at: RelayHash,
diff --git a/cumulus/pallets/aura-ext/src/consensus_hook.rs b/cumulus/pallets/aura-ext/src/consensus_hook.rs
index 089ab5c3198b98129e53e155dc4fcc009bf0e6d8..592029803391179785bb3b5606079d1bee6b553f 100644
--- a/cumulus/pallets/aura-ext/src/consensus_hook.rs
+++ b/cumulus/pallets/aura-ext/src/consensus_hook.rs
@@ -54,8 +54,8 @@ where
let velocity = V.max(1);
let relay_chain_slot = state_proof.read_slot().expect("failed to read relay chain slot");
- let (slot, authored) = pallet::Pallet::::slot_info()
- .expect("slot info is inserted on block initialization");
+ let (slot, authored) =
+ pallet::SlotInfo::::get().expect("slot info is inserted on block initialization");
// Convert relay chain timestamp.
let relay_chain_timestamp =
@@ -100,7 +100,7 @@ impl<
/// is more recent than the included block itself.
pub fn can_build_upon(included_hash: T::Hash, new_slot: Slot) -> bool {
let velocity = V.max(1);
- let (last_slot, authored_so_far) = match pallet::Pallet::::slot_info() {
+ let (last_slot, authored_so_far) = match pallet::SlotInfo::::get() {
None => return true,
Some(x) => x,
};
diff --git a/cumulus/pallets/aura-ext/src/lib.rs b/cumulus/pallets/aura-ext/src/lib.rs
index 31b571816a0c15837c6175ab233204565cc7eb36..7ca84dff7c513c2406d3c0de7b9c0ac26048f508 100644
--- a/cumulus/pallets/aura-ext/src/lib.rs
+++ b/cumulus/pallets/aura-ext/src/lib.rs
@@ -63,14 +63,14 @@ pub mod pallet {
impl Hooks> for Pallet {
fn on_finalize(_: BlockNumberFor) {
// Update to the latest AuRa authorities.
- Authorities::::put(Aura::::authorities());
+ Authorities::::put(pallet_aura::Authorities::::get());
}
fn on_initialize(_: BlockNumberFor) -> Weight {
// Fetch the authorities once to get them into the storage proof of the PoV.
Authorities::::get();
- let new_slot = Aura::::current_slot();
+ let new_slot = pallet_aura::CurrentSlot::::get();
let (new_slot, authored) = match SlotInfo::::get() {
Some((slot, authored)) if slot == new_slot => (slot, authored + 1),
@@ -103,7 +103,6 @@ pub mod pallet {
///
/// Updated on each block initialization.
#[pallet::storage]
- #[pallet::getter(fn slot_info)]
pub(crate) type SlotInfo = StorageValue<_, (Slot, u32), OptionQuery>;
#[pallet::genesis_config]
@@ -116,7 +115,7 @@ pub mod pallet {
#[pallet::genesis_build]
impl BuildGenesisConfig for GenesisConfig {
fn build(&self) {
- let authorities = Aura::::authorities();
+ let authorities = pallet_aura::Authorities::::get();
Authorities::::put(authorities);
}
}
diff --git a/cumulus/pallets/collator-selection/Cargo.toml b/cumulus/pallets/collator-selection/Cargo.toml
index 20f048b97d558962ea270ef51399f6d2905ab1a0..241a78466d61be3969930e031e1a52f4f3478482 100644
--- a/cumulus/pallets/collator-selection/Cargo.toml
+++ b/cumulus/pallets/collator-selection/Cargo.toml
@@ -77,5 +77,3 @@ try-runtime = [
"pallet-timestamp/try-runtime",
"sp-runtime/try-runtime",
]
-
-experimental = ["pallet-aura/experimental"]
diff --git a/cumulus/pallets/collator-selection/src/benchmarking.rs b/cumulus/pallets/collator-selection/src/benchmarking.rs
index 2c40f4dd0eac4a8a2ad3aed7f162a4379ccdbc93..c6b600445282534951b2c63a6c2a87181688acd1 100644
--- a/cumulus/pallets/collator-selection/src/benchmarking.rs
+++ b/cumulus/pallets/collator-selection/src/benchmarking.rs
@@ -22,9 +22,7 @@ use super::*;
#[allow(unused)]
use crate::Pallet as CollatorSelection;
use codec::Decode;
-use frame_benchmarking::{
- account, impl_benchmark_test_suite, v2::*, whitelisted_caller, BenchmarkError,
-};
+use frame_benchmarking::{account, v2::*, whitelisted_caller, BenchmarkError};
use frame_support::traits::{Currency, EnsureOrigin, Get, ReservableCurrency};
use frame_system::{pallet_prelude::BlockNumberFor, EventRecord, RawOrigin};
use pallet_authorship::EventHandler;
@@ -88,23 +86,23 @@ fn register_validators(count: u32) -> Vec(count: u32) {
let candidates = (0..count).map(|c| account("candidate", c, SEED)).collect::>();
- assert!(>::get() > 0u32.into(), "Bond cannot be zero!");
+ assert!(CandidacyBond::::get() > 0u32.into(), "Bond cannot be zero!");
for who in candidates {
- T::Currency::make_free_balance_be(&who, >::get() * 3u32.into());
+ T::Currency::make_free_balance_be(&who, CandidacyBond::::get() * 3u32.into());
>::register_as_candidate(RawOrigin::Signed(who).into()).unwrap();
}
}
fn min_candidates() -> u32 {
let min_collators = T::MinEligibleCollators::get();
- let invulnerable_length = >::get().len();
+ let invulnerable_length = Invulnerables::::get().len();
min_collators.saturating_sub(invulnerable_length.try_into().unwrap())
}
fn min_invulnerables() -> u32 {
let min_collators = T::MinEligibleCollators::get();
- let candidates_length = >::decode_len()
+ let candidates_length = CandidateList::::decode_len()
.unwrap_or_default()
.try_into()
.unwrap_or_default();
@@ -145,8 +143,8 @@ mod benchmarks {
T::UpdateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
// need to fill up candidates
- >::put(T::Currency::minimum_balance());
- >::put(c);
+ CandidacyBond::::put(T::Currency::minimum_balance());
+ DesiredCandidates::::put(c);
// get accounts and keys for the `c` candidates
let mut candidates = (0..c).map(|cc| validator::(cc)).collect::>();
// add one more to the list. should not be in `b` (invulnerables) because it's the account
@@ -161,15 +159,15 @@ mod benchmarks {
}
// ... and register them.
for (who, _) in candidates.iter() {
- let deposit = >::get();
+ let deposit = CandidacyBond::::get();
T::Currency::make_free_balance_be(who, deposit * 1000_u32.into());
- >::try_mutate(|list| {
+ CandidateList::::try_mutate(|list| {
list.try_push(CandidateInfo { who: who.clone(), deposit }).unwrap();
Ok::<(), BenchmarkError>(())
})
.unwrap();
T::Currency::reserve(who, deposit)?;
- >::insert(
+ LastAuthoredBlock::::insert(
who.clone(),
frame_system::Pallet::::block_number() + T::KickThreshold::get(),
);
@@ -180,7 +178,7 @@ mod benchmarks {
invulnerables.sort();
let invulnerables: frame_support::BoundedVec<_, T::MaxInvulnerables> =
frame_support::BoundedVec::try_from(invulnerables).unwrap();
- >::put(invulnerables);
+ Invulnerables::::put(invulnerables);
#[extrinsic_call]
_(origin as T::RuntimeOrigin, new_invulnerable.clone());
@@ -199,8 +197,8 @@ mod benchmarks {
invulnerables.sort();
let invulnerables: frame_support::BoundedVec<_, T::MaxInvulnerables> =
frame_support::BoundedVec::try_from(invulnerables).unwrap();
- >::put(invulnerables);
- let to_remove = >::get().first().unwrap().clone();
+ Invulnerables::::put(invulnerables);
+ let to_remove = Invulnerables::::get().first().unwrap().clone();
#[extrinsic_call]
_(origin as T::RuntimeOrigin, to_remove.clone());
@@ -228,14 +226,14 @@ mod benchmarks {
k: Linear<0, { T::MaxCandidates::get() }>,
) -> Result<(), BenchmarkError> {
let initial_bond_amount: BalanceOf = T::Currency::minimum_balance() * 2u32.into();
- >::put(initial_bond_amount);
+ CandidacyBond::::put(initial_bond_amount);
register_validators::(c);
register_candidates::(c);
let kicked = cmp::min(k, c);
let origin =
T::UpdateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
let bond_amount = if k > 0 {
- >::mutate(|candidates| {
+ CandidateList::::mutate(|candidates| {
for info in candidates.iter_mut().skip(kicked as usize) {
info.deposit = T::Currency::minimum_balance() * 3u32.into();
}
@@ -256,13 +254,13 @@ mod benchmarks {
fn update_bond(
c: Linear<{ min_candidates::() + 1 }, { T::MaxCandidates::get() }>,
) -> Result<(), BenchmarkError> {
- >::put(T::Currency::minimum_balance());
- >::put(c);
+ CandidacyBond::::put(T::Currency::minimum_balance());
+ DesiredCandidates::::put(c);
register_validators::(c);
register_candidates::(c);
- let caller = >::get()[0].who.clone();
+ let caller = CandidateList::::get()[0].who.clone();
v2::whitelist!(caller);
let bond_amount: BalanceOf =
@@ -275,7 +273,7 @@ mod benchmarks {
Event::CandidateBondUpdated { account_id: caller, deposit: bond_amount }.into(),
);
assert!(
- >::get().iter().last().unwrap().deposit ==
+ CandidateList::::get().iter().last().unwrap().deposit ==
T::Currency::minimum_balance() * 2u32.into()
);
Ok(())
@@ -285,8 +283,8 @@ mod benchmarks {
// one.
#[benchmark]
fn register_as_candidate(c: Linear<1, { T::MaxCandidates::get() - 1 }>) {
- >::put(T::Currency::minimum_balance());
- >::put(c + 1);
+ CandidacyBond::::put(T::Currency::minimum_balance());
+ DesiredCandidates::::put(c + 1);
register_validators::(c);
register_candidates::(c);
@@ -312,8 +310,8 @@ mod benchmarks {
#[benchmark]
fn take_candidate_slot(c: Linear<{ min_candidates::() + 1 }, { T::MaxCandidates::get() }>) {
- >::put(T::Currency::minimum_balance());
- >::put(1);
+ CandidacyBond::::put(T::Currency::minimum_balance());
+ DesiredCandidates::::put(1);
register_validators::(c);
register_candidates::(c);
@@ -329,7 +327,7 @@ mod benchmarks {
)
.unwrap();
- let target = >::get().iter().last().unwrap().who.clone();
+ let target = CandidateList::::get().iter().last().unwrap().who.clone();
#[extrinsic_call]
_(RawOrigin::Signed(caller.clone()), bond / 2u32.into(), target.clone());
@@ -343,13 +341,13 @@ mod benchmarks {
// worse case is the last candidate leaving.
#[benchmark]
fn leave_intent(c: Linear<{ min_candidates::() + 1 }, { T::MaxCandidates::get() }>) {
- >::put(T::Currency::minimum_balance());
- >::put(c);
+ CandidacyBond::::put(T::Currency::minimum_balance());
+ DesiredCandidates::::put(c);
register_validators::(c);
register_candidates::(c);
- let leaving = >::get().iter().last().unwrap().who.clone();
+ let leaving = CandidateList::::get().iter().last().unwrap().who.clone();
v2::whitelist!(leaving);
#[extrinsic_call]
@@ -361,7 +359,7 @@ mod benchmarks {
// worse case is paying a non-existing candidate account.
#[benchmark]
fn note_author() {
- >::put(T::Currency::minimum_balance());
+ CandidacyBond::::put(T::Currency::minimum_balance());
T::Currency::make_free_balance_be(
&>::account_id(),
T::Currency::minimum_balance() * 4u32.into(),
@@ -387,8 +385,8 @@ mod benchmarks {
r: Linear<1, { T::MaxCandidates::get() }>,
c: Linear<1, { T::MaxCandidates::get() }>,
) {
- >::put(T::Currency::minimum_balance());
- >::put(c);
+ CandidacyBond::::put(T::Currency::minimum_balance());
+ DesiredCandidates::::put(c);
frame_system::Pallet::::set_block_number(0u32.into());
register_validators::(c);
@@ -396,7 +394,7 @@ mod benchmarks {
let new_block: BlockNumberFor = T::KickThreshold::get();
let zero_block: BlockNumberFor = 0u32.into();
- let candidates: Vec = >::get()
+ let candidates: Vec = CandidateList::::get()
.iter()
.map(|candidate_info| candidate_info.who.clone())
.collect();
@@ -404,25 +402,25 @@ mod benchmarks {
let non_removals = c.saturating_sub(r);
for i in 0..c {
- >::insert(candidates[i as usize].clone(), zero_block);
+ LastAuthoredBlock::::insert(candidates[i as usize].clone(), zero_block);
}
if non_removals > 0 {
for i in 0..non_removals {
- >::insert(candidates[i as usize].clone(), new_block);
+ LastAuthoredBlock::::insert(candidates[i as usize].clone(), new_block);
}
} else {
for i in 0..c {
- >::insert(candidates[i as usize].clone(), new_block);
+ LastAuthoredBlock::::insert(candidates[i as usize].clone(), new_block);
}
}
let min_candidates = min_candidates::();
- let pre_length = >::decode_len().unwrap_or_default();
+ let pre_length = CandidateList::::decode_len().unwrap_or_default();
frame_system::Pallet::::set_block_number(new_block);
- let current_length: u32 = >::decode_len()
+ let current_length: u32 = CandidateList::::decode_len()
.unwrap_or_default()
.try_into()
.unwrap_or_default();
@@ -436,12 +434,12 @@ mod benchmarks {
// candidates > removals and remaining candidates > min candidates
// => remaining candidates should be shorter than before removal, i.e. some were
// actually removed.
- assert!(>::decode_len().unwrap_or_default() < pre_length);
+ assert!(CandidateList::::decode_len().unwrap_or_default() < pre_length);
} else if c > r && non_removals < min_candidates {
// candidates > removals and remaining candidates would be less than min candidates
// => remaining candidates should equal min candidates, i.e. some were removed up to
// the minimum, but then any more were "forced" to stay in candidates.
- let current_length: u32 = >::decode_len()
+ let current_length: u32 = CandidateList::::decode_len()
.unwrap_or_default()
.try_into()
.unwrap_or_default();
@@ -449,7 +447,7 @@ mod benchmarks {
} else {
// removals >= candidates, non removals must == 0
// can't remove more than exist
- assert!(>::decode_len().unwrap_or_default() == pre_length);
+ assert!(CandidateList::::decode_len().unwrap_or_default() == pre_length);
}
}
diff --git a/cumulus/pallets/collator-selection/src/lib.rs b/cumulus/pallets/collator-selection/src/lib.rs
index 7449f4d68c7eacc8b07fa45f2f991c13f3d5713b..84bde5c9fac9f640692458f02b37f0ee108a734f 100644
--- a/cumulus/pallets/collator-selection/src/lib.rs
+++ b/cumulus/pallets/collator-selection/src/lib.rs
@@ -118,7 +118,7 @@ pub mod pallet {
use sp_staking::SessionIndex;
use sp_std::vec::Vec;
- /// The current storage version.
+ /// The in-code storage version.
const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
type BalanceOf =
@@ -196,7 +196,6 @@ pub mod pallet {
/// The invulnerable, permissioned collators. This list must be sorted.
#[pallet::storage]
- #[pallet::getter(fn invulnerables)]
pub type Invulnerables =
StorageValue<_, BoundedVec, ValueQuery>;
@@ -206,7 +205,6 @@ pub mod pallet {
/// This list is sorted in ascending order by deposit and when the deposits are equal, the least
/// recently updated is considered greater.
#[pallet::storage]
- #[pallet::getter(fn candidate_list)]
pub type CandidateList = StorageValue<
_,
BoundedVec>, T::MaxCandidates>,
@@ -215,7 +213,6 @@ pub mod pallet {
/// Last block authored by collator.
#[pallet::storage]
- #[pallet::getter(fn last_authored_block)]
pub type LastAuthoredBlock =
StorageMap<_, Twox64Concat, T::AccountId, BlockNumberFor, ValueQuery>;
@@ -223,14 +220,12 @@ pub mod pallet {
///
/// This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct.
#[pallet::storage]
- #[pallet::getter(fn desired_candidates)]
pub type DesiredCandidates = StorageValue<_, u32, ValueQuery>;
/// Fixed amount to deposit to become a collator.
///
/// When a collator calls `leave_intent` they immediately receive the deposit back.
#[pallet::storage]
- #[pallet::getter(fn candidacy_bond)]
pub type CandidacyBond = StorageValue<_, BalanceOf, ValueQuery>;
#[pallet::genesis_config]
@@ -263,9 +258,9 @@ pub mod pallet {
bounded_invulnerables.sort();
- >::put(self.desired_candidates);
- >::put(self.candidacy_bond);
- >::put(bounded_invulnerables);
+ DesiredCandidates::::put(self.desired_candidates);
+ CandidacyBond::::put(self.candidacy_bond);
+ Invulnerables::::put(bounded_invulnerables);
}
}
@@ -424,7 +419,7 @@ pub mod pallet {
// Invulnerables must be sorted for removal.
bounded_invulnerables.sort();
- >::put(&bounded_invulnerables);
+ Invulnerables::::put(&bounded_invulnerables);
Self::deposit_event(Event::NewInvulnerables {
invulnerables: bounded_invulnerables.to_vec(),
});
@@ -448,7 +443,7 @@ pub mod pallet {
if max > T::MaxCandidates::get() {
log::warn!("max > T::MaxCandidates; you might need to run benchmarks again");
}
- >::put(max);
+ DesiredCandidates::::put(max);
Self::deposit_event(Event::NewDesiredCandidates { desired_candidates: max });
Ok(().into())
}
@@ -470,17 +465,17 @@ pub mod pallet {
bond: BalanceOf,
) -> DispatchResultWithPostInfo {
T::UpdateOrigin::ensure_origin(origin)?;
- let bond_increased = >::mutate(|old_bond| -> bool {
+ let bond_increased = CandidacyBond::::mutate(|old_bond| -> bool {
let bond_increased = *old_bond < bond;
*old_bond = bond;
bond_increased
});
- let initial_len = >::decode_len().unwrap_or_default();
+ let initial_len = CandidateList::::decode_len().unwrap_or_default();
let kicked = (bond_increased && initial_len > 0)
.then(|| {
// Closure below returns the number of candidates which were kicked because
// their deposits were lower than the new candidacy bond.
- >::mutate(|candidates| -> usize {
+ CandidateList::::mutate(|candidates| -> usize {
let first_safe_candidate = candidates
.iter()
.position(|candidate| candidate.deposit >= bond)
@@ -488,14 +483,18 @@ pub mod pallet {
let kicked_candidates = candidates.drain(..first_safe_candidate);
for candidate in kicked_candidates {
T::Currency::unreserve(&candidate.who, candidate.deposit);
- >::remove(candidate.who);
+ LastAuthoredBlock::::remove(candidate.who);
}
first_safe_candidate
})
})
.unwrap_or_default();
Self::deposit_event(Event::NewCandidacyBond { bond_amount: bond });
- Ok(Some(T::WeightInfo::set_candidacy_bond(initial_len as u32, kicked as u32)).into())
+ Ok(Some(T::WeightInfo::set_candidacy_bond(
+ bond_increased.then(|| initial_len as u32).unwrap_or_default(),
+ kicked as u32,
+ ))
+ .into())
}
/// Register this account as a collator candidate. The account must (a) already have
@@ -508,12 +507,12 @@ pub mod pallet {
let who = ensure_signed(origin)?;
// ensure we are below limit.
- let length: u32 = >::decode_len()
+ let length: u32 = CandidateList::::decode_len()
.unwrap_or_default()
.try_into()
.unwrap_or_default();
ensure!(length < T::MaxCandidates::get(), Error::::TooManyCandidates);
- ensure!(!Self::invulnerables().contains(&who), Error::::AlreadyInvulnerable);
+ ensure!(!Invulnerables::::get().contains(&who), Error::::AlreadyInvulnerable);
let validator_key = T::ValidatorIdOf::convert(who.clone())
.ok_or(Error::