diff --git a/.config/lychee.toml b/.config/lychee.toml
index 200521ac41eeb739228d202ac0fb2d80be305464..733b77ec0cff9e616ecc0f851d9a3ed5e8574636 100644
--- a/.config/lychee.toml
+++ b/.config/lychee.toml
@@ -2,9 +2,9 @@
# Run with `lychee -c .config/lychee.toml ./**/*.rs ./**/*.prdoc`
cache = true
-max_cache_age = "1d"
+max_cache_age = "10d"
max_redirects = 10
-max_retries = 6
+max_retries = 3
# Exclude localhost et.al.
exclude_all_private = true
@@ -51,4 +51,7 @@ exclude = [
# Behind a captcha (code 403):
"https://iohk.io/en/blog/posts/2023/11/03/partner-chains-are-coming-to-cardano/",
"https://www.reddit.com/r/rust/comments/3spfh1/does_collect_allocate_more_than_once_while/",
+ # 403 rate limited:
+ "https://etherscan.io/block/11090290",
+ "https://substrate.stackexchange.com/.*",
]
diff --git a/.config/taplo.toml b/.config/taplo.toml
index f5d0b7021ba898ea3ab96323fa3fbc4efdd7b307..2c6ccfb2b34440686764c39ed6db1c73ed940f06 100644
--- a/.config/taplo.toml
+++ b/.config/taplo.toml
@@ -2,10 +2,12 @@
# ignore zombienet as they do some deliberate custom toml stuff
exclude = [
+ "bridges/testing/**",
"cumulus/zombienet/**",
"polkadot/node/malus/integrationtests/**",
"polkadot/zombienet_tests/**",
"substrate/zombienet/**",
+ "target/**",
]
# global rules
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index fdaa0c8628f766e241ba9043698b611a0bd78811..4fc5b97caae0735058337c8b23e4ca7471761d24 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -13,7 +13,7 @@
# - Multiple owners are supported.
# - Either handle (e.g, @github_user or @github/team) or email can be used. Keep in mind,
# that handles might work better because they are more recognizable on GitHub,
-# eyou can use them for mentioning unlike an email.
+# you can use them for mentioning unlike an email.
# - The latest matching rule, if multiple, takes precedence.
# CI
diff --git a/.github/scripts/check-prdoc.py b/.github/scripts/check-prdoc.py
new file mode 100644
index 0000000000000000000000000000000000000000..42b063f2885da148033986dfa49740f2b0416460
--- /dev/null
+++ b/.github/scripts/check-prdoc.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+
+'''
+Ensure that the prdoc files are valid.
+
+# Example
+
+```sh
+python3 -m pip install cargo-workspace
+python3 .github/scripts/check-prdoc.py Cargo.toml prdoc/*.prdoc
+```
+
+Produces example output:
+```pre
+🔎 Reading workspace polkadot-sdk/Cargo.toml
+📦 Checking 32 prdocs against 493 crates.
+✅ All prdocs are valid
+```
+'''
+
+import os
+import yaml
+import argparse
+import cargo_workspace
+
+def check_prdoc_crate_names(root, paths):
+ '''
+ Check that all crates of the `crates` section of each prdoc is present in the workspace.
+ '''
+
+ print(f'🔎 Reading workspace {root}.')
+ workspace = cargo_workspace.Workspace.from_path(root)
+ crate_names = [crate.name for crate in workspace.crates]
+
+ print(f'📦 Checking {len(paths)} prdocs against {len(crate_names)} crates.')
+ faulty = {}
+
+ for path in paths:
+ with open(path, 'r') as f:
+ prdoc = yaml.safe_load(f)
+
+ for crate in prdoc.get('crates', []):
+ crate = crate['name']
+ if crate in crate_names:
+ continue
+
+ faulty.setdefault(path, []).append(crate)
+
+ if len(faulty) == 0:
+ print('✅ All prdocs are valid.')
+ else:
+ print('❌ Some prdocs are invalid.')
+ for path, crates in faulty.items():
+ print(f'💥 {path} lists invalid crate: {", ".join(crates)}')
+ exit(1)
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Check prdoc files')
+ parser.add_argument('root', help='The cargo workspace manifest', metavar='root', type=str, nargs=1)
+ parser.add_argument('prdoc', help='The prdoc files', metavar='prdoc', type=str, nargs='*')
+ args = parser.parse_args()
+
+ if len(args.prdoc) == 0:
+ print('❌ Need at least one prdoc file as argument.')
+ exit(1)
+
+ return { 'root': os.path.abspath(args.root[0]), 'prdocs': args.prdoc }
+
+if __name__ == '__main__':
+ args = parse_args()
+ check_prdoc_crate_names(args['root'], args['prdocs'])
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..f844e962c41def7625fa3d45ae3cbf81ecb57147 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 signatures 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
@@ -316,7 +369,7 @@ function relative_parent() {
# used as Github Workflow Matrix. This call is exposed by the `scan` command and can be used as:
# podman run --rm -it -v /.../fellowship-runtimes:/build docker.io/chevdor/srtool:1.70.0-0.11.1 scan
function find_runtimes() {
- libs=($(git grep -I -r --cached --max-depth 20 --files-with-matches 'construct_runtime!' -- '*lib.rs'))
+ libs=($(git grep -I -r --cached --max-depth 20 --files-with-matches '[frame_support::runtime]!' -- '*lib.rs'))
re=".*-runtime$"
JSON=$(jq --null-input '{ "include": [] }')
@@ -344,3 +397,50 @@ 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
+
+}
+
+# Get latest release tag
+#
+# input: none
+# output: latest_release_tag
+get_latest_release_tag() {
+ TOKEN="Authorization: Bearer $GITHUB_TOKEN"
+ latest_release_tag=$(curl -s -H "$TOKEN" $api_base/paritytech/polkadot-sdk/releases/latest | jq -r '.tag_name')
+ printf $latest_release_tag
+}
diff --git a/.github/workflows/check-labels.yml b/.github/workflows/check-labels.yml
index 97562f0da09569931582864bd764e6724900d619..1d1a8770058d33ba5e449c6a2e8b307e0ff02eb7 100644
--- a/.github/workflows/check-labels.yml
+++ b/.github/workflows/check-labels.yml
@@ -9,14 +9,6 @@ jobs:
check-labels:
runs-on: ubuntu-latest
steps:
- - name: Skip merge queue
- if: ${{ contains(github.ref, 'gh-readonly-queue') }}
- run: exit 0
- - name: Pull image
- env:
- IMAGE: paritytech/ruled_labels:0.4.0
- run: docker pull $IMAGE
-
- name: Check labels
env:
IMAGE: paritytech/ruled_labels:0.4.0
@@ -28,6 +20,16 @@ jobs:
RULES_PATH: labels/ruled_labels
CHECK_SPECS: "specs_polkadot-sdk.yaml"
run: |
+ if [ ${{ github.ref }} == "refs/heads/master" ]; then
+ echo "Skipping master"
+ exit 0
+ fi
+ if [ $(echo ${{ github.ref }} | grep -c "gh-readonly-queue") -eq 1 ]; then
+ echo "Skipping merge queue"
+ exit 0
+ fi
+
+ docker pull $IMAGE
echo "REPO: ${REPO}"
echo "GITHUB_PR: ${GITHUB_PR}"
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/check-links.yml b/.github/workflows/check-links.yml
index 903d7a3fcb3d94bb6913d94627418d9212397bf3..58065f369c9cf160b0b94c233df9df1016426d07 100644
--- a/.github/workflows/check-links.yml
+++ b/.github/workflows/check-links.yml
@@ -3,8 +3,8 @@ name: Check links
on:
pull_request:
paths:
- - "*.rs"
- - "*.prdoc"
+ - "**.rs"
+ - "**.prdoc"
- ".github/workflows/check-links.yml"
- ".config/lychee.toml"
types: [opened, synchronize, reopened, ready_for_review]
diff --git a/.github/workflows/check-prdoc.yml b/.github/workflows/check-prdoc.yml
index f47404744a49b86735b584e5c0f84bda3fe3078e..c31dee06ec54a0154efc3ad46ff24c79de4d0d7b 100644
--- a/.github/workflows/check-prdoc.yml
+++ b/.github/workflows/check-prdoc.yml
@@ -17,31 +17,25 @@ env:
jobs:
check-prdoc:
runs-on: ubuntu-latest
+ if: github.event.pull_request.number != ''
steps:
+ - name: Checkout repo
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
# we cannot show the version in this step (ie before checking out the repo)
# due to https://github.com/paritytech/prdoc/issues/15
- - name: Skip merge queue
- if: ${{ contains(github.ref, 'gh-readonly-queue') }}
- run: exit 0
- - name: Pull image
+ - name: Check if PRdoc is required
+ id: get-labels
run: |
echo "Pulling $IMAGE"
$ENGINE pull $IMAGE
- - name: Check if PRdoc is required
- id: get-labels
- run: |
# Fetch the labels for the PR under test
echo "Fetch the labels for $API_BASE/${REPO}/pulls/${GITHUB_PR}"
labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
echo "Labels: ${labels}"
echo "labels=${labels}" >> "$GITHUB_OUTPUT"
- - name: Checkout repo
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
-
- - name: Check PRDoc version
- run: |
+ echo "Checking PRdoc version"
$ENGINE run --rm -v $PWD:/repo $IMAGE --version
- name: Early exit if PR is silent
@@ -62,4 +56,12 @@ jobs:
run: |
echo "Checking for PR#${GITHUB_PR}"
echo "You can find more information about PRDoc at $PRDOC_DOC"
- $ENGINE run --rm -v $PWD:/repo $IMAGE check -n ${GITHUB_PR}
+ $ENGINE run --rm -v $PWD:/repo -e RUST_LOG=info $IMAGE check -n ${GITHUB_PR}
+
+ - name: Validate prdoc for PR#${{ github.event.pull_request.number }}
+ if: ${{ !contains(steps.get-labels.outputs.labels, 'R0') }}
+ run: |
+ echo "Validating PR#${GITHUB_PR}"
+ python3 --version
+ python3 -m pip install cargo-workspace==1.2.1
+ python3 .github/scripts/check-prdoc.py Cargo.toml prdoc/pr_${GITHUB_PR}.prdoc
diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml
index 3dd812d7d9b3743062553b700adba9d6abd93c50..81ec311ccce8153d7a28f68ff801cc917c8d1fd9 100644
--- a/.github/workflows/check-workspace.yml
+++ b/.github/workflows/check-workspace.yml
@@ -2,8 +2,6 @@ name: Check workspace
on:
pull_request:
- paths:
- - "*.toml"
merge_group:
jobs:
@@ -19,5 +17,5 @@ jobs:
run: >
python3 .github/scripts/check-workspace.py .
--exclude
- "substrate/frame/contracts/fixtures/build"
+ "substrate/frame/contracts/fixtures/build"
"substrate/frame/contracts/fixtures/contracts/common"
diff --git a/.github/workflows/gitspiegel-trigger.yml b/.github/workflows/gitspiegel-trigger.yml
index b338f7a3f6254b9db628f8b2b45c88b8094ef390..01058ad74d0b71385a8096964ea6c779fc6f4869 100644
--- a/.github/workflows/gitspiegel-trigger.yml
+++ b/.github/workflows/gitspiegel-trigger.yml
@@ -13,14 +13,15 @@ on:
- unlocked
- ready_for_review
- reopened
+ # doesn't work as intended, triggers "workflow_run" webhook in any case
# the job doesn't check out any code, so it is relatively safe to run it on any event
- pull_request_target:
- types:
- - opened
- - synchronize
- - unlocked
- - ready_for_review
- - reopened
+ # pull_request_target:
+ # types:
+ # - opened
+ # - synchronize
+ # - unlocked
+ # - ready_for_review
+ # - reopened
merge_group:
# drop all permissions for GITHUB_TOKEN
diff --git a/.github/workflows/release-30_publish_release_draft.yml b/.github/workflows/release-30_publish_release_draft.yml
new file mode 100644
index 0000000000000000000000000000000000000000..12891ef70af36b4e848c68e292f9ba2881ee20d2
--- /dev/null
+++ b/.github/workflows/release-30_publish_release_draft.yml
@@ -0,0 +1,155 @@
+name: Release - Publish draft
+
+on:
+ push:
+ tags:
+ # Catches v1.2.3 and v1.2.3-rc1
+ - v[0-9]+.[0-9]+.[0-9]+*
+
+ workflow_dispatch:
+ inputs:
+ version:
+ description: Current release/rc version
+
+jobs:
+ get-rust-versions:
+ runs-on: ubuntu-latest
+ outputs:
+ rustc-stable: ${{ steps.get-rust-versions.outputs.stable }}
+ steps:
+ - id: get-rust-versions
+ run: |
+ RUST_STABLE_VERSION=$(curl -sS https://raw.githubusercontent.com/paritytech/scripts/master/dockerfiles/ci-unified/Dockerfile | grep -oP 'ARG RUST_STABLE_VERSION=\K[^ ]+')
+ echo "stable=$RUST_STABLE_VERSION" >> $GITHUB_OUTPUT
+
+ build-runtimes:
+ uses: "./.github/workflows/srtool.yml"
+ with:
+ excluded_runtimes: "substrate-test bp cumulus-test kitchensink minimal-template parachain-template penpal polkadot-test seedling shell frame-try sp solochain-template"
+
+ publish-release-draft:
+ runs-on: ubuntu-latest
+ needs: [get-rust-versions, build-runtimes]
+ outputs:
+ release_url: ${{ steps.create-release.outputs.html_url }}
+ asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+
+ - name: Prepare tooling
+ run: |
+ URL=https://github.com/chevdor/tera-cli/releases/download/v0.2.4/tera-cli_linux_amd64.deb
+ wget $URL -O tera.deb
+ sudo dpkg -i tera.deb
+ tera --version
+
+ - name: Download artifacts
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+
+ - name: Prepare draft
+ id: draft
+ env:
+ RUSTC_STABLE: ${{ needs.get-rust-versions.outputs.rustc-stable }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ ASSET_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/asset-hub-rococo-runtime/asset-hub-rococo-srtool-digest.json
+ ASSET_HUB_WESTEND_DIGEST: ${{ github.workspace}}/asset-hub-westend-runtime/asset-hub-westend-srtool-digest.json
+ BRIDGE_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/bridge-hub-rococo-runtime/bridge-hub-rococo-srtool-digest.json
+ BRIDGE_HUB_WESTEND_DIGEST: ${{ github.workspace}}/bridge-hub-westend-runtime/bridge-hub-westend-srtool-digest.json
+ COLLECTIVES_WESTEND_DIGEST: ${{ github.workspace}}/collectives-westend-runtime/collectives-westend-srtool-digest.json
+ CONTRACTS_ROCOCO_DIGEST: ${{ github.workspace}}/contracts-rococo-runtime/contracts-rococo-srtool-digest.json
+ CORETIME_ROCOCO_DIGEST: ${{ github.workspace}}/coretime-rococo-runtime/coretime-rococo-srtool-digest.json
+ CORETIME_WESTEND_DIGEST: ${{ github.workspace}}/coretime-westend-runtime/coretime-westend-srtool-digest.json
+ GLUTTON_WESTEND_DIGEST: ${{ github.workspace}}/glutton-westend-runtime/glutton-westend-srtool-digest.json
+ PEOPLE_ROCOCO_DIGEST: ${{ github.workspace}}/people-rococo-runtime/people-rococo-srtool-digest.json
+ PEOPLE_WESTEND_DIGEST: ${{ github.workspace}}/people-westend-runtime/people-westend-srtool-digest.json
+ ROCOCO_DIGEST: ${{ github.workspace}}/rococo-runtime/rococo-srtool-digest.json
+ WESTEND_DIGEST: ${{ github.workspace}}/westend-runtime/westend-srtool-digest.json
+ run: |
+ . ./.github/scripts/common/lib.sh
+
+ export REF1=$(get_latest_release_tag)
+ if [[ -z "${{ inputs.version }}" ]]; then
+ export REF2="${{ github.ref }}"
+ else
+ export REF2="${{ inputs.version }}"
+ fi
+ echo "REL_TAG=$REF2" >> $GITHUB_ENV
+ export VERSION=$(echo "$REF2" | sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+).*$/\1/')
+
+ ./scripts/release/build-changelogs.sh
+
+ echo "Checking the folder state"
+ pwd
+ ls -la scripts/release
+
+ - name: Archive artifact context.json
+ uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ with:
+ name: release-notes-context
+ path: |
+ scripts/release/context.json
+ **/*-srtool-digest.json
+
+ - name: Create draft release
+ id: create-release
+ uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ env.REL_TAG }}
+ release_name: Polkadot ${{ env.REL_TAG }}
+ body_path: ${{ github.workspace}}/scripts/release/RELEASE_DRAFT.md
+ draft: true
+
+ publish-runtimes:
+ needs: [ build-runtimes, publish-release-draft ]
+ continue-on-error: true
+ runs-on: ubuntu-latest
+ strategy:
+ matrix: ${{ fromJSON(needs.build-runtimes.outputs.published_runtimes) }}
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+
+ - name: Download artifacts
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+
+ - name: Get runtime info
+ env:
+ JSON: release-notes-context/${{ matrix.chain }}-runtime/${{ matrix.chain }}-srtool-digest.json
+ run: |
+ >>$GITHUB_ENV echo ASSET=$(find ${{ matrix.chain }}-runtime -name '*.compact.compressed.wasm')
+ >>$GITHUB_ENV echo SPEC=$(<${JSON} jq -r .runtimes.compact.subwasm.core_version.specVersion)
+
+ - name: Upload compressed ${{ matrix.chain }} v${{ env.SPEC }} wasm
+ if: ${{ matrix.chain != 'rococo-parachain' }}
+ uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 #v1.0.2
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.publish-release-draft.outputs.asset_upload_url }}
+ asset_path: ${{ env.ASSET }}
+ asset_name: ${{ matrix.chain }}_runtime-v${{ env.SPEC }}.compact.compressed.wasm
+ asset_content_type: application/wasm
+
+ post_to_matrix:
+ runs-on: ubuntu-latest
+ needs: publish-release-draft
+ strategy:
+ matrix:
+ channel:
+ - name: "Team: RelEng Internal"
+ room: '!GvAyzgCDgaVrvibaAF:parity.io'
+
+ steps:
+ - name: Send Matrix message to ${{ matrix.channel.name }}
+ uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
+ with:
+ room_id: ${{ matrix.channel.room }}
+ access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
+ server: m.parity.io
+ message: |
+ **New version of polkadot tagged**: ${{ github.ref }}
+ Draft release created: ${{ needs.publish-release-draft.outputs.release_url }}
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 b35120ca4e128beaa37047b0ac3f21b02f4da663..05c9d6a47f551860c51e318b01b495ca662e902e 100644
--- a/.github/workflows/release-99_notif-published.yml
+++ b/.github/workflows/release-99_notif-published.yml
@@ -8,22 +8,14 @@ on:
jobs:
ping_matrix:
runs-on: ubuntu-latest
+ environment: release
strategy:
matrix:
channel:
# Internal
- - name: 'RelEng: Cumulus Release Coordination'
- room: '!NAEMyPAHWOiOQHsvus:parity.io'
- pre-releases: true
- 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'
@@ -31,18 +23,15 @@ jobs:
pre-release: true
# Public
- # - name: '#KusamaValidatorLounge:polkadot.builders'
- # room: '!LhjZccBOqFNYKLdmbb:polkadot.builders'
- # pre-releases: false
- # - name: '#kusama-announcements:matrix.parity.io'
- # room: '!FMwxpQnYhRCNDRsYGI:matrix.parity.io'
- # pre-release: false
- # - name: '#polkadotvalidatorlounge:web3.foundation'
- # room: '!NZrbtteFeqYKCUGQtr:matrix.parity.io'
- # pre-release: false
- # - name: '#polkadot-announcements:matrix.parity.io'
- # room: '!UqHPWiCBGZWxrmYBkF:matrix.parity.io'
- # pre-release: false
+ - name: '#polkadotvalidatorlounge:web3.foundation'
+ room: '!NZrbtteFeqYKCUGQtr:matrix.parity.io'
+ pre-releases: false
+ - name: '#polkadot-announcements:parity.io'
+ room: '!UqHPWiCBGZWxrmYBkF:matrix.parity.io'
+ pre-releases: false
+ - name: '#kusama-announce:parity.io'
+ room: '!FMwxpQnYhRCNDRsYGI:matrix.parity.io'
+ pre-releases: false
steps:
- name: Matrix notification to ${{ matrix.channel.name }}
@@ -53,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/.github/workflows/srtool.yml b/.github/workflows/srtool.yml
index eb15538f559d2145700a73fb0e383d4103ce582a..95b1846b98e0c47cc6de2c92cadc16adc0cab487 100644
--- a/.github/workflows/srtool.yml
+++ b/.github/workflows/srtool.yml
@@ -12,6 +12,13 @@ on:
- release-v[0-9]+.[0-9]+.[0-9]+*
- release-cumulus-v[0-9]+*
- release-polkadot-v[0-9]+*
+ workflow_call:
+ inputs:
+ excluded_runtimes:
+ type: string
+ outputs:
+ published_runtimes:
+ value: ${{ jobs.find-runtimes.outputs.runtime }}
schedule:
- cron: "00 02 * * 1" # 2AM weekly on monday
@@ -39,7 +46,7 @@ jobs:
- name: Scan runtimes
env:
- EXCLUDED_RUNTIMES: "substrate-test"
+ EXCLUDED_RUNTIMES: ${{ inputs.excluded_runtimes }}:"substrate-test"
run: |
. ./.github/scripts/common/lib.sh
@@ -85,16 +92,6 @@ jobs:
echo "Compact Runtime: ${{ steps.srtool_build.outputs.wasm }}"
echo "Compressed Runtime: ${{ steps.srtool_build.outputs.wasm_compressed }}"
- # it takes a while to build the runtime, so let's save the artifact as soon as we have it
- - name: Archive Artifacts for ${{ matrix.chain }}
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
- with:
- name: ${{ matrix.chain }}-runtime
- path: |
- ${{ steps.srtool_build.outputs.wasm }}
- ${{ steps.srtool_build.outputs.wasm_compressed }}
- ${{ matrix.chain }}-srtool-digest.json
-
# We now get extra information thanks to subwasm
- name: Install subwasm
run: |
@@ -125,7 +122,7 @@ jobs:
tee ${{ matrix.chain }}-diff.txt
- name: Archive Subwasm results
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
+ uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: ${{ matrix.chain }}-runtime
path: |
@@ -133,3 +130,6 @@ jobs:
${{ matrix.chain }}-compressed-info.json
${{ matrix.chain }}-metadata.json
${{ matrix.chain }}-diff.txt
+ ${{ steps.srtool_build.outputs.wasm }}
+ ${{ steps.srtool_build.outputs.wasm_compressed }}
+ ${{ matrix.chain }}-srtool-digest.json
diff --git a/.github/workflows/subsystem-benchmarks.yml b/.github/workflows/subsystem-benchmarks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1a726b669e9094e8be53ef5a1ddb1b3198210d33
--- /dev/null
+++ b/.github/workflows/subsystem-benchmarks.yml
@@ -0,0 +1,55 @@
+# The actions takes json file as input and runs github-action-benchmark for it.
+
+on:
+ workflow_dispatch:
+ inputs:
+ benchmark-data-dir-path:
+ description: "Path to the benchmark data directory"
+ required: true
+ type: string
+ output-file-path:
+ description: "Path to the benchmark data file"
+ required: true
+ type: string
+
+jobs:
+ subsystem-benchmarks:
+ runs-on: ubuntu-latest
+ environment: subsystem-benchmarks
+ steps:
+ - name: Validate inputs
+ run: |
+ echo "${{ github.event.inputs.benchmark-data-dir-path }}" | grep -P '^[a-z\-]'
+ echo "${{ github.event.inputs.output-file-path }}" | grep -P '^[a-z\-]+\.json'
+
+ - name: Checkout Sources
+ uses: actions/checkout@v4.1.2
+ with:
+ fetch-depth: 0
+ ref: "gh-pages"
+
+ - name: Copy bench results
+ id: step_one
+ run: |
+ cp bench/gitlab/${{ github.event.inputs.output-file-path }} ${{ github.event.inputs.output-file-path }}
+
+ - name: Switch branch
+ id: step_two
+ run: |
+ git checkout master --
+
+ - uses: actions/create-github-app-token@v1
+ id: app-token
+ with:
+ app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }}
+ private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }}
+
+ - name: Store benchmark result
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ github.event.inputs.benchmark-data-dir-path }}
+ output-file-path: ${{ github.event.inputs.output-file-path }}
+ benchmark-data-dir-path: "bench/${{ github.event.inputs.benchmark-data-dir-path }}"
+ github-token: ${{ steps.app-token.outputs.token }}
+ auto-push: true
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c90a6c8e6e27a932c421378a333321f69f90ad0a..5e57dd86f14166e695f1c64b6b5aee56529a4781 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -119,23 +119,26 @@ default:
#
.forklift-cache:
before_script:
- - 'curl --header "PRIVATE-TOKEN: $FL_CI_GROUP_TOKEN" -o forklift -L "${CI_API_V4_URL}/projects/676/packages/generic/forklift/${FL_FORKLIFT_VERSION}/forklift_${FL_FORKLIFT_VERSION}_linux_amd64"'
- - chmod +x forklift
- - mkdir .forklift
- - cp $FL_FORKLIFT_CONFIG .forklift/config.toml
- - export FORKLIFT_PACKAGE_SUFFIX=${CI_JOB_NAME/ [0-9 \/]*}
- - shopt -s expand_aliases
- - export PATH=$PATH:$(pwd)
- - |
+ - mkdir ~/.forklift
+ - cp $FL_FORKLIFT_CONFIG ~/.forklift/config.toml
+ - >
if [ "$FORKLIFT_BYPASS" != "true" ]; then
- echo "FORKLIFT_BYPASS not set, creating alias cargo='forklift cargo'"
- alias cargo="forklift cargo"
+ echo "FORKLIFT_BYPASS not set";
+ if command -v forklift >/dev/null 2>&1; then
+ echo "forklift already exists";
+ forklift version
+ else
+ echo "forklift does not exist, downloading";
+ curl --header "PRIVATE-TOKEN: $FL_CI_GROUP_TOKEN" -o forklift -L "${CI_API_V4_URL}/projects/676/packages/generic/forklift/${FL_FORKLIFT_VERSION}/forklift_${FL_FORKLIFT_VERSION}_linux_amd64";
+ chmod +x forklift;
+ export PATH=$PATH:$(pwd);
+ echo ${FL_FORKLIFT_VERSION};
+ fi
+ echo "Creating alias cargo='forklift cargo'";
+ shopt -s expand_aliases;
+ alias cargo="forklift cargo";
fi
- - ls -al
- - rm -f forklift.sock
#
- - echo "FL_FORKLIFT_VERSION ${FL_FORKLIFT_VERSION}"
- - echo "FORKLIFT_PACKAGE_SUFFIX $FORKLIFT_PACKAGE_SUFFIX"
.common-refs:
rules:
@@ -151,6 +154,13 @@ default:
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
- if: $CI_COMMIT_REF_NAME =~ /^gh-readonly-queue.*$/ # merge queues
+.publish-gh-pages-refs:
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
+ - if: $CI_COMMIT_REF_NAME == "master"
+
# handle the specific case where benches could store incorrect bench data because of the downstream staging runs
# exclude cargo-check-benches from such runs
.test-refs-check-benches:
diff --git a/.gitlab/check-each-crate.py b/.gitlab/check-each-crate.py
index da2eaad36c522e5ebfdc0d43e78c38507807e1a6..9b654f8071ac7237fe9c7c943540e8e020cebd6e 100755
--- a/.gitlab/check-each-crate.py
+++ b/.gitlab/check-each-crate.py
@@ -55,7 +55,7 @@ for i in range(0, crates_per_group + overflow_crates):
print(f"Checking {crates[crate][0]}", file=sys.stderr)
- res = subprocess.run(["cargo", "check", "--locked"], cwd = crates[crate][1])
+ res = subprocess.run(["forklift", "cargo", "check", "--locked"], cwd = crates[crate][1])
if res.returncode != 0:
sys.exit(1)
diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml
index 002206e328cf0347fb9d0165868dd6da6d47caa9..8658e92efc8f9f7ae463a67a52eaf3d3d37df2f7 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: "-Dwarnings --default-theme=ayu --html-in-header ./docs/sdk/assets/header.html --extend-css ./docs/sdk/assets/theme.css --html-after-content ./docs/sdk/assets/after-content.html"
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
when: on_success
@@ -99,32 +99,31 @@ build-rustdoc:
paths:
- ./crate-docs/
script:
- # FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"` and `--all-features`
- - time cargo doc --features try-runtime,experimental --workspace --no-deps
+ - time cargo doc --all-features --workspace --no-deps
- rm -f ./target/doc/.lock
- mv ./target/doc ./crate-docs
# Inject Simple Analytics (https://www.simpleanalytics.com/) privacy preserving tracker into
# all .html files
- - |
+ - >
inject_simple_analytics() {
- local path="$1"
- local script_content=""
+ local path="$1";
+ local script_content="";
# Function that inject script into the head of an html file using sed.
process_file() {
- local file="$1"
- echo "Adding Simple Analytics script to $file"
- sed -i "s||$script_content|" "$file"
- }
- export -f process_file
- # xargs runs process_file in seperate shells without access to outer variables.
- # to make script_content available inside process_file, export it as an env var here.
- export script_content
+ local file="$1";
+ echo "Adding Simple Analytics script to $file";
+ sed -i "s||$script_content|" "$file";
+ };
+ export -f process_file;
+ # xargs runs process_file in separate shells without access to outer variables.
+ # make script_content available inside process_file, export it as an env var here.
+ export script_content;
# Modify .html files in parallel using xargs, otherwise it can take a long time.
- find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {}
- }
- inject_simple_analytics "./crate-docs"
+ find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {};
+ };
+ inject_simple_analytics "./crate-docs";
- echo "" > ./crate-docs/index.html
build-implementers-guide:
@@ -314,8 +313,9 @@ build-linux-substrate:
# tldr: we need to checkout the branch HEAD explicitly because of our dynamic versioning approach while building the substrate binary
# see https://github.com/paritytech/ci_cd/issues/682#issuecomment-1340953589
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
+ - !reference [.forklift-cache, before_script]
script:
- - WASM_BUILD_NO_COLOR=1 time cargo build --locked --release -p staging-node-cli
+ - time WASM_BUILD_NO_COLOR=1 cargo build --locked --release -p staging-node-cli
- mv $CARGO_TARGET_DIR/release/substrate-node ./artifacts/substrate/substrate
- echo -n "Substrate version = "
- if [ "${CI_COMMIT_TAG}" ]; then
@@ -329,13 +329,17 @@ build-linux-substrate:
# - printf '\n# building node-template\n\n'
# - ./scripts/ci/node-template-release.sh ./artifacts/substrate/substrate-node-template.tar.gz
-build-minimal-runtime-polkavm:
+build-runtimes-polkavm:
stage: build
extends:
- .docker-env
- .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
.build-subkey:
stage: build
@@ -345,13 +349,14 @@ build-minimal-runtime-polkavm:
- .run-immediately
# - .collect-artifact
variables:
- # this variable gets overriden by "rusty-cachier environment inject", use the value as default
+ # this variable gets overridden by "rusty-cachier environment inject", use the value as default
CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target"
before_script:
- mkdir -p ./artifacts/subkey
+ - !reference [.forklift-cache, before_script]
script:
- cd ./substrate/bin/utils/subkey
- - SKIP_WASM_BUILD=1 time cargo build --locked --release
+ - time SKIP_WASM_BUILD=1 cargo build --locked --release
# - cd -
# - mv $CARGO_TARGET_DIR/release/subkey ./artifacts/subkey/.
# - echo -n "Subkey version = "
@@ -390,3 +395,18 @@ build-subkey-linux:
# after_script: [""]
# tags:
# - osx
+
+# bridges
+
+# we need some non-binary artifacts in our bridges+zombienet image
+prepare-bridges-zombienet-artifacts:
+ stage: build
+ extends:
+ - .docker-env
+ - .common-refs
+ - .run-immediately
+ - .collect-artifacts
+ before_script:
+ - mkdir -p ./artifacts/bridges-polkadot-sdk/bridges
+ script:
+ - cp -r bridges/testing ./artifacts/bridges-polkadot-sdk/bridges/testing
diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml
index 1ed12e68c2ce19b67dd5aca03cec85702351c039..89b2c00db9b2b13187a562987e00abcb232e0e32 100644
--- a/.gitlab/pipeline/check.yml
+++ b/.gitlab/pipeline/check.yml
@@ -7,8 +7,8 @@ cargo-clippy:
variables:
RUSTFLAGS: "-D warnings"
script:
- - SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace
- - SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace
+ - SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace --quiet
+ - SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quiet
check-try-runtime:
stage: check
@@ -104,21 +104,20 @@ check-toml-format:
- .docker-env
- .test-pr-refs
script:
- - |
- export RUST_LOG=remote-ext=debug,runtime=debug
-
- echo "---------- Downloading try-runtime CLI ----------"
- curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.0/try-runtime-x86_64-unknown-linux-musl -o try-runtime
- chmod +x ./try-runtime
-
- echo "---------- Building ${PACKAGE} runtime ----------"
- time cargo build --release --locked -p "$PACKAGE" --features try-runtime
-
- echo "---------- Executing on-runtime-upgrade for ${NETWORK} ----------"
+ - export RUST_LOG=remote-ext=debug,runtime=debug
+ - echo "---------- Downloading try-runtime CLI ----------"
+ - curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.4/try-runtime-x86_64-unknown-linux-musl -o try-runtime
+ - chmod +x ./try-runtime
+ - echo "Using try-runtime-cli version:"
+ - ./try-runtime --version
+ - echo "---------- Building ${PACKAGE} runtime ----------"
+ - time cargo build --release --locked -p "$PACKAGE" --features try-runtime
+ - echo "---------- Executing on-runtime-upgrade for ${NETWORK} ----------"
+ - >
time ./try-runtime ${COMMAND_EXTRA_ARGS} \
- --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \
- on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI}
- sleep 5
+ --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \
+ on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI}
+ - sleep 5
# Check runtime migrations for Parity managed relay chains
check-runtime-migration-westend:
@@ -133,6 +132,7 @@ check-runtime-migration-westend:
WASM: "westend_runtime.compact.compressed.wasm"
URI: "wss://westend-try-runtime-node.parity-chains.parity.io:443"
SUBCOMMAND_EXTRA_ARGS: "--no-weight-warnings"
+ allow_failure: true
check-runtime-migration-rococo:
stage: check
@@ -256,3 +256,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/publish.yml b/.gitlab/pipeline/publish.yml
index 3b77f5363f627070984be057fb105d45c290be6e..d8f5d5832291f7afced292d3b0fdeb6238de26a8 100644
--- a/.gitlab/pipeline/publish.yml
+++ b/.gitlab/pipeline/publish.yml
@@ -3,16 +3,13 @@
publish-rustdoc:
stage: publish
- extends: .kubernetes-env
+ extends:
+ - .kubernetes-env
+ - .publish-gh-pages-refs
variables:
CI_IMAGE: node:18
GIT_DEPTH: 100
RUSTDOCS_DEPLOY_REFS: "master"
- rules:
- - if: $CI_PIPELINE_SOURCE == "pipeline"
- when: never
- - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "master"
needs:
- job: build-rustdoc
artifacts: true
@@ -60,12 +57,85 @@ publish-rustdoc:
- git commit -m "___Updated docs for ${CI_COMMIT_REF_NAME}___" ||
echo "___Nothing to commit___"
- git push origin gh-pages --force
+ # artificial sleep to publish gh-pages
+ - sleep 300
+ after_script:
+ - rm -rf .git/ ./*
+
+publish-subsystem-benchmarks:
+ stage: publish
+ variables:
+ CI_IMAGE: "paritytech/tools:latest"
+ extends:
+ - .kubernetes-env
+ - .publish-gh-pages-refs
+ needs:
+ - job: subsystem-benchmark-availability-recovery
+ artifacts: true
+ - job: subsystem-benchmark-availability-distribution
+ artifacts: true
+ - job: publish-rustdoc
+ artifacts: false
+ script:
+ # setup ssh
+ - eval $(ssh-agent)
+ - ssh-add - <<< ${GITHUB_SSH_PRIV_KEY}
+ - mkdir ~/.ssh && touch ~/.ssh/known_hosts
+ - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
+ # Set git config
+ - rm -rf .git/config
+ - git config user.email "devops-team@parity.io"
+ - git config user.name "${GITHUB_USER}"
+ - git config remote.origin.url "git@github.com:/paritytech/${CI_PROJECT_NAME}.git"
+ - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
+ - git fetch origin gh-pages
+ # Push result to github
+ - git checkout gh-pages --force
+ - mkdir -p bench/gitlab/ || echo "Directory exists"
+ - rm -rf bench/gitlab/*.json || echo "No json files"
+ - cp -r charts/*.json bench/gitlab/
+ - git add bench/gitlab/
+ - git commit -m "Add json files with benchmark results for ${CI_COMMIT_REF_NAME}"
+ - git push origin gh-pages
+ # artificial sleep to publish gh-pages
+ - sleep 300
+ allow_failure: true
after_script:
- rm -rf .git/ ./*
+trigger_workflow:
+ stage: deploy
+ extends:
+ - .kubernetes-env
+ - .publish-gh-pages-refs
+ needs:
+ - job: publish-subsystem-benchmarks
+ artifacts: false
+ - job: subsystem-benchmark-availability-recovery
+ artifacts: true
+ - job: subsystem-benchmark-availability-distribution
+ artifacts: true
+ script:
+ - echo "Triggering workflow"
+ - >
+ for benchmark in $(ls charts/*.json); do
+ export benchmark_name=$(basename $benchmark);
+ echo "Benchmark: $benchmark_name";
+ export benchmark_dir=$(echo $benchmark_name | sed 's/\.json//');
+ curl -q -X POST \
+ -H "Accept: application/vnd.github.v3+json" \
+ -H "Authorization: token $GITHUB_TOKEN" \
+ https://api.github.com/repos/paritytech/${CI_PROJECT_NAME}/actions/workflows/subsystem-benchmarks.yml/dispatches \
+ -d "{\"ref\":\"refs/heads/master\",\"inputs\":{\"benchmark-data-dir-path\":\"$benchmark_dir\",\"output-file-path\":\"$benchmark_name\"}}";
+ sleep 300;
+ done
+ allow_failure: true
+
# note: images are used not only in zombienet but also in rococo, wococo and versi
.build-push-image:
image: $BUILDAH_IMAGE
+ extends:
+ - .zombienet-refs
variables:
DOCKERFILE: "" # docker/path-to.Dockerfile
IMAGE_NAME: "" # docker.io/paritypr/image_name
@@ -77,6 +147,7 @@ publish-rustdoc:
--build-arg VCS_REF="${CI_COMMIT_SHA}"
--build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
--build-arg IMAGE_NAME="${IMAGE_NAME}"
+ --build-arg ZOMBIENET_IMAGE="${ZOMBIENET_IMAGE}"
--tag "$IMAGE_NAME:${DOCKER_IMAGES_VERSION}"
--file ${DOCKERFILE} .
- echo "$PARITYPR_PASS" |
@@ -163,3 +234,22 @@ build-push-image-substrate-pr:
variables:
DOCKERFILE: "docker/dockerfiles/substrate_injected.Dockerfile"
IMAGE_NAME: "docker.io/paritypr/substrate"
+
+# unlike other images, bridges+zombienet image is based on Zombienet image that pulls required binaries
+# from other fresh images (polkadot and cumulus)
+build-push-image-bridges-zombienet-tests:
+ stage: publish
+ extends:
+ - .kubernetes-env
+ - .common-refs
+ - .build-push-image
+ needs:
+ - job: build-linux-stable
+ artifacts: true
+ - job: build-linux-stable-cumulus
+ artifacts: true
+ - job: prepare-bridges-zombienet-artifacts
+ artifacts: true
+ variables:
+ DOCKERFILE: "docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile"
+ IMAGE_NAME: "docker.io/paritypr/bridges-zombienet-tests"
diff --git a/.gitlab/pipeline/test.yml b/.gitlab/pipeline/test.yml
index 0f69649546d125bd4771500f1c8157419ebcb93d..ffbee9cdcb47cd01e8298fa44bfb0cbf0270c8f1 100644
--- a/.gitlab/pipeline/test.yml
+++ b/.gitlab/pipeline/test.yml
@@ -23,7 +23,7 @@ test-linux-stable:
- echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}"
# add experimental to features after https://github.com/paritytech/substrate/pull/14502 is merged
# "upgrade_version_checks_should_work" is currently failing
- - |
+ - >
time cargo nextest run \
--workspace \
--locked \
@@ -34,7 +34,7 @@ test-linux-stable:
# Upload tests results to Elasticsearch
- echo "Upload test results to Elasticsearch"
- cat target/nextest/default/junit.xml | xq . > target/nextest/default/junit.json
- - |
+ - >
curl -v -XPOST --http1.1 \
-u ${ELASTIC_USERNAME}:${ELASTIC_PASSWORD} \
https://elasticsearch.parity-build.parity.io/unit-tests/_doc/${CI_JOB_ID} \
@@ -48,6 +48,7 @@ test-linux-stable:
- target/nextest/default/junit.xml
reports:
junit: target/nextest/default/junit.xml
+ timeout: 90m
test-linux-oldkernel-stable:
extends: test-linux-stable
@@ -85,7 +86,7 @@ test-linux-stable-runtime-benchmarks:
# script:
# # Build all but only execute 'runtime' tests.
# - echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}"
-# - |
+# - >
# time cargo nextest run \
# --workspace \
# --locked \
@@ -223,6 +224,7 @@ cargo-check-benches:
git merge --verbose --no-edit FETCH_HEAD;
fi
fi'
+ - !reference [.forklift-cache, before_script]
parallel: 2
script:
- mkdir -p ./artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
@@ -319,7 +321,24 @@ quick-benchmarks:
WASM_BUILD_NO_COLOR: 1
WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
script:
- - time cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks -- benchmark pallet --execution wasm --wasm-execution compiled --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --sanity-weight-check ignore
+ - time cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks --quiet -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet --sanity-weight-check ignore
+
+quick-benchmarks-omni:
+ stage: test
+ extends:
+ - .docker-env
+ - .common-refs
+ - .run-immediately
+ variables:
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-C debug-assertions"
+ RUST_BACKTRACE: "full"
+ WASM_BUILD_NO_COLOR: 1
+ WASM_BUILD_RUSTFLAGS: "-C debug-assertions"
+ script:
+ - time cargo build --locked --quiet --release -p asset-hub-westend-runtime --features runtime-benchmarks
+ - time cargo run --locked --release -p frame-omni-bencher --quiet -- v1 benchmark pallet --runtime target/release/wbuild/asset-hub-westend-runtime/asset_hub_westend_runtime.compact.compressed.wasm --all --steps 2 --repeat 1 --quiet --repeat 1 --sanity-weight-check ignore
test-frame-examples-compile-to-wasm:
# into one job
@@ -490,3 +509,39 @@ 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-benchmark-availability-recovery:
+ stage: test
+ artifacts:
+ name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
+ when: always
+ expire_in: 1 hour
+ paths:
+ - charts/
+ extends:
+ - .docker-env
+ - .common-refs
+ - .run-immediately
+ script:
+ - cargo bench -p polkadot-availability-recovery --bench availability-recovery-regression-bench --features subsystem-benchmarks
+ tags:
+ - benchmark
+ allow_failure: true
+
+subsystem-benchmark-availability-distribution:
+ stage: test
+ artifacts:
+ name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
+ when: always
+ expire_in: 1 hour
+ paths:
+ - charts/
+ extends:
+ - .docker-env
+ - .common-refs
+ - .run-immediately
+ script:
+ - cargo bench -p polkadot-availability-distribution --bench availability-distribution-regression-bench --features subsystem-benchmarks
+ tags:
+ - benchmark
+ allow_failure: true
diff --git a/.gitlab/pipeline/zombienet.yml b/.gitlab/pipeline/zombienet.yml
index a1d4db580cca734918c78bbb850cefcf3d06010e..52948e1eb719d9f8669523d9762f5662fd1b6e96 100644
--- a/.gitlab/pipeline/zombienet.yml
+++ b/.gitlab/pipeline/zombienet.yml
@@ -1,7 +1,8 @@
.zombienet-refs:
extends: .build-refs
variables:
- ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.91"
+ ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.99"
+ PUSHGATEWAY_URL: "http://zombienet-prometheus-pushgateway.managed-monitoring:9091/metrics/job/zombie-metrics"
include:
# substrate tests
@@ -10,3 +11,5 @@ include:
- .gitlab/pipeline/zombienet/cumulus.yml
# polkadot tests
- .gitlab/pipeline/zombienet/polkadot.yml
+ # bridges tests
+ - .gitlab/pipeline/zombienet/bridges.yml
diff --git a/.gitlab/pipeline/zombienet/bridges.yml b/.gitlab/pipeline/zombienet/bridges.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4278f59b1e9a2e33f32bf255436d6af5d31b30fb
--- /dev/null
+++ b/.gitlab/pipeline/zombienet/bridges.yml
@@ -0,0 +1,63 @@
+# This file is part of .gitlab-ci.yml
+# Here are all jobs that are executed during "zombienet" stage for bridges
+
+# common settings for all zombienet jobs
+.zombienet-bridges-common:
+ extends:
+ - .kubernetes-env
+ - .zombienet-refs
+ rules:
+ # Docker images have different tag in merge queues
+ - if: $CI_COMMIT_REF_NAME =~ /^gh-readonly-queue.*$/
+ variables:
+ DOCKER_IMAGES_VERSION: ${CI_COMMIT_SHORT_SHA}
+ - !reference [.build-refs, rules]
+ before_script:
+ - echo "Zombienet Tests Config"
+ - echo "${ZOMBIENET_IMAGE}"
+ - echo "${GH_DIR}"
+ - echo "${LOCAL_DIR}"
+ - ls "${LOCAL_DIR}"
+ - export DEBUG=zombie,zombie::network-node
+ - export ZOMBIENET_INTEGRATION_TEST_IMAGE="${BRIDGES_ZOMBIENET_TESTS_IMAGE}":${BRIDGES_ZOMBIENET_TESTS_IMAGE_TAG}
+ - echo "${ZOMBIENET_INTEGRATION_TEST_IMAGE}"
+ stage: zombienet
+ image: "${BRIDGES_ZOMBIENET_TESTS_IMAGE}:${BRIDGES_ZOMBIENET_TESTS_IMAGE_TAG}"
+ needs:
+ - job: build-push-image-bridges-zombienet-tests
+ artifacts: true
+ variables:
+ BRIDGES_ZOMBIENET_TESTS_IMAGE_TAG: ${DOCKER_IMAGES_VERSION}
+ BRIDGES_ZOMBIENET_TESTS_IMAGE: "docker.io/paritypr/bridges-zombienet-tests"
+ GH_DIR: "https://github.com/paritytech/polkadot-sdk/tree/${CI_COMMIT_SHA}/bridges/testing"
+ LOCAL_DIR: "/builds/parity/mirrors/polkadot-sdk/bridges/testing"
+ FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 1
+ RUN_IN_CONTAINER: "1"
+ artifacts:
+ name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}_zombienet_bridge_tests"
+ when: always
+ expire_in: 2 days
+ paths:
+ - ./zombienet-logs
+ after_script:
+ - mkdir -p ./zombienet-logs
+ # copy general logs
+ - cp -r /tmp/bridges-tests-run-*/logs/* ./zombienet-logs/
+ # copy logs of rococo nodes
+ - cp -r /tmp/bridges-tests-run-*/bridge_hub_rococo_local_network/*.log ./zombienet-logs/
+ # copy logs of westend nodes
+ - cp -r /tmp/bridges-tests-run-*/bridge_hub_westend_local_network/*.log ./zombienet-logs/
+
+zombienet-bridges-0001-asset-transfer-works:
+ extends:
+ - .zombienet-bridges-common
+ script:
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0001-asset-transfer --docker
+ - echo "Done"
+
+zombienet-bridges-0002-mandatory-headers-synced-while-idle:
+ extends:
+ - .zombienet-bridges-common
+ script:
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0002-mandatory-headers-synced-while-idle --docker
+ - echo "Done"
diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml
index 54eb6db48cae63d9cfb08cf7da61125028904371..ba05c709a27b163386e36f680812e0cf24f10277 100644
--- a/.gitlab/pipeline/zombienet/polkadot.yml
+++ b/.gitlab/pipeline/zombienet/polkadot.yml
@@ -158,6 +158,22 @@ zombienet-polkadot-functional-0011-async-backing-6-seconds-rate:
--local-dir="${LOCAL_DIR}/functional"
--test="0011-async-backing-6-seconds-rate.zndsl"
+zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks:
+ extends:
+ - .zombienet-polkadot-common
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}/elastic_scaling"
+ --test="0001-basic-3cores-6s-blocks.zndsl"
+
+zombienet-polkadot-elastic-scaling-0002-elastic-scaling-doesnt-break-parachains:
+ extends:
+ - .zombienet-polkadot-common
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}/elastic_scaling"
+ --test="0002-elastic-scaling-doesnt-break-parachains.zndsl"
+
zombienet-polkadot-smoke-0001-parachains-smoke-test:
extends:
- .zombienet-polkadot-common
diff --git a/.gitlab/rust-features.sh b/.gitlab/rust-features.sh
index c0ac192a6ec69ba16abb3bad2ec49de7e9cebb61..c3ec61ab8714768c9a49f2eb2e1e544706a1d875 100755
--- a/.gitlab/rust-features.sh
+++ b/.gitlab/rust-features.sh
@@ -15,7 +15,7 @@
#
# The steps of this script:
# 1. Check that all required dependencies are installed.
-# 2. Check that all rules are fullfilled for the whole workspace. If not:
+# 2. Check that all rules are fulfilled for the whole workspace. If not:
# 4. Check all crates to find the offending ones.
# 5. Print all offending crates and exit with code 1.
#
diff --git a/BRIDGES.md b/BRIDGES.md
deleted file mode 100644
index a6f00aec09283e10d1a697bcef3f523881941663..0000000000000000000000000000000000000000
--- a/BRIDGES.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# Using Parity Bridges Common dependency (`git subtree`)
-
-In `./bridges` sub-directory you can find a `git subtree` imported version of:
-[`parity-bridges-common`](https://github.com/paritytech/parity-bridges-common/) repository.
-
-(For regular Cumulus contributor 1. is relevant) \
-(For Cumulus maintainer 1. and 2. are relevant) \
-(For Bridges team 1. and 2. and 3. are relevant)
-
-## How to fix broken Bridges code?
-
-To fix Bridges code simply create a commit in current (`Cumulus`) repo. Best if
-the commit is isolated to changes in `./bridges` sub-directory, because it makes
-it easier to import that change back to upstream repo.
-
-(Any changes to `bridges` subtree require Bridges team approve and they should manage backport to Bridges repo)
-
-
-## How to pull latest Bridges code to the `bridges` subtree
-(in practice)
-
-The `bridges` repo has a stabilized branch `polkadot-staging` dedicated for releasing.
-
-```
-cd
-
-# this will update new git branches from bridges repo
-# there could be unresolved conflicts, but don't worry,
-# lots of them are caused because of removed unneeded files with patch step,
-BRANCH=polkadot-staging ./scripts/bridges_update_subtree.sh fetch
-
-# so, after fetch and before solving conflicts just run patch,
-# this will remove unneeded files and checks if subtree modules compiles
-./scripts/bridges_update_subtree.sh patch
-
-# if there are conflicts, this could help,
-# this removes locally deleted files at least (move changes to git stash for commit)
-./scripts/bridges_update_subtree.sh merge
-
-# (optional) when conflicts resolved, you can check build again - should pass
-# also important: this updates global Cargo.lock
-./scripts/bridges_update_subtree.sh patch
-
-# add changes to the commit, first command `fetch` starts merge,
-# so after all conflicts are solved and patch passes and compiles,
-# then we need to finish merge with:
-git merge --continue
-```
-
-## How to pull latest Bridges code or contribute back?
-(in theory)
-
-Note that it's totally fine to ping the **Bridges Team** to do that for you. The point
-of adding the code as `git subtree` is to **reduce maintenance cost** for Cumulus/Polkadot
-developers.
-
-If you still would like to either update the code to match latest code from the repo
-or create an upstream PR read below. The following commands should be run in the
-current (`polkadot`) repo.
-
-### Add Bridges repo as a local remote
-```
-git remote add -f bridges git@github.com:paritytech/parity-bridges-common.git
-```
-
-If you plan to contribute back, consider forking the repository on Github and adding
-your personal fork as a remote as well.
-```
-git remote add -f my-bridges git@github.com:tomusdrw/parity-bridges-common.git
-```
-
-### To update Bridges
-```
-git fetch bridges polkadot-staging
-git subtree pull --prefix=bridges bridges polkadot-staging --squash
-```
-
-We use `--squash` to avoid adding individual commits and rather squashing them
-all into one.
-
-### Clean unneeded files here
-```
-./bridges/scripts/verify-pallets-build.sh --ignore-git-state --no-revert
-```
-
-### Contributing back to Bridges (creating upstream PR)
-```
-git subtree push --prefix=bridges my-bridges polkadot-staging
-```
-This command will push changes to your personal fork of Bridges repo, from where
-you can simply create a PR to the main repo.
diff --git a/Cargo.lock b/Cargo.lock
index 9ce9fd8a71893602f2ad2dcca49b527f7fd1d513..c636f7af2aa0881d7e609c6777e1bae80afa66e5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -86,16 +86,16 @@ dependencies = [
[[package]]
name = "aes-gcm"
-version = "0.9.4"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
+checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f"
dependencies = [
"aead 0.4.3",
"aes 0.7.5",
"cipher 0.3.0",
- "ctr 0.8.0",
+ "ctr 0.7.0",
"ghash 0.4.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -109,14 +109,14 @@ dependencies = [
"cipher 0.4.4",
"ctr 0.9.2",
"ghash 0.5.0",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
name = "ahash"
-version = "0.7.6"
+version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
dependencies = [
"getrandom 0.2.10",
"once_cell",
@@ -125,9 +125,9 @@ dependencies = [
[[package]]
name = "ahash"
-version = "0.8.7"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
dependencies = [
"cfg-if",
"getrandom 0.2.10",
@@ -165,7 +165,7 @@ dependencies = [
"hex-literal",
"itoa",
"proptest",
- "rand",
+ "rand 0.8.5",
"ruint",
"serde",
"tiny-keccak",
@@ -177,23 +177,11 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef"
dependencies = [
- "alloy-rlp-derive",
"arrayvec 0.7.4",
"bytes",
"smol_str",
]
-[[package]]
-name = "alloy-rlp-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0391754c09fab4eae3404d19d0d297aa1c670c1775ab51d8a5312afeca23157"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
[[package]]
name = "alloy-sol-macro"
version = "0.4.2"
@@ -202,11 +190,11 @@ checksum = "8a98ad1696a2e17f010ae8e43e9f2a1e930ed176a8e3ff77acfeff6dfb07b42c"
dependencies = [
"const-hex",
"dunce",
- "heck",
+ "heck 0.4.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
"syn-solidity",
"tiny-keccak",
]
@@ -275,9 +263,9 @@ dependencies = [
[[package]]
name = "anstyle"
-version = "1.0.2"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
[[package]]
name = "anstyle-parse"
@@ -309,9 +297,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 +310,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 1.0.75",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
[[package]]
name = "aquamarine"
version = "0.5.0"
@@ -331,9 +333,9 @@ dependencies = [
"include_dir",
"itertools 0.10.5",
"proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -528,7 +530,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
dependencies = [
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -538,7 +540,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"
dependencies = [
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -550,7 +552,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20"
dependencies = [
"num-bigint",
"num-traits",
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -562,8 +564,8 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565"
dependencies = [
"num-bigint",
"num-traits",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -664,8 +666,8 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -676,7 +678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c"
dependencies = [
"num-traits",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -686,7 +688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"
dependencies = [
"num-traits",
- "rand",
+ "rand 0.8.5",
"rayon",
]
@@ -730,12 +732,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"
@@ -764,8 +760,8 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"synstructure",
]
@@ -776,8 +772,8 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -823,7 +819,6 @@ dependencies = [
"assert_matches",
"asset-hub-rococo-runtime",
"asset-test-utils",
- "cumulus-pallet-parachain-system",
"emulated-integration-tests-common",
"frame-support",
"pallet-asset-conversion",
@@ -833,12 +828,12 @@ dependencies = [
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
+ "penpal-runtime",
"rococo-runtime",
"rococo-system-emulated-network",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
- "testnet-parachains-constants",
]
[[package]]
@@ -858,6 +853,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -954,11 +950,11 @@ dependencies = [
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
+ "penpal-runtime",
"polkadot-runtime-common",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
- "testnet-parachains-constants",
"westend-runtime",
"westend-system-emulated-network",
]
@@ -980,6 +976,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -1050,11 +1047,11 @@ dependencies = [
"frame-support",
"frame-system",
"hex-literal",
- "pallet-asset-conversion",
"pallet-assets",
"pallet-balances",
"pallet-collator-selection",
"pallet-session",
+ "pallet-timestamp",
"pallet-xcm",
"pallet-xcm-bridge-hub-router",
"parachains-common",
@@ -1092,6 +1089,16 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "async-attributes"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
+dependencies = [
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
[[package]]
name = "async-channel"
version = "1.9.0"
@@ -1099,7 +1106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
dependencies = [
"concurrent-queue",
- "event-listener",
+ "event-listener 2.5.3",
"futures-core",
]
@@ -1109,7 +1116,7 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"async-task",
"concurrent-queue",
"fastrand 1.9.0",
@@ -1123,19 +1130,34 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"autocfg",
"blocking",
"futures-lite",
]
+[[package]]
+name = "async-global-executor"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
+dependencies = [
+ "async-channel",
+ "async-executor",
+ "async-io",
+ "async-lock 2.8.0",
+ "blocking",
+ "futures-lite",
+ "once_cell",
+]
+
[[package]]
name = "async-io"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"autocfg",
"cfg-if",
"concurrent-queue",
@@ -1155,7 +1177,18 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy",
+ "pin-project-lite 0.2.12",
]
[[package]]
@@ -1177,17 +1210,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
dependencies = [
"async-io",
- "async-lock",
+ "async-lock 2.8.0",
"autocfg",
"blocking",
"cfg-if",
- "event-listener",
+ "event-listener 2.5.3",
"futures-lite",
"rustix 0.37.23",
"signal-hook",
"windows-sys 0.48.0",
]
+[[package]]
+name = "async-std"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+dependencies = [
+ "async-attributes",
+ "async-channel",
+ "async-global-executor",
+ "async-io",
+ "async-lock 2.8.0",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite 0.2.12",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
[[package]]
name = "async-stream"
version = "0.3.5"
@@ -1205,9 +1265,9 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -1218,13 +1278,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
[[package]]
name = "async-trait"
-version = "0.1.74"
+version = "0.1.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -1270,8 +1330,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
dependencies = [
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -1281,6 +1341,17 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+[[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "getrandom 0.2.10",
+ "instant",
+ "rand 0.8.5",
+]
+
[[package]]
name = "backtrace"
version = "0.3.69"
@@ -1309,7 +1380,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",
@@ -1372,7 +1443,7 @@ name = "binary-merkle-tree"
version = "13.0.0"
dependencies = [
"array-bytes 6.1.0",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"hash-db",
"log",
"sp-core",
@@ -1401,12 +1472,12 @@ dependencies = [
"lazycell",
"peeking_take_while",
"prettyplease 0.2.12",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.48",
+ "syn 2.0.53",
]
[[package]]
@@ -1415,9 +1486,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",
]
@@ -1437,12 +1506,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"
@@ -1534,18 +1619,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"
@@ -1564,15 +1637,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"
@@ -1580,7 +1644,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
dependencies = [
"async-channel",
- "async-lock",
+ "async-lock 2.8.0",
"async-task",
"atomic-waker",
"fastrand 1.9.0",
@@ -1630,6 +1694,23 @@ dependencies = [
"scale-info",
]
+[[package]]
+name = "bp-beefy"
+version = "0.1.0"
+dependencies = [
+ "binary-merkle-tree",
+ "bp-runtime",
+ "frame-support",
+ "pallet-beefy-mmr",
+ "pallet-mmr",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-consensus-beefy",
+ "sp-runtime",
+ "sp-std 14.0.0",
+]
+
[[package]]
name = "bp-bridge-hub-cumulus"
version = "0.7.0"
@@ -1864,7 +1945,7 @@ dependencies = [
"bp-parachains",
"bp-polkadot-core",
"bp-runtime",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"finality-grandpa",
"parity-scale-codec",
"sp-application-crypto",
@@ -1906,7 +1987,7 @@ dependencies = [
[[package]]
name = "bridge-hub-common"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1938,7 +2019,6 @@ name = "bridge-hub-rococo-integration-tests"
version = "1.0.0"
dependencies = [
"asset-hub-rococo-runtime",
- "bp-messages",
"bridge-hub-rococo-runtime",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
@@ -1956,7 +2036,6 @@ dependencies = [
"rococo-westend-system-emulated-network",
"scale-info",
"snowbridge-core",
- "snowbridge-pallet-inbound-queue",
"snowbridge-pallet-inbound-queue-fixtures",
"snowbridge-pallet-outbound-queue",
"snowbridge-pallet-system",
@@ -1996,6 +2075,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -2089,6 +2169,7 @@ dependencies = [
"pallet-bridge-messages",
"pallet-bridge-parachains",
"pallet-bridge-relayers",
+ "pallet-timestamp",
"pallet-utility",
"parachains-common",
"parachains-runtimes-test-utils",
@@ -2121,7 +2202,6 @@ dependencies = [
name = "bridge-hub-westend-integration-tests"
version = "1.0.0"
dependencies = [
- "bp-messages",
"bridge-hub-westend-runtime",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
@@ -2133,6 +2213,7 @@ dependencies = [
"pallet-message-queue",
"pallet-xcm",
"parachains-common",
+ "parity-scale-codec",
"rococo-westend-system-emulated-network",
"sp-runtime",
"staging-xcm",
@@ -2165,6 +2246,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -2391,6 +2473,12 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+[[package]]
+name = "castaway"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
+
[[package]]
name = "cc"
version = "1.0.83"
@@ -2531,6 +2619,19 @@ dependencies = [
"unsigned-varint",
]
+[[package]]
+name = "cid"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3"
+dependencies = [
+ "core2",
+ "multibase",
+ "multihash 0.18.1",
+ "serde",
+ "unsigned-varint",
+]
+
[[package]]
name = "cipher"
version = "0.2.5"
@@ -2579,6 +2680,21 @@ dependencies = [
"libloading",
]
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim 0.8.0",
+ "textwrap 0.11.0",
+ "unicode-width",
+ "vec_map",
+]
+
[[package]]
name = "clap"
version = "3.2.25"
@@ -2591,19 +2707,19 @@ dependencies = [
"clap_lex 0.2.4",
"indexmap 1.9.3",
"once_cell",
- "strsim",
+ "strsim 0.10.0",
"termcolor",
- "textwrap",
+ "textwrap 0.16.0",
]
[[package]]
name = "clap"
-version = "4.4.18"
+version = "4.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
dependencies = [
"clap_builder",
- "clap_derive 4.4.7",
+ "clap_derive 4.5.3",
]
[[package]]
@@ -2617,14 +2733,14 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.4.18"
+version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
dependencies = [
"anstream",
"anstyle",
- "clap_lex 0.6.0",
- "strsim",
+ "clap_lex 0.7.0",
+ "strsim 0.11.0",
"terminal_size",
]
@@ -2634,7 +2750,7 @@ version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
]
[[package]]
@@ -2643,23 +2759,23 @@ 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",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
[[package]]
name = "clap_derive"
-version = "4.4.7"
+version = "4.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "heck 0.5.0",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -2673,9 +2789,9 @@ dependencies = [
[[package]]
name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
[[package]]
name = "coarsetime"
@@ -2723,6 +2839,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -2815,8 +2932,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b"
dependencies = [
"nom",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -2837,6 +2954,16 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
[[package]]
name = "comfy-table"
version = "7.1.0"
@@ -2860,7 +2987,7 @@ dependencies = [
"ark-std 0.4.0",
"fflonk",
"getrandom_or_panic",
- "merlin 3.0.0",
+ "merlin",
"rand_chacha 0.3.1",
]
@@ -2978,6 +3105,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -3072,6 +3200,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -3099,7 +3228,6 @@ dependencies = [
"pallet-xcm-benchmarks",
"parachains-common",
"parity-scale-codec",
- "polkadot-core-primitives",
"polkadot-parachain-primitives",
"polkadot-runtime-common",
"rococo-runtime-constants",
@@ -3137,6 +3265,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -3150,11 +3279,11 @@ dependencies = [
"pallet-aura",
"pallet-authorship",
"pallet-balances",
+ "pallet-broker",
"pallet-collator-selection",
"pallet-message-queue",
"pallet-multisig",
"pallet-session",
- "pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
@@ -3163,7 +3292,6 @@ dependencies = [
"pallet-xcm-benchmarks",
"parachains-common",
"parity-scale-codec",
- "polkadot-core-primitives",
"polkadot-parachain-primitives",
"polkadot-runtime-common",
"scale-info",
@@ -3325,6 +3453,21 @@ dependencies = [
"wasmtime-types",
]
+[[package]]
+name = "crc"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2b432c56615136f8dba245fed7ec3d5518c500a31108661067e61e72fe7e6bc"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
[[package]]
name = "crc32fast"
version = "1.3.2"
@@ -3371,7 +3514,7 @@ dependencies = [
"anes",
"cast",
"ciborium",
- "clap 4.4.18",
+ "clap 4.5.3",
"criterion-plot",
"futures",
"is-terminal",
@@ -3400,16 +3543,6 @@ dependencies = [
"itertools 0.10.5",
]
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
[[package]]
name = "crossbeam-deque"
version = "0.8.3"
@@ -3467,7 +3600,7 @@ checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
dependencies = [
"generic-array 0.14.7",
"rand_core 0.6.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"zeroize",
]
@@ -3499,24 +3632,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
dependencies = [
"generic-array 0.14.7",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
-dependencies = [
- "generic-array 0.14.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
name = "ctr"
-version = "0.8.0"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
+checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481"
dependencies = [
"cipher 0.3.0",
]
@@ -3534,7 +3657,7 @@ dependencies = [
name = "cumulus-client-cli"
version = "0.7.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"parity-scale-codec",
"sc-chain-spec",
"sc-cli",
@@ -3757,7 +3880,7 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"portpicker",
- "rand",
+ "rand 0.8.5",
"sc-cli",
"sc-client-api",
"sc-consensus",
@@ -3800,6 +3923,7 @@ dependencies = [
"sp-blockchain",
"sp-consensus",
"sp-core",
+ "sp-io",
"sp-runtime",
"sp-transaction-pool",
]
@@ -3852,6 +3976,7 @@ dependencies = [
"cumulus-primitives-proof-size-hostfunction",
"cumulus-test-client",
"cumulus-test-relay-sproof-builder",
+ "cumulus-test-runtime",
"environmental",
"frame-benchmarking",
"frame-support",
@@ -3864,10 +3989,12 @@ dependencies = [
"pallet-message-queue",
"parity-scale-codec",
"polkadot-parachain-primitives",
+ "polkadot-runtime-common",
"polkadot-runtime-parachains",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"scale-info",
+ "sp-consensus-slots",
"sp-core",
"sp-crypto-hashing",
"sp-externalities 0.25.0",
@@ -3890,9 +4017,9 @@ name = "cumulus-pallet-parachain-system-proc-macro"
version = "0.6.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -4037,6 +4164,25 @@ dependencies = [
"sp-trie",
]
+[[package]]
+name = "cumulus-primitives-storage-weight-reclaim"
+version = "1.0.0"
+dependencies = [
+ "cumulus-primitives-core",
+ "cumulus-primitives-proof-size-hostfunction",
+ "cumulus-test-runtime",
+ "docify",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-trie",
+]
+
[[package]]
name = "cumulus-primitives-timestamp"
version = "0.7.0"
@@ -4057,7 +4203,6 @@ dependencies = [
"frame-support",
"log",
"pallet-asset-conversion",
- "pallet-xcm-benchmarks",
"parity-scale-codec",
"polkadot-runtime-common",
"polkadot-runtime-parachains",
@@ -4137,6 +4282,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-overseer",
"polkadot-primitives",
+ "polkadot-service",
"sc-authority-discovery",
"sc-client-api",
"sc-network",
@@ -4168,7 +4314,7 @@ dependencies = [
"parity-scale-codec",
"pin-project",
"polkadot-overseer",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"sc-rpc-api",
"sc-service",
@@ -4199,6 +4345,7 @@ dependencies = [
"cumulus-primitives-core",
"cumulus-primitives-parachain-inherent",
"cumulus-primitives-proof-size-hostfunction",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-test-relay-sproof-builder",
"cumulus-test-runtime",
"cumulus-test-service",
@@ -4210,15 +4357,19 @@ dependencies = [
"polkadot-primitives",
"sc-block-builder",
"sc-consensus",
+ "sc-consensus-aura",
"sc-executor",
"sc-executor-common",
"sc-service",
"sp-api",
+ "sp-application-crypto",
"sp-blockchain",
+ "sp-consensus-aura",
"sp-core",
"sp-inherents",
"sp-io",
"sp-keyring",
+ "sp-keystore",
"sp-runtime",
"sp-timestamp",
"substrate-test-client",
@@ -4241,15 +4392,22 @@ dependencies = [
name = "cumulus-test-runtime"
version = "0.1.0"
dependencies = [
+ "cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
+ "cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"frame-executive",
"frame-support",
"frame-system",
"frame-system-rpc-runtime-api",
+ "pallet-aura",
+ "pallet-authorship",
"pallet-balances",
+ "pallet-collator-selection",
"pallet-glutton",
"pallet-message-queue",
+ "pallet-session",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -4257,6 +4415,7 @@ dependencies = [
"scale-info",
"sp-api",
"sp-block-builder",
+ "sp-consensus-aura",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
@@ -4275,16 +4434,20 @@ name = "cumulus-test-service"
version = "0.1.0"
dependencies = [
"async-trait",
- "clap 4.4.18",
+ "clap 4.5.3",
"criterion 0.5.1",
"cumulus-client-cli",
+ "cumulus-client-collator",
+ "cumulus-client-consensus-aura",
"cumulus-client-consensus-common",
+ "cumulus-client-consensus-proposer",
"cumulus-client-consensus-relay-chain",
"cumulus-client-parachain-inherent",
"cumulus-client-pov-recovery",
"cumulus-client-service",
"cumulus-pallet-parachain-system",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-relay-chain-inprocess-interface",
"cumulus-relay-chain-interface",
"cumulus-relay-chain-minimal-node",
@@ -4295,7 +4458,6 @@ dependencies = [
"frame-system-rpc-runtime-api",
"futures",
"jsonrpsee",
- "pallet-im-online",
"pallet-timestamp",
"pallet-transaction-payment",
"parachains-common",
@@ -4307,7 +4469,7 @@ dependencies = [
"polkadot-service",
"polkadot-test-service",
"portpicker",
- "rand",
+ "rand 0.8.5",
"rococo-parachain-runtime",
"sc-basic-authorship",
"sc-block-builder",
@@ -4315,6 +4477,7 @@ dependencies = [
"sc-cli",
"sc-client-api",
"sc-consensus",
+ "sc-consensus-aura",
"sc-executor",
"sc-executor-common",
"sc-executor-wasmtime",
@@ -4331,6 +4494,7 @@ dependencies = [
"sp-authority-discovery",
"sp-blockchain",
"sp-consensus",
+ "sp-consensus-aura",
"sp-consensus-grandpa",
"sp-core",
"sp-io",
@@ -4348,16 +4512,34 @@ dependencies = [
]
[[package]]
-name = "curve25519-dalek"
-version = "2.1.3"
+name = "curl"
+version = "0.4.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216"
+checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6"
dependencies = [
- "byteorder",
- "digest 0.8.1",
- "rand_core 0.5.1",
- "subtle 2.4.1",
- "zeroize",
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2 0.5.6",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.72+curl-8.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -4369,15 +4551,15 @@ dependencies = [
"byteorder",
"digest 0.9.0",
"rand_core 0.5.1",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"zeroize",
]
[[package]]
name = "curve25519-dalek"
-version = "4.1.1"
+version = "4.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
dependencies = [
"cfg-if",
"cpufeatures",
@@ -4386,7 +4568,7 @@ dependencies = [
"fiat-crypto",
"platforms",
"rustc_version 0.4.0",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"zeroize",
]
@@ -4396,9 +4578,9 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -4435,10 +4617,10 @@ dependencies = [
"cc",
"codespan-reporting",
"once_cell",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"scratch",
- "syn 2.0.48",
+ "syn 2.0.53",
]
[[package]]
@@ -4453,9 +4635,9 @@ version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -4542,8 +4724,8 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -4553,11 +4735,22 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
+[[package]]
+name = "derive-syn-parse"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
+dependencies = [
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
[[package]]
name = "derive_more"
version = "0.99.17"
@@ -4565,8 +4758,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
"convert_case",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"rustc_version 0.4.0",
"syn 1.0.109",
]
@@ -4610,7 +4803,7 @@ dependencies = [
"block-buffer 0.10.4",
"const-oid",
"crypto-common",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -4661,9 +4854,9 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -4705,26 +4898,26 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
[[package]]
name = "docify"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2"
+checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce"
dependencies = [
"docify_macros",
]
[[package]]
name = "docify_macros"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460"
+checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad"
dependencies = [
"common-path",
- "derive-syn-parse",
+ "derive-syn-parse 0.2.0",
"once_cell",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
- "syn 2.0.48",
+ "syn 2.0.53",
"termcolor",
"toml 0.8.8",
"walkdir",
@@ -4770,8 +4963,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -4791,10 +4984,20 @@ dependencies = [
"digest 0.10.7",
"elliptic-curve",
"rfc6979",
- "signature",
+ "serdect",
+ "signature 2.1.0",
"spki",
]
+[[package]]
+name = "ed25519"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"
+dependencies = [
+ "signature 1.6.4",
+]
+
[[package]]
name = "ed25519"
version = "2.2.2"
@@ -4802,7 +5005,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
dependencies = [
"pkcs8",
- "signature",
+ "signature 2.1.0",
+]
+
+[[package]]
+name = "ed25519-dalek"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
+dependencies = [
+ "curve25519-dalek 3.2.0",
+ "ed25519 1.5.3",
+ "rand 0.7.3",
+ "serde",
+ "sha2 0.9.9",
+ "zeroize",
]
[[package]]
@@ -4811,12 +5028,12 @@ version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
dependencies = [
- "curve25519-dalek 4.1.1",
- "ed25519",
+ "curve25519-dalek 4.1.2",
+ "ed25519 2.2.2",
"rand_core 0.6.4",
"serde",
"sha2 0.10.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"zeroize",
]
@@ -4840,8 +5057,8 @@ version = "4.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9"
dependencies = [
- "curve25519-dalek 4.1.1",
- "ed25519",
+ "curve25519-dalek 4.1.2",
+ "ed25519 2.2.2",
"hashbrown 0.14.3",
"hex",
"rand_core 0.6.4",
@@ -4857,9 +5074,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",
@@ -4870,7 +5087,8 @@ dependencies = [
"pkcs8",
"rand_core 0.6.4",
"sec1",
- "subtle 2.4.1",
+ "serdect",
+ "subtle 2.5.0",
"zeroize",
]
@@ -4893,12 +5111,13 @@ dependencies = [
"parachains-common",
"parity-scale-codec",
"paste",
+ "polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-runtime-parachains",
- "polkadot-service",
"sc-consensus-grandpa",
"sp-authority-discovery",
"sp-consensus-babe",
+ "sp-consensus-beefy",
"sp-core",
"sp-runtime",
"staging-xcm",
@@ -4926,12 +5145,24 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
dependencies = [
- "heck",
- "proc-macro2",
- "quote",
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
+[[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
[[package]]
name = "enumflags2"
version = "0.7.7"
@@ -4947,9 +5178,9 @@ version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -4958,16 +5189,16 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
-name = "env_logger"
-version = "0.8.4"
+name = "env_filter"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
dependencies = [
"log",
"regex",
@@ -4975,15 +5206,12 @@ dependencies = [
[[package]]
name = "env_logger"
-version = "0.9.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
dependencies = [
- "atty",
- "humantime",
"log",
"regex",
- "termcolor",
]
[[package]]
@@ -4999,6 +5227,19 @@ dependencies = [
"termcolor",
]
+[[package]]
+name = "env_logger"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
[[package]]
name = "environmental"
version = "1.1.4"
@@ -5011,11 +5252,26 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+[[package]]
+name = "equivocation-detector"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-header-chain",
+ "finality-relay",
+ "frame-support",
+ "futures",
+ "log",
+ "num-traits",
+ "relay-utils",
+]
+
[[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",
]
@@ -5098,6 +5354,27 @@ version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite 0.2.12",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite 0.2.12",
+]
+
[[package]]
name = "exit-future"
version = "0.2.0"
@@ -5115,8 +5392,8 @@ checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881"
dependencies = [
"blake3",
"fs-err",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
]
[[package]]
@@ -5127,9 +5404,9 @@ checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7"
dependencies = [
"blake2 0.10.6",
"fs-err",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -5142,12 +5419,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"
@@ -5205,8 +5476,8 @@ dependencies = [
"expander 0.0.4",
"indexmap 1.9.3",
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"thiserror",
]
@@ -5244,7 +5515,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
dependencies = [
"rand_core 0.6.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -5257,7 +5528,7 @@ dependencies = [
"ark-poly",
"ark-serialize 0.4.2",
"ark-std 0.4.0",
- "merlin 3.0.0",
+ "merlin",
]
[[package]]
@@ -5301,10 +5572,25 @@ dependencies = [
"num-traits",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"scale-info",
]
+[[package]]
+name = "finality-relay"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "backoff",
+ "bp-header-chain",
+ "futures",
+ "log",
+ "num-traits",
+ "parking_lot 0.12.1",
+ "relay-utils",
+]
+
[[package]]
name = "findshlibs"
version = "0.10.2"
@@ -5324,7 +5610,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534"
dependencies = [
"byteorder",
- "rand",
+ "rand 0.8.5",
"rustc-hex",
"static_assertions",
]
@@ -5361,6 +5647,21 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
[[package]]
name = "fork-tree"
version = "12.0.0"
@@ -5393,36 +5694,6 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
-[[package]]
-name = "frame"
-version = "0.0.1-dev"
-dependencies = [
- "docify",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-rpc-runtime-api",
- "log",
- "pallet-examples",
- "parity-scale-codec",
- "scale-info",
- "simple-mermaid",
- "sp-api",
- "sp-arithmetic",
- "sp-block-builder",
- "sp-consensus-aura",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-inherents",
- "sp-io",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-std 14.0.0",
- "sp-transaction-pool",
- "sp-version",
-]
-
[[package]]
name = "frame-benchmarking"
version = "28.0.0"
@@ -5470,9 +5741,10 @@ dependencies = [
"linked-hash-map",
"log",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"rand_pcg",
"sc-block-builder",
+ "sc-chain-spec",
"sc-cli",
"sc-client-api",
"sc-client-db",
@@ -5486,6 +5758,7 @@ dependencies = [
"sp-core",
"sp-database",
"sp-externalities 0.25.0",
+ "sp-genesis-builder",
"sp-inherents",
"sp-io",
"sp-keystore",
@@ -5520,11 +5793,11 @@ dependencies = [
"frame-support",
"parity-scale-codec",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"scale-info",
"sp-arithmetic",
- "syn 2.0.48",
+ "syn 2.0.53",
"trybuild",
]
@@ -5536,7 +5809,7 @@ dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-arithmetic",
"sp-core",
@@ -5550,13 +5823,13 @@ dependencies = [
name = "frame-election-solution-type-fuzzer"
version = "2.0.0-alpha.5"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"frame-election-provider-solution-type",
"frame-election-provider-support",
"frame-support",
"honggfuzz",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-arithmetic",
"sp-npos-elections",
@@ -5567,6 +5840,7 @@ dependencies = [
name = "frame-executive"
version = "28.0.0"
dependencies = [
+ "aquamarine 0.3.3",
"array-bytes 6.1.0",
"frame-support",
"frame-system",
@@ -5597,6 +5871,20 @@ dependencies = [
"serde",
]
+[[package]]
+name = "frame-omni-bencher"
+version = "0.1.0"
+dependencies = [
+ "clap 4.5.3",
+ "cumulus-primitives-proof-size-hostfunction",
+ "env_logger 0.11.3",
+ "frame-benchmarking-cli",
+ "log",
+ "sc-cli",
+ "sp-runtime",
+ "sp-statement-store",
+]
+
[[package]]
name = "frame-remote-externalities"
version = "0.35.0"
@@ -5623,7 +5911,7 @@ 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",
@@ -5657,6 +5945,7 @@ dependencies = [
"sp-staking",
"sp-state-machine",
"sp-std 14.0.0",
+ "sp-timestamp",
"sp-tracing 16.0.0",
"sp-weights",
"static_assertions",
@@ -5669,17 +5958,17 @@ version = "23.0.0"
dependencies = [
"Inflector",
"cfg-expr",
- "derive-syn-parse",
+ "derive-syn-parse 0.2.0",
"expander 2.0.0",
"frame-support-procedural-tools",
"itertools 0.10.5",
"macro_magic",
"proc-macro-warning",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
"sp-crypto-hashing",
- "syn 2.0.48",
+ "syn 2.0.53",
]
[[package]]
@@ -5688,18 +5977,18 @@ version = "10.0.0"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
name = "frame-support-procedural-tools-derive"
version = "11.0.0"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -5759,8 +6048,8 @@ dependencies = [
name = "frame-support-test-stg-frame-crate"
version = "0.1.0"
dependencies = [
- "frame",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"scale-info",
]
@@ -5862,9 +6151,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
[[package]]
name = "futures"
-version = "0.3.28"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
dependencies = [
"futures-channel",
"futures-core",
@@ -5893,9 +6182,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
dependencies = [
"futures-core",
"futures-task",
@@ -5930,9 +6219,9 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -6062,7 +6351,7 @@ version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9"
dependencies = [
- "rand",
+ "rand 0.8.5",
"rand_core 0.6.4",
]
@@ -6113,6 +6402,18 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+[[package]]
+name = "gloo-timers"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
[[package]]
name = "glutton-westend-runtime"
version = "3.0.0"
@@ -6159,6 +6460,24 @@ dependencies = [
"testnet-parachains-constants",
]
+[[package]]
+name = "governor"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
+dependencies = [
+ "cfg-if",
+ "dashmap",
+ "futures",
+ "futures-timer",
+ "no-std-compat",
+ "nonzero_ext",
+ "parking_lot 0.12.1",
+ "quanta",
+ "rand 0.8.5",
+ "smallvec",
+]
+
[[package]]
name = "group"
version = "0.13.0"
@@ -6167,14 +6486,14 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
dependencies = [
"ff",
"rand_core 0.6.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
name = "h2"
-version = "0.3.24"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
dependencies = [
"bytes",
"fnv",
@@ -6182,7 +6501,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"slab",
"tokio",
"tokio-util",
@@ -6197,9 +6516,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",
@@ -6230,7 +6549,7 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.8",
]
[[package]]
@@ -6239,7 +6558,7 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
]
[[package]]
@@ -6248,7 +6567,7 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
"allocator-api2",
"serde",
]
@@ -6262,12 +6581,27 @@ dependencies = [
"hashbrown 0.14.3",
]
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
[[package]]
name = "heck"
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"
@@ -6289,6 +6623,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"
@@ -6314,16 +6654,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.1",
- "digest 0.9.0",
-]
-
[[package]]
name = "hmac"
version = "0.12.1"
@@ -6448,9 +6778,9 @@ dependencies = [
"hyper",
"log",
"rustls 0.21.6",
- "rustls-native-certs",
+ "rustls-native-certs 0.6.3",
"tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
]
[[package]]
@@ -6570,8 +6900,8 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -6590,8 +6920,8 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
]
[[package]]
@@ -6613,9 +6943,9 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.0.0"
+version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
dependencies = [
"equivalent",
"hashbrown 0.14.3",
@@ -6696,7 +7026,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [
- "socket2 0.5.3",
+ "socket2 0.5.6",
"widestring",
"windows-sys 0.48.0",
"winreg",
@@ -6728,6 +7058,33 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "isahc"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
+dependencies = [
+ "async-channel",
+ "castaway",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
+ "encoding_rs",
+ "event-listener 2.5.3",
+ "futures-lite",
+ "http",
+ "log",
+ "mime",
+ "once_cell",
+ "polling",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
+]
+
[[package]]
name = "itertools"
version = "0.10.5"
@@ -6776,11 +7133,22 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
+[[package]]
+name = "jsonpath_lib"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f"
+dependencies = [
+ "log",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "jsonrpsee"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc"
+checksum = "87f3ae45a64cfc0882934f963be9431b2a165d667f53140358181f262aca0702"
dependencies = [
"jsonrpsee-core",
"jsonrpsee-http-client",
@@ -6794,19 +7162,20 @@ dependencies = [
[[package]]
name = "jsonrpsee-client-transport"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935"
+checksum = "455fc882e56f58228df2aee36b88a1340eafd707c76af2fa68cf94b37d461131"
dependencies = [
"futures-util",
"http",
"jsonrpsee-core",
"pin-project",
- "rustls-native-certs",
+ "rustls-native-certs 0.7.0",
+ "rustls-pki-types",
"soketto",
"thiserror",
"tokio",
- "tokio-rustls",
+ "tokio-rustls 0.25.0",
"tokio-util",
"tracing",
"url",
@@ -6814,12 +7183,12 @@ dependencies = [
[[package]]
name = "jsonrpsee-core"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b"
+checksum = "b75568f4f9696e3a47426e1985b548e1a9fcb13372a5e320372acaf04aca30d1"
dependencies = [
"anyhow",
- "async-lock",
+ "async-lock 3.3.0",
"async-trait",
"beef",
"futures-timer",
@@ -6827,21 +7196,22 @@ dependencies = [
"hyper",
"jsonrpsee-types",
"parking_lot 0.12.1",
- "rand",
+ "pin-project",
+ "rand 0.8.5",
"rustc-hash",
"serde",
"serde_json",
- "soketto",
"thiserror",
"tokio",
+ "tokio-stream",
"tracing",
]
[[package]]
name = "jsonrpsee-http-client"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20"
+checksum = "9e7a95e346f55df84fb167b7e06470e196e7d5b9488a21d69c5d9732043ba7ba"
dependencies = [
"async-trait",
"hyper",
@@ -6859,28 +7229,29 @@ dependencies = [
[[package]]
name = "jsonrpsee-proc-macros"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515"
+checksum = "30ca066e73dd70294aebc5c2675d8ffae43be944af027c857ce0d4c51785f014"
dependencies = [
- "heck",
- "proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "heck 0.4.1",
+ "proc-macro-crate 3.0.0",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
name = "jsonrpsee-server"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c"
+checksum = "0e29c1bd1f9bba83c864977c73404e505f74f730fa0db89dd490ec174e36d7f0"
dependencies = [
"futures-util",
"http",
"hyper",
"jsonrpsee-core",
"jsonrpsee-types",
+ "pin-project",
"route-recognizer",
"serde",
"serde_json",
@@ -6895,23 +7266,22 @@ dependencies = [
[[package]]
name = "jsonrpsee-types"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9"
+checksum = "3467fd35feeee179f71ab294516bdf3a81139e7aeebdd860e46897c12e1a3368"
dependencies = [
"anyhow",
"beef",
"serde",
"serde_json",
"thiserror",
- "tracing",
]
[[package]]
name = "jsonrpsee-ws-client"
-version = "0.20.3"
+version = "0.22.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0"
+checksum = "68ca71e74983f624c0cb67828e480a981586074da8ad3a2f214c6a3f884edab9"
dependencies = [
"http",
"jsonrpsee-client-transport",
@@ -6922,14 +7292,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",
]
@@ -6998,6 +7369,7 @@ dependencies = [
"pallet-election-provider-multi-phase",
"pallet-election-provider-support-benchmarking",
"pallet-elections-phragmen",
+ "pallet-example-mbm",
"pallet-example-tasks",
"pallet-fast-unstake",
"pallet-glutton",
@@ -7009,6 +7381,7 @@ dependencies = [
"pallet-lottery",
"pallet-membership",
"pallet-message-queue",
+ "pallet-migrations",
"pallet-mixnet",
"pallet-mmr",
"pallet-multisig",
@@ -7021,6 +7394,7 @@ dependencies = [
"pallet-nomination-pools-runtime-api",
"pallet-offences",
"pallet-offences-benchmarking",
+ "pallet-parameters",
"pallet-preimage",
"pallet-proxy",
"pallet-ranked-collective",
@@ -7080,6 +7454,15 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
[[package]]
name = "kvdb"
version = "0.13.0"
@@ -7204,6 +7587,16 @@ version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+[[package]]
+name = "libnghttp2-sys"
+version = "0.1.9+1.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64"
+dependencies = [
+ "cc",
+ "libc",
+]
+
[[package]]
name = "libp2p"
version = "0.51.4"
@@ -7281,7 +7674,7 @@ dependencies = [
"parking_lot 0.12.1",
"pin-project",
"quick-protobuf",
- "rand",
+ "rand 0.8.5",
"rw-stream-sink",
"smallvec",
"thiserror",
@@ -7300,7 +7693,7 @@ dependencies = [
"log",
"parking_lot 0.12.1",
"smallvec",
- "trust-dns-resolver",
+ "trust-dns-resolver 0.22.0",
]
[[package]]
@@ -7332,12 +7725,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce"
dependencies = [
"bs58 0.4.0",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"log",
"multiaddr",
"multihash 0.17.0",
"quick-protobuf",
- "rand",
+ "rand 0.8.5",
"sha2 0.10.7",
"thiserror",
"zeroize",
@@ -7362,7 +7755,7 @@ dependencies = [
"libp2p-swarm",
"log",
"quick-protobuf",
- "rand",
+ "rand 0.8.5",
"sha2 0.10.7",
"smallvec",
"thiserror",
@@ -7384,11 +7777,11 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm",
"log",
- "rand",
+ "rand 0.8.5",
"smallvec",
"socket2 0.4.9",
"tokio",
- "trust-dns-proto",
+ "trust-dns-proto 0.22.0",
"void",
]
@@ -7420,7 +7813,7 @@ dependencies = [
"log",
"once_cell",
"quick-protobuf",
- "rand",
+ "rand 0.8.5",
"sha2 0.10.7",
"snow",
"static_assertions",
@@ -7442,7 +7835,7 @@ dependencies = [
"libp2p-core",
"libp2p-swarm",
"log",
- "rand",
+ "rand 0.8.5",
"void",
]
@@ -7462,7 +7855,7 @@ dependencies = [
"log",
"parking_lot 0.12.1",
"quinn-proto",
- "rand",
+ "rand 0.8.5",
"rustls 0.20.8",
"thiserror",
"tokio",
@@ -7480,7 +7873,7 @@ dependencies = [
"libp2p-core",
"libp2p-identity",
"libp2p-swarm",
- "rand",
+ "rand 0.8.5",
"smallvec",
]
@@ -7499,7 +7892,7 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm-derive",
"log",
- "rand",
+ "rand 0.8.5",
"smallvec",
"tokio",
"void",
@@ -7511,8 +7904,8 @@ version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f"
dependencies = [
- "heck",
- "quote",
+ "heck 0.4.1",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -7547,7 +7940,7 @@ dependencies = [
"rustls 0.20.8",
"thiserror",
"webpki",
- "x509-parser",
+ "x509-parser 0.14.0",
"yasna",
]
@@ -7625,7 +8018,7 @@ dependencies = [
"libsecp256k1-core",
"libsecp256k1-gen-ecmult",
"libsecp256k1-gen-genmult",
- "rand",
+ "rand 0.8.5",
"serde",
"sha2 0.9.9",
"typenum",
@@ -7639,7 +8032,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451"
dependencies = [
"crunchy",
"digest 0.9.0",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -7667,6 +8060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
dependencies = [
"cc",
+ "libc",
"pkg-config",
"vcpkg",
]
@@ -7752,6 +8146,60 @@ dependencies = [
"paste",
]
+[[package]]
+name = "litep2p"
+version = "0.3.0"
+source = "git+https://github.com/paritytech/litep2p?branch=master#b142c9eb611fb2fe78d2830266a3675b37299ceb"
+dependencies = [
+ "async-trait",
+ "bs58 0.4.0",
+ "bytes",
+ "cid 0.10.1",
+ "ed25519-dalek 1.0.1",
+ "futures",
+ "futures-timer",
+ "hex-literal",
+ "indexmap 2.2.3",
+ "libc",
+ "mockall",
+ "multiaddr",
+ "multihash 0.17.0",
+ "network-interface",
+ "nohash-hasher",
+ "parking_lot 0.12.1",
+ "pin-project",
+ "prost 0.11.9",
+ "prost-build",
+ "quinn",
+ "rand 0.8.5",
+ "rcgen",
+ "ring 0.16.20",
+ "rustls 0.20.8",
+ "serde",
+ "sha2 0.10.7",
+ "simple-dns",
+ "smallvec",
+ "snow",
+ "socket2 0.5.6",
+ "static_assertions",
+ "str0m",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tokio-tungstenite 0.20.1",
+ "tokio-util",
+ "tracing",
+ "trust-dns-resolver 0.23.2",
+ "uint",
+ "unsigned-varint",
+ "url",
+ "webpki",
+ "x25519-dalek 2.0.0",
+ "x509-parser 0.15.1",
+ "yasna",
+ "zeroize",
+]
+
[[package]]
name = "lock_api"
version = "0.4.10"
@@ -7764,9 +8212,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",
@@ -7834,6 +8282,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "mach2"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "macro_magic"
version = "0.5.0"
@@ -7842,8 +8299,8 @@ checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d"
dependencies = [
"macro_magic_core",
"macro_magic_macros",
- "quote",
- "syn 2.0.48",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -7853,11 +8310,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d"
dependencies = [
"const-random",
- "derive-syn-parse",
+ "derive-syn-parse 0.1.5",
"macro_magic_core_macros",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -7866,9 +8323,9 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -7878,8 +8335,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3"
dependencies = [
"macro_magic_core",
- "quote",
- "syn 2.0.48",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -7999,26 +8456,32 @@ dependencies = [
[[package]]
name = "merlin"
-version = "2.0.1"
+version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
+checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"
dependencies = [
"byteorder",
"keccak",
- "rand_core 0.5.1",
+ "rand_core 0.6.4",
"zeroize",
]
[[package]]
-name = "merlin"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"
+name = "messages-relay"
+version = "0.1.0"
dependencies = [
- "byteorder",
- "keccak",
- "rand_core 0.6.4",
- "zeroize",
+ "async-std",
+ "async-trait",
+ "bp-messages",
+ "env_logger 0.11.3",
+ "finality-relay",
+ "futures",
+ "hex",
+ "log",
+ "num-traits",
+ "parking_lot 0.12.1",
+ "relay-utils",
+ "sp-arithmetic",
]
[[package]]
@@ -8028,7 +8491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532"
dependencies = [
"futures",
- "rand",
+ "rand 0.8.5",
"thrift",
]
@@ -8045,15 +8508,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.4.18",
- "frame",
+ "clap 4.5.3",
"futures",
"futures-timer",
"jsonrpsee",
- "minimal-runtime",
+ "minimal-template-runtime",
+ "polkadot-sdk-frame",
"sc-basic-authorship",
"sc-cli",
"sc-client-api",
@@ -8080,19 +8543,20 @@ 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",
"pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"scale-info",
"sp-genesis-builder",
+ "sp-runtime",
"substrate-wasm-builder",
]
@@ -8107,9 +8571,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",
@@ -8127,16 +8591,16 @@ dependencies = [
"bitflags 1.3.2",
"blake2 0.10.6",
"c2-chacha",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
"either",
"hashlink",
"lioness",
"log",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_distr",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"thiserror",
"zeroize",
]
@@ -8201,8 +8665,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
dependencies = [
"cfg-if",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -8259,10 +8723,14 @@ version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815"
dependencies = [
+ "blake2b_simd",
+ "blake2s_simd",
+ "blake3",
"core2",
"digest 0.10.7",
"multihash-derive 0.8.0",
"sha2 0.10.7",
+ "sha3",
"unsigned-varint",
]
@@ -8304,8 +8772,8 @@ checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"synstructure",
]
@@ -8329,8 +8797,8 @@ checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"synstructure",
]
@@ -8377,8 +8845,8 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -8389,7 +8857,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc"
dependencies = [
"clap 3.2.25",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -8464,6 +8932,18 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "network-interface"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae72fd9dbd7f55dda80c00d66acc3b2130436fcba9ea89118fc508eaae48dfb0"
+dependencies = [
+ "cc",
+ "libc",
+ "thiserror",
+ "winapi",
+]
+
[[package]]
name = "nix"
version = "0.24.3"
@@ -8500,6 +8980,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
[[package]]
name = "no-std-net"
version = "0.6.0"
@@ -8511,7 +8997,7 @@ name = "node-bench"
version = "0.9.0-dev"
dependencies = [
"array-bytes 6.1.0",
- "clap 4.4.18",
+ "clap 4.5.3",
"derive_more",
"fs_extra",
"futures",
@@ -8524,7 +9010,7 @@ dependencies = [
"node-primitives",
"node-testing",
"parity-db",
- "rand",
+ "rand 0.8.5",
"sc-basic-authorship",
"sc-client-api",
"sc-transaction-pool",
@@ -8588,60 +9074,16 @@ dependencies = [
name = "node-runtime-generate-bags"
version = "3.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"generate-bags",
"kitchensink-runtime",
]
-[[package]]
-name = "node-template"
-version = "4.0.0-dev"
-dependencies = [
- "clap 4.4.18",
- "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.4.18",
+ "clap 4.5.3",
"flate2",
"fs_extra",
"glob",
@@ -8651,45 +9093,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"
@@ -8750,12 +9153,27 @@ dependencies = [
"minimal-lexical",
]
+[[package]]
+name = "nonzero_ext"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
+
[[package]]
name = "normalize-line-endings"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+[[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
@@ -8863,6 +9281,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "number_prefix"
version = "0.4.0"
@@ -8901,9 +9328,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "oorandom"
@@ -8923,12 +9350,60 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.0",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
[[package]]
name = "openssl-probe"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+[[package]]
+name = "openssl-src"
+version = "300.2.3+3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.102"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
[[package]]
name = "option-ext"
version = "0.2.0"
@@ -8959,12 +9434,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eedb646674596266dc9bb2b5c7eea7c36b32ecc7777eba0d510196972d72c4fd"
dependencies = [
"expander 2.0.0",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"itertools 0.11.0",
"petgraph",
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -9207,7 +9682,7 @@ dependencies = [
name = "pallet-bags-list"
version = "27.0.0"
dependencies = [
- "aquamarine",
+ "aquamarine 0.5.0",
"docify",
"frame-benchmarking",
"frame-election-provider-support",
@@ -9231,7 +9706,7 @@ dependencies = [
"frame-election-provider-support",
"honggfuzz",
"pallet-bags-list",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -9343,14 +9818,38 @@ dependencies = [
]
[[package]]
-name = "pallet-bridge-grandpa"
-version = "0.7.0"
+name = "pallet-bridge-beefy"
+version = "0.1.0"
dependencies = [
- "bp-header-chain",
+ "bp-beefy",
"bp-runtime",
"bp-test-utils",
- "finality-grandpa",
- "frame-benchmarking",
+ "ckb-merkle-mountain-range",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-beefy-mmr",
+ "pallet-mmr",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "scale-info",
+ "serde",
+ "sp-consensus-beefy",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+]
+
+[[package]]
+name = "pallet-bridge-grandpa"
+version = "0.7.0"
+dependencies = [
+ "bp-header-chain",
+ "bp-runtime",
+ "bp-test-utils",
+ "finality-grandpa",
+ "frame-benchmarking",
"frame-support",
"frame-system",
"log",
@@ -9438,6 +9937,7 @@ dependencies = [
"frame-system",
"parity-scale-codec",
"scale-info",
+ "sp-api",
"sp-arithmetic",
"sp-core",
"sp-io",
@@ -9478,7 +9978,7 @@ dependencies = [
"pallet-session",
"pallet-timestamp",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-consensus-aura",
"sp-core",
@@ -9527,7 +10027,7 @@ dependencies = [
"array-bytes 6.1.0",
"assert_matches",
"bitflags 1.3.2",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"environmental",
"frame-benchmarking",
"frame-support",
@@ -9545,8 +10045,9 @@ dependencies = [
"pallet-timestamp",
"pallet-utility",
"parity-scale-codec",
+ "paste",
"pretty_assertions",
- "rand",
+ "rand 0.8.5",
"rand_pcg",
"scale-info",
"serde",
@@ -9572,12 +10073,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]]
@@ -9622,9 +10122,9 @@ dependencies = [
name = "pallet-contracts-proc-macro"
version = "18.0.0"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -9634,7 +10134,7 @@ dependencies = [
"bitflags 1.3.2",
"parity-scale-codec",
"paste",
- "polkavm-derive 0.5.0",
+ "polkavm-derive",
"scale-info",
]
@@ -9736,6 +10236,7 @@ dependencies = [
"pallet-bags-list",
"pallet-balances",
"pallet-election-provider-multi-phase",
+ "pallet-nomination-pools",
"pallet-session",
"pallet-staking",
"pallet-timestamp",
@@ -9764,7 +10265,7 @@ dependencies = [
"pallet-election-provider-support-benchmarking",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-arithmetic",
"sp-core",
@@ -9773,7 +10274,7 @@ dependencies = [
"sp-runtime",
"sp-std 14.0.0",
"sp-tracing 16.0.0",
- "strum 0.24.1",
+ "strum 0.26.2",
]
[[package]]
@@ -9831,8 +10332,8 @@ dependencies = [
name = "pallet-example-frame-crate"
version = "0.0.1"
dependencies = [
- "frame",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"scale-info",
]
@@ -9853,6 +10354,20 @@ dependencies = [
"sp-std 14.0.0",
]
+[[package]]
+name = "pallet-example-mbm"
+version = "0.1.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-migrations",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+]
+
[[package]]
name = "pallet-example-offchain-worker"
version = "28.0.0"
@@ -9870,6 +10385,26 @@ dependencies = [
"sp-std 14.0.0",
]
+[[package]]
+name = "pallet-example-single-block-migrations"
+version = "0.0.1"
+dependencies = [
+ "docify",
+ "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"
@@ -9911,6 +10446,7 @@ dependencies = [
"pallet-example-frame-crate",
"pallet-example-kitchensink",
"pallet-example-offchain-worker",
+ "pallet-example-single-block-migrations",
"pallet-example-split",
"pallet-example-tasks",
]
@@ -10102,7 +10638,7 @@ dependencies = [
"frame-system",
"log",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"rand_distr",
"scale-info",
"serde",
@@ -10116,6 +10652,39 @@ dependencies = [
"sp-weights",
]
+[[package]]
+name = "pallet-migrations"
+version = "1.0.0"
+dependencies = [
+ "docify",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "pretty_assertions",
+ "scale-info",
+ "sp-api",
+ "sp-block-builder",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+ "sp-version",
+]
+
+[[package]]
+name = "pallet-minimal-template"
+version = "0.0.0"
+dependencies = [
+ "parity-scale-codec",
+ "polkadot-sdk-frame",
+ "scale-info",
+]
+
[[package]]
name = "pallet-mixnet"
version = "0.4.0"
@@ -10140,7 +10709,7 @@ name = "pallet-mmr"
version = "27.0.0"
dependencies = [
"array-bytes 6.1.0",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10302,7 +10871,7 @@ dependencies = [
"honggfuzz",
"log",
"pallet-nomination-pools",
- "rand",
+ "rand 0.8.5",
"sp-io",
"sp-runtime",
"sp-tracing 16.0.0",
@@ -10417,17 +10986,36 @@ 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",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-parameters"
+version = "0.1.0"
dependencies = [
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
+ "pallet-balances",
+ "pallet-example-basic",
"parity-scale-codec",
+ "paste",
"scale-info",
"serde",
"sp-core",
"sp-io",
"sp-runtime",
+ "sp-std 14.0.0",
]
[[package]]
@@ -10698,7 +11286,7 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-core",
"sp-io",
@@ -10775,10 +11363,10 @@ name = "pallet-staking-reward-curve"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"sp-runtime",
- "syn 2.0.48",
+ "syn 2.0.53",
]
[[package]]
@@ -10859,7 +11447,7 @@ dependencies = [
[[package]]
name = "pallet-template"
-version = "4.0.0-dev"
+version = "0.0.0"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10869,7 +11457,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11109,6 +11696,7 @@ dependencies = [
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -11182,9 +11770,9 @@ dependencies = [
[[package]]
name = "parachain-template-node"
-version = "0.1.0"
+version = "0.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"color-print",
"cumulus-client-cli",
"cumulus-client-collator",
@@ -11240,7 +11828,7 @@ dependencies = [
[[package]]
name = "parachain-template-runtime"
-version = "0.7.0"
+version = "0.0.0"
dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
@@ -11248,6 +11836,7 @@ dependencies = [
"cumulus-pallet-xcm",
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -11325,6 +11914,21 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "parachains-relay"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-polkadot-core",
+ "futures",
+ "log",
+ "parity-scale-codec",
+ "relay-substrate-client",
+ "relay-utils",
+ "sp-core",
+]
+
[[package]]
name = "parachains-runtimes-test-utils"
version = "7.0.0"
@@ -11340,6 +11944,7 @@ dependencies = [
"pallet-balances",
"pallet-collator-selection",
"pallet-session",
+ "pallet-timestamp",
"pallet-xcm",
"parity-scale-codec",
"polkadot-parachain-primitives",
@@ -11355,6 +11960,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 0.8.5",
+ "rand_core 0.6.4",
+ "serde",
+ "unicode-normalization",
+]
+
[[package]]
name = "parity-bytes"
version = "0.1.2"
@@ -11376,7 +11994,7 @@ dependencies = [
"lz4",
"memmap2 0.5.10",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"siphasher",
"snap",
]
@@ -11403,8 +12021,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260"
dependencies = [
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -11438,7 +12056,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
"syn 1.0.109",
"synstructure",
]
@@ -11510,19 +12128,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.1",
-]
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
[[package]]
name = "pbkdf2"
@@ -11531,6 +12151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
dependencies = [
"digest 0.10.7",
+ "password-hash",
]
[[package]]
@@ -11557,9 +12178,8 @@ dependencies = [
"frame-support",
"parachains-common",
"penpal-runtime",
- "rococo-emulated-chain",
"sp-core",
- "westend-emulated-chain",
+ "staging-xcm",
]
[[package]]
@@ -11621,7 +12241,6 @@ dependencies = [
"staging-xcm-builder",
"staging-xcm-executor",
"substrate-wasm-builder",
- "testnet-parachains-constants",
]
[[package]]
@@ -11670,6 +12289,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"enumflags2",
"frame-benchmarking",
@@ -11769,6 +12389,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"enumflags2",
"frame-benchmarking",
@@ -11856,9 +12477,9 @@ checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
dependencies = [
"pest",
"pest_meta",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -11879,7 +12500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
dependencies = [
"fixedbitset",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
]
[[package]]
@@ -11897,9 +12518,9 @@ version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -11997,7 +12618,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"itertools 0.10.5",
@@ -12011,7 +12632,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"schnorrkel 0.11.4",
@@ -12027,7 +12648,7 @@ dependencies = [
"always-assert",
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"log",
@@ -12037,7 +12658,7 @@ dependencies = [
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"sp-application-crypto",
"sp-authority-discovery",
@@ -12065,7 +12686,8 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand",
+ "polkadot-subsystem-bench",
+ "rand 0.8.5",
"sc-network",
"schnellru",
"sp-core",
@@ -12082,7 +12704,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"async-trait",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"fatality",
"futures",
"futures-timer",
@@ -12096,7 +12718,8 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand",
+ "polkadot-subsystem-bench",
+ "rand 0.8.5",
"sc-network",
"schnellru",
"sp-application-crypto",
@@ -12112,7 +12735,7 @@ name = "polkadot-cli"
version = "7.0.0"
dependencies = [
"cfg-if",
- "clap 4.4.18",
+ "clap 4.5.3",
"frame-benchmarking-cli",
"futures",
"log",
@@ -12131,9 +12754,9 @@ dependencies = [
"sp-io",
"sp-keyring",
"sp-maybe-compressed-blob",
+ "sp-runtime",
"substrate-build-script-utils",
"thiserror",
- "try-runtime-cli",
]
[[package]]
@@ -12142,7 +12765,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"fatality",
"futures",
"futures-timer",
@@ -12188,7 +12811,7 @@ dependencies = [
"fatality",
"futures",
"futures-timer",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"lazy_static",
"parity-scale-codec",
"polkadot-erasure-coding",
@@ -12233,13 +12856,14 @@ dependencies = [
"futures",
"futures-timer",
"lazy_static",
+ "parking_lot 0.12.1",
"polkadot-node-network-protocol",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-primitives",
"quickcheck",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"sc-network",
"sc-network-common",
@@ -12297,6 +12921,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rstest",
"sp-core",
"sp-keyring",
"sp-maybe-compressed-blob",
@@ -12312,14 +12937,14 @@ dependencies = [
"async-trait",
"bitvec",
"derive_more",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"itertools 0.10.5",
"kvdb",
"kvdb-memorydb",
"log",
- "merlin 3.0.0",
+ "merlin",
"parity-scale-codec",
"parking_lot 0.12.1",
"polkadot-node-jaeger",
@@ -12330,7 +12955,7 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"sc-keystore",
@@ -12354,7 +12979,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"kvdb",
@@ -12394,7 +13019,9 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-statement-table",
+ "rstest",
"sc-keystore",
+ "schnellru",
"sp-application-crypto",
"sp-core",
"sp-keyring",
@@ -12546,6 +13173,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rstest",
"sc-keystore",
"sp-application-crypto",
"sp-core",
@@ -12569,6 +13197,8 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rstest",
+ "schnellru",
"sp-application-crypto",
"sp-keystore",
"thiserror",
@@ -12603,7 +13233,7 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-primitives",
"procfs",
- "rand",
+ "rand 0.8.5",
"rococo-runtime",
"rusty-fork",
"sc-sysinfo",
@@ -12741,6 +13371,7 @@ dependencies = [
"polkadot-node-primitives",
"polkadot-primitives",
"sc-network",
+ "sc-network-types",
"sp-core",
"thiserror",
"tokio",
@@ -12787,11 +13418,13 @@ dependencies = [
"polkadot-node-jaeger",
"polkadot-node-primitives",
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"sc-authority-discovery",
"sc-network",
- "strum 0.24.1",
+ "sc-network-types",
+ "sp-runtime",
+ "strum 0.26.2",
"thiserror",
"tracing-gum",
]
@@ -12865,6 +13498,7 @@ dependencies = [
"polkadot-statement-table",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sc-transaction-pool-api",
"smallvec",
"sp-api",
@@ -12883,7 +13517,7 @@ dependencies = [
"assert_matches",
"async-trait",
"derive_more",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"fatality",
"futures",
"futures-channel",
@@ -12908,7 +13542,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"prioritized-metered-channel",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"schnellru",
"sp-application-crypto",
@@ -12955,7 +13589,7 @@ dependencies = [
"async-trait",
"bridge-hub-rococo-runtime",
"bridge-hub-westend-runtime",
- "clap 4.4.18",
+ "clap 4.5.3",
"collectives-westend-runtime",
"color-print",
"contracts-rococo-runtime",
@@ -13064,6 +13698,7 @@ version = "7.0.0"
dependencies = [
"bitvec",
"hex-literal",
+ "log",
"parity-scale-codec",
"polkadot-core-primitives",
"polkadot-parachain-primitives",
@@ -13088,7 +13723,7 @@ name = "polkadot-primitives-test-helpers"
version = "1.0.0"
dependencies = [
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"sp-application-crypto",
"sp-core",
"sp-keyring",
@@ -13156,7 +13791,6 @@ dependencies = [
"pallet-transaction-payment",
"pallet-treasury",
"pallet-vesting",
- "pallet-xcm-benchmarks",
"parity-scale-codec",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
@@ -13228,8 +13862,9 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-runtime-metrics",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
+ "rstest",
"rustc-hex",
"sc-keystore",
"scale-info",
@@ -13262,13 +13897,34 @@ dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
"docify",
- "frame",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
"kitchensink-runtime",
+ "pallet-assets",
"pallet-aura",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-broker",
+ "pallet-collective",
"pallet-default-config-example",
+ "pallet-democracy",
+ "pallet-example-offchain-worker",
+ "pallet-example-single-block-migrations",
"pallet-examples",
+ "pallet-multisig",
+ "pallet-nfts",
+ "pallet-preimage",
+ "pallet-proxy",
+ "pallet-referenda",
+ "pallet-scheduler",
"pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-uniques",
+ "pallet-utility",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"sc-cli",
"sc-client-db",
"sc-consensus-aura",
@@ -13283,24 +13939,58 @@ dependencies = [
"scale-info",
"simple-mermaid",
"sp-api",
+ "sp-arithmetic",
"sp-core",
"sp-io",
"sp-keyring",
+ "sp-offchain",
"sp-runtime",
+ "sp-version",
"staging-chain-spec-builder",
"staging-node-cli",
"staging-parachain-info",
+ "staging-xcm",
"subkey",
"substrate-wasm-builder",
]
+[[package]]
+name = "polkadot-sdk-frame"
+version = "0.1.0"
+dependencies = [
+ "docify",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "log",
+ "pallet-examples",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-arithmetic",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 14.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+]
+
[[package]]
name = "polkadot-service"
version = "7.0.0"
dependencies = [
"assert_matches",
"async-trait",
- "env_logger 0.9.3",
+ "bitvec",
+ "env_logger 0.11.3",
"frame-benchmarking",
"frame-benchmarking-cli",
"frame-support",
@@ -13314,7 +14004,6 @@ dependencies = [
"log",
"mmr-gadget",
"pallet-babe",
- "pallet-im-online",
"pallet-staking",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
@@ -13411,12 +14100,14 @@ dependencies = [
"sp-transaction-pool",
"sp-version",
"sp-weights",
+ "staging-xcm",
"substrate-prometheus-endpoint",
"tempfile",
"thiserror",
"tracing-gum",
"westend-runtime",
"westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -13430,7 +14121,7 @@ dependencies = [
"fatality",
"futures",
"futures-timer",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"parity-scale-codec",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
@@ -13460,6 +14151,7 @@ dependencies = [
"parity-scale-codec",
"polkadot-primitives",
"sp-core",
+ "tracing-gum",
]
[[package]]
@@ -13470,11 +14162,11 @@ dependencies = [
"async-trait",
"bincode",
"bitvec",
- "clap 4.4.18",
+ "clap 4.5.3",
"clap-num",
"color-eyre",
"colored",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"hex",
@@ -13505,15 +14197,17 @@ dependencies = [
"prometheus",
"pyroscope",
"pyroscope_pprofrs",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"rand_distr",
"sc-keystore",
"sc-network",
+ "sc-network-types",
"sc-service",
- "schnorrkel 0.9.1",
+ "schnorrkel 0.11.4",
"serde",
+ "serde_json",
"serde_yaml",
"sha1",
"sp-application-crypto",
@@ -13564,7 +14258,7 @@ version = "1.0.0"
dependencies = [
"assert_matches",
"async-trait",
- "clap 4.4.18",
+ "clap 4.5.3",
"color-eyre",
"futures",
"futures-timer",
@@ -13582,7 +14276,7 @@ dependencies = [
"polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"sp-core",
"sp-keystore",
"substrate-build-script-utils",
@@ -13675,7 +14369,7 @@ dependencies = [
"polkadot-runtime-parachains",
"polkadot-service",
"polkadot-test-runtime",
- "rand",
+ "rand 0.8.5",
"sc-authority-discovery",
"sc-chain-spec",
"sc-cli",
@@ -13711,106 +14405,94 @@ dependencies = [
name = "polkadot-voter-bags"
version = "7.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"generate-bags",
"sp-io",
"westend-runtime",
]
[[package]]
-name = "polkavm-common"
-version = "0.5.0"
+name = "polkavm"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88b4e215c80fe876147f3d58158d5dfeae7dabdd6047e175af77095b78d0035c"
+checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
+dependencies = [
+ "libc",
+ "log",
+ "polkavm-assembler",
+ "polkavm-common",
+ "polkavm-linux-raw",
+]
[[package]]
-name = "polkavm-common"
-version = "0.8.0"
+name = "polkavm-assembler"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817"
+checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1"
+dependencies = [
+ "log",
+]
[[package]]
-name = "polkavm-derive"
-version = "0.5.0"
+name = "polkavm-common"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6380dbe1fb03ecc74ad55d841cfc75480222d153ba69ddcb00977866cbdabdb8"
+checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92"
dependencies = [
- "polkavm-derive-impl 0.5.0",
- "syn 2.0.48",
+ "log",
]
[[package]]
name = "polkavm-derive"
-version = "0.8.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125"
+checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
dependencies = [
"polkavm-derive-impl-macro",
]
[[package]]
name = "polkavm-derive-impl"
-version = "0.5.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc8211b3365bbafb2fb32057d68b0e1ca55d079f5cf6f9da9b98079b94b3987d"
+checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
dependencies = [
- "polkavm-common 0.5.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "polkavm-common",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
-name = "polkavm-derive-impl"
-version = "0.8.0"
+name = "polkavm-derive-impl-macro"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c"
+checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
dependencies = [
- "polkavm-common 0.8.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
-name = "polkavm-derive-impl-macro"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66"
-dependencies = [
- "polkavm-derive-impl 0.8.0",
- "syn 2.0.48",
+ "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.1"
+name = "polkavm-linux-raw"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc03593918a5890f96c276fb1e34ab77002bea1f9136cdcb55107c241011ab7"
-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"
@@ -13836,7 +14518,7 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
dependencies = [
"cpufeatures",
"opaque-debug 0.3.0",
- "universal-hash 0.4.1",
+ "universal-hash 0.4.0",
]
[[package]]
@@ -13859,7 +14541,7 @@ dependencies = [
"cfg-if",
"cpufeatures",
"opaque-debug 0.3.0",
- "universal-hash 0.4.1",
+ "universal-hash 0.4.0",
]
[[package]]
@@ -13886,7 +14568,7 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9"
dependencies = [
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -13973,7 +14655,7 @@ version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
"syn 1.0.109",
]
@@ -13983,8 +14665,8 @@ version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
dependencies = [
- "proc-macro2",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "syn 2.0.53",
]
[[package]]
@@ -14044,8 +14726,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"version_check",
]
@@ -14056,8 +14738,8 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"version_check",
]
@@ -14073,9 +14755,18 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
]
[[package]]
@@ -14145,9 +14836,9 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -14173,7 +14864,7 @@ dependencies = [
"bitflags 2.4.0",
"lazy_static",
"num-traits",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_xorshift",
"regex-syntax 0.8.2",
@@ -14209,7 +14900,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",
@@ -14232,8 +14923,8 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
dependencies = [
"anyhow",
"itertools 0.10.5",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -14245,9 +14936,9 @@ checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
dependencies = [
"anyhow",
"itertools 0.11.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -14298,6 +14989,22 @@ dependencies = [
"thiserror",
]
+[[package]]
+name = "quanta"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "mach2",
+ "once_cell",
+ "raw-cpuid",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "web-sys",
+ "winapi",
+]
+
[[package]]
name = "quick-error"
version = "1.2.3"
@@ -14334,7 +15041,7 @@ checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
dependencies = [
"env_logger 0.8.4",
"log",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -14348,6 +15055,24 @@ dependencies = [
"pin-project-lite 0.1.12",
]
+[[package]]
+name = "quinn"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e"
+dependencies = [
+ "bytes",
+ "pin-project-lite 0.2.12",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash",
+ "rustls 0.20.8",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "webpki",
+]
+
[[package]]
name = "quinn-proto"
version = "0.9.5"
@@ -14355,7 +15080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989"
dependencies = [
"bytes",
- "rand",
+ "rand 0.8.5",
"ring 0.16.20",
"rustc-hash",
"rustls 0.20.8",
@@ -14366,13 +15091,35 @@ dependencies = [
"webpki",
]
+[[package]]
+name = "quinn-udp"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4"
+dependencies = [
+ "libc",
+ "quinn-proto",
+ "socket2 0.4.9",
+ "tracing",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
[[package]]
name = "quote"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
]
[[package]]
@@ -14381,6 +15128,19 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+]
+
[[package]]
name = "rand"
version = "0.8.5"
@@ -14437,7 +15197,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
dependencies = [
"num-traits",
- "rand",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
]
[[package]]
@@ -14458,6 +15227,15 @@ dependencies = [
"rand_core 0.6.4",
]
+[[package]]
+name = "raw-cpuid"
+version = "10.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
[[package]]
name = "rawpointer"
version = "0.2.1"
@@ -14466,9 +15244,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
[[package]]
name = "rayon"
-version = "1.7.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
@@ -14476,14 +15254,32 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
- "crossbeam-channel",
"crossbeam-deque",
"crossbeam-utils",
- "num_cpus",
+]
+
+[[package]]
+name = "rbtag"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72c64936fcc0b811890a9d90020f3df5cec9c604efde88af7db6a35d365132a3"
+dependencies = [
+ "rbtag_derive",
+]
+
+[[package]]
+name = "rbtag_derive"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b75511b710ccca8adbb211e04763bd8c78fed585b0ec188a20ed9b0dd95567c4"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "syn 0.15.44",
]
[[package]]
@@ -14563,9 +15359,9 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -14643,11 +15439,83 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+[[package]]
+name = "relative-path"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+
+[[package]]
+name = "relay-substrate-client"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "finality-relay",
+ "frame-support",
+ "frame-system",
+ "futures",
+ "jsonrpsee",
+ "log",
+ "num-traits",
+ "pallet-balances",
+ "pallet-bridge-messages",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "relay-utils",
+ "sc-chain-spec",
+ "sc-rpc-api",
+ "sc-transaction-pool-api",
+ "scale-info",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-trie",
+ "sp-version",
+ "staging-xcm",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "relay-utils"
+version = "0.1.0"
+dependencies = [
+ "ansi_term",
+ "anyhow",
+ "async-std",
+ "async-trait",
+ "backoff",
+ "bp-runtime",
+ "env_logger 0.11.3",
+ "futures",
+ "isahc",
+ "jsonpath_lib",
+ "log",
+ "num-traits",
+ "serde_json",
+ "sp-runtime",
+ "substrate-prometheus-endpoint",
+ "sysinfo",
+ "thiserror",
+ "time",
+ "tokio",
+]
+
[[package]]
name = "remote-ext-tests-bags-list"
version = "1.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"frame-system",
"log",
"pallet-bags-list-remote-tests",
@@ -14682,12 +15550,12 @@ dependencies = [
"percent-encoding",
"pin-project-lite 0.2.12",
"rustls 0.21.6",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
"serde",
"serde_json",
"serde_urlencoded",
"tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
"tower-service",
"url",
"wasm-bindgen",
@@ -14714,7 +15582,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
dependencies = [
"hmac 0.12.1",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -14730,7 +15598,7 @@ dependencies = [
"blake2 0.10.6",
"common",
"fflonk",
- "merlin 3.0.0",
+ "merlin",
]
[[package]]
@@ -14824,6 +15692,7 @@ dependencies = [
"cumulus-ping",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -14869,6 +15738,7 @@ name = "rococo-runtime"
version = "7.0.0"
dependencies = [
"binary-merkle-tree",
+ "bitvec",
"frame-benchmarking",
"frame-executive",
"frame-remote-externalities",
@@ -14894,7 +15764,6 @@ dependencies = [
"pallet-elections-phragmen",
"pallet-grandpa",
"pallet-identity",
- "pallet-im-online",
"pallet-indices",
"pallet-membership",
"pallet-message-queue",
@@ -14942,6 +15811,7 @@ dependencies = [
"sp-block-builder",
"sp-consensus-babe",
"sp-consensus-beefy",
+ "sp-consensus-grandpa",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
@@ -14965,6 +15835,7 @@ dependencies = [
"substrate-wasm-builder",
"tiny-keccak",
"tokio",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -15025,6 +15896,35 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "rstest"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros",
+ "rustc_version 0.4.0",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
+dependencies = [
+ "cfg-if",
+ "glob",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "regex",
+ "relative-path",
+ "rustc_version 0.4.0",
+ "syn 2.0.53",
+ "unicode-ident",
+]
+
[[package]]
name = "rtnetlink"
version = "0.10.1"
@@ -15066,7 +15966,7 @@ dependencies = [
"parity-scale-codec",
"primitive-types",
"proptest",
- "rand",
+ "rand 0.8.5",
"rlp",
"ruint-macro",
"serde",
@@ -15195,10 +16095,24 @@ checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
dependencies = [
"log",
"ring 0.16.20",
- "rustls-webpki",
+ "rustls-webpki 0.101.4",
"sct",
]
+[[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle 2.5.0",
+ "zeroize",
+]
+
[[package]]
name = "rustls-native-certs"
version = "0.6.3"
@@ -15206,7 +16120,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
dependencies = [
"openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.0.0",
+ "rustls-pki-types",
"schannel",
"security-framework",
]
@@ -15220,6 +16147,22 @@ dependencies = [
"base64 0.21.2",
]
+[[package]]
+name = "rustls-pemfile"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
+dependencies = [
+ "base64 0.21.2",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf"
+
[[package]]
name = "rustls-webpki"
version = "0.101.4"
@@ -15230,6 +16173,17 @@ dependencies = [
"untrusted 0.7.1",
]
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
+]
+
[[package]]
name = "rustversion"
version = "1.0.14"
@@ -15322,16 +16276,18 @@ dependencies = [
"futures-timer",
"ip_network",
"libp2p",
+ "linked_hash_set",
"log",
- "multihash 0.18.1",
+ "multihash 0.17.0",
"multihash-codetable",
"parity-scale-codec",
"prost 0.12.3",
"prost-build",
"quickcheck",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sp-api",
"sp-authority-discovery",
"sp-blockchain",
@@ -15387,7 +16343,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
-version = "27.0.0"
+version = "28.0.0"
dependencies = [
"array-bytes 6.1.0",
"docify",
@@ -15411,6 +16367,7 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-state-machine",
+ "sp-tracing 16.0.0",
"substrate-test-runtime",
]
@@ -15419,9 +16376,9 @@ name = "sc-chain-spec-derive"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -15429,9 +16386,8 @@ name = "sc-cli"
version = "0.36.0"
dependencies = [
"array-bytes 6.1.0",
- "bip39",
"chrono",
- "clap 4.4.18",
+ "clap 4.5.3",
"fdlimit",
"futures",
"futures-timer",
@@ -15439,8 +16395,9 @@ dependencies = [
"libp2p-identity",
"log",
"names",
+ "parity-bip39",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"regex",
"rpassword",
"sc-client-api",
@@ -15513,7 +16470,7 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"quickcheck",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"sc-state-db",
"schnellru",
@@ -15536,11 +16493,11 @@ dependencies = [
"async-trait",
"futures",
"futures-timer",
- "libp2p-identity",
"log",
"mockall",
"parking_lot 0.12.1",
"sc-client-api",
+ "sc-network-types",
"sc-utils",
"serde",
"sp-api",
@@ -15681,6 +16638,7 @@ dependencies = [
"sc-network-gossip",
"sc-network-sync",
"sc-network-test",
+ "sc-network-types",
"sc-utils",
"serde",
"sp-api",
@@ -15742,7 +16700,7 @@ dependencies = [
name = "sc-consensus-grandpa"
version = "0.19.0"
dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
"array-bytes 6.1.0",
"assert_matches",
"async-trait",
@@ -15754,7 +16712,7 @@ dependencies = [
"log",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
@@ -15764,6 +16722,7 @@ dependencies = [
"sc-network-gossip",
"sc-network-sync",
"sc-network-test",
+ "sc-network-types",
"sc-telemetry",
"sc-transaction-pool-api",
"sc-utils",
@@ -15903,13 +16862,14 @@ dependencies = [
"array-bytes 6.1.0",
"assert_matches",
"criterion 0.4.0",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"num_cpus",
"parity-scale-codec",
"parking_lot 0.12.1",
"paste",
"regex",
"sc-executor-common",
+ "sc-executor-polkavm",
"sc-executor-wasmtime",
"sc-runtime-test",
"sc-tracing",
@@ -15931,7 +16891,7 @@ dependencies = [
"substrate-test-runtime",
"tempfile",
"tracing",
- "tracing-subscriber 0.2.25",
+ "tracing-subscriber 0.3.18",
"wat",
]
@@ -15939,6 +16899,7 @@ dependencies = [
name = "sc-executor-common"
version = "0.29.0"
dependencies = [
+ "polkavm",
"sc-allocator",
"sp-maybe-compressed-blob",
"sp-wasm-interface 20.0.0",
@@ -15946,6 +16907,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"
@@ -16010,7 +16981,6 @@ dependencies = [
"bytes",
"futures",
"futures-timer",
- "libp2p-identity",
"log",
"mixnet",
"multiaddr",
@@ -16018,6 +16988,7 @@ dependencies = [
"parking_lot 0.12.1",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sc-transaction-pool-api",
"sp-api",
"sp-consensus",
@@ -16038,6 +17009,7 @@ dependencies = [
"async-trait",
"asynchronous-codec",
"bytes",
+ "cid 0.9.0",
"either",
"fnv",
"futures",
@@ -16045,25 +17017,34 @@ dependencies = [
"ip_network",
"libp2p",
"linked_hash_set",
+ "litep2p",
"log",
"mockall",
"multistream-select",
+ "once_cell",
"parity-scale-codec",
"parking_lot 0.12.1",
"partial_sort",
"pin-project",
- "rand",
+ "prost 0.11.9",
+ "prost-build",
+ "rand 0.8.5",
+ "sc-block-builder",
"sc-client-api",
"sc-network-common",
"sc-network-light",
"sc-network-sync",
+ "sc-network-types",
"sc-utils",
+ "schnellru",
"serde",
"serde_json",
"smallvec",
"sp-arithmetic",
"sp-blockchain",
+ "sp-consensus",
"sp-core",
+ "sp-crypto-hashing",
"sp-runtime",
"sp-test-primitives",
"sp-tracing 16.0.0",
@@ -16077,38 +17058,13 @@ dependencies = [
"tokio-test",
"tokio-util",
"unsigned-varint",
+ "void",
"wasm-timer",
"zeroize",
]
[[package]]
-name = "sc-network-bitswap"
-version = "0.33.0"
-dependencies = [
- "async-channel",
- "cid",
- "futures",
- "libp2p-identity",
- "log",
- "prost 0.12.3",
- "prost-build",
- "sc-block-builder",
- "sc-client-api",
- "sc-consensus",
- "sc-network",
- "sp-blockchain",
- "sp-consensus",
- "sp-crypto-hashing",
- "sp-runtime",
- "substrate-test-runtime",
- "substrate-test-runtime-client",
- "thiserror",
- "tokio",
- "unsigned-varint",
-]
-
-[[package]]
-name = "sc-network-common"
+name = "sc-network-common"
version = "0.33.0"
dependencies = [
"async-trait",
@@ -16118,6 +17074,7 @@ dependencies = [
"parity-scale-codec",
"prost-build",
"sc-consensus",
+ "sc-network-types",
"sp-consensus",
"sp-consensus-grandpa",
"sp-runtime",
@@ -16128,7 +17085,7 @@ dependencies = [
name = "sc-network-gossip"
version = "0.34.0"
dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
"async-trait",
"futures",
"futures-timer",
@@ -16139,6 +17096,7 @@ dependencies = [
"sc-network",
"sc-network-common",
"sc-network-sync",
+ "sc-network-types",
"schnellru",
"sp-runtime",
"substrate-prometheus-endpoint",
@@ -16154,13 +17112,13 @@ dependencies = [
"array-bytes 6.1.0",
"async-channel",
"futures",
- "libp2p-identity",
"log",
"parity-scale-codec",
"prost 0.12.3",
"prost-build",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sp-blockchain",
"sp-core",
"sp-runtime",
@@ -16180,7 +17138,9 @@ dependencies = [
"sc-network",
"sc-network-common",
"sc-network-sync",
+ "sc-network-types",
"sp-consensus",
+ "sp-runtime",
"sp-statement-store",
"substrate-prometheus-endpoint",
]
@@ -16207,6 +17167,7 @@ dependencies = [
"sc-consensus",
"sc-network",
"sc-network-common",
+ "sc-network-types",
"sc-utils",
"schnellru",
"smallvec",
@@ -16235,7 +17196,7 @@ dependencies = [
"libp2p",
"log",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -16243,6 +17204,7 @@ dependencies = [
"sc-network-common",
"sc-network-light",
"sc-network-sync",
+ "sc-network-types",
"sc-service",
"sc-utils",
"sp-blockchain",
@@ -16267,17 +17229,32 @@ dependencies = [
"sc-network",
"sc-network-common",
"sc-network-sync",
+ "sc-network-types",
"sc-utils",
"sp-consensus",
"sp-runtime",
"substrate-prometheus-endpoint",
]
+[[package]]
+name = "sc-network-types"
+version = "0.10.0-dev"
+dependencies = [
+ "bs58 0.4.0",
+ "libp2p-identity",
+ "litep2p",
+ "multiaddr",
+ "multihash 0.17.0",
+ "rand 0.8.5",
+ "thiserror",
+]
+
[[package]]
name = "sc-offchain"
version = "29.0.0"
dependencies = [
"array-bytes 6.1.0",
+ "async-trait",
"bytes",
"fnv",
"futures",
@@ -16291,12 +17268,13 @@ dependencies = [
"once_cell",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-client-api",
"sc-client-db",
"sc-network",
"sc-network-common",
+ "sc-network-types",
"sc-transaction-pool",
"sc-transaction-pool-api",
"sc-utils",
@@ -16327,7 +17305,7 @@ name = "sc-rpc"
version = "29.0.0"
dependencies = [
"assert_matches",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"jsonrpsee",
"log",
@@ -16387,7 +17365,10 @@ dependencies = [
name = "sc-rpc-server"
version = "11.0.0"
dependencies = [
+ "futures",
+ "governor",
"http",
+ "hyper",
"jsonrpsee",
"log",
"serde_json",
@@ -16411,11 +17392,13 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"pretty_assertions",
+ "rand 0.8.5",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
"sc-rpc",
"sc-service",
+ "sc-transaction-pool",
"sc-transaction-pool-api",
"sc-utils",
"serde",
@@ -16431,6 +17414,7 @@ dependencies = [
"sp-version",
"substrate-test-runtime",
"substrate-test-runtime-client",
+ "substrate-test-runtime-transaction-pool",
"thiserror",
"tokio",
"tokio-stream",
@@ -16462,7 +17446,7 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
"sc-chain-spec",
"sc-client-api",
"sc-client-db",
@@ -16471,11 +17455,11 @@ dependencies = [
"sc-informant",
"sc-keystore",
"sc-network",
- "sc-network-bitswap",
"sc-network-common",
"sc-network-light",
"sc-network-sync",
"sc-network-transactions",
+ "sc-network-types",
"sc-rpc",
"sc-rpc-server",
"sc-rpc-spec-v2",
@@ -16485,6 +17469,7 @@ dependencies = [
"sc-transaction-pool",
"sc-transaction-pool-api",
"sc-utils",
+ "schnellru",
"serde",
"serde_json",
"sp-api",
@@ -16562,7 +17547,7 @@ dependencies = [
name = "sc-statement-store"
version = "10.0.0"
dependencies = [
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"log",
"parity-db",
"parking_lot 0.12.1",
@@ -16582,7 +17567,7 @@ dependencies = [
name = "sc-storage-monitor"
version = "0.16.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"fs4",
"log",
"sp-core",
@@ -16616,7 +17601,7 @@ dependencies = [
"futures",
"libc",
"log",
- "rand",
+ "rand 0.8.5",
"rand_pcg",
"regex",
"sc-telemetry",
@@ -16639,7 +17624,8 @@ dependencies = [
"log",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
+ "sc-network",
"sc-utils",
"serde",
"serde_json",
@@ -16674,7 +17660,7 @@ dependencies = [
"thiserror",
"tracing",
"tracing-log 0.1.3",
- "tracing-subscriber 0.2.25",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -16682,9 +17668,9 @@ name = "sc-tracing-proc-macro"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -16754,9 +17740,9 @@ dependencies = [
[[package]]
name = "scale-info"
-version = "2.10.0"
+version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60"
+checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7"
dependencies = [
"bitvec",
"cfg-if",
@@ -16768,13 +17754,13 @@ dependencies = [
[[package]]
name = "scale-info-derive"
-version = "2.10.0"
+version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19"
+checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac"
dependencies = [
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -16805,8 +17791,8 @@ version = "0.8.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"serde_derive_internals",
"syn 1.0.109",
]
@@ -16817,27 +17803,11 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d"
dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
"cfg-if",
"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.4.1",
- "zeroize",
-]
-
[[package]]
name = "schnorrkel"
version = "0.10.2"
@@ -16847,7 +17817,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",
@@ -16863,13 +17833,13 @@ dependencies = [
"aead 0.5.2",
"arrayref",
"arrayvec 0.7.4",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
"getrandom_or_panic",
- "merlin 3.0.0",
+ "merlin",
"rand_core 0.6.4",
"serde_bytes",
"sha2 0.10.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"zeroize",
]
@@ -16901,6 +17871,21 @@ dependencies = [
"untrusted 0.7.1",
]
+[[package]]
+name = "sctp-proto"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f64cef148d3295c730c3cb340b0b252a4d570b1c7d4bf0808f88540b0a888bc"
+dependencies = [
+ "bytes",
+ "crc",
+ "fxhash",
+ "log",
+ "rand 0.8.5",
+ "slab",
+ "thiserror",
+]
+
[[package]]
name = "sec1"
version = "0.7.3"
@@ -16911,7 +17896,8 @@ dependencies = [
"der",
"generic-array 0.14.7",
"pkcs8",
- "subtle 2.4.1",
+ "serdect",
+ "subtle 2.5.0",
"zeroize",
]
@@ -17068,9 +18054,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5"
[[package]]
name = "serde"
-version = "1.0.195"
+version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
@@ -17095,13 +18081,13 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -17110,8 +18096,8 @@ version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -17126,10 +18112,11 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.111"
+version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [
+ "indexmap 2.2.3",
"itoa",
"ryu",
"serde",
@@ -17158,17 +18145,27 @@ dependencies = [
[[package]]
name = "serde_yaml"
-version = "0.9.30"
+version = "0.9.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
+checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"itoa",
"ryu",
"serde",
"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"
@@ -17189,9 +18186,9 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -17216,6 +18213,7 @@ dependencies = [
"cfg-if",
"cpufeatures",
"digest 0.10.7",
+ "sha1-asm",
]
[[package]]
@@ -17230,15 +18228,12 @@ dependencies = [
]
[[package]]
-name = "sha2"
-version = "0.8.2"
+name = "sha1-asm"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
+checksum = "2ba6947745e7f86be3b8af00b7355857085dbdf8901393c89514510eb61f4e21"
dependencies = [
- "block-buffer 0.7.3",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug 0.2.3",
+ "cc",
]
[[package]]
@@ -17346,6 +18341,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "signature"
+version = "1.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+
[[package]]
name = "signature"
version = "2.1.0"
@@ -17369,10 +18370,20 @@ dependencies = [
"wide",
]
+[[package]]
+name = "simple-dns"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694"
+dependencies = [
+ "bitflags 2.4.0",
+]
+
[[package]]
name = "simple-mermaid"
-version = "0.1.0"
-source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18"
[[package]]
name = "siphasher"
@@ -17415,6 +18426,17 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "sluice"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+dependencies = [
+ "async-channel",
+ "futures-core",
+ "futures-io",
+]
+
[[package]]
name = "smallvec"
version = "1.11.2"
@@ -17431,7 +18453,7 @@ dependencies = [
"async-executor",
"async-fs",
"async-io",
- "async-lock",
+ "async-lock 2.8.0",
"async-net",
"async-process",
"blocking",
@@ -17454,7 +18476,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5"
dependencies = [
"arrayvec 0.7.4",
- "async-lock",
+ "async-lock 2.8.0",
"atomic-take",
"base64 0.21.2",
"bip39",
@@ -17465,7 +18487,7 @@ dependencies = [
"derive_more",
"ed25519-zebra 4.0.3",
"either",
- "event-listener",
+ "event-listener 2.5.3",
"fnv",
"futures-lite",
"futures-util",
@@ -17474,16 +18496,16 @@ 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",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"ruzstd",
"schnorrkel 0.10.2",
@@ -17508,12 +18530,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33"
dependencies = [
"async-channel",
- "async-lock",
+ "async-lock 2.8.0",
"base64 0.21.2",
"blake2-rfc",
"derive_more",
"either",
- "event-listener",
+ "event-listener 2.5.3",
"fnv",
"futures-channel",
"futures-lite",
@@ -17526,7 +18548,7 @@ dependencies = [
"no-std-net",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"serde",
"serde_json",
@@ -17549,15 +18571,15 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"
dependencies = [
- "aes-gcm 0.9.4",
+ "aes-gcm 0.9.2",
"blake2 0.10.6",
"chacha20poly1305",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
"rand_core 0.6.4",
"ring 0.16.20",
"rustc_version 0.4.0",
"sha2 0.10.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -17572,11 +18594,10 @@ dependencies = [
[[package]]
name = "snowbridge-beacon-primitives"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"byte-slice-cast",
"frame-support",
- "frame-system",
"hex",
"hex-literal",
"parity-scale-codec",
@@ -17591,12 +18612,11 @@ dependencies = [
"sp-std 14.0.0",
"ssz_rs",
"ssz_rs_derive",
- "static_assertions",
]
[[package]]
name = "snowbridge-core"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"ethabi-decode",
"frame-support",
@@ -17619,7 +18639,7 @@ dependencies = [
[[package]]
name = "snowbridge-ethereum"
-version = "0.1.0"
+version = "0.3.0"
dependencies = [
"ethabi-decode",
"ethbloom",
@@ -17627,14 +18647,12 @@ dependencies = [
"hex-literal",
"parity-bytes",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"rlp",
- "rustc-hex",
"scale-info",
"serde",
"serde-big-array",
"serde_json",
- "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
@@ -17650,7 +18668,7 @@ dependencies = [
"hex",
"lazy_static",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"snowbridge-amcl",
"zeroize",
@@ -17658,10 +18676,10 @@ 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",
+ "env_logger 0.11.3",
"hex",
"hex-literal",
"parity-scale-codec",
@@ -17673,24 +18691,20 @@ dependencies = [
[[package]]
name = "snowbridge-outbound-queue-runtime-api"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"frame-support",
"parity-scale-codec",
"snowbridge-core",
"snowbridge-outbound-queue-merkle-tree",
"sp-api",
- "sp-core",
"sp-std 14.0.0",
- "staging-xcm",
]
[[package]]
name = "snowbridge-pallet-ethereum-client"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
- "bp-runtime",
- "byte-slice-cast",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -17698,8 +18712,7 @@ dependencies = [
"log",
"pallet-timestamp",
"parity-scale-codec",
- "rand",
- "rlp",
+ "rand 0.8.5",
"scale-info",
"serde",
"serde_json",
@@ -17712,8 +18725,6 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-std 14.0.0",
- "ssz_rs",
- "ssz_rs_derive",
"static_assertions",
]
@@ -17721,9 +18732,6 @@ dependencies = [
name = "snowbridge-pallet-ethereum-client-fixtures"
version = "0.9.0"
dependencies = [
- "frame-benchmarking",
- "frame-support",
- "frame-system",
"hex-literal",
"snowbridge-beacon-primitives",
"snowbridge-core",
@@ -17733,24 +18741,21 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-inbound-queue"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"alloy-primitives",
- "alloy-rlp",
"alloy-sol-types",
"frame-benchmarking",
"frame-support",
"frame-system",
"hex-literal",
"log",
- "num-traits",
"pallet-balances",
"parity-scale-codec",
"scale-info",
"serde",
"snowbridge-beacon-primitives",
"snowbridge-core",
- "snowbridge-ethereum",
"snowbridge-pallet-ethereum-client",
"snowbridge-pallet-inbound-queue-fixtures",
"snowbridge-router-primitives",
@@ -17760,17 +18765,13 @@ dependencies = [
"sp-runtime",
"sp-std 14.0.0",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
]
[[package]]
name = "snowbridge-pallet-inbound-queue-fixtures"
-version = "0.9.0"
+version = "0.10.0"
dependencies = [
- "frame-benchmarking",
- "frame-support",
- "frame-system",
"hex-literal",
"snowbridge-beacon-primitives",
"snowbridge-core",
@@ -17780,14 +18781,13 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-outbound-queue"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"bridge-hub-common",
"ethabi-decode",
"frame-benchmarking",
"frame-support",
"frame-system",
- "hex-literal",
"pallet-message-queue",
"parity-scale-codec",
"scale-info",
@@ -17800,14 +18800,12 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-std 14.0.0",
- "staging-xcm",
]
[[package]]
name = "snowbridge-pallet-system"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
- "ethabi-decode",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -17827,39 +18825,33 @@ dependencies = [
"sp-runtime",
"sp-std 14.0.0",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
]
[[package]]
name = "snowbridge-router-primitives"
-version = "0.0.0"
+version = "0.9.0"
dependencies = [
- "ethabi-decode",
"frame-support",
- "frame-system",
"hex-literal",
"log",
"parity-scale-codec",
"rustc-hex",
"scale-info",
- "serde",
"snowbridge-core",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
]
[[package]]
name = "snowbridge-runtime-common"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"frame-support",
- "frame-system",
"log",
"parity-scale-codec",
"snowbridge-core",
@@ -17872,89 +18864,41 @@ dependencies = [
[[package]]
name = "snowbridge-runtime-test-common"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
- "assets-common",
- "bridge-hub-test-utils",
- "bridge-runtime-common",
- "cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
- "cumulus-pallet-session-benchmarking",
- "cumulus-pallet-xcm",
- "cumulus-pallet-xcmp-queue",
- "cumulus-primitives-core",
- "cumulus-primitives-utility",
- "frame-benchmarking",
- "frame-executive",
"frame-support",
"frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "hex-literal",
- "log",
- "pallet-aura",
- "pallet-authorship",
"pallet-balances",
"pallet-collator-selection",
"pallet-message-queue",
- "pallet-multisig",
"pallet-session",
"pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
"pallet-utility",
"pallet-xcm",
- "pallet-xcm-benchmarks",
- "parachains-common",
"parachains-runtimes-test-utils",
"parity-scale-codec",
- "polkadot-core-primitives",
- "polkadot-parachain-primitives",
- "polkadot-runtime-common",
- "scale-info",
- "serde",
- "smallvec",
- "snowbridge-beacon-primitives",
"snowbridge-core",
- "snowbridge-outbound-queue-runtime-api",
"snowbridge-pallet-ethereum-client",
"snowbridge-pallet-ethereum-client-fixtures",
- "snowbridge-pallet-inbound-queue",
"snowbridge-pallet-outbound-queue",
"snowbridge-pallet-system",
- "snowbridge-router-primitives",
- "snowbridge-system-runtime-api",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
"sp-core",
- "sp-genesis-builder",
- "sp-inherents",
"sp-io",
"sp-keyring",
- "sp-offchain",
"sp-runtime",
- "sp-session",
- "sp-std 14.0.0",
- "sp-storage 19.0.0",
- "sp-transaction-pool",
- "sp-version",
"staging-parachain-info",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
- "static_assertions",
]
[[package]]
name = "snowbridge-system-runtime-api"
-version = "0.0.0"
+version = "0.2.0"
dependencies = [
"parity-scale-codec",
"snowbridge-core",
"sp-api",
- "sp-core",
"sp-std 14.0.0",
"staging-xcm",
]
@@ -17971,12 +18915,12 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.5.3"
+version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
dependencies = [
"libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -17992,10 +18936,90 @@ dependencies = [
"http",
"httparse",
"log",
- "rand",
+ "rand 0.8.5",
"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",
+]
+
+[[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"
@@ -18027,9 +19051,9 @@ dependencies = [
"blake2 0.10.6",
"expander 2.0.0",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -18083,11 +19107,12 @@ name = "sp-arithmetic"
version = "23.0.0"
dependencies = [
"criterion 0.4.0",
+ "docify",
"integer-sqrt",
"num-traits",
"parity-scale-codec",
"primitive-types",
- "rand",
+ "rand 0.8.5",
"scale-info",
"serde",
"sp-crypto-hashing",
@@ -18133,7 +19158,6 @@ dependencies = [
"sp-api",
"sp-application-crypto",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18143,7 +19167,6 @@ dependencies = [
"sp-api",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18190,7 +19213,6 @@ dependencies = [
"sp-consensus-slots",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -18208,7 +19230,6 @@ dependencies = [
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -18226,10 +19247,10 @@ dependencies = [
"sp-core",
"sp-crypto-hashing",
"sp-io",
+ "sp-keystore",
"sp-mmr-primitives",
"sp-runtime",
- "sp-std 14.0.0",
- "strum 0.24.1",
+ "strum 0.26.2",
"w3f-bls",
]
@@ -18247,7 +19268,6 @@ dependencies = [
"sp-core",
"sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18258,7 +19278,6 @@ dependencies = [
"sp-api",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18273,7 +19292,6 @@ dependencies = [
"sp-consensus-slots",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18283,7 +19301,6 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"serde",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -18293,7 +19310,6 @@ version = "28.0.0"
dependencies = [
"array-bytes 6.1.0",
"bandersnatch_vrfs",
- "bip39",
"bitflags 1.3.2",
"blake2 0.10.6",
"bounded-collections",
@@ -18306,15 +19322,17 @@ 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",
"primitive-types",
- "rand",
+ "rand 0.8.5",
"regex",
"scale-info",
"schnorrkel 0.11.4",
@@ -18398,12 +19416,11 @@ 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]]
name = "sp-crypto-hashing"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
"blake2b_simd",
"byteorder",
@@ -18417,11 +19434,11 @@ dependencies = [
[[package]]
name = "sp-crypto-hashing-proc-macro"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
- "quote",
+ "quote 1.0.35",
"sp-crypto-hashing",
- "syn 2.0.48",
+ "syn 2.0.53",
]
[[package]]
@@ -18437,18 +19454,18 @@ name = "sp-debug-derive"
version = "8.0.0"
source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
name = "sp-debug-derive"
version = "14.0.0"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -18468,18 +19485,18 @@ version = "0.25.0"
dependencies = [
"environmental",
"parity-scale-codec",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
]
[[package]]
name = "sp-genesis-builder"
-version = "0.7.0"
+version = "0.8.0"
dependencies = [
+ "parity-scale-codec",
+ "scale-info",
"serde_json",
"sp-api",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18492,7 +19509,6 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
]
@@ -18501,10 +19517,11 @@ name = "sp-io"
version = "30.0.0"
dependencies = [
"bytes",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"libsecp256k1",
"log",
"parity-scale-codec",
+ "polkavm-derive",
"rustversion",
"secp256k1",
"sp-core",
@@ -18526,7 +19543,7 @@ version = "31.0.0"
dependencies = [
"sp-core",
"sp-runtime",
- "strum 0.24.1",
+ "strum 0.26.2",
]
[[package]]
@@ -18535,11 +19552,10 @@ version = "0.34.0"
dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.2.2",
"sp-core",
"sp-externalities 0.25.0",
- "thiserror",
]
[[package]]
@@ -18557,7 +19573,6 @@ dependencies = [
"frame-metadata",
"parity-scale-codec",
"scale-info",
- "sp-std 14.0.0",
]
[[package]]
@@ -18568,7 +19583,6 @@ dependencies = [
"scale-info",
"sp-api",
"sp-application-crypto",
- "sp-std 14.0.0",
]
[[package]]
@@ -18585,7 +19599,6 @@ dependencies = [
"sp-core",
"sp-debug-derive 14.0.0",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
]
@@ -18594,13 +19607,12 @@ name = "sp-npos-elections"
version = "26.0.0"
dependencies = [
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"serde",
"sp-arithmetic",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
"substrate-test-utils",
]
@@ -18608,9 +19620,9 @@ dependencies = [
name = "sp-npos-elections-fuzzer"
version = "2.0.0-alpha.5"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"honggfuzz",
- "rand",
+ "rand 0.8.5",
"sp-npos-elections",
"sp-runtime",
]
@@ -18654,7 +19666,7 @@ dependencies = [
"log",
"parity-scale-codec",
"paste",
- "rand",
+ "rand 0.8.5",
"scale-info",
"serde",
"serde_json",
@@ -18697,7 +19709,7 @@ dependencies = [
"bytes",
"impl-trait-for-tuples",
"parity-scale-codec",
- "polkavm-derive 0.8.0",
+ "polkavm-derive",
"primitive-types",
"rustversion",
"sp-core",
@@ -18721,9 +19733,9 @@ source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf5
dependencies = [
"Inflector",
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -18733,9 +19745,9 @@ dependencies = [
"Inflector",
"expander 2.0.0",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -18787,7 +19799,6 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -18800,7 +19811,6 @@ dependencies = [
"serde",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18814,13 +19824,12 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"pretty_assertions",
- "rand",
+ "rand 0.8.5",
"smallvec",
"sp-core",
"sp-externalities 0.25.0",
"sp-panic-handler",
"sp-runtime",
- "sp-std 14.0.0",
"sp-trie",
"thiserror",
"tracing",
@@ -18832,11 +19841,11 @@ name = "sp-statement-store"
version = "10.0.0"
dependencies = [
"aes-gcm 0.10.3",
- "curve25519-dalek 4.1.1",
- "ed25519-dalek",
+ "curve25519-dalek 4.1.2",
+ "ed25519-dalek 2.1.0",
"hkdf",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sha2 0.10.7",
"sp-api",
@@ -18846,7 +19855,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",
]
@@ -18882,7 +19890,6 @@ dependencies = [
"ref-cast",
"serde",
"sp-debug-derive 14.0.0",
- "sp-std 14.0.0",
]
[[package]]
@@ -18895,7 +19902,6 @@ dependencies = [
"sp-application-crypto",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18906,7 +19912,6 @@ dependencies = [
"parity-scale-codec",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
]
@@ -18927,10 +19932,9 @@ name = "sp-tracing"
version = "16.0.0"
dependencies = [
"parity-scale-codec",
- "sp-std 14.0.0",
"tracing",
"tracing-core",
- "tracing-subscriber 0.2.25",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -18951,7 +19955,6 @@ dependencies = [
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-std 14.0.0",
"sp-trie",
]
@@ -18959,22 +19962,21 @@ dependencies = [
name = "sp-trie"
version = "29.0.0"
dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
"array-bytes 6.1.0",
- "criterion 0.4.0",
+ "criterion 0.5.1",
"hash-db",
"lazy_static",
"memory-db",
"nohash-hasher",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"scale-info",
"schnellru",
"sp-core",
"sp-externalities 0.25.0",
"sp-runtime",
- "sp-std 14.0.0",
"thiserror",
"tracing",
"trie-bench",
@@ -19004,10 +20006,10 @@ name = "sp-version-proc-macro"
version = "13.0.0"
dependencies = [
"parity-scale-codec",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"sp-version",
- "syn 2.0.48",
+ "syn 2.0.53",
]
[[package]]
@@ -19031,7 +20033,6 @@ dependencies = [
"impl-trait-for-tuples",
"log",
"parity-scale-codec",
- "sp-std 14.0.0",
"wasmtime",
]
@@ -19047,7 +20048,6 @@ dependencies = [
"smallvec",
"sp-arithmetic",
"sp-debug-derive 14.0.0",
- "sp-std 14.0.0",
]
[[package]]
@@ -19091,11 +20091,11 @@ checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439"
dependencies = [
"Inflector",
"num-format",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"serde",
"serde_json",
- "unicode-xid",
+ "unicode-xid 0.2.4",
]
[[package]]
@@ -19116,8 +20116,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -19129,9 +20129,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "staging-chain-spec-builder"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"log",
"sc-chain-spec",
"serde_json",
@@ -19144,7 +20144,7 @@ version = "3.0.0-dev"
dependencies = [
"array-bytes 6.1.0",
"assert_cmd",
- "clap 4.4.18",
+ "clap 4.5.3",
"clap_complete",
"criterion 0.4.0",
"frame-benchmarking",
@@ -19176,7 +20176,7 @@ dependencies = [
"pallet-treasury",
"parity-scale-codec",
"platforms",
- "rand",
+ "rand 0.8.5",
"regex",
"sc-authority-discovery",
"sc-basic-authorship",
@@ -19224,6 +20224,7 @@ dependencies = [
"sp-core",
"sp-crypto-hashing",
"sp-externalities 0.25.0",
+ "sp-genesis-builder",
"sp-inherents",
"sp-io",
"sp-keyring",
@@ -19245,7 +20246,6 @@ dependencies = [
"tempfile",
"tokio",
"tokio-util",
- "try-runtime-cli",
"wait-timeout",
"wat",
]
@@ -19254,7 +20254,7 @@ dependencies = [
name = "staging-node-inspect"
version = "0.12.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"parity-scale-codec",
"sc-cli",
"sc-client-api",
@@ -19384,11 +20384,31 @@ checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"
dependencies = [
"cfg_aliases",
"memchr",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
+[[package]]
+name = "str0m"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee48572247f422dcbe68630c973f8296fbd5157119cd36a3223e48bf83d47727"
+dependencies = [
+ "combine",
+ "crc",
+ "hmac 0.12.1",
+ "once_cell",
+ "openssl",
+ "openssl-sys",
+ "rand 0.8.5",
+ "sctp-proto",
+ "serde",
+ "sha-1 0.10.1",
+ "thiserror",
+ "tracing",
+]
+
[[package]]
name = "strobe-rs"
version = "0.8.1"
@@ -19398,16 +20418,52 @@ dependencies = [
"bitflags 1.3.2",
"byteorder",
"keccak",
- "subtle 2.4.1",
+ "subtle 2.5.0",
"zeroize",
]
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
[[package]]
name = "strsim"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "structopt"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+dependencies = [
+ "clap 2.34.0",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+dependencies = [
+ "heck 0.3.3",
+ "proc-macro-error",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
[[package]]
name = "strum"
version = "0.24.1"
@@ -19423,15 +20479,24 @@ version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros 0.26.2",
+]
+
[[package]]
name = "strum_macros"
version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
- "heck",
- "proc-macro2",
- "quote",
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"rustversion",
"syn 1.0.109",
]
@@ -19442,31 +20507,44 @@ version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
- "heck",
- "proc-macro2",
- "quote",
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"rustversion",
- "syn 2.0.48",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "rustversion",
+ "syn 2.0.53",
]
[[package]]
name = "subkey"
version = "9.0.0"
dependencies = [
- "clap 4.4.18",
+ "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",
]
@@ -19495,7 +20573,7 @@ dependencies = [
name = "substrate-frame-cli"
version = "32.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"frame-support",
"frame-system",
"sc-cli",
@@ -19551,7 +20629,50 @@ dependencies = [
"log",
"prometheus",
"thiserror",
- "tokio",
+ "tokio",
+]
+
+[[package]]
+name = "substrate-relay-helper"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-std",
+ "async-trait",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-parachains",
+ "bp-polkadot-core",
+ "bp-relayers",
+ "bp-runtime",
+ "bridge-runtime-common",
+ "equivocation-detector",
+ "finality-grandpa",
+ "finality-relay",
+ "frame-support",
+ "frame-system",
+ "futures",
+ "hex",
+ "log",
+ "messages-relay",
+ "num-traits",
+ "pallet-balances",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-grandpa",
+ "pallet-transaction-payment",
+ "parachains-relay",
+ "parity-scale-codec",
+ "rbtag",
+ "relay-substrate-client",
+ "relay-utils",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-runtime",
+ "structopt",
+ "strum 0.26.2",
+ "thiserror",
]
[[package]]
@@ -19621,6 +20742,7 @@ dependencies = [
"frame-system",
"frame-system-rpc-runtime-api",
"futures",
+ "hex-literal",
"log",
"pallet-babe",
"pallet-balances",
@@ -19652,7 +20774,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"sp-transaction-pool",
"sp-trie",
@@ -19713,9 +20834,9 @@ dependencies = [
"console",
"filetime",
"parity-wasm",
- "polkavm-linker 0.8.1",
+ "polkavm-linker",
"sp-maybe-compressed-blob",
- "strum 0.24.1",
+ "strum 0.26.2",
"tempfile",
"toml 0.8.8",
"walkdir",
@@ -19730,9 +20851,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
[[package]]
name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]]
name = "subtle-ng"
@@ -19831,25 +20952,36 @@ dependencies = [
"symbolic-common",
]
+[[package]]
+name = "syn"
+version = "0.15.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "unicode-xid 0.1.0",
+]
+
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"unicode-ident",
]
[[package]]
name = "syn"
-version = "2.0.48"
+version = "2.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"unicode-ident",
]
@@ -19860,9 +20992,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047"
dependencies = [
"paste",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -19871,10 +21003,25 @@ version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
- "unicode-xid",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "sysinfo"
+version = "0.30.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "windows 0.52.0",
]
[[package]]
@@ -19976,7 +21123,7 @@ dependencies = [
name = "test-parachain-adder-collator"
version = "1.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"futures",
"futures-timer",
"log",
@@ -20024,7 +21171,7 @@ dependencies = [
name = "test-parachain-undying-collator"
version = "1.0.0"
dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
"futures",
"futures-timer",
"log",
@@ -20084,6 +21231,15 @@ dependencies = [
"westend-runtime-constants",
]
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
[[package]]
name = "textwrap"
version = "0.16.0"
@@ -20114,8 +21270,8 @@ version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -20125,9 +21281,9 @@ version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -20207,6 +21363,8 @@ checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07"
dependencies = [
"deranged",
"itoa",
+ "libc",
+ "num_threads",
"serde",
"time-core",
"time-macros",
@@ -20263,9 +21421,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.33.0"
+version = "1.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
dependencies = [
"backtrace",
"bytes",
@@ -20275,20 +21433,20 @@ dependencies = [
"parking_lot 0.12.1",
"pin-project-lite 0.2.12",
"signal-hook-registry",
- "socket2 0.5.3",
+ "socket2 0.5.6",
"tokio-macros",
"windows-sys 0.48.0",
]
[[package]]
name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -20298,7 +21456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f"
dependencies = [
"pin-project",
- "rand",
+ "rand 0.8.5",
"tokio",
]
@@ -20312,6 +21470,17 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
+ "tokio",
+]
+
[[package]]
name = "tokio-stream"
version = "0.1.14"
@@ -20346,7 +21515,22 @@ dependencies = [
"futures-util",
"log",
"tokio",
- "tungstenite",
+ "tungstenite 0.17.3",
+]
+
+[[package]]
+name = "tokio-tungstenite"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
+dependencies = [
+ "futures-util",
+ "log",
+ "rustls 0.21.6",
+ "rustls-native-certs 0.6.3",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tungstenite 0.20.1",
]
[[package]]
@@ -20400,7 +21584,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"toml_datetime",
"winnow",
]
@@ -20411,7 +21595,7 @@ version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
"serde",
"serde_spanned",
"toml_datetime",
@@ -20465,11 +21649,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
[[package]]
name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "cfg-if",
"log",
"pin-project-lite 0.2.12",
"tracing-attributes",
@@ -20478,13 +21661,13 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -20524,9 +21707,9 @@ dependencies = [
"assert_matches",
"expander 2.0.0",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -20571,7 +21754,6 @@ dependencies = [
"chrono",
"lazy_static",
"matchers 0.0.1",
- "parking_lot 0.11.2",
"regex",
"serde",
"serde_json",
@@ -20590,9 +21772,11 @@ version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [
+ "chrono",
"matchers 0.1.0",
"nu-ansi-term",
"once_cell",
+ "parking_lot 0.12.1",
"regex",
"sharded-slab",
"smallvec",
@@ -20604,11 +21788,11 @@ dependencies = [
[[package]]
name = "trie-bench"
-version = "0.38.0"
+version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4680cb226e31d2a096592d0edecdda91cc371743002f80c0f8cf80219819b3b"
+checksum = "3092f400e9f7e3ce8c1756016a8b6287163ab7a11dd47d82169260cb4cc2d680"
dependencies = [
- "criterion 0.4.0",
+ "criterion 0.5.1",
"hash-db",
"keccak-hasher",
"memory-db",
@@ -20620,12 +21804,11 @@ dependencies = [
[[package]]
name = "trie-db"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642"
+checksum = "65ed83be775d85ebb0e272914fff6462c39b3ddd6dc67b5c1c41271aad280c69"
dependencies = [
"hash-db",
- "hashbrown 0.13.2",
"log",
"rustc-hex",
"smallvec",
@@ -20659,14 +21842,14 @@ dependencies = [
"async-trait",
"cfg-if",
"data-encoding",
- "enum-as-inner",
+ "enum-as-inner 0.5.1",
"futures-channel",
"futures-io",
"futures-util",
"idna 0.2.3",
"ipnet",
"lazy_static",
- "rand",
+ "rand 0.8.5",
"smallvec",
"socket2 0.4.9",
"thiserror",
@@ -20676,6 +21859,31 @@ dependencies = [
"url",
]
+[[package]]
+name = "trust-dns-proto"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner 0.6.0",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand 0.8.5",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
[[package]]
name = "trust-dns-resolver"
version = "0.22.0"
@@ -20693,56 +21901,36 @@ dependencies = [
"thiserror",
"tokio",
"tracing",
- "trust-dns-proto",
+ "trust-dns-proto 0.22.0",
]
[[package]]
-name = "try-lock"
-version = "0.2.4"
+name = "trust-dns-resolver"
+version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "try-runtime-cli"
-version = "0.38.0"
+checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
dependencies = [
- "assert_cmd",
- "async-trait",
- "clap 4.4.18",
- "frame-remote-externalities",
- "frame-try-runtime",
- "hex",
- "log",
- "node-primitives",
- "parity-scale-codec",
- "regex",
- "sc-cli",
- "sc-executor",
- "serde",
- "serde_json",
- "sp-api",
- "sp-consensus-aura",
- "sp-consensus-babe",
- "sp-core",
- "sp-debug-derive 14.0.0",
- "sp-externalities 0.25.0",
- "sp-inherents",
- "sp-io",
- "sp-keystore",
- "sp-rpc",
- "sp-runtime",
- "sp-state-machine",
- "sp-timestamp",
- "sp-transaction-storage-proof",
- "sp-version",
- "sp-weights",
- "substrate-cli-test-utils",
- "substrate-rpc-client",
- "tempfile",
+ "cfg-if",
+ "futures-util",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "rand 0.8.5",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
"tokio",
- "zstd 0.12.4",
+ "tracing",
+ "trust-dns-proto 0.23.2",
]
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
[[package]]
name = "trybuild"
version = "1.0.89"
@@ -20777,13 +21965,33 @@ dependencies = [
"http",
"httparse",
"log",
- "rand",
+ "rand 0.8.5",
"sha-1 0.10.1",
"thiserror",
"url",
"utf-8",
]
+[[package]]
+name = "tungstenite"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http",
+ "httparse",
+ "log",
+ "rand 0.8.5",
+ "rustls 0.21.6",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
[[package]]
name = "twox-hash"
version = "1.6.3"
@@ -20792,7 +22000,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
"cfg-if",
"digest 0.10.7",
- "rand",
+ "rand 0.8.5",
"static_assertions",
]
@@ -20847,12 +22055,24 @@ dependencies = [
"tinyvec",
]
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
[[package]]
name = "unicode-width"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
[[package]]
name = "unicode-xid"
version = "0.2.4"
@@ -20861,12 +22081,12 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
[[package]]
name = "universal-hash"
-version = "0.4.1"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
dependencies = [
"generic-array 0.14.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[package]]
@@ -20876,25 +22096,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
dependencies = [
"crypto-common",
- "subtle 2.4.1",
+ "subtle 2.5.0",
]
[[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"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836"
+checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105"
dependencies = [
"asynchronous-codec",
"bytes",
"futures-io",
"futures-util",
+ "tokio-util",
]
[[package]]
@@ -20946,9 +22167,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",
@@ -20956,9 +22177,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",
@@ -20967,9 +22188,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",
@@ -20986,6 +22207,12 @@ version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
[[package]]
name = "version_check"
version = "0.9.4"
@@ -21013,7 +22240,7 @@ dependencies = [
"arrayref",
"constcat",
"digest 0.10.7",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"sha2 0.10.7",
@@ -21089,9 +22316,9 @@ dependencies = [
"bumpalo",
"log",
"once_cell",
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
"wasm-bindgen-shared",
]
@@ -21113,7 +22340,7 @@ version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
- "quote",
+ "quote 1.0.35",
"wasm-bindgen-macro-support",
]
@@ -21123,9 +22350,9 @@ version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -21156,8 +22383,8 @@ version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
]
[[package]]
@@ -21458,7 +22685,7 @@ dependencies = [
"memfd",
"memoffset 0.8.0",
"paste",
- "rand",
+ "rand 0.8.5",
"rustix 0.36.15",
"wasmtime-asm-macros",
"wasmtime-environ",
@@ -21586,7 +22813,6 @@ dependencies = [
"pallet-fast-unstake",
"pallet-grandpa",
"pallet-identity",
- "pallet-im-online",
"pallet-indices",
"pallet-membership",
"pallet-message-queue",
@@ -21661,6 +22887,7 @@ dependencies = [
"tiny-keccak",
"tokio",
"westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -21771,6 +22998,40 @@ dependencies = [
"windows-targets 0.48.5",
]
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
[[package]]
name = "windows-sys"
version = "0.45.0"
@@ -22044,7 +23305,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
dependencies = [
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
"rand_core 0.6.4",
"serde",
"zeroize",
@@ -22068,6 +23329,23 @@ dependencies = [
"time",
]
+[[package]]
+name = "x509-parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+dependencies = [
+ "asn1-rs",
+ "data-encoding",
+ "der-parser",
+ "lazy_static",
+ "nom",
+ "oid-registry",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
[[package]]
name = "xattr"
version = "1.0.1"
@@ -22120,10 +23398,12 @@ dependencies = [
"pallet-transaction-payment",
"pallet-xcm",
"parity-scale-codec",
+ "polkadot-service",
"polkadot-test-client",
"polkadot-test-runtime",
"polkadot-test-service",
"sp-consensus",
+ "sp-core",
"sp-keyring",
"sp-runtime",
"sp-state-machine",
@@ -22132,15 +23412,29 @@ dependencies = [
"staging-xcm-executor",
]
+[[package]]
+name = "xcm-fee-payment-runtime-api"
+version = "0.1.0"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-weights",
+ "staging-xcm",
+]
+
[[package]]
name = "xcm-procedural"
version = "7.0.0"
dependencies = [
"Inflector",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"staging-xcm",
- "syn 2.0.48",
+ "syn 2.0.53",
"trybuild",
]
@@ -22193,8 +23487,10 @@ name = "xcm-simulator-fuzzer"
version = "1.0.0"
dependencies = [
"arbitrary",
+ "frame-executive",
"frame-support",
"frame-system",
+ "frame-try-runtime",
"honggfuzz",
"pallet-balances",
"pallet-message-queue",
@@ -22224,7 +23520,7 @@ dependencies = [
"log",
"nohash-hasher",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"static_assertions",
]
@@ -22258,16 +23554,16 @@ version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "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",
]
@@ -22278,9 +23574,9 @@ version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
@@ -22295,7 +23591,7 @@ dependencies = [
"serde_json",
"thiserror",
"tokio",
- "tokio-tungstenite",
+ "tokio-tungstenite 0.17.2",
"tracing-gum",
"url",
]
diff --git a/Cargo.toml b/Cargo.toml
index e807171b24c46ac9a95344940a8590ac5209717c..460c49f7f37c2d43e021e4bfa8f4263ac1ea3063 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,30 +3,33 @@ 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"
members = [
"bridges/bin/runtime-common",
+ "bridges/chains/chain-asset-hub-rococo",
+ "bridges/chains/chain-asset-hub-westend",
+ "bridges/chains/chain-bridge-hub-cumulus",
+ "bridges/chains/chain-bridge-hub-kusama",
+ "bridges/chains/chain-bridge-hub-polkadot",
+ "bridges/chains/chain-bridge-hub-rococo",
+ "bridges/chains/chain-bridge-hub-westend",
+ "bridges/chains/chain-kusama",
+ "bridges/chains/chain-polkadot",
+ "bridges/chains/chain-polkadot-bulletin",
+ "bridges/chains/chain-rococo",
+ "bridges/chains/chain-westend",
+ "bridges/modules/beefy",
"bridges/modules/grandpa",
"bridges/modules/messages",
"bridges/modules/parachains",
"bridges/modules/relayers",
"bridges/modules/xcm-bridge-hub",
"bridges/modules/xcm-bridge-hub-router",
- "bridges/primitives/chain-asset-hub-rococo",
- "bridges/primitives/chain-asset-hub-westend",
- "bridges/primitives/chain-bridge-hub-cumulus",
- "bridges/primitives/chain-bridge-hub-kusama",
- "bridges/primitives/chain-bridge-hub-polkadot",
- "bridges/primitives/chain-bridge-hub-rococo",
- "bridges/primitives/chain-bridge-hub-westend",
- "bridges/primitives/chain-kusama",
- "bridges/primitives/chain-polkadot",
- "bridges/primitives/chain-polkadot-bulletin",
- "bridges/primitives/chain-rococo",
- "bridges/primitives/chain-westend",
+ "bridges/primitives/beefy",
"bridges/primitives/header-chain",
"bridges/primitives/messages",
"bridges/primitives/parachains",
@@ -36,6 +39,13 @@ members = [
"bridges/primitives/test-utils",
"bridges/primitives/xcm-bridge-hub",
"bridges/primitives/xcm-bridge-hub-router",
+ "bridges/relays/client-substrate",
+ "bridges/relays/equivocation",
+ "bridges/relays/finality",
+ "bridges/relays/lib-substrate-relay",
+ "bridges/relays/messages",
+ "bridges/relays/parachains",
+ "bridges/relays/utils",
"bridges/snowbridge/pallets/ethereum-client",
"bridges/snowbridge/pallets/ethereum-client/fixtures",
"bridges/snowbridge/pallets/inbound-queue",
@@ -74,9 +84,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",
@@ -127,6 +134,7 @@ members = [
"cumulus/primitives/core",
"cumulus/primitives/parachain-inherent",
"cumulus/primitives/proof-size-hostfunction",
+ "cumulus/primitives/storage-weight-reclaim",
"cumulus/primitives/timestamp",
"cumulus/primitives/utility",
"cumulus/test/client",
@@ -215,14 +223,10 @@ members = [
"polkadot/xcm/xcm-builder",
"polkadot/xcm/xcm-executor",
"polkadot/xcm/xcm-executor/integration-tests",
+ "polkadot/xcm/xcm-fee-payment-runtime-api",
"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",
@@ -255,6 +259,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",
@@ -264,13 +269,13 @@ members = [
"substrate/client/mixnet",
"substrate/client/network",
"substrate/client/network-gossip",
- "substrate/client/network/bitswap",
"substrate/client/network/common",
"substrate/client/network/light",
"substrate/client/network/statement",
"substrate/client/network/sync",
"substrate/client/network/test",
"substrate/client/network/transactions",
+ "substrate/client/network/types",
"substrate/client/offchain",
"substrate/client/proposer-metrics",
"substrate/client/rpc",
@@ -335,7 +340,9 @@ members = [
"substrate/frame/examples/dev-mode",
"substrate/frame/examples/frame-crate",
"substrate/frame/examples/kitchensink",
+ "substrate/frame/examples/multi-block-migrations",
"substrate/frame/examples/offchain-worker",
+ "substrate/frame/examples/single-block-migrations",
"substrate/frame/examples/split",
"substrate/frame/examples/tasks",
"substrate/frame/executive",
@@ -350,6 +357,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",
@@ -366,6 +374,7 @@ members = [
"substrate/frame/offences/benchmarking",
"substrate/frame/paged-list",
"substrate/frame/paged-list/fuzzer",
+ "substrate/frame/parameters",
"substrate/frame/preimage",
"substrate/frame/proxy",
"substrate/frame/ranked-collective",
@@ -492,14 +501,27 @@ members = [
"substrate/utils/frame/frame-utilities-cli",
"substrate/utils/frame/generate-bags",
"substrate/utils/frame/generate-bags/node-runtime",
+ "substrate/utils/frame/omni-bencher",
"substrate/utils/frame/remote-externalities",
"substrate/utils/frame/rpc/client",
"substrate/utils/frame/rpc/state-trie-migration-rpc",
"substrate/utils/frame/rpc/support",
"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"]
@@ -533,8 +555,19 @@ extra-unused-type-parameters = { level = "allow", priority = 2 } # stylistic
default_constructed_unit_structs = { level = "allow", priority = 2 } # stylistic
[workspace.dependencies]
-polkavm-linker = "0.8.1"
-polkavm-derive = "0.8.0"
+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.53" }
+thiserror = { version = "1.0.48" }
+tracing-subscriber = { version = "0.3.18" }
[profile.release]
# Polkadot runtime requires unwinding.
@@ -595,6 +628,7 @@ num-bigint = { opt-level = 3 }
parking_lot = { opt-level = 3 }
parking_lot_core = { opt-level = 3 }
percent-encoding = { opt-level = 3 }
+polkavm-linker = { opt-level = 3 }
primitive-types = { opt-level = 3 }
reed-solomon-novelpoly = { opt-level = 3 }
ring = { opt-level = 3 }
diff --git a/README.md b/README.md
index 93f9539a94a1de5771f04106b11ba18f27010aad..63743a456f4c8f8561bbeee8c59d63b88d352285 100644
--- a/README.md
+++ b/README.md
@@ -18,8 +18,9 @@ way. The Polkadot SDK comprises three main pieces of software:
[![Polkadot-license](https://img.shields.io/badge/License-GPL3-blue)](./polkadot/LICENSE)
Implementation of a node for the https://polkadot.network in Rust, using the Substrate framework. This directory
-currently contains runtimes for the Polkadot, Kusama, Westend, and Rococo networks. In the future, these will be
-relocated to the [`runtimes`](https://github.com/polkadot-fellows/runtimes/) repository.
+currently contains runtimes for the Westend and Rococo test networks. Polkadot, Kusama and their system chain runtimes
+are located in the [`runtimes`](https://github.com/polkadot-fellows/runtimes/) repository maintained by
+[the Polkadot Technical Fellowship](https://polkadot-fellows.github.io/dashboard/#/overview).
## [Substrate](./substrate/)
[![SubstrateRustDocs](https://img.shields.io/badge/Rust_Docs-Substrate-24CC85?logo=rust)](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/substrate/index.html)
diff --git a/bridges/.gitignore b/bridges/.gitignore
deleted file mode 100644
index 5d10cfa41a4487247e2c331144d3dabf0ec5e6f7..0000000000000000000000000000000000000000
--- a/bridges/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-**/target/
-**/.env
-**/.env2
-**/rust-toolchain
-hfuzz_target
-hfuzz_workspace
-**/Cargo.lock
-
-**/*.rs.bk
-
-*.o
-*.so
-*.rlib
-*.dll
-.gdb_history
-
-*.exe
-
-.DS_Store
-
-.cargo
-.idea
-.vscode
-*.iml
-*.swp
-*.swo
diff --git a/bridges/README.md b/bridges/README.md
index a2ce213d2541c346361eb28125a06e3079e1c269..8bfa39841f51e7824d0f1169540342c2bd88b664 100644
--- a/bridges/README.md
+++ b/bridges/README.md
@@ -38,10 +38,10 @@ cargo test --all
```
Also you can build the repo with [Parity CI Docker
-image](https://github.com/paritytech/scripts/tree/master/dockerfiles/bridges-ci):
+image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-unified):
```bash
-docker pull paritytech/bridges-ci:production
+docker pull paritytech/ci-unified:latest
mkdir ~/cache
chown 1000:1000 ~/cache #processes in the container runs as "nonroot" user with UID 1000
docker run --rm -it -w /shellhere/parity-bridges-common \
@@ -49,7 +49,7 @@ docker run --rm -it -w /shellhere/parity-bridges-common \
-v "$(pwd)":/shellhere/parity-bridges-common \
-e CARGO_HOME=/cache/cargo/ \
-e SCCACHE_DIR=/cache/sccache/ \
- -e CARGO_TARGET_DIR=/cache/target/ paritytech/bridges-ci:production cargo build --all
+ -e CARGO_TARGET_DIR=/cache/target/ paritytech/ci-unified:latest cargo build --all
#artifacts can be found in ~/cache/target
```
diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml
index c0072064507331848beaaec3a56a8324296dd1f4..67b91a16a302d6214830241082b21c407b04c6d1 100644
--- a/bridges/bin/runtime-common/Cargo.toml
+++ b/bridges/bin/runtime-common/Cargo.toml
@@ -11,10 +11,10 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] }
hash-db = { version = "0.16.0", default-features = false }
-log = { version = "0.4.20", default-features = false }
-scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
+log = { workspace = true }
+scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
static_assertions = { version = "1.1", optional = true }
# Bridge dependencies
diff --git a/bridges/bin/runtime-common/src/messages_api.rs b/bridges/bin/runtime-common/src/messages_api.rs
index ccf1c754041ed84dc302f0660fdd5bde8dc8d533..7fbdeb366124778b36c77725be8ca8778020be1b 100644
--- a/bridges/bin/runtime-common/src/messages_api.rs
+++ b/bridges/bin/runtime-common/src/messages_api.rs
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Parity Bridges Common. If not, see .
-//! Helpers for implementing various message-related runtime API mthods.
+//! Helpers for implementing various message-related runtime API methods.
use bp_messages::{
InboundMessageDetails, LaneId, MessageNonce, MessagePayload, OutboundMessageDetails,
diff --git a/bridges/bin/runtime-common/src/messages_xcm_extension.rs b/bridges/bin/runtime-common/src/messages_xcm_extension.rs
index e3da6155f08a198d5469adbfc64e40213eddf8eb..46ed4da0d85481fcc7223740084945924f9c710f 100644
--- a/bridges/bin/runtime-common/src/messages_xcm_extension.rs
+++ b/bridges/bin/runtime-common/src/messages_xcm_extension.rs
@@ -248,7 +248,7 @@ impl LocalXcmQueueManager {
sender_and_lane: &SenderAndLane,
enqueued_messages: MessageNonce,
) {
- // skip if we dont want to handle congestion
+ // skip if we don't want to handle congestion
if !H::supports_congestion_detection() {
return
}
diff --git a/bridges/bin/runtime-common/src/mock.rs b/bridges/bin/runtime-common/src/mock.rs
index 8877a4fd95ce33150824b78674f38860616cf820..ad71cd0d456d827d3757433d214f7ea794406fca 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,14 +158,15 @@ 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 OnChargeTransaction = pallet_transaction_payment::FungibleAdapter;
type OperationalFeeMultiplier = ConstU8<5>;
type WeightToFee = IdentityFee;
type LengthToFee = ConstantMultiplier;
@@ -378,7 +379,7 @@ impl Chain for BridgedUnderlyingChain {
impl ChainWithGrandpa for BridgedUnderlyingChain {
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = "";
const MAX_AUTHORITIES_COUNT: u32 = 16;
- const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 8;
+ const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8;
const MAX_MANDATORY_HEADER_SIZE: u32 = 256;
const AVERAGE_HEADER_SIZE: u32 = 64;
}
diff --git a/bridges/bin/runtime-common/src/priority_calculator.rs b/bridges/bin/runtime-common/src/priority_calculator.rs
index a597fb9e2f49289360acfd7ee305b44eb7874a3e..5035553f508dfea94a0cb5ddf9b916dd7d9b4ea5 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 =
@@ -163,7 +163,7 @@ mod integrity_tests {
{
// just an estimation of extra transaction bytes that are added to every transaction
// (including signature, signed extensions extra and etc + in our case it includes
- // all call arguments extept the proof itself)
+ // all call arguments except the proof itself)
let base_tx_size = 512;
// let's say we are relaying similar small messages and for every message we add more trie
// nodes to the proof (x0.5 because we expect some nodes to be reused)
diff --git a/bridges/bin/runtime-common/src/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/refund_relayer_extension.rs
index 27b7ff1a5519b70a35c304b96b0c25108155aa46..455392a0a277f3520cd7f58150f12e7420d36014 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::{
@@ -195,6 +195,19 @@ impl CallInfo {
}
}
+ /// Returns mutable reference to pre-dispatch `finality_target` sent to the
+ /// `SubmitFinalityProof` call.
+ #[cfg(test)]
+ fn submit_finality_proof_info_mut(
+ &mut self,
+ ) -> Option<&mut SubmitFinalityProofInfo> {
+ match *self {
+ Self::AllFinalityAndMsgs(ref mut info, _, _) => Some(info),
+ Self::RelayFinalityAndMsgs(ref mut info, _) => Some(info),
+ _ => None,
+ }
+ }
+
/// Returns the pre-dispatch `SubmitParachainHeadsInfo`.
fn submit_parachain_heads_info(&self) -> Option<&SubmitParachainHeadsInfo> {
match self {
@@ -844,7 +857,7 @@ mod tests {
use bp_parachains::{BestParaHeadHash, ParaInfo};
use bp_polkadot_core::parachains::{ParaHeadsProof, ParaId};
use bp_runtime::{BasicOperatingMode, HeaderId};
- use bp_test_utils::{make_default_justification, test_keyring};
+ use bp_test_utils::{make_default_justification, test_keyring, TEST_GRANDPA_SET_ID};
use frame_support::{
assert_storage_noop, parameter_types,
traits::{fungible::Mutate, ReservableCurrency},
@@ -929,7 +942,7 @@ mod tests {
let authorities = test_keyring().into_iter().map(|(a, w)| (a.into(), w)).collect();
let best_relay_header = HeaderId(best_relay_header_number, RelayBlockHash::default());
pallet_bridge_grandpa::CurrentAuthoritySet::::put(
- StoredAuthoritySet::try_new(authorities, 0).unwrap(),
+ StoredAuthoritySet::try_new(authorities, TEST_GRANDPA_SET_ID).unwrap(),
);
pallet_bridge_grandpa::BestFinalized::::put(best_relay_header);
@@ -977,6 +990,23 @@ mod tests {
})
}
+ fn submit_relay_header_call_ex(relay_header_number: RelayBlockNumber) -> RuntimeCall {
+ let relay_header = BridgedChainHeader::new(
+ relay_header_number,
+ Default::default(),
+ Default::default(),
+ Default::default(),
+ Default::default(),
+ );
+ let relay_justification = make_default_justification(&relay_header);
+
+ RuntimeCall::BridgeGrandpa(GrandpaCall::submit_finality_proof_ex {
+ finality_target: Box::new(relay_header),
+ justification: relay_justification,
+ current_set_id: TEST_GRANDPA_SET_ID,
+ })
+ }
+
fn submit_parachain_head_call(
parachain_head_at_relay_header_number: RelayBlockNumber,
) -> RuntimeCall {
@@ -1059,6 +1089,18 @@ mod tests {
})
}
+ fn relay_finality_and_delivery_batch_call_ex(
+ relay_header_number: RelayBlockNumber,
+ best_message: MessageNonce,
+ ) -> RuntimeCall {
+ RuntimeCall::Utility(UtilityCall::batch_all {
+ calls: vec![
+ submit_relay_header_call_ex(relay_header_number),
+ message_delivery_call(best_message),
+ ],
+ })
+ }
+
fn relay_finality_and_confirmation_batch_call(
relay_header_number: RelayBlockNumber,
best_message: MessageNonce,
@@ -1071,6 +1113,18 @@ mod tests {
})
}
+ fn relay_finality_and_confirmation_batch_call_ex(
+ relay_header_number: RelayBlockNumber,
+ best_message: MessageNonce,
+ ) -> RuntimeCall {
+ RuntimeCall::Utility(UtilityCall::batch_all {
+ calls: vec![
+ submit_relay_header_call_ex(relay_header_number),
+ message_confirmation_call(best_message),
+ ],
+ })
+ }
+
fn all_finality_and_delivery_batch_call(
relay_header_number: RelayBlockNumber,
parachain_head_at_relay_header_number: RelayBlockNumber,
@@ -1085,6 +1139,20 @@ mod tests {
})
}
+ fn all_finality_and_delivery_batch_call_ex(
+ relay_header_number: RelayBlockNumber,
+ parachain_head_at_relay_header_number: RelayBlockNumber,
+ best_message: MessageNonce,
+ ) -> RuntimeCall {
+ RuntimeCall::Utility(UtilityCall::batch_all {
+ calls: vec![
+ submit_relay_header_call_ex(relay_header_number),
+ submit_parachain_head_call(parachain_head_at_relay_header_number),
+ message_delivery_call(best_message),
+ ],
+ })
+ }
+
fn all_finality_and_confirmation_batch_call(
relay_header_number: RelayBlockNumber,
parachain_head_at_relay_header_number: RelayBlockNumber,
@@ -1099,12 +1167,27 @@ mod tests {
})
}
+ fn all_finality_and_confirmation_batch_call_ex(
+ relay_header_number: RelayBlockNumber,
+ parachain_head_at_relay_header_number: RelayBlockNumber,
+ best_message: MessageNonce,
+ ) -> RuntimeCall {
+ RuntimeCall::Utility(UtilityCall::batch_all {
+ calls: vec![
+ submit_relay_header_call_ex(relay_header_number),
+ submit_parachain_head_call(parachain_head_at_relay_header_number),
+ message_confirmation_call(best_message),
+ ],
+ })
+ }
+
fn all_finality_pre_dispatch_data() -> PreDispatchData {
PreDispatchData {
relayer: relayer_account_at_this_chain(),
call_info: CallInfo::AllFinalityAndMsgs(
SubmitFinalityProofInfo {
block_number: 200,
+ current_set_id: None,
extra_weight: Weight::zero(),
extra_size: 0,
},
@@ -1128,12 +1211,20 @@ mod tests {
}
}
+ fn all_finality_pre_dispatch_data_ex() -> PreDispatchData {
+ let mut data = all_finality_pre_dispatch_data();
+ data.call_info.submit_finality_proof_info_mut().unwrap().current_set_id =
+ Some(TEST_GRANDPA_SET_ID);
+ data
+ }
+
fn all_finality_confirmation_pre_dispatch_data() -> PreDispatchData {
PreDispatchData {
relayer: relayer_account_at_this_chain(),
call_info: CallInfo::AllFinalityAndMsgs(
SubmitFinalityProofInfo {
block_number: 200,
+ current_set_id: None,
extra_weight: Weight::zero(),
extra_size: 0,
},
@@ -1153,12 +1244,20 @@ mod tests {
}
}
+ fn all_finality_confirmation_pre_dispatch_data_ex() -> PreDispatchData {
+ let mut data = all_finality_confirmation_pre_dispatch_data();
+ data.call_info.submit_finality_proof_info_mut().unwrap().current_set_id =
+ Some(TEST_GRANDPA_SET_ID);
+ data
+ }
+
fn relay_finality_pre_dispatch_data() -> PreDispatchData {
PreDispatchData {
relayer: relayer_account_at_this_chain(),
call_info: CallInfo::RelayFinalityAndMsgs(
SubmitFinalityProofInfo {
block_number: 200,
+ current_set_id: None,
extra_weight: Weight::zero(),
extra_size: 0,
},
@@ -1177,12 +1276,20 @@ mod tests {
}
}
+ fn relay_finality_pre_dispatch_data_ex() -> PreDispatchData {
+ let mut data = relay_finality_pre_dispatch_data();
+ data.call_info.submit_finality_proof_info_mut().unwrap().current_set_id =
+ Some(TEST_GRANDPA_SET_ID);
+ data
+ }
+
fn relay_finality_confirmation_pre_dispatch_data() -> PreDispatchData {
PreDispatchData {
relayer: relayer_account_at_this_chain(),
call_info: CallInfo::RelayFinalityAndMsgs(
SubmitFinalityProofInfo {
block_number: 200,
+ current_set_id: None,
extra_weight: Weight::zero(),
extra_size: 0,
},
@@ -1197,6 +1304,13 @@ mod tests {
}
}
+ fn relay_finality_confirmation_pre_dispatch_data_ex() -> PreDispatchData {
+ let mut data = relay_finality_confirmation_pre_dispatch_data();
+ data.call_info.submit_finality_proof_info_mut().unwrap().current_set_id =
+ Some(TEST_GRANDPA_SET_ID);
+ data
+ }
+
fn parachain_finality_pre_dispatch_data() -> PreDispatchData {
PreDispatchData {
relayer: relayer_account_at_this_chain(),
@@ -1393,6 +1507,10 @@ mod tests {
run_validate(all_finality_and_delivery_batch_call(200, 200, 200)),
Ok(Default::default()),
);
+ assert_eq!(
+ run_validate(all_finality_and_delivery_batch_call_ex(200, 200, 200)),
+ Ok(Default::default()),
+ );
// message confirmation validation is passing
assert_eq!(
run_validate_ignore_priority(message_confirmation_call(200)),
@@ -1410,11 +1528,17 @@ mod tests {
)),
Ok(Default::default()),
);
+ assert_eq!(
+ run_validate_ignore_priority(all_finality_and_confirmation_batch_call_ex(
+ 200, 200, 200
+ )),
+ Ok(Default::default()),
+ );
});
}
#[test]
- fn validate_boosts_priority_of_message_delivery_transactons() {
+ fn validate_boosts_priority_of_message_delivery_transactions() {
run_test(|| {
initialize_environment(100, 100, 100);
@@ -1444,7 +1568,7 @@ mod tests {
}
#[test]
- fn validate_does_not_boost_priority_of_message_delivery_transactons_with_too_many_messages() {
+ fn validate_does_not_boost_priority_of_message_delivery_transactions_with_too_many_messages() {
run_test(|| {
initialize_environment(100, 100, 100);
@@ -1500,12 +1624,24 @@ mod tests {
run_validate_ignore_priority(all_finality_and_delivery_batch_call(200, 200, 200)),
Ok(ValidTransaction::default()),
);
+ assert_eq!(
+ run_validate_ignore_priority(all_finality_and_delivery_batch_call_ex(
+ 200, 200, 200
+ )),
+ Ok(ValidTransaction::default()),
+ );
assert_eq!(
run_validate_ignore_priority(all_finality_and_confirmation_batch_call(
200, 200, 200
)),
Ok(ValidTransaction::default()),
);
+ assert_eq!(
+ run_validate_ignore_priority(all_finality_and_confirmation_batch_call_ex(
+ 200, 200, 200
+ )),
+ Ok(ValidTransaction::default()),
+ );
});
}
@@ -1518,11 +1654,19 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(100, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(100, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_validate(all_finality_and_delivery_batch_call(100, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_validate(all_finality_and_delivery_batch_call_ex(100, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
});
}
@@ -1535,10 +1679,18 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(101, 100, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(101, 100, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_validate(all_finality_and_delivery_batch_call(101, 100, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_validate(all_finality_and_delivery_batch_call_ex(101, 100, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_pre_dispatch(parachain_finality_and_delivery_batch_call(100, 200)),
@@ -1560,19 +1712,35 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(200, 200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(200, 200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_pre_dispatch(all_finality_and_confirmation_batch_call(200, 200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_confirmation_batch_call_ex(200, 200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_validate(all_finality_and_delivery_batch_call(200, 200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_validate(all_finality_and_delivery_batch_call_ex(200, 200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_validate(all_finality_and_confirmation_batch_call(200, 200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_validate(all_finality_and_confirmation_batch_call_ex(200, 200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_pre_dispatch(parachain_finality_and_delivery_batch_call(200, 100)),
@@ -1609,10 +1777,18 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(200, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(200, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+ );
assert_eq!(
run_pre_dispatch(all_finality_and_confirmation_batch_call(200, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_confirmation_batch_call_ex(200, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+ );
});
}
@@ -1631,10 +1807,18 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(200, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(200, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+ );
assert_eq!(
run_pre_dispatch(all_finality_and_confirmation_batch_call(200, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_confirmation_batch_call_ex(200, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+ );
assert_eq!(
run_pre_dispatch(parachain_finality_and_delivery_batch_call(200, 200)),
@@ -1662,10 +1846,18 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(200, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(200, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+ );
assert_eq!(
run_pre_dispatch(all_finality_and_confirmation_batch_call(200, 200, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_confirmation_batch_call_ex(200, 200, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+ );
assert_eq!(
run_pre_dispatch(parachain_finality_and_delivery_batch_call(200, 200)),
@@ -1696,10 +1888,18 @@ mod tests {
run_pre_dispatch(all_finality_and_delivery_batch_call(200, 200, 200)),
Ok(Some(all_finality_pre_dispatch_data())),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_delivery_batch_call_ex(200, 200, 200)),
+ Ok(Some(all_finality_pre_dispatch_data_ex())),
+ );
assert_eq!(
run_pre_dispatch(all_finality_and_confirmation_batch_call(200, 200, 200)),
Ok(Some(all_finality_confirmation_pre_dispatch_data())),
);
+ assert_eq!(
+ run_pre_dispatch(all_finality_and_confirmation_batch_call_ex(200, 200, 200)),
+ Ok(Some(all_finality_confirmation_pre_dispatch_data_ex())),
+ );
});
}
@@ -2126,6 +2326,12 @@ mod tests {
),
Ok(None),
);
+ assert_eq!(
+ TestGrandpaExtensionProvider::parse_and_check_for_obsolete_call(
+ &all_finality_and_delivery_batch_call_ex(200, 200, 200)
+ ),
+ Ok(None),
+ );
// relay + parachain + message confirmation calls batch is ignored
assert_eq!(
@@ -2134,6 +2340,12 @@ mod tests {
),
Ok(None),
);
+ assert_eq!(
+ TestGrandpaExtensionProvider::parse_and_check_for_obsolete_call(
+ &all_finality_and_confirmation_batch_call_ex(200, 200, 200)
+ ),
+ Ok(None),
+ );
// parachain + message delivery call batch is ignored
assert_eq!(
@@ -2158,6 +2370,12 @@ mod tests {
),
Ok(Some(relay_finality_pre_dispatch_data().call_info)),
);
+ assert_eq!(
+ TestGrandpaExtensionProvider::parse_and_check_for_obsolete_call(
+ &relay_finality_and_delivery_batch_call_ex(200, 200)
+ ),
+ Ok(Some(relay_finality_pre_dispatch_data_ex().call_info)),
+ );
// relay + message confirmation call batch is accepted
assert_eq!(
@@ -2166,6 +2384,12 @@ mod tests {
),
Ok(Some(relay_finality_confirmation_pre_dispatch_data().call_info)),
);
+ assert_eq!(
+ TestGrandpaExtensionProvider::parse_and_check_for_obsolete_call(
+ &relay_finality_and_confirmation_batch_call_ex(200, 200)
+ ),
+ Ok(Some(relay_finality_confirmation_pre_dispatch_data_ex().call_info)),
+ );
// message delivery call batch is accepted
assert_eq!(
@@ -2194,11 +2418,19 @@ mod tests {
run_grandpa_pre_dispatch(relay_finality_and_delivery_batch_call(100, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_grandpa_pre_dispatch(relay_finality_and_delivery_batch_call_ex(100, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_grandpa_validate(relay_finality_and_delivery_batch_call(100, 200)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_grandpa_validate(relay_finality_and_delivery_batch_call_ex(100, 200)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
});
}
@@ -2211,19 +2443,35 @@ mod tests {
run_grandpa_pre_dispatch(relay_finality_and_delivery_batch_call(200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_grandpa_pre_dispatch(relay_finality_and_delivery_batch_call_ex(200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_grandpa_pre_dispatch(relay_finality_and_confirmation_batch_call(200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_grandpa_pre_dispatch(relay_finality_and_confirmation_batch_call_ex(200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_grandpa_validate(relay_finality_and_delivery_batch_call(200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_grandpa_validate(relay_finality_and_delivery_batch_call_ex(200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_grandpa_validate(relay_finality_and_confirmation_batch_call(200, 100)),
Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
);
+ assert_eq!(
+ run_grandpa_validate(relay_finality_and_confirmation_batch_call_ex(200, 100)),
+ Err(TransactionValidityError::Invalid(InvalidTransaction::Stale)),
+ );
assert_eq!(
run_grandpa_pre_dispatch(message_delivery_call(100)),
@@ -2254,19 +2502,35 @@ mod tests {
run_grandpa_pre_dispatch(relay_finality_and_delivery_batch_call(200, 200)),
Ok(Some(relay_finality_pre_dispatch_data()),)
);
+ assert_eq!(
+ run_grandpa_pre_dispatch(relay_finality_and_delivery_batch_call_ex(200, 200)),
+ Ok(Some(relay_finality_pre_dispatch_data_ex()),)
+ );
assert_eq!(
run_grandpa_pre_dispatch(relay_finality_and_confirmation_batch_call(200, 200)),
Ok(Some(relay_finality_confirmation_pre_dispatch_data())),
);
+ assert_eq!(
+ run_grandpa_pre_dispatch(relay_finality_and_confirmation_batch_call_ex(200, 200)),
+ Ok(Some(relay_finality_confirmation_pre_dispatch_data_ex())),
+ );
assert_eq!(
run_grandpa_validate(relay_finality_and_delivery_batch_call(200, 200)),
Ok(Default::default()),
);
+ assert_eq!(
+ run_grandpa_validate(relay_finality_and_delivery_batch_call_ex(200, 200)),
+ Ok(Default::default()),
+ );
assert_eq!(
run_grandpa_validate(relay_finality_and_confirmation_batch_call(200, 200)),
Ok(Default::default()),
);
+ assert_eq!(
+ run_grandpa_validate(relay_finality_and_confirmation_batch_call_ex(200, 200)),
+ Ok(Default::default()),
+ );
assert_eq!(
run_grandpa_pre_dispatch(message_delivery_call(200)),
diff --git a/bridges/primitives/chain-asset-hub-rococo/Cargo.toml b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
similarity index 69%
rename from bridges/primitives/chain-asset-hub-rococo/Cargo.toml
rename to bridges/chains/chain-asset-hub-rococo/Cargo.toml
index 4dfa149e0ea9ab4e0ac1804844a0c128f15bd5bb..9a6419a5b4055be348f4f8813e3c1301f14f7142 100644
--- a/bridges/primitives/chain-asset-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
@@ -5,19 +5,20 @@ version = "0.4.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
-scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false }
+scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
# Substrate Dependencies
frame-support = { path = "../../../substrate/frame/support", default-features = false }
# Bridge Dependencies
-bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
+bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
[features]
default = ["std"]
diff --git a/bridges/primitives/chain-asset-hub-rococo/src/lib.rs b/bridges/chains/chain-asset-hub-rococo/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-asset-hub-rococo/src/lib.rs
rename to bridges/chains/chain-asset-hub-rococo/src/lib.rs
diff --git a/bridges/primitives/chain-asset-hub-westend/Cargo.toml b/bridges/chains/chain-asset-hub-westend/Cargo.toml
similarity index 69%
rename from bridges/primitives/chain-asset-hub-westend/Cargo.toml
rename to bridges/chains/chain-asset-hub-westend/Cargo.toml
index c9bd437562b86a97cdf2807c18b4905e695d1a5e..1c08ee28e417cb50ce9ef9ded5f17163e1bb30d4 100644
--- a/bridges/primitives/chain-asset-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-westend/Cargo.toml
@@ -5,19 +5,20 @@ version = "0.3.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
-scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false }
+scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
# Substrate Dependencies
frame-support = { path = "../../../substrate/frame/support", default-features = false }
# Bridge Dependencies
-bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
+bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
[features]
default = ["std"]
diff --git a/bridges/primitives/chain-asset-hub-westend/src/lib.rs b/bridges/chains/chain-asset-hub-westend/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-asset-hub-westend/src/lib.rs
rename to bridges/chains/chain-asset-hub-westend/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
similarity index 78%
rename from bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml
rename to bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
index d35eefa1c45c3f7cf479dcea2ee4da87dbc31627..4b900002a4d81abb9d7364f555a150a2af6c839c 100644
--- a/bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.7.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -12,9 +13,9 @@ workspace = true
[dependencies]
# Bridge Dependencies
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs b/bridges/chains/chain-bridge-hub-cumulus/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
rename to bridges/chains/chain-bridge-hub-cumulus/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-kusama/Cargo.toml b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
similarity index 83%
rename from bridges/primitives/chain-bridge-hub-kusama/Cargo.toml
rename to bridges/chains/chain-bridge-hub-kusama/Cargo.toml
index 8d71b3f5eb7646a81af55c0030814c604ead82ef..ff6dd8849abe3897f1c3eb3cb1de8b7d89af5ca7 100644
--- a/bridges/primitives/chain-bridge-hub-kusama/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.6.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -13,8 +14,8 @@ workspace = true
# Bridge Dependencies
bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-bridge-hub-kusama/src/lib.rs b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-kusama/src/lib.rs
rename to bridges/chains/chain-bridge-hub-kusama/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
similarity index 83%
rename from bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml
rename to bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
index 4e89e8a5c9a173bc9a084af9e7c609a6bae287a8..da8b8a82fa702eeab719335fa9968b78ee965163 100644
--- a/bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.6.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -14,8 +15,8 @@ workspace = true
# Bridge Dependencies
bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-bridge-hub-polkadot/src/lib.rs b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-polkadot/src/lib.rs
rename to bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-rococo/Cargo.toml b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
similarity index 83%
rename from bridges/primitives/chain-bridge-hub-rococo/Cargo.toml
rename to bridges/chains/chain-bridge-hub-rococo/Cargo.toml
index 1643d934a982ec0795fc370b221dc35d36d3b492..f7672df012f2fc2a21cfc987468427a3222317ea 100644
--- a/bridges/primitives/chain-bridge-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.7.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -13,8 +14,8 @@ workspace = true
# Bridge Dependencies
bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
similarity index 99%
rename from bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
rename to bridges/chains/chain-bridge-hub-rococo/src/lib.rs
index c4e697fbe9526b85c7f10cf739c6893d50190fe9..abce872d7ba35cf24b013aa26b4b1f1d796b5785 100644
--- a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
+++ b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
@@ -107,5 +107,5 @@ frame_support::parameter_types! {
/// Transaction fee that is paid at the Rococo BridgeHub for delivering single outbound message confirmation.
/// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`)
- pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_829_647;
+ pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_901_781;
}
diff --git a/bridges/primitives/chain-bridge-hub-westend/Cargo.toml b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
similarity index 83%
rename from bridges/primitives/chain-bridge-hub-westend/Cargo.toml
rename to bridges/chains/chain-bridge-hub-westend/Cargo.toml
index 32a7850c5392fd892ec40e9968fa365ec59cbba3..ec74c4b947d693dba92d4da5051526e49349e0a5 100644
--- a/bridges/primitives/chain-bridge-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.3.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -14,8 +15,8 @@ workspace = true
# Bridge Dependencies
bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-bridge-hub-westend/src/lib.rs b/bridges/chains/chain-bridge-hub-westend/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-westend/src/lib.rs
rename to bridges/chains/chain-bridge-hub-westend/src/lib.rs
diff --git a/bridges/primitives/chain-kusama/Cargo.toml b/bridges/chains/chain-kusama/Cargo.toml
similarity index 71%
rename from bridges/primitives/chain-kusama/Cargo.toml
rename to bridges/chains/chain-kusama/Cargo.toml
index 0660f34602389d1cf9e1ec88b57d1a9aeb9a3830..66061ff2793cbdd3419fa8894ab78e37486102ea 100644
--- a/bridges/primitives/chain-kusama/Cargo.toml
+++ b/bridges/chains/chain-kusama/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.5.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -13,9 +14,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-kusama/src/lib.rs b/bridges/chains/chain-kusama/src/lib.rs
similarity index 95%
rename from bridges/primitives/chain-kusama/src/lib.rs
rename to bridges/chains/chain-kusama/src/lib.rs
index e3b4d0520f61c858b54d78dfa4a45f57bac411fb..a81004afe8127b556211d0207d2bc1f9ecc02955 100644
--- a/bridges/primitives/chain-kusama/src/lib.rs
+++ b/bridges/chains/chain-kusama/src/lib.rs
@@ -53,8 +53,8 @@ impl Chain for Kusama {
impl ChainWithGrandpa for Kusama {
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_KUSAMA_GRANDPA_PALLET_NAME;
const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT;
- const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 =
- REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY;
+ const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 =
+ REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY;
const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE;
const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
}
diff --git a/bridges/primitives/chain-polkadot-bulletin/Cargo.toml b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
similarity index 68%
rename from bridges/primitives/chain-polkadot-bulletin/Cargo.toml
rename to bridges/chains/chain-polkadot-bulletin/Cargo.toml
index 15c824fcbdb31c2c84f63bd56d4d0b3f90efc5b1..2db16a00e92492e3a167458343a88a24c2186748 100644
--- a/bridges/primitives/chain-polkadot-bulletin/Cargo.toml
+++ b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
@@ -5,20 +5,21 @@ version = "0.4.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] }
-scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] }
+scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs b/bridges/chains/chain-polkadot-bulletin/src/lib.rs
similarity index 96%
rename from bridges/primitives/chain-polkadot-bulletin/src/lib.rs
rename to bridges/chains/chain-polkadot-bulletin/src/lib.rs
index f2eebf9312470a42e1d3a1c7d67ab8b7a38af189..f3d300567f2b4f92cec272e0929a3c53d718c823 100644
--- a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs
+++ b/bridges/chains/chain-polkadot-bulletin/src/lib.rs
@@ -43,7 +43,7 @@ use sp_runtime::{traits::DispatchInfoOf, transaction_validity::TransactionValidi
pub use bp_polkadot_core::{
AccountAddress, AccountId, Balance, Block, BlockNumber, Hash, Hasher, Header, Nonce, Signature,
SignedBlock, UncheckedExtrinsic, AVERAGE_HEADER_SIZE, EXTRA_STORAGE_PROOF_SIZE,
- MAX_MANDATORY_HEADER_SIZE, REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY,
+ MAX_MANDATORY_HEADER_SIZE, REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY,
};
/// Maximal number of GRANDPA authorities at Polkadot Bulletin chain.
@@ -62,7 +62,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90);
// Re following constants - we are using the same values at Cumulus parachains. They are limited
// by the maximal transaction weight/size. Since block limits at Bulletin Chain are larger than
-// at the Cumulus Bridgeg Hubs, we could reuse the same values.
+// at the Cumulus Bridge Hubs, we could reuse the same values.
/// Maximal number of unrewarded relayer entries at inbound lane for Cumulus-based parachains.
pub const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 1024;
@@ -207,8 +207,8 @@ impl Chain for PolkadotBulletin {
impl ChainWithGrandpa for PolkadotBulletin {
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_POLKADOT_BULLETIN_GRANDPA_PALLET_NAME;
const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT;
- const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 =
- REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY;
+ const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 =
+ REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY;
const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE;
const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
}
diff --git a/bridges/primitives/chain-polkadot/Cargo.toml b/bridges/chains/chain-polkadot/Cargo.toml
similarity index 71%
rename from bridges/primitives/chain-polkadot/Cargo.toml
rename to bridges/chains/chain-polkadot/Cargo.toml
index 6421b7f40106e404eeba04be72f5448fd5f65159..c700935f3083b5f287277c7d9975be53352b2506 100644
--- a/bridges/primitives/chain-polkadot/Cargo.toml
+++ b/bridges/chains/chain-polkadot/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.5.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -13,9 +14,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-polkadot/src/lib.rs b/bridges/chains/chain-polkadot/src/lib.rs
similarity index 95%
rename from bridges/primitives/chain-polkadot/src/lib.rs
rename to bridges/chains/chain-polkadot/src/lib.rs
index fc5e10308a8e33463a74c041f157daaef09cc9c8..00d35783a9b61844bab7701fdb60711125447ca3 100644
--- a/bridges/primitives/chain-polkadot/src/lib.rs
+++ b/bridges/chains/chain-polkadot/src/lib.rs
@@ -55,8 +55,8 @@ impl Chain for Polkadot {
impl ChainWithGrandpa for Polkadot {
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_POLKADOT_GRANDPA_PALLET_NAME;
const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT;
- const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 =
- REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY;
+ const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 =
+ REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY;
const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE;
const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
}
diff --git a/bridges/primitives/chain-rococo/Cargo.toml b/bridges/chains/chain-rococo/Cargo.toml
similarity index 71%
rename from bridges/primitives/chain-rococo/Cargo.toml
rename to bridges/chains/chain-rococo/Cargo.toml
index de373f0ae64b8d9a8124dbcdfcca3c2bf05e2787..5a5613bb376a5a4f75c773b3350993262149f973 100644
--- a/bridges/primitives/chain-rococo/Cargo.toml
+++ b/bridges/chains/chain-rococo/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.6.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -13,9 +14,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-rococo/src/lib.rs b/bridges/chains/chain-rococo/src/lib.rs
similarity index 95%
rename from bridges/primitives/chain-rococo/src/lib.rs
rename to bridges/chains/chain-rococo/src/lib.rs
index f1b256f0f090f048cc8db3a16c112ed8b938f6ce..2385dd2cbb250181ce5f46aef9f1e76f8fd010d2 100644
--- a/bridges/primitives/chain-rococo/src/lib.rs
+++ b/bridges/chains/chain-rococo/src/lib.rs
@@ -53,8 +53,8 @@ impl Chain for Rococo {
impl ChainWithGrandpa for Rococo {
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_ROCOCO_GRANDPA_PALLET_NAME;
const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT;
- const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 =
- REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY;
+ const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 =
+ REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY;
const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE;
const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
}
diff --git a/bridges/primitives/chain-westend/Cargo.toml b/bridges/chains/chain-westend/Cargo.toml
similarity index 71%
rename from bridges/primitives/chain-westend/Cargo.toml
rename to bridges/chains/chain-westend/Cargo.toml
index e55a8d649a88b88d84f4f3547c23709cef67d872..10b06d76507ef95bbff00f5560b705ecee1ec4ce 100644
--- a/bridges/primitives/chain-westend/Cargo.toml
+++ b/bridges/chains/chain-westend/Cargo.toml
@@ -5,6 +5,7 @@ version = "0.3.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
[lints]
workspace = true
@@ -13,9 +14,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-westend/src/lib.rs b/bridges/chains/chain-westend/src/lib.rs
similarity index 95%
rename from bridges/primitives/chain-westend/src/lib.rs
rename to bridges/chains/chain-westend/src/lib.rs
index f03fd2160a700eb3817a6feb629e9d366cc366aa..b344b7f4bf93392c08502446513a9ae39296b512 100644
--- a/bridges/primitives/chain-westend/src/lib.rs
+++ b/bridges/chains/chain-westend/src/lib.rs
@@ -53,8 +53,8 @@ impl Chain for Westend {
impl ChainWithGrandpa for Westend {
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_WESTEND_GRANDPA_PALLET_NAME;
const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT;
- const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 =
- REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY;
+ const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 =
+ REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY;
const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE;
const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
}
diff --git a/bridges/docs/bridge-relayers-claim-rewards.png b/bridges/docs/bridge-relayers-claim-rewards.png
new file mode 100644
index 0000000000000000000000000000000000000000..d56b8dd871e8445e7cab49517123b0092ce09137
Binary files /dev/null and b/bridges/docs/bridge-relayers-claim-rewards.png differ
diff --git a/bridges/docs/bridge-relayers-deregister.png b/bridges/docs/bridge-relayers-deregister.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7706cee78916d7e2bbcfd7ee4a1a046a0450f87
Binary files /dev/null and b/bridges/docs/bridge-relayers-deregister.png differ
diff --git a/bridges/docs/bridge-relayers-register.png b/bridges/docs/bridge-relayers-register.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9e3e1b5ac87c5c9d31477c696912fcbc93b0c78
Binary files /dev/null and b/bridges/docs/bridge-relayers-register.png differ
diff --git a/bridges/docs/running-relayer.md b/bridges/docs/running-relayer.md
new file mode 100644
index 0000000000000000000000000000000000000000..710810a476e4df5e4b80fde31f9576be5ad26391
--- /dev/null
+++ b/bridges/docs/running-relayer.md
@@ -0,0 +1,343 @@
+# Running your own bridge relayer
+
+:warning: :construction: Please read the [Disclaimer](#disclaimer) section first :construction: :warning:
+
+## Disclaimer
+
+There are several things you should know before running your own relayer:
+
+- initial bridge version (we call it bridges v1) supports any number of relayers, but **there's no guaranteed
+compensation** for running a relayer and/or submitting valid bridge transactions. Most probably you'll end up
+spending more funds than getting from rewards - please accept this fact;
+
+- even if your relayer has managed to submit a valid bridge transaction that has been included into the bridge
+hub block, there's no guarantee that you will be able to claim your compensation for that transaction. That's
+because compensations are paid from the account, controlled by relay chain governance and it could have no funds
+to compensate your useful actions. We'll be working on a proper process to resupply it on-time, but we can't
+provide any guarantee until that process is well established.
+
+## A Brief Introduction into Relayers and our Compensations Scheme
+
+Omitting details, relayer is an offchain process that is connected to both bridged chains. It looks at the
+outbound bridge messages queue and submits message delivery transactions to the target chain. There's a lot
+of details behind that simple phrase - you could find more info in the
+[High-Level Bridge Overview](./high-level-overview.md) document.
+
+Reward that is paid to relayer has two parts. The first part static and is controlled by the governance.
+It is rather small initially - e.g. you need to deliver `10_000` Kusama -> Polkadot messages to gain single
+KSM token.
+
+The other reward part is dynamic. So to deliver an XCM message from one BridgeHub to another, we'll need to
+submit two transactions on different chains. Every transaction has its cost, which is:
+
+- dynamic, because e.g. message size can change and/or fee factor of the target chain may change;
+
+- quite large, because those transactions are quite heavy (mostly in terms of size, not weight).
+
+We are compensating the cost of **valid**, **minimal** and **useful** bridge-related transactions to
+relayer, that has submitted such transaction. Valid here means that the transaction doesn't fail. Minimal
+means that all data within transaction call is actually required for the transaction to succeed. Useful
+means that all supplied data in transaction is new and yet unknown to the target chain.
+
+We have implemented a relayer that is able to craft such transactions. The rest of document contains a detailed
+information on how to deploy this software on your own node.
+
+## Relayers Concurrency
+
+As it has been said above, we are not compensating cost of transactions that are not **useful**. For
+example, if message `100` has already been delivered from Kusama Bridge Hub to Polkadot Bridge Hub, then another
+transaction that delivers the same message `100` won't be **useful**. Hence, no compensation to relayer that
+has submitted that second transaction.
+
+But what if there are several relayers running? They are noticing the same queued message `100` and
+simultaneously submit identical message delivery transactions. You may expect that there'll be one lucky
+relayer, whose transaction would win the "race" and which will receive the compensation and reward. And
+there'll be several other relayers, losing some funds on their unuseful transactions.
+
+But actually, we have a solution that invalidates transactions of "unlucky" relayers before they are
+included into the block. So at least you may be sure that you won't waste your funds on duplicate transactions.
+
+
+Some details?
+
+All **unuseful** transactions are rejected by our
+[transaction extension](https://github.com/paritytech/polkadot-sdk/blob/master/bridges/bin/runtime-common/src/refund_relayer_extension.rs),
+which also handles transaction fee compensations. You may find more info on unuseful (aka obsolete) transactions
+by lurking in the code.
+
+We also have the WiP prototype of relayers coordination protocol, where relayers will get some guarantee
+that their transactions will be prioritized over other relayers transactions at their assigned slots.
+That is planned for the future version of bridge and the progress is
+[tracked here](https://github.com/paritytech/parity-bridges-common/issues/2486).
+
+
+
+## Prerequisites
+
+Let's focus on the bridge between Polkadot and Kusama Bridge Hubs. Let's also assume that we want to start
+a relayer that "serves" an initial lane [`0x00000001`](https://github.com/polkadot-fellows/runtimes/blob/9ce1bbbbcd7843b3c76ba4d43c036bc311959e9f/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs#L54).
+
+
+Lane?
+
+Think of lane as a queue of messages that need to be delivered to the other/bridged chain. The lane is
+bidirectional, meaning that there are four "endpoints". Two "outbound" endpoints (one at every chain), contain
+messages that need to be delivered to the bridged chain. Two "inbound" are accepting messages from the bridged
+chain and also remember the relayer, who has delivered message(s) to reward it later.
+
+
+
+The same steps may be performed for other lanes and bridges as well - you'll just need to change several parameters.
+
+So to start your relayer instance, you'll need to prepare:
+
+- an address of ws/wss RPC endpoint of the Kusama relay chain;
+
+- an address of ws/wss RPC endpoint of the Polkadot relay chain;
+
+- an address of ws/wss RPC endpoint of the Kusama Bridge Hub chain;
+
+- an address of ws/wss RPC endpoint of the Polkadot Bridge Hub chain;
+
+- an account on Kusama Bridge Hub;
+
+- an account on Polkadot Bridge Hub.
+
+For RPC endpoints, you could start your own nodes, or use some public community nodes. Nodes are not meant to be
+archive or provide access to insecure RPC calls.
+
+To create an account on Bridge Hubs, you could use XCM teleport functionality. E.g. if you have an account on
+the relay chain, you could use the `teleportAssets` call of `xcmPallet` and send asset
+`V3 { id: Concrete(0, Here), Fungible: }` to beneficiary `V3(0, X1(AccountId32()))`
+on destination `V3(0, X1(Parachain(1002)))`. To estimate amounts you need, please refer to the [Costs](#costs)
+section of the document.
+
+## Registering your Relayer Account (Optional, But Please Read)
+
+Bridge transactions are quite heavy and expensive. We want to minimize block space that can be occupied by
+invalid bridge transactions and prioritize valid transactions over invalid. That is achieved by **optional**
+relayer registration. Transactions, signed by relayers with active registration, gain huge priority boost.
+In exchange, such relayers may be slashed if they submit **invalid** or **non-minimal** transaction.
+
+Transactions, signed by relayers **without** active registration, on the other hand, receive no priority
+boost. It means that if there is active registered relayer, most likely all transactions from unregistered
+will be counted as **unuseful**, not included into the block and unregistered relayer won't get any reward
+for his operations.
+
+Before registering, you should know several things about your funds:
+
+- to register, you need to hold significant amount of funds on your relayer account. As of now, it is
+ [100 KSM](https://github.com/polkadot-fellows/runtimes/blob/9ce1bbbbcd7843b3c76ba4d43c036bc311959e9f/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs#L71C14-L71C43)
+ for registration on Kusama Bridge Hub and
+ [500 DOT](https://github.com/polkadot-fellows/runtimes/blob/9ce1bbbbcd7843b3c76ba4d43c036bc311959e9f/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_kusama_config.rs#L71C14-L71C43)
+ for registration on Polkadot Bridge Hub;
+
+- when you are registered, those funds are reserved on relayer account and you can't transfer them.
+
+The registration itself, has three states: active, inactive or expired. Initially, it is active, meaning that all
+your transactions that are **validated** on top of block, where it is active get priority boost. Registration
+becomes expired when the block with the number you have specified during registration is "mined". It is the
+`validTill` parameter of the `register` call (see below). After that `validTill` block, you may unregister and get
+your reserved funds back. There's also an intermediate point between those blocks - it is the `validTill - LEASE`,
+where `LEASE` is the the chain constant, controlled by the governance. Initially it is set to `300` blocks.
+All your transactions, **validated** between the `validTill - LEASE` and `validTill` blocks do not get the
+priority boost. Also, it is forbidden to specify `validTill` such that the `validTill - currentBlock` is less
+than the `LEASE`.
+
+
+Example?
+
+| Bridge Hub Block | Registration State | Comment |
+| ----------------- | ------------------ | ------------------------------------------------------ |
+| 100 | Active | You have submitted a tx with the `register(1000)` call |
+| 101 | Active | Your message delivery transactions are boosted |
+| 102 | Active | Your message delivery transactions are boosted |
+| ... | Active | Your message delivery transactions are boosted |
+| 700 | Inactive | Your message delivery transactions are not boosted |
+| 701 | Inactive | Your message delivery transactions are not boosted |
+| ... | Inactive | Your message delivery transactions are not boosted |
+| 1000 | Expired | Your may submit a tx with the `deregister` call |
+
+
+
+So once you have enough funds on your account and have selected the `validTill` parameter value, you
+could use the Polkadot JS apps to submit an extrinsic. If you want priority boost for your transactions
+on the Kusama Bridge Hub, open the
+[Polkadot JS Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-bridge-hub-rpc.polkadot.io#/extrinsics)
+and submit the `register` extrinsic from the `bridgeRelayers` pallet:
+
+![Register Extrinsic](./bridge-relayers-register.png)
+
+To deregister, submit the simple `deregister` extrinsic when registration is expired:
+
+![Deregister Extrinsic](./bridge-relayers-deregister.png)
+
+At any time, you can prolong your registration by calling the `register` with the larger `validTill`.
+
+## Costs
+
+Your relayer account (on both Bridge Hubs) must hold enough funds to be able to pay costs of bridge
+transactions. If your relayer behaves correctly, those costs will be compensated and you will be
+able to claim it later.
+
+**IMPORTANT**: you may add tip to your bridge transactions to boost their priority. But our
+compensation mechanism never refunds transaction tip, so all tip tokens will be lost.
+
+
+Types of bridge transactions
+
+There are two types of bridge transactions:
+
+- message delivery transaction brings queued message(s) from one Bridge Hub to another. We record
+ the fact that this specific (your) relayer has delivered those messages;
+
+- message confirmation transaction confirms that some message have been delivered and also brings
+ back information on how many messages (your) relayer has delivered. We use this information later
+ to register delivery rewards on the source chain.
+
+Several messages/confirmations may be included in a single bridge transaction. Apart from this
+data, bridge transaction may include finality and storage proofs, required to prove authenticity of
+this data.
+
+
+
+To deliver and get reward for a single message, the relayer needs to submit two transactions. One
+at the source Bridge Hub and one at the target Bridge Hub. Below are costs for Polkadot <> Kusama
+messages (as of today):
+
+- to deliver a single Polkadot -> Kusama message, you would need to pay around `0.06 KSM` at Kusama
+ Bridge Hub and around `1.62 DOT` at Polkadot Bridge Hub;
+
+- to deliver a single Kusama -> Polkadot message, you would need to pay around `1.70 DOT` at Polkadot
+ Bridge Hub and around `0.05 KSM` at Kusama Bridge Hub.
+
+Those values are not constants - they depend on call weights (that may change from release to release),
+on transaction sizes (that depends on message size and chain state) and congestion factor. In any
+case - it is your duty to make sure that the relayer has enough funds to pay transaction fees.
+
+## Claiming your Compensations and Rewards
+
+Hopefully you have successfully delivered some messages and now can claim your compensation and reward.
+This requires submitting several transactions. But first, let's check that you actually have something to
+claim. For that, let's check the state of the pallet that tracks all rewards.
+
+To check your rewards at the Kusama Bridge Hub, go to the
+[Polkadot JS Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-bridge-hub-rpc.polkadot.io#/chainstate)
+targeting Kusama Bridge Hub, select the `bridgeRelayers` pallet, choose `relayerRewards` map and
+your relayer account. Then:
+
+- set the `laneId` to `0x00000001`
+
+- set the `bridgedChainId` to `bhpd`;
+
+- check the both variants of the `owner` field: `ThisChain` is used to pay for message delivery transactions
+ and `BridgedChain` is used to pay for message confirmation transactions.
+
+If check shows that you have some rewards, you can craft the claim transaction, with similar parameters.
+For that, go to `Extrinsics` tab of the
+[Polkadot JS Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-bridge-hub-rpc.polkadot.io#/extrinsics)
+and submit the following transaction (make sure to change `owner` before):
+
+![Claim Rewards Extrinsic](./bridge-relayers-claim-rewards.png)
+
+To claim rewards on Polkadot Bridge Hub you can follow the same process. The only difference is that you
+need to set value of the `bridgedChainId` to `bhks`.
+
+## Starting your Relayer
+
+### Starting your Rococo <> Westend Relayer
+
+You may find the relayer image reference in the
+[Releases](https://github.com/paritytech/parity-bridges-common/releases)
+of this repository. Make sure to check supported (bundled) versions
+of release there. For Rococo <> Westend bridge, normally you may use the
+latest published release. The release notes always contain the docker
+image reference and source files, required to build relayer manually.
+
+Once you have the docker image, update variables and run the following script:
+```sh
+export DOCKER_IMAGE=
+
+export ROCOCO_HOST=
+export ROCOCO_PORT=
+# or set it to '--rococo-secure' if wss is used above
+export ROCOCO_IS_SECURE=
+export BRIDGE_HUB_ROCOCO_HOST=
+export BRIDGE_HUB_ROCOCO_PORT=
+# or set it to '--bridge-hub-rococo-secure' if wss is used above
+export BRIDGE_HUB_ROCOCO_IS_SECURE=
+export BRIDGE_HUB_ROCOCO_KEY_FILE=
+
+export WESTEND_HOST=
+export WESTEND_PORT=
+# or set it to '--westend-secure' if wss is used above
+export WESTEND_IS_SECURE=
+export BRIDGE_HUB_WESTEND_HOST=
+export BRIDGE_HUB_WESTEND_PORT=
+# or set it to '--bridge-hub-westend-secure ' if wss is used above
+export BRIDGE_HUB_WESTEND_IS_SECURE=
+export BRIDGE_HUB_WESTEND_KEY_FILE=
+
+# you can get extended relay logs (e.g. for debugging issues) by passing `-e RUST_LOG=bridge=trace`
+# argument to the `docker` binary
+docker run \
+ -v $BRIDGE_HUB_ROCOCO_KEY_FILE:/bhr.key \
+ -v $BRIDGE_HUB_WESTEND_KEY_FILE:/bhw.key \
+ $DOCKER_IMAGE \
+ relay-headers-and-messages bridge-hub-rococo-bridge-hub-westend \
+ --rococo-host $ROCOCO_HOST \
+ --rococo-port $ROCOCO_PORT \
+ $ROCOCO_IS_SECURE \
+ --rococo-version-mode Auto \
+ --bridge-hub-rococo-host $BRIDGE_HUB_ROCOCO_HOST \
+ --bridge-hub-rococo-port $BRIDGE_HUB_ROCOCO_PORT \
+ $BRIDGE_HUB_ROCOCO_IS_SECURE \
+ --bridge-hub-rococo-version-mode Auto \
+ --bridge-hub-rococo-signer-file /bhr.key \
+ --bridge-hub-rococo-transactions-mortality 16 \
+ --westend-host $WESTEND_HOST \
+ --westend-port $WESTEND_PORT \
+ $WESTEND_IS_SECURE \
+ --westend-version-mode Auto \
+ --bridge-hub-westend-host $BRIDGE_HUB_WESTEND_HOST \
+ --bridge-hub-westend-port $BRIDGE_HUB_WESTEND_PORT \
+ $BRIDGE_HUB_WESTEND_IS_SECURE \
+ --bridge-hub-westend-version-mode Auto \
+ --bridge-hub-westend-signer-file /bhw.key \
+ --bridge-hub-westend-transactions-mortality 16 \
+ --lane 00000002
+```
+
+### Starting your Polkadot <> Kusama Relayer
+
+*Work in progress, coming soon*
+
+### Watching your relayer state
+
+Our relayer provides some Prometheus metrics that you may convert into some fancy Grafana dashboards
+and alerts. By default, metrics are exposed at port `9616`. To expose endpoint to the localhost, change
+the docker command by adding following two lines:
+
+```sh
+docker run \
+ ..
+ -p 127.0.0.1:9616:9616 \ # tell Docker to bind container port 9616 to host port 9616
+ # and listen for connections on the host' localhost interface
+ ..
+ $DOCKER_IMAGE \
+ relay-headers-and-messages bridge-hub-rococo-bridge-hub-westend \
+ --prometheus-host 0.0.0.0 \ # tell `substrate-relay` binary to accept Prometheus endpoint
+ # connections from everywhere
+ ..
+```
+
+You can find more info on configuring Prometheus and Grafana in the
+[Monitor your node](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node)
+guide from Polkadot wiki.
+
+We have our own set of Grafana dashboards and alerts. You may use them for inspiration.
+Please find them in this folder:
+
+- for Rococo <> Westend bridge: [rococo-westend](https://github.com/paritytech/parity-bridges-common/tree/master/deployments/bridges/rococo-westend).
+
+- for Polkadot <> Kusama bridge: *work in progress, coming soon*
diff --git a/bridges/modules/beefy/Cargo.toml b/bridges/modules/beefy/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..438f32fb146042f2704deb3092381a2b5cc68394
--- /dev/null
+++ b/bridges/modules/beefy/Cargo.toml
@@ -0,0 +1,63 @@
+[package]
+name = "pallet-bridge-beefy"
+version = "0.1.0"
+description = "Module implementing BEEFY on-chain light client used for bridging consensus of substrate-based chains."
+authors.workspace = true
+edition.workspace = true
+license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
+repository.workspace = true
+publish = false
+
+[lints]
+workspace = true
+
+[dependencies]
+codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false }
+log = { workspace = true }
+scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+serde = { optional = true, workspace = true }
+
+# Bridge Dependencies
+
+bp-beefy = { path = "../../primitives/beefy", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
+
+# Substrate Dependencies
+
+frame-support = { path = "../../../substrate/frame/support", default-features = false }
+frame-system = { path = "../../../substrate/frame/system", default-features = false }
+sp-core = { path = "../../../substrate/primitives/core", default-features = false }
+sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
+sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+
+[dev-dependencies]
+sp-consensus-beefy = { path = "../../../substrate/primitives/consensus/beefy" }
+mmr-lib = { package = "ckb-merkle-mountain-range", version = "0.5.2" }
+pallet-beefy-mmr = { path = "../../../substrate/frame/beefy-mmr" }
+pallet-mmr = { path = "../../../substrate/frame/merkle-mountain-range" }
+rand = "0.8.5"
+sp-io = { path = "../../../substrate/primitives/io" }
+bp-test-utils = { path = "../../primitives/test-utils" }
+
+[features]
+default = ["std"]
+std = [
+ "bp-beefy/std",
+ "bp-runtime/std",
+ "codec/std",
+ "frame-support/std",
+ "frame-system/std",
+ "log/std",
+ "scale-info/std",
+ "serde/std",
+ "sp-core/std",
+ "sp-runtime/std",
+ "sp-std/std",
+]
+try-runtime = [
+ "frame-support/try-runtime",
+ "frame-system/try-runtime",
+ "pallet-beefy-mmr/try-runtime",
+ "pallet-mmr/try-runtime",
+ "sp-runtime/try-runtime",
+]
diff --git a/bridges/modules/beefy/src/lib.rs b/bridges/modules/beefy/src/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..27c83921021bb4299b18cbf2d3216427f8c89ccc
--- /dev/null
+++ b/bridges/modules/beefy/src/lib.rs
@@ -0,0 +1,651 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Parity Bridges Common.
+
+// Parity Bridges Common is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Parity Bridges Common is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Parity Bridges Common. If not, see .
+
+//! BEEFY bridge pallet.
+//!
+//! This pallet is an on-chain BEEFY light client for Substrate-based chains that are using the
+//! following pallets bundle: `pallet-mmr`, `pallet-beefy` and `pallet-beefy-mmr`.
+//!
+//! The pallet is able to verify MMR leaf proofs and BEEFY commitments, so it has access
+//! to the following data of the bridged chain:
+//!
+//! - header hashes
+//! - changes of BEEFY authorities
+//! - extra data of MMR leafs
+//!
+//! Given the header hash, other pallets are able to verify header-based proofs
+//! (e.g. storage proofs, transaction inclusion proofs, etc.).
+
+#![warn(missing_docs)]
+#![cfg_attr(not(feature = "std"), no_std)]
+
+use bp_beefy::{ChainWithBeefy, InitializationData};
+use sp_std::{boxed::Box, prelude::*};
+
+// Re-export in crate namespace for `construct_runtime!`
+pub use pallet::*;
+
+mod utils;
+
+#[cfg(test)]
+mod mock;
+#[cfg(test)]
+mod mock_chain;
+
+/// The target that will be used when publishing logs related to this pallet.
+pub const LOG_TARGET: &str = "runtime::bridge-beefy";
+
+/// Configured bridged chain.
+pub type BridgedChain = >::BridgedChain;
+/// Block number, used by configured bridged chain.
+pub type BridgedBlockNumber = bp_runtime::BlockNumberOf>;
+/// Block hash, used by configured bridged chain.
+pub type BridgedBlockHash = bp_runtime::HashOf>;
+
+/// Pallet initialization data.
+pub type InitializationDataOf =
+ InitializationData, bp_beefy::MmrHashOf>>;
+/// BEEFY commitment hasher, used by configured bridged chain.
+pub type BridgedBeefyCommitmentHasher = bp_beefy::BeefyCommitmentHasher>;
+/// BEEFY validator id, used by configured bridged chain.
+pub type BridgedBeefyAuthorityId = bp_beefy::BeefyAuthorityIdOf>;
+/// BEEFY validator set, used by configured bridged chain.
+pub type BridgedBeefyAuthoritySet = bp_beefy::BeefyAuthoritySetOf>;
+/// BEEFY authority set, used by configured bridged chain.
+pub type BridgedBeefyAuthoritySetInfo = bp_beefy::BeefyAuthoritySetInfoOf>;
+/// BEEFY signed commitment, used by configured bridged chain.
+pub type BridgedBeefySignedCommitment = bp_beefy::BeefySignedCommitmentOf>;
+/// MMR hashing algorithm, used by configured bridged chain.
+pub type BridgedMmrHashing = bp_beefy::MmrHashingOf>;
+/// MMR hashing output type of `BridgedMmrHashing`.
+pub type BridgedMmrHash = bp_beefy::MmrHashOf>;
+/// The type of the MMR leaf extra data used by the configured bridged chain.
+pub type BridgedBeefyMmrLeafExtra = bp_beefy::BeefyMmrLeafExtraOf>;
+/// BEEFY MMR proof type used by the pallet
+pub type BridgedMmrProof = bp_beefy::MmrProofOf>;
+/// MMR leaf type, used by configured bridged chain.
+pub type BridgedBeefyMmrLeaf = bp_beefy::BeefyMmrLeafOf>;
+/// Imported commitment data, stored by the pallet.
+pub type ImportedCommitment = bp_beefy::ImportedCommitment<
+ BridgedBlockNumber,
+ BridgedBlockHash,
+ BridgedMmrHash,
+>;
+
+/// Some high level info about the imported commitments.
+#[derive(codec::Encode, codec::Decode, scale_info::TypeInfo)]
+pub struct ImportedCommitmentsInfoData {
+ /// Best known block number, provided in a BEEFY commitment. However this is not
+ /// the best proven block. The best proven block is this block's parent.
+ best_block_number: BlockNumber,
+ /// The head of the `ImportedBlockNumbers` ring buffer.
+ next_block_number_index: u32,
+}
+
+#[frame_support::pallet(dev_mode)]
+pub mod pallet {
+ use super::*;
+ use bp_runtime::{BasicOperatingMode, OwnedBridgeModule};
+ use frame_support::pallet_prelude::*;
+ use frame_system::pallet_prelude::*;
+
+ #[pallet::config]
+ pub trait Config: frame_system::Config {
+ /// The upper bound on the number of requests allowed by the pallet.
+ ///
+ /// A request refers to an action which writes a header to storage.
+ ///
+ /// Once this bound is reached the pallet will reject all commitments
+ /// until the request count has decreased.
+ #[pallet::constant]
+ type MaxRequests: Get;
+
+ /// Maximal number of imported commitments to keep in the storage.
+ ///
+ /// The setting is there to prevent growing the on-chain state indefinitely. Note
+ /// the setting does not relate to block numbers - we will simply keep as much items
+ /// in the storage, so it doesn't guarantee any fixed timeframe for imported commitments.
+ #[pallet::constant]
+ type CommitmentsToKeep: Get;
+
+ /// The chain we are bridging to here.
+ type BridgedChain: ChainWithBeefy;
+ }
+
+ #[pallet::pallet]
+ #[pallet::without_storage_info]
+ pub struct Pallet(PhantomData<(T, I)>);
+
+ #[pallet::hooks]
+ impl, I: 'static> Hooks> for Pallet {
+ fn on_initialize(_n: BlockNumberFor) -> frame_support::weights::Weight {
+ >::mutate(|count| *count = count.saturating_sub(1));
+
+ Weight::from_parts(0, 0)
+ .saturating_add(T::DbWeight::get().reads(1))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ }
+
+ impl, I: 'static> OwnedBridgeModule for Pallet {
+ const LOG_TARGET: &'static str = LOG_TARGET;
+ type OwnerStorage = PalletOwner;
+ type OperatingMode = BasicOperatingMode;
+ type OperatingModeStorage = PalletOperatingMode;
+ }
+
+ #[pallet::call]
+ impl, I: 'static> Pallet
+ where
+ BridgedMmrHashing: 'static + Send + Sync,
+ {
+ /// Initialize pallet with BEEFY authority set and best known finalized block number.
+ #[pallet::call_index(0)]
+ #[pallet::weight((T::DbWeight::get().reads_writes(2, 3), DispatchClass::Operational))]
+ pub fn initialize(
+ origin: OriginFor,
+ init_data: InitializationDataOf,
+ ) -> DispatchResult {
+ Self::ensure_owner_or_root(origin)?;
+
+ let is_initialized = >::exists();
+ ensure!(!is_initialized, >::AlreadyInitialized);
+
+ log::info!(target: LOG_TARGET, "Initializing bridge BEEFY pallet: {:?}", init_data);
+ Ok(initialize::(init_data)?)
+ }
+
+ /// Change `PalletOwner`.
+ ///
+ /// May only be called either by root, or by `PalletOwner`.
+ #[pallet::call_index(1)]
+ #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))]
+ pub fn set_owner(origin: OriginFor, new_owner: Option) -> DispatchResult {
+ >::set_owner(origin, new_owner)
+ }
+
+ /// Halt or resume all pallet operations.
+ ///
+ /// May only be called either by root, or by `PalletOwner`.
+ #[pallet::call_index(2)]
+ #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))]
+ pub fn set_operating_mode(
+ origin: OriginFor,
+ operating_mode: BasicOperatingMode,
+ ) -> DispatchResult {
+ >::set_operating_mode(origin, operating_mode)
+ }
+
+ /// Submit a commitment generated by BEEFY authority set.
+ ///
+ /// It will use the underlying storage pallet to fetch information about the current
+ /// authority set and best finalized block number in order to verify that the commitment
+ /// is valid.
+ ///
+ /// If successful in verification, it will update the underlying storage with the data
+ /// provided in the newly submitted commitment.
+ #[pallet::call_index(3)]
+ #[pallet::weight(0)]
+ pub fn submit_commitment(
+ origin: OriginFor,
+ commitment: BridgedBeefySignedCommitment,
+ validator_set: BridgedBeefyAuthoritySet,
+ mmr_leaf: Box>,
+ mmr_proof: BridgedMmrProof,
+ ) -> DispatchResult
+ where
+ BridgedBeefySignedCommitment: Clone,
+ {
+ Self::ensure_not_halted().map_err(Error::::BridgeModule)?;
+ ensure_signed(origin)?;
+
+ ensure!(Self::request_count() < T::MaxRequests::get(), >::TooManyRequests);
+
+ // Ensure that the commitment is for a better block.
+ let commitments_info =
+ ImportedCommitmentsInfo::::get().ok_or(Error::::NotInitialized)?;
+ ensure!(
+ commitment.commitment.block_number > commitments_info.best_block_number,
+ Error::::OldCommitment
+ );
+
+ // Verify commitment and mmr leaf.
+ let current_authority_set_info = CurrentAuthoritySetInfo::::get();
+ let mmr_root = utils::verify_commitment::(
+ &commitment,
+ ¤t_authority_set_info,
+ &validator_set,
+ )?;
+ utils::verify_beefy_mmr_leaf::(&mmr_leaf, mmr_proof, mmr_root)?;
+
+ // Update request count.
+ RequestCount::::mutate(|count| *count += 1);
+ // Update authority set if needed.
+ if mmr_leaf.beefy_next_authority_set.id > current_authority_set_info.id {
+ CurrentAuthoritySetInfo::::put(mmr_leaf.beefy_next_authority_set);
+ }
+
+ // Import commitment.
+ let block_number_index = commitments_info.next_block_number_index;
+ let to_prune = ImportedBlockNumbers::::try_get(block_number_index);
+ ImportedCommitments::::insert(
+ commitment.commitment.block_number,
+ ImportedCommitment:: {
+ parent_number_and_hash: mmr_leaf.parent_number_and_hash,
+ mmr_root,
+ },
+ );
+ ImportedBlockNumbers::::insert(
+ block_number_index,
+ commitment.commitment.block_number,
+ );
+ ImportedCommitmentsInfo::::put(ImportedCommitmentsInfoData {
+ best_block_number: commitment.commitment.block_number,
+ next_block_number_index: (block_number_index + 1) % T::CommitmentsToKeep::get(),
+ });
+ if let Ok(old_block_number) = to_prune {
+ log::debug!(
+ target: LOG_TARGET,
+ "Pruning commitment for old block: {:?}.",
+ old_block_number
+ );
+ ImportedCommitments::::remove(old_block_number);
+ }
+
+ log::info!(
+ target: LOG_TARGET,
+ "Successfully imported commitment for block {:?}",
+ commitment.commitment.block_number,
+ );
+
+ Ok(())
+ }
+ }
+
+ /// The current number of requests which have written to storage.
+ ///
+ /// If the `RequestCount` hits `MaxRequests`, no more calls will be allowed to the pallet until
+ /// the request capacity is increased.
+ ///
+ /// The `RequestCount` is decreased by one at the beginning of every block. This is to ensure
+ /// that the pallet can always make progress.
+ #[pallet::storage]
+ #[pallet::getter(fn request_count)]
+ pub type RequestCount, I: 'static = ()> = StorageValue<_, u32, ValueQuery>;
+
+ /// High level info about the imported commitments.
+ ///
+ /// Contains the following info:
+ /// - best known block number of the bridged chain, finalized by BEEFY
+ /// - the head of the `ImportedBlockNumbers` ring buffer
+ #[pallet::storage]
+ pub type ImportedCommitmentsInfo, I: 'static = ()> =
+ StorageValue<_, ImportedCommitmentsInfoData>>;
+
+ /// A ring buffer containing the block numbers of the commitments that we have imported,
+ /// ordered by the insertion time.
+ #[pallet::storage]
+ pub(super) type ImportedBlockNumbers, I: 'static = ()> =
+ StorageMap<_, Identity, u32, BridgedBlockNumber>;
+
+ /// All the commitments that we have imported and haven't been pruned yet.
+ #[pallet::storage]
+ pub type ImportedCommitments, I: 'static = ()> =
+ StorageMap<_, Blake2_128Concat, BridgedBlockNumber, ImportedCommitment>;
+
+ /// The current BEEFY authority set at the bridged chain.
+ #[pallet::storage]
+ pub type CurrentAuthoritySetInfo, I: 'static = ()> =
+ StorageValue<_, BridgedBeefyAuthoritySetInfo, ValueQuery>;
+
+ /// Optional pallet owner.
+ ///
+ /// Pallet owner has the right to halt all pallet operations and then resume it. If it is
+ /// `None`, then there are no direct ways to halt/resume pallet operations, but other
+ /// runtime methods may still be used to do that (i.e. `democracy::referendum` to update halt
+ /// flag directly or calling `halt_operations`).
+ #[pallet::storage]
+ pub type PalletOwner, I: 'static = ()> =
+ StorageValue<_, T::AccountId, OptionQuery>;
+
+ /// The current operating mode of the pallet.
+ ///
+ /// Depending on the mode either all, or no transactions will be allowed.
+ #[pallet::storage]
+ pub type PalletOperatingMode, I: 'static = ()> =
+ StorageValue<_, BasicOperatingMode, ValueQuery>;
+
+ #[pallet::genesis_config]
+ #[derive(frame_support::DefaultNoBound)]
+ pub struct GenesisConfig, I: 'static = ()> {
+ /// Optional module owner account.
+ pub owner: Option,
+ /// Optional module initialization data.
+ pub init_data: Option>,
+ }
+
+ #[pallet::genesis_build]
+ impl, I: 'static> BuildGenesisConfig for GenesisConfig {
+ fn build(&self) {
+ if let Some(ref owner) = self.owner {
+ >::put(owner);
+ }
+
+ if let Some(init_data) = self.init_data.clone() {
+ initialize::(init_data)
+ .expect("invalid initialization data of BEEFY bridge pallet");
+ } else {
+ // Since the bridge hasn't been initialized we shouldn't allow anyone to perform
+ // transactions.
+ >::put(BasicOperatingMode::Halted);
+ }
+ }
+ }
+
+ #[pallet::error]
+ pub enum Error {
+ /// The pallet has not been initialized yet.
+ NotInitialized,
+ /// The pallet has already been initialized.
+ AlreadyInitialized,
+ /// Invalid initial authority set.
+ InvalidInitialAuthoritySet,
+ /// There are too many requests for the current window to handle.
+ TooManyRequests,
+ /// The imported commitment is older than the best commitment known to the pallet.
+ OldCommitment,
+ /// The commitment is signed by unknown validator set.
+ InvalidCommitmentValidatorSetId,
+ /// The id of the provided validator set is invalid.
+ InvalidValidatorSetId,
+ /// The number of signatures in the commitment is invalid.
+ InvalidCommitmentSignaturesLen,
+ /// The number of validator ids provided is invalid.
+ InvalidValidatorSetLen,
+ /// There aren't enough correct signatures in the commitment to finalize the block.
+ NotEnoughCorrectSignatures,
+ /// MMR root is missing from the commitment.
+ MmrRootMissingFromCommitment,
+ /// MMR proof verification has failed.
+ MmrProofVerificationFailed,
+ /// The validators are not matching the merkle tree root of the authority set.
+ InvalidValidatorSetRoot,
+ /// Error generated by the `OwnedBridgeModule` trait.
+ BridgeModule(bp_runtime::OwnedBridgeModuleError),
+ }
+
+ /// Initialize pallet with given parameters.
+ pub(super) fn initialize, I: 'static>(
+ init_data: InitializationDataOf,
+ ) -> Result<(), Error> {
+ if init_data.authority_set.len == 0 {
+ return Err(Error::::InvalidInitialAuthoritySet)
+ }
+ CurrentAuthoritySetInfo::::put(init_data.authority_set);
+
+ >::put(init_data.operating_mode);
+ ImportedCommitmentsInfo::::put(ImportedCommitmentsInfoData {
+ best_block_number: init_data.best_block_number,
+ next_block_number_index: 0,
+ });
+
+ Ok(())
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use bp_runtime::{BasicOperatingMode, OwnedBridgeModuleError};
+ use bp_test_utils::generate_owned_bridge_module_tests;
+ use frame_support::{assert_noop, assert_ok, traits::Get};
+ use mock::*;
+ use mock_chain::*;
+ use sp_consensus_beefy::mmr::BeefyAuthoritySet;
+ use sp_runtime::DispatchError;
+
+ fn next_block() {
+ use frame_support::traits::OnInitialize;
+
+ let current_number = frame_system::Pallet::::block_number();
+ frame_system::Pallet::::set_block_number(current_number + 1);
+ let _ = Pallet::::on_initialize(current_number);
+ }
+
+ fn import_header_chain(headers: Vec) {
+ for header in headers {
+ if header.commitment.is_some() {
+ assert_ok!(import_commitment(header));
+ }
+ }
+ }
+
+ #[test]
+ fn fails_to_initialize_if_already_initialized() {
+ run_test_with_initialize(32, || {
+ assert_noop!(
+ Pallet::::initialize(
+ RuntimeOrigin::root(),
+ InitializationData {
+ operating_mode: BasicOperatingMode::Normal,
+ best_block_number: 0,
+ authority_set: BeefyAuthoritySet {
+ id: 0,
+ len: 1,
+ keyset_commitment: [0u8; 32].into()
+ }
+ }
+ ),
+ Error::::AlreadyInitialized,
+ );
+ });
+ }
+
+ #[test]
+ fn fails_to_initialize_if_authority_set_is_empty() {
+ run_test(|| {
+ assert_noop!(
+ Pallet::::initialize(
+ RuntimeOrigin::root(),
+ InitializationData {
+ operating_mode: BasicOperatingMode::Normal,
+ best_block_number: 0,
+ authority_set: BeefyAuthoritySet {
+ id: 0,
+ len: 0,
+ keyset_commitment: [0u8; 32].into()
+ }
+ }
+ ),
+ Error::::InvalidInitialAuthoritySet,
+ );
+ });
+ }
+
+ #[test]
+ fn fails_to_import_commitment_if_halted() {
+ run_test_with_initialize(1, || {
+ assert_ok!(Pallet::::set_operating_mode(
+ RuntimeOrigin::root(),
+ BasicOperatingMode::Halted
+ ));
+ assert_noop!(
+ import_commitment(ChainBuilder::new(1).append_finalized_header().to_header()),
+ Error::::BridgeModule(OwnedBridgeModuleError::Halted),
+ );
+ })
+ }
+
+ #[test]
+ fn fails_to_import_commitment_if_too_many_requests() {
+ run_test_with_initialize(1, || {
+ let max_requests = <::MaxRequests as Get>::get() as u64;
+ let mut chain = ChainBuilder::new(1);
+ for _ in 0..max_requests + 2 {
+ chain = chain.append_finalized_header();
+ }
+
+ // import `max_request` headers
+ for i in 0..max_requests {
+ assert_ok!(import_commitment(chain.header(i + 1)));
+ }
+
+ // try to import next header: it fails because we are no longer accepting commitments
+ assert_noop!(
+ import_commitment(chain.header(max_requests + 1)),
+ Error::::TooManyRequests,
+ );
+
+ // when next block is "started", we allow import of next header
+ next_block();
+ assert_ok!(import_commitment(chain.header(max_requests + 1)));
+
+ // but we can't import two headers until next block and so on
+ assert_noop!(
+ import_commitment(chain.header(max_requests + 2)),
+ Error::::TooManyRequests,
+ );
+ })
+ }
+
+ #[test]
+ fn fails_to_import_commitment_if_not_initialized() {
+ run_test(|| {
+ assert_noop!(
+ import_commitment(ChainBuilder::new(1).append_finalized_header().to_header()),
+ Error::::NotInitialized,
+ );
+ })
+ }
+
+ #[test]
+ fn submit_commitment_works_with_long_chain_with_handoffs() {
+ run_test_with_initialize(3, || {
+ let chain = ChainBuilder::new(3)
+ .append_finalized_header()
+ .append_default_headers(16) // 2..17
+ .append_finalized_header() // 18
+ .append_default_headers(16) // 19..34
+ .append_handoff_header(9) // 35
+ .append_default_headers(8) // 36..43
+ .append_finalized_header() // 44
+ .append_default_headers(8) // 45..52
+ .append_handoff_header(17) // 53
+ .append_default_headers(4) // 54..57
+ .append_finalized_header() // 58
+ .append_default_headers(4); // 59..63
+ import_header_chain(chain.to_chain());
+
+ assert_eq!(
+ ImportedCommitmentsInfo::::get().unwrap().best_block_number,
+ 58
+ );
+ assert_eq!(CurrentAuthoritySetInfo::::get().id, 2);
+ assert_eq!(CurrentAuthoritySetInfo::::get().len, 17);
+
+ let imported_commitment = ImportedCommitments::::get(58).unwrap();
+ assert_eq!(
+ imported_commitment,
+ bp_beefy::ImportedCommitment {
+ parent_number_and_hash: (57, chain.header(57).header.hash()),
+ mmr_root: chain.header(58).mmr_root,
+ },
+ );
+ })
+ }
+
+ #[test]
+ fn commitment_pruning_works() {
+ run_test_with_initialize(3, || {
+ let commitments_to_keep = >::CommitmentsToKeep::get();
+ let commitments_to_import: Vec = ChainBuilder::new(3)
+ .append_finalized_headers(commitments_to_keep as usize + 2)
+ .to_chain();
+
+ // import exactly `CommitmentsToKeep` commitments
+ for index in 0..commitments_to_keep {
+ next_block();
+ import_commitment(commitments_to_import[index as usize].clone())
+ .expect("must succeed");
+ assert_eq!(
+ ImportedCommitmentsInfo::::get().unwrap().next_block_number_index,
+ (index + 1) % commitments_to_keep
+ );
+ }
+
+ // ensure that all commitments are in the storage
+ assert_eq!(
+ ImportedCommitmentsInfo::::get().unwrap().best_block_number,
+ commitments_to_keep as TestBridgedBlockNumber
+ );
+ assert_eq!(
+ ImportedCommitmentsInfo::::get().unwrap().next_block_number_index,
+ 0
+ );
+ for index in 0..commitments_to_keep {
+ assert!(ImportedCommitments::::get(
+ index as TestBridgedBlockNumber + 1
+ )
+ .is_some());
+ assert_eq!(
+ ImportedBlockNumbers::::get(index),
+ Some(Into::into(index + 1)),
+ );
+ }
+
+ // import next commitment
+ next_block();
+ import_commitment(commitments_to_import[commitments_to_keep as usize].clone())
+ .expect("must succeed");
+ assert_eq!(
+ ImportedCommitmentsInfo::::get().unwrap().next_block_number_index,
+ 1
+ );
+ assert!(ImportedCommitments::::get(
+ commitments_to_keep as TestBridgedBlockNumber + 1
+ )
+ .is_some());
+ assert_eq!(
+ ImportedBlockNumbers::::get(0),
+ Some(Into::into(commitments_to_keep + 1)),
+ );
+ // the side effect of the import is that the commitment#1 is pruned
+ assert!(ImportedCommitments::::get(1).is_none());
+
+ // import next commitment
+ next_block();
+ import_commitment(commitments_to_import[commitments_to_keep as usize + 1].clone())
+ .expect("must succeed");
+ assert_eq!(
+ ImportedCommitmentsInfo::::get().unwrap().next_block_number_index,
+ 2
+ );
+ assert!(ImportedCommitments::::get(
+ commitments_to_keep as TestBridgedBlockNumber + 2
+ )
+ .is_some());
+ assert_eq!(
+ ImportedBlockNumbers::::get(1),
+ Some(Into::into(commitments_to_keep + 2)),
+ );
+ // the side effect of the import is that the commitment#2 is pruned
+ assert!(ImportedCommitments::::get(1).is_none());
+ assert!(ImportedCommitments::::get(2).is_none());
+ });
+ }
+
+ generate_owned_bridge_module_tests!(BasicOperatingMode::Normal, BasicOperatingMode::Halted);
+}
diff --git a/bridges/modules/beefy/src/mock.rs b/bridges/modules/beefy/src/mock.rs
new file mode 100644
index 0000000000000000000000000000000000000000..c99566b6b06d1855319d614f4f4ddfbf2fb1918b
--- /dev/null
+++ b/bridges/modules/beefy/src/mock.rs
@@ -0,0 +1,193 @@
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
+// This file is part of Parity Bridges Common.
+
+// Parity Bridges Common is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Parity Bridges Common is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Parity Bridges Common. If not, see .
+
+use crate as beefy;
+use crate::{
+ utils::get_authorities_mmr_root, BridgedBeefyAuthoritySet, BridgedBeefyAuthoritySetInfo,
+ BridgedBeefyCommitmentHasher, BridgedBeefyMmrLeafExtra, BridgedBeefySignedCommitment,
+ BridgedMmrHash, BridgedMmrHashing, BridgedMmrProof,
+};
+
+use bp_beefy::{BeefyValidatorSignatureOf, ChainWithBeefy, Commitment, MmrDataOrHash};
+use bp_runtime::{BasicOperatingMode, Chain, ChainId};
+use codec::Encode;
+use frame_support::{construct_runtime, derive_impl, weights::Weight};
+use sp_core::{sr25519::Signature, Pair};
+use sp_runtime::{
+ testing::{Header, H256},
+ traits::{BlakeTwo256, Hash},
+};
+
+pub use sp_consensus_beefy::ecdsa_crypto::{AuthorityId as BeefyId, Pair as BeefyPair};
+use sp_core::crypto::Wraps;
+use sp_runtime::traits::Keccak256;
+
+pub type TestAccountId = u64;
+pub type TestBridgedBlockNumber = u64;
+pub type TestBridgedBlockHash = H256;
+pub type TestBridgedHeader = Header;
+pub type TestBridgedAuthoritySetInfo = BridgedBeefyAuthoritySetInfo;
+pub type TestBridgedValidatorSet = BridgedBeefyAuthoritySet;
+pub type TestBridgedCommitment = BridgedBeefySignedCommitment;
+pub type TestBridgedValidatorSignature = BeefyValidatorSignatureOf;
+pub type TestBridgedCommitmentHasher = BridgedBeefyCommitmentHasher;
+pub type TestBridgedMmrHashing = BridgedMmrHashing;
+pub type TestBridgedMmrHash = BridgedMmrHash;
+pub type TestBridgedBeefyMmrLeafExtra = BridgedBeefyMmrLeafExtra;
+pub type TestBridgedMmrProof = BridgedMmrProof;
+pub type TestBridgedRawMmrLeaf = sp_consensus_beefy::mmr::MmrLeaf<
+ TestBridgedBlockNumber,
+ TestBridgedBlockHash,
+ TestBridgedMmrHash,
+ TestBridgedBeefyMmrLeafExtra,
+>;
+pub type TestBridgedMmrNode = MmrDataOrHash;
+
+type Block = frame_system::mocking::MockBlock;
+
+construct_runtime! {
+ pub enum TestRuntime
+ {
+ System: frame_system::{Pallet, Call, Config, Storage, Event},
+ Beefy: beefy::{Pallet},
+ }
+}
+
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+impl frame_system::Config for TestRuntime {
+ type Block = Block;
+}
+
+impl beefy::Config for TestRuntime {
+ type MaxRequests = frame_support::traits::ConstU32<16>;
+ type BridgedChain = TestBridgedChain;
+ type CommitmentsToKeep = frame_support::traits::ConstU32<16>;
+}
+
+#[derive(Debug)]
+pub struct TestBridgedChain;
+
+impl Chain for TestBridgedChain {
+ const ID: ChainId = *b"tbch";
+
+ type BlockNumber = TestBridgedBlockNumber;
+ type Hash = H256;
+ type Hasher = BlakeTwo256;
+ type Header = sp_runtime::testing::Header;
+
+ type AccountId = TestAccountId;
+ type Balance = u64;
+ type Nonce = u64;
+ type Signature = Signature;
+
+ fn max_extrinsic_size() -> u32 {
+ unreachable!()
+ }
+ fn max_extrinsic_weight() -> Weight {
+ unreachable!()
+ }
+}
+
+impl ChainWithBeefy for TestBridgedChain {
+ type CommitmentHasher = Keccak256;
+ type MmrHashing = Keccak256;
+ type MmrHash = ::Output;
+ type BeefyMmrLeafExtra = ();
+ type AuthorityId = BeefyId;
+ type AuthorityIdToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum;
+}
+
+/// Run test within test runtime.
+pub fn run_test(test: impl FnOnce() -> T) -> T {
+ sp_io::TestExternalities::new(Default::default()).execute_with(test)
+}
+
+/// Initialize pallet and run test.
+pub fn run_test_with_initialize(initial_validators_count: u32, test: impl FnOnce() -> T) -> T {
+ run_test(|| {
+ let validators = validator_ids(0, initial_validators_count);
+ let authority_set = authority_set_info(0, &validators);
+
+ crate::Pallet::::initialize(
+ RuntimeOrigin::root(),
+ bp_beefy::InitializationData {
+ operating_mode: BasicOperatingMode::Normal,
+ best_block_number: 0,
+ authority_set,
+ },
+ )
+ .expect("initialization data is correct");
+
+ test()
+ })
+}
+
+/// Import given commitment.
+pub fn import_commitment(
+ header: crate::mock_chain::HeaderAndCommitment,
+) -> sp_runtime::DispatchResult {
+ crate::Pallet::::submit_commitment(
+ RuntimeOrigin::signed(1),
+ header
+ .commitment
+ .expect("thou shall not call import_commitment on header without commitment"),
+ header.validator_set,
+ Box::new(header.leaf),
+ header.leaf_proof,
+ )
+}
+
+pub fn validator_pairs(index: u32, count: u32) -> Vec {
+ (index..index + count)
+ .map(|index| {
+ let mut seed = [1u8; 32];
+ seed[0..8].copy_from_slice(&(index as u64).encode());
+ BeefyPair::from_seed(&seed)
+ })
+ .collect()
+}
+
+/// Return identifiers of validators, starting at given index.
+pub fn validator_ids(index: u32, count: u32) -> Vec {
+ validator_pairs(index, count).into_iter().map(|pair| pair.public()).collect()
+}
+
+pub fn authority_set_info(id: u64, validators: &[BeefyId]) -> TestBridgedAuthoritySetInfo {
+ let merkle_root = get_authorities_mmr_root::(validators.iter());
+
+ TestBridgedAuthoritySetInfo { id, len: validators.len() as u32, keyset_commitment: merkle_root }
+}
+
+/// Sign BEEFY commitment.
+pub fn sign_commitment(
+ commitment: Commitment,
+ validator_pairs: &[BeefyPair],
+ signature_count: usize,
+) -> TestBridgedCommitment {
+ let total_validators = validator_pairs.len();
+ let random_validators =
+ rand::seq::index::sample(&mut rand::thread_rng(), total_validators, signature_count);
+
+ let commitment_hash = TestBridgedCommitmentHasher::hash(&commitment.encode());
+ let mut signatures = vec![None; total_validators];
+ for validator_idx in random_validators.iter() {
+ let validator = &validator_pairs[validator_idx];
+ signatures[validator_idx] =
+ Some(validator.as_inner_ref().sign_prehashed(commitment_hash.as_fixed_bytes()).into());
+ }
+
+ TestBridgedCommitment { commitment, signatures }
+}
diff --git a/bridges/modules/beefy/src/mock_chain.rs b/bridges/modules/beefy/src/mock_chain.rs
new file mode 100644
index 0000000000000000000000000000000000000000..c83907f8395684d03cc62892e519565fb72237f7
--- /dev/null
+++ b/bridges/modules/beefy/src/mock_chain.rs
@@ -0,0 +1,299 @@
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
+// This file is part of Parity Bridges Common.
+
+// Parity Bridges Common is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Parity Bridges Common is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Parity Bridges Common. If not, see .
+
+//! Utilities to build bridged chain and BEEFY+MMR structures.
+
+use crate::{
+ mock::{
+ sign_commitment, validator_pairs, BeefyPair, TestBridgedBlockNumber, TestBridgedCommitment,
+ TestBridgedHeader, TestBridgedMmrHash, TestBridgedMmrHashing, TestBridgedMmrNode,
+ TestBridgedMmrProof, TestBridgedRawMmrLeaf, TestBridgedValidatorSet,
+ TestBridgedValidatorSignature, TestRuntime,
+ },
+ utils::get_authorities_mmr_root,
+};
+
+use bp_beefy::{BeefyPayload, Commitment, ValidatorSetId, MMR_ROOT_PAYLOAD_ID};
+use codec::Encode;
+use pallet_mmr::NodeIndex;
+use rand::Rng;
+use sp_consensus_beefy::mmr::{BeefyNextAuthoritySet, MmrLeafVersion};
+use sp_core::Pair;
+use sp_runtime::traits::{Hash, Header as HeaderT};
+use std::collections::HashMap;
+
+#[derive(Debug, Clone)]
+pub struct HeaderAndCommitment {
+ pub header: TestBridgedHeader,
+ pub commitment: Option,
+ pub validator_set: TestBridgedValidatorSet,
+ pub leaf: TestBridgedRawMmrLeaf,
+ pub leaf_proof: TestBridgedMmrProof,
+ pub mmr_root: TestBridgedMmrHash,
+}
+
+impl HeaderAndCommitment {
+ pub fn customize_signatures(
+ &mut self,
+ f: impl FnOnce(&mut Vec