diff --git a/.config/lychee.toml b/.config/lychee.toml
index 1de9fcd559dd9ea14fb603b7740efebcb893ed93..b7bb6f0ce4953bcdba91685d8161d9046765cdcb 100644
--- a/.config/lychee.toml
+++ b/.config/lychee.toml
@@ -32,7 +32,6 @@ exclude = [
"https://github.com/paritytech/polkadot-sdk/substrate/frame/timestamp",
"https://github.com/paritytech/substrate/frame/fast-unstake",
"https://github.com/zkcrypto/bls12_381/blob/e224ad4ea1babfc582ccd751c2bf128611d10936/src/test-data/mod.rs",
- "https://polkadot-try-runtime-node.parity-chains.parity.io/",
"https://polkadot.network/the-path-of-a-parachain-block/",
"https://research.web3.foundation/en/latest/polkadot/NPoS/3.%20Balancing.html",
"https://research.web3.foundation/en/latest/polkadot/Token%20Economics.html#inflation-model",
@@ -41,6 +40,7 @@ exclude = [
"https://research.web3.foundation/en/latest/polkadot/overview/2-token-economics.html#inflation-model",
"https://research.web3.foundation/en/latest/polkadot/slashing/npos.html",
"https://rpc.polkadot.io/",
+ "https://try-runtime.polkadot.io/",
"https://w3f.github.io/parachain-implementers-guide/node/approval/approval-distribution.html",
"https://w3f.github.io/parachain-implementers-guide/node/index.html",
"https://w3f.github.io/parachain-implementers-guide/protocol-chain-selection.html",
diff --git a/.config/taplo.toml b/.config/taplo.toml
index 2c6ccfb2b34440686764c39ed6db1c73ed940f06..7cbc1b075125ad237f16d5d7dd33b0de7089ac38 100644
--- a/.config/taplo.toml
+++ b/.config/taplo.toml
@@ -33,3 +33,10 @@ keys = ["build"]
[rule.formatting]
reorder_arrays = false
+
+[[rule]]
+include = ["Cargo.toml"]
+keys = ["workspace.dependencies"]
+
+[rule.formatting]
+reorder_keys = true
diff --git a/.config/zepter.yaml b/.config/zepter.yaml
index 9b3bd9d618c14e41f1dbf420aff3fee1677e2830..7a67ba2695cf697c886b31520431ea0ee33e14c9 100644
--- a/.config/zepter.yaml
+++ b/.config/zepter.yaml
@@ -27,7 +27,7 @@ workflows:
]
# The umbrella crate uses more features, so we to check those too:
check_umbrella:
- - [ $check.0, '--features=serde,experimental,with-tracing,tuples-96,with-tracing', '-p=polkadot-sdk' ]
+ - [ $check.0, '--features=serde,experimental,riscv,runtime,with-tracing,tuples-96,with-tracing', '-p=polkadot-sdk' ]
# Same as `check_*`, but with the `--fix` flag.
default:
- [ $check.0, '--fix' ]
diff --git a/.forklift/config-gitlab.toml b/.forklift/config-gitlab.toml
new file mode 100644
index 0000000000000000000000000000000000000000..ab3b2729a46d4e54dc77df1175d4ebe79eda46d0
--- /dev/null
+++ b/.forklift/config-gitlab.toml
@@ -0,0 +1,33 @@
+[compression]
+type = "zstd"
+
+[compression.zstd]
+compressionLevel = 3
+
+[general]
+jobNameVariable = "CI_JOB_NAME"
+jobsBlackList = []
+logLevel = "warn"
+threadsCount = 6
+
+[cache]
+extraEnv = ["RUNTIME_METADATA_HASH"]
+
+[metrics]
+enabled = true
+pushEndpoint = "placeholder"
+
+[metrics.extraLabels]
+environment = "production"
+job_name = "$CI_JOB_NAME"
+project_name = "$CI_PROJECT_PATH"
+
+[storage]
+type = "s3"
+
+[storage.s3]
+accessKeyId = "placeholder"
+bucketName = "placeholder"
+concurrency = 10
+endpointUrl = "placeholder"
+secretAccessKey = "placeholder"
diff --git a/.forklift/config.toml b/.forklift/config.toml
index ab3b2729a46d4e54dc77df1175d4ebe79eda46d0..6f8eed8882ea36f39d1f0a519180f92eb905f7be 100644
--- a/.forklift/config.toml
+++ b/.forklift/config.toml
@@ -23,11 +23,7 @@ job_name = "$CI_JOB_NAME"
project_name = "$CI_PROJECT_PATH"
[storage]
-type = "s3"
+type = "gcs"
-[storage.s3]
-accessKeyId = "placeholder"
-bucketName = "placeholder"
-concurrency = 10
-endpointUrl = "placeholder"
-secretAccessKey = "placeholder"
+[storage.gcs]
+bucketName = "parity-ci-forklift"
diff --git a/.github/actions/cargo-check-runtimes/action.yml b/.github/actions/cargo-check-runtimes/action.yml
new file mode 100644
index 0000000000000000000000000000000000000000..869f17661e4a23e3c07256a8f59303c09fec7d9b
--- /dev/null
+++ b/.github/actions/cargo-check-runtimes/action.yml
@@ -0,0 +1,22 @@
+name: 'cargo check runtimes'
+description: 'Runs `cargo check` for every directory in provided root.'
+inputs:
+ root:
+ description: "Root directory. Expected to contain several cargo packages inside."
+ required: true
+runs:
+ using: "composite"
+ steps:
+ - name: Check
+ shell: bash
+ run: |
+ mkdir -p ~/.forklift
+ cp .forklift/config.toml ~/.forklift/config.toml
+ cd ${{ inputs.root }}
+ for directory in $(echo */); do
+ echo "_____Running cargo check for ${directory} ______";
+ cd ${directory};
+ pwd;
+ SKIP_WASM_BUILD=1 forklift cargo check --locked;
+ cd ..;
+ done
diff --git a/.github/actions/set-up-gh/action.yml b/.github/actions/set-up-gh/action.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fc16ce0b26334283b83266e381c1811738be87c9
--- /dev/null
+++ b/.github/actions/set-up-gh/action.yml
@@ -0,0 +1,36 @@
+name: 'install gh'
+description: 'Install the gh cli in a debian based distro and switches to the PR branch.'
+inputs:
+ pr-number:
+ description: "Number of the PR"
+ required: true
+ GH_TOKEN:
+ description: "GitHub token"
+ required: true
+outputs:
+ branch:
+ description: 'Branch name for the PR'
+ value: ${{ steps.branch.outputs.branch }}
+runs:
+ using: "composite"
+ steps:
+ - name: Instal gh cli
+ shell: bash
+ # Here it would get the script from previous step
+ run: |
+ (type -p wget >/dev/null || (apt update && apt-get install wget -y))
+ mkdir -p -m 755 /etc/apt/keyrings
+ wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
+ apt update
+ apt install gh -y
+ git config --global --add safe.directory '*'
+ - run: gh pr checkout ${{ inputs.pr-number }}
+ shell: bash
+ env:
+ GITHUB_TOKEN: ${{ inputs.GH_TOKEN }}
+ - name: Export branch name
+ shell: bash
+ run: echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> "$GITHUB_OUTPUT"
+ id: branch
diff --git a/.github/actions/set-up-mac/README.md b/.github/actions/set-up-mac/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0bbc7112bd1d40e24c91d426df014a877166e3b0
--- /dev/null
+++ b/.github/actions/set-up-mac/README.md
@@ -0,0 +1,15 @@
+# How to use
+
+```yml
+ set-image:
+ runs-on: macos-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+ - name: Install dependencies
+ uses: ./.github/actions/set-up-mac
+ with:
+ IMAGE: ${{ steps.set-image.outputs.IMAGE }}
+```
diff --git a/.github/actions/set-up-mac/action.yml b/.github/actions/set-up-mac/action.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a3b026679402c2dc3b086cf572041b1f4bcc61e6
--- /dev/null
+++ b/.github/actions/set-up-mac/action.yml
@@ -0,0 +1,43 @@
+name: "Set up rust on mac"
+description: "Install the required tools for Mac runners"
+inputs:
+ IMAGE:
+ description: "Rust docker image"
+ required: true
+runs:
+ using: "composite"
+ steps:
+ - name: Install with Hombrew
+ shell: bash
+ run: brew install protobuf rustup openssl pkg-config zlib xz zstd llvm jq curl gcc make cmake
+ - name: Set version
+ shell: bash
+ run: |
+ VERSION=$(echo $IMAGE | sed -E 's/.*:bullseye-([^-]+)-.*/\1/')
+ echo $VERSION
+ echo "VERSION=$VERSION" >> $GITHUB_ENV
+ NIGHTLY=$(echo $IMAGE | sed -E 's/.*([0-9]{4}-[0-9]{2}-[0-9]{2}).*/\1/')
+ echo $NIGHTLY
+ echo "NIGHTLY=$NIGHTLY" >> $GITHUB_ENV
+ env:
+ IMAGE: ${{ inputs.IMAGE }}
+
+ - name: Install rustup
+ shell: bash
+ run: |
+ rustup-init -y
+ rustup install $VERSION
+ rustup default $VERSION
+ rustup toolchain install "nightly-${NIGHTLY}"
+
+ - name: MacOS Deps
+ shell: bash
+ run: |
+ rustup target add wasm32-unknown-unknown --toolchain $VERSION
+ rustup component add rust-src rustfmt clippy --toolchain $VERSION
+
+ - name: Check Rust
+ shell: bash
+ run: |
+ rustup show
+ rustup +nightly show
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 3277a6e4607a74b2b59e24fce951e68c8703fcfc..12f81b04d3a1228d3f4533c8e3d34d6935df51c6 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -5,13 +5,17 @@ updates:
directory: '/'
labels: ["A1-insubstantial", "R0-silent"]
schedule:
- interval: daily
+ interval: weekly
+ groups:
+ ci_dependencies:
+ patterns:
+ - "*"
# Update Rust dependencies:
- package-ecosystem: "cargo"
directory: "/"
labels: ["A1-insubstantial", "R0-silent"]
schedule:
- interval: "daily"
+ interval: "weekly"
groups:
# We assume these crates to be semver abiding and can therefore group them together.
known_good_semver:
diff --git a/.github/env b/.github/env
index 162ce8af7c0ddbc1534b7d1ffb09cff4be012fc7..2e4d5b48100dfb3e976270efd155843e907687a8 100644
--- a/.github/env
+++ b/.github/env
@@ -1 +1 @@
-IMAGE="docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408"
\ No newline at end of file
+IMAGE="docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v202407161507"
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 120000
index 0000000000000000000000000000000000000000..7b6b3498755f586abec9256cbf8f455c16928ffd
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1 @@
+../docs/contributor/PULL_REQUEST_TEMPLATE.md
\ No newline at end of file
diff --git a/.github/review-bot.yml b/.github/review-bot.yml
index ed719cefec8bc97c921e11a1751889433f0991ea..adbc480c6ba1a69e8cdd112af4be378849d26315 100644
--- a/.github/review-bot.yml
+++ b/.github/review-bot.yml
@@ -9,6 +9,7 @@ rules:
- ^\.gitlab/.*
- ^\.config/nextest.toml
- ^\.cargo/.*
+ - ^\.forklift/.*
exclude:
- ^\.gitlab/pipeline/zombienet.*
type: "or"
@@ -33,6 +34,7 @@ rules:
- ^docker/.*
- ^\.github/.*
- ^\.gitlab/.*
+ - ^\.forklift/.*
- ^\.config/nextest.toml
- ^\.cargo/.*
minApprovals: 2
diff --git a/.github/scripts/check-workspace.py b/.github/scripts/check-workspace.py
index 1f8f103e4e157a8c1c804a618652741193ca5a00..d5197100ad253ed18b9a4df255faa88598883f91 100644
--- a/.github/scripts/check-workspace.py
+++ b/.github/scripts/check-workspace.py
@@ -135,8 +135,12 @@ def check_links(all_crates):
if dep_name in all_crates:
links.append((name, dep_name))
- if not 'path' in deps[dep]:
- broken.append((name, dep_name, "crate must be linked via `path`"))
+ if name == 'polkadot-sdk':
+ if not 'path' in deps[dep]:
+ broken.append((name, dep_name, "crate must use path"))
+ return
+ elif not 'workspace' in deps[dep] or not deps[dep]['workspace']:
+ broken.append((name, dep_name, "crate must use workspace inheritance"))
return
def check_crate(deps):
@@ -154,8 +158,6 @@ def check_links(all_crates):
check_crate(manifest)
-
-
links.sort()
broken.sort()
diff --git a/.github/scripts/cmd/_help.py b/.github/scripts/cmd/_help.py
new file mode 100644
index 0000000000000000000000000000000000000000..8ad49dad8461e38a7d4bfe1d54f408071d7ae509
--- /dev/null
+++ b/.github/scripts/cmd/_help.py
@@ -0,0 +1,26 @@
+import argparse
+
+"""
+
+Custom help action for argparse, it prints the help message for the main parser and all subparsers.
+
+"""
+
+
+class _HelpAction(argparse._HelpAction):
+ def __call__(self, parser, namespace, values, option_string=None):
+ parser.print_help()
+
+ # retrieve subparsers from parser
+ subparsers_actions = [
+ action for action in parser._actions
+ if isinstance(action, argparse._SubParsersAction)]
+ # there will probably only be one subparser_action,
+ # but better save than sorry
+ for subparsers_action in subparsers_actions:
+ # get all subparsers and print help
+ for choice, subparser in subparsers_action.choices.items():
+ print("\n### Command '{}'".format(choice))
+ print(subparser.format_help())
+
+ parser.exit()
diff --git a/.github/scripts/cmd/cmd.py b/.github/scripts/cmd/cmd.py
new file mode 100755
index 0000000000000000000000000000000000000000..63bd6a2795aacfb019d582a06c37957ce565fd8b
--- /dev/null
+++ b/.github/scripts/cmd/cmd.py
@@ -0,0 +1,196 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import json
+import argparse
+import _help
+
+_HelpAction = _help._HelpAction
+
+f = open('.github/workflows/runtimes-matrix.json', 'r')
+runtimesMatrix = json.load(f)
+
+runtimeNames = list(map(lambda x: x['name'], runtimesMatrix))
+
+common_args = {
+ '--continue-on-fail': {"action": "store_true", "help": "Won't exit(1) on failed command and continue with next steps. "},
+ '--quiet': {"action": "store_true", "help": "Won't print start/end/failed messages in PR"},
+ '--clean': {"action": "store_true", "help": "Clean up the previous bot's & author's comments in PR"},
+ '--image': {"help": "Override docker image '--image docker.io/paritytech/ci-unified:latest'"},
+}
+
+parser = argparse.ArgumentParser(prog="/cmd ", description='A command runner for polkadot-sdk repo', add_help=False)
+parser.add_argument('--help', action=_HelpAction, help='help for help if you need some help') # help for help
+for arg, config in common_args.items():
+ parser.add_argument(arg, **config)
+
+subparsers = parser.add_subparsers(help='a command to run', dest='command')
+
+"""
+BENCH
+"""
+
+bench_example = '''**Examples**:
+ Runs all benchmarks
+ %(prog)s
+
+ Runs benchmarks for pallet_balances and pallet_multisig for all runtimes which have these pallets. **--quiet** makes it to output nothing to PR but reactions
+ %(prog)s --pallet pallet_balances pallet_xcm_benchmarks::generic --quiet
+
+ Runs bench for all pallets for westend runtime and continues even if some benchmarks fail
+ %(prog)s --runtime westend --continue-on-fail
+
+ Does not output anything and cleans up the previous bot's & author command triggering comments in PR
+ %(prog)s --runtime westend rococo --pallet pallet_balances pallet_multisig --quiet --clean
+'''
+
+parser_bench = subparsers.add_parser('bench', help='Runs benchmarks', epilog=bench_example, formatter_class=argparse.RawDescriptionHelpFormatter)
+
+for arg, config in common_args.items():
+ parser_bench.add_argument(arg, **config)
+
+parser_bench.add_argument('--runtime', help='Runtime(s) space separated', choices=runtimeNames, nargs='*', default=runtimeNames)
+parser_bench.add_argument('--pallet', help='Pallet(s) space separated', nargs='*', default=[])
+
+"""
+FMT
+"""
+parser_fmt = subparsers.add_parser('fmt', help='Formats code (cargo +nightly-VERSION fmt) and configs (taplo format)')
+for arg, config in common_args.items():
+ parser_fmt.add_argument(arg, **config)
+
+"""
+Update UI
+"""
+parser_ui = subparsers.add_parser('update-ui', help='Updates UI tests')
+for arg, config in common_args.items():
+ parser_ui.add_argument(arg, **config)
+
+
+args, unknown = parser.parse_known_args()
+
+print(f'args: {args}')
+
+if args.command == 'bench':
+ runtime_pallets_map = {}
+ failed_benchmarks = {}
+ successful_benchmarks = {}
+
+ profile = "release"
+
+ print(f'Provided runtimes: {args.runtime}')
+ # convert to mapped dict
+ runtimesMatrix = list(filter(lambda x: x['name'] in args.runtime, runtimesMatrix))
+ runtimesMatrix = {x['name']: x for x in runtimesMatrix}
+ print(f'Filtered out runtimes: {runtimesMatrix}')
+
+ # loop over remaining runtimes to collect available pallets
+ for runtime in runtimesMatrix.values():
+ os.system(f"forklift cargo build -p {runtime['package']} --profile {profile} --features runtime-benchmarks")
+ print(f'-- listing pallets for benchmark for {runtime["name"]}')
+ wasm_file = f"target/{profile}/wbuild/{runtime['package']}/{runtime['package'].replace('-', '_')}.wasm"
+ output = os.popen(
+ f"frame-omni-bencher v1 benchmark pallet --no-csv-header --no-storage-info --no-min-squares --no-median-slopes --all --list --runtime={wasm_file}").read()
+ raw_pallets = output.strip().split('\n')
+
+ all_pallets = set()
+ for pallet in raw_pallets:
+ if pallet:
+ all_pallets.add(pallet.split(',')[0].strip())
+
+ pallets = list(all_pallets)
+ print(f'Pallets in {runtime}: {pallets}')
+ runtime_pallets_map[runtime['name']] = pallets
+
+ # filter out only the specified pallets from collected runtimes/pallets
+ if args.pallet:
+ print(f'Pallet: {args.pallet}')
+ new_pallets_map = {}
+ # keep only specified pallets if they exist in the runtime
+ for runtime in runtime_pallets_map:
+ if set(args.pallet).issubset(set(runtime_pallets_map[runtime])):
+ new_pallets_map[runtime] = args.pallet
+
+ runtime_pallets_map = new_pallets_map
+
+ print(f'Filtered out runtimes & pallets: {runtime_pallets_map}')
+
+ if not runtime_pallets_map:
+ if args.pallet and not args.runtime:
+ print(f"No pallets {args.pallet} found in any runtime")
+ elif args.runtime and not args.pallet:
+ print(f"{args.runtime} runtime does not have any pallets")
+ elif args.runtime and args.pallet:
+ print(f"No pallets {args.pallet} found in {args.runtime}")
+ else:
+ print('No runtimes found')
+ sys.exit(1)
+
+ header_path = os.path.abspath('./substrate/HEADER-APACHE2')
+
+ for runtime in runtime_pallets_map:
+ for pallet in runtime_pallets_map[runtime]:
+ config = runtimesMatrix[runtime]
+ print(f'-- config: {config}')
+ if runtime == 'dev':
+ # to support sub-modules (https://github.com/paritytech/command-bot/issues/275)
+ search_manifest_path = f"cargo metadata --locked --format-version 1 --no-deps | jq -r '.packages[] | select(.name == \"{pallet.replace('_', '-')}\") | .manifest_path'"
+ print(f'-- running: {search_manifest_path}')
+ manifest_path = os.popen(search_manifest_path).read()
+ if not manifest_path:
+ print(f'-- pallet {pallet} not found in dev runtime')
+ exit(1)
+ package_dir = os.path.dirname(manifest_path)
+ print(f'-- package_dir: {package_dir}')
+ print(f'-- manifest_path: {manifest_path}')
+ output_path = os.path.join(package_dir, "src", "weights.rs")
+ else:
+ default_path = f"./{config['path']}/src/weights"
+ xcm_path = f"./{config['path']}/src/weights/xcm"
+ output_path = default_path if not pallet.startswith("pallet_xcm_benchmarks") else xcm_path
+ print(f'-- benchmarking {pallet} in {runtime} into {output_path}')
+ cmd = f"frame-omni-bencher v1 benchmark pallet --extrinsic=* --runtime=target/{profile}/wbuild/{config['package']}/{config['package'].replace('-', '_')}.wasm --pallet={pallet} --header={header_path} --output={output_path} --wasm-execution=compiled --steps=50 --repeat=20 --heap-pages=4096 --no-storage-info --no-min-squares --no-median-slopes"
+ print(f'-- Running: {cmd}')
+ status = os.system(cmd)
+ if status != 0 and not args.continue_on_fail:
+ print(f'Failed to benchmark {pallet} in {runtime}')
+ sys.exit(1)
+
+ # Otherwise collect failed benchmarks and print them at the end
+ # push failed pallets to failed_benchmarks
+ if status != 0:
+ failed_benchmarks[f'{runtime}'] = failed_benchmarks.get(f'{runtime}', []) + [pallet]
+ else:
+ successful_benchmarks[f'{runtime}'] = successful_benchmarks.get(f'{runtime}', []) + [pallet]
+
+ if failed_benchmarks:
+ print('โ Failed benchmarks of runtimes/pallets:')
+ for runtime, pallets in failed_benchmarks.items():
+ print(f'-- {runtime}: {pallets}')
+
+ if successful_benchmarks:
+ print('โ
Successful benchmarks of runtimes/pallets:')
+ for runtime, pallets in successful_benchmarks.items():
+ print(f'-- {runtime}: {pallets}')
+
+elif args.command == 'fmt':
+ command = f"cargo +nightly fmt"
+ print(f'Formatting with `{command}`')
+ nightly_status = os.system(f'{command}')
+ taplo_status = os.system('taplo format --config .config/taplo.toml')
+
+ if (nightly_status != 0 or taplo_status != 0) and not args.continue_on_fail:
+ print('โ Failed to format code')
+ sys.exit(1)
+
+elif args.command == 'update-ui':
+ command = 'sh ./scripts/update-ui-tests.sh'
+ print(f'Updating ui with `{command}`')
+ status = os.system(f'{command}')
+
+ if status != 0 and not args.continue_on_fail:
+ print('โ Failed to format code')
+ sys.exit(1)
+
+print('๐ Done')
diff --git a/.github/scripts/common/lib.sh b/.github/scripts/common/lib.sh
index f844e962c41def7625fa3d45ae3cbf81ecb57147..bfb3120ad9bba1d647ef8719d99ae885cee2dfb7 100755
--- a/.github/scripts/common/lib.sh
+++ b/.github/scripts/common/lib.sh
@@ -315,6 +315,7 @@ function import_gpg_keys() {
) &
done
wait
+ gpg -k $SEC
}
# Check the GPG signature for a given binary
@@ -444,3 +445,28 @@ get_latest_release_tag() {
latest_release_tag=$(curl -s -H "$TOKEN" $api_base/paritytech/polkadot-sdk/releases/latest | jq -r '.tag_name')
printf $latest_release_tag
}
+
+function get_polkadot_node_version_from_code() {
+ # list all the files with node version
+ git grep -e "\(NODE_VERSION[^=]*= \)\".*\"" |
+ # fetch only the one we need
+ grep "primitives/src/lib.rs:" |
+ # Print only the version
+ awk '{ print $7 }' |
+ # Remove the quotes
+ sed 's/"//g' |
+ # Remove the semicolon
+ sed 's/;//g'
+}
+
+validate_stable_tag() {
+ tag="$1"
+ pattern='^stable[0-9]+(-[0-9]+)?$'
+
+ if [[ $tag =~ $pattern ]]; then
+ echo $tag
+ else
+ echo "The input '$tag' does not match the pattern."
+ exit 1
+ fi
+}
diff --git a/.github/scripts/deny-git-deps.py b/.github/scripts/deny-git-deps.py
index 4b831c9347f75bdc3c74c80d3af652c37e7ae459..622fc64c488123a153b438af8516f3fa65133776 100644
--- a/.github/scripts/deny-git-deps.py
+++ b/.github/scripts/deny-git-deps.py
@@ -19,6 +19,7 @@ KNOWN_BAD_GIT_DEPS = {
root = sys.argv[1] if len(sys.argv) > 1 else os.getcwd()
workspace = Workspace.from_path(root)
+errors = []
def check_dep(dep, used_by):
if dep.location != DependencyLocation.GIT:
@@ -27,14 +28,23 @@ def check_dep(dep, used_by):
if used_by in KNOWN_BAD_GIT_DEPS.get(dep.name, []):
print(f'๐คจ Ignoring git dependency {dep.name} in {used_by}')
else:
- print(f'๐ซ Found git dependency {dep.name} in {used_by}')
- sys.exit(1)
+ errors.append(f'๐ซ Found git dependency {dep.name} in {used_by}')
# Check the workspace dependencies that can be inherited:
for dep in workspace.dependencies:
check_dep(dep, "workspace")
+ if workspace.crates.find_by_name(dep.name):
+ if dep.location != DependencyLocation.PATH:
+ errors.append(f'๐ซ Workspace must use path to link local dependency {dep.name}')
+
# And the dependencies of each crate:
for crate in workspace.crates:
for dep in crate.dependencies:
check_dep(dep, crate.name)
+
+if errors:
+ print('โ Found errors:')
+ for error in errors:
+ print(error)
+ sys.exit(1)
diff --git a/.github/scripts/generate-prdoc.py b/.github/scripts/generate-prdoc.py
new file mode 100644
index 0000000000000000000000000000000000000000..ba7def20fcb99bb48830a0a75d789a1ca8c20397
--- /dev/null
+++ b/.github/scripts/generate-prdoc.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python3
+
+"""
+Generate the PrDoc for a Pull Request with a specific number, audience and bump level.
+
+It downloads and parses the patch from the GitHub API to opulate the prdoc with all modified crates.
+This will delete any prdoc that already exists for the PR if `--force` is passed.
+
+Usage:
+ python generate-prdoc.py --pr 1234 --audience "TODO" --bump "TODO"
+"""
+
+import argparse
+import os
+import re
+import sys
+import subprocess
+import toml
+import yaml
+import requests
+
+from github import Github
+import whatthepatch
+from cargo_workspace import Workspace
+
+# Download the patch and pass the info into `create_prdoc`.
+def from_pr_number(n, audience, bump, force):
+ print(f"Fetching PR '{n}' from GitHub")
+ g = Github()
+
+ repo = g.get_repo("paritytech/polkadot-sdk")
+ pr = repo.get_pull(n)
+
+ patch_url = pr.patch_url
+ patch = requests.get(patch_url).text
+
+ create_prdoc(n, audience, pr.title, pr.body, patch, bump, force)
+
+def create_prdoc(pr, audience, title, description, patch, bump, force):
+ path = f"prdoc/pr_{pr}.prdoc"
+
+ if os.path.exists(path):
+ if force == True:
+ print(f"Overwriting existing PrDoc for PR {pr}")
+ else:
+ print(f"PrDoc already exists for PR {pr}. Use --force to overwrite.")
+ sys.exit(1)
+ else:
+ print(f"No preexisting PrDoc for PR {pr}")
+
+ prdoc = { "doc": [{}], "crates": [] }
+
+ prdoc["title"] = title
+ prdoc["doc"][0]["audience"] = audience
+ prdoc["doc"][0]["description"] = description
+
+ workspace = Workspace.from_path(".")
+
+ modified_paths = []
+ for diff in whatthepatch.parse_patch(patch):
+ modified_paths.append(diff.header.new_path)
+
+ modified_crates = {}
+ for p in modified_paths:
+ # Go up until we find a Cargo.toml
+ p = os.path.join(workspace.path, p)
+ while not os.path.exists(os.path.join(p, "Cargo.toml")):
+ p = os.path.dirname(p)
+
+ with open(os.path.join(p, "Cargo.toml")) as f:
+ manifest = toml.load(f)
+
+ if not "package" in manifest:
+ print(f"File was not in any crate: {p}")
+ continue
+
+ crate_name = manifest["package"]["name"]
+ if workspace.crate_by_name(crate_name).publish:
+ modified_crates[crate_name] = True
+ else:
+ print(f"Skipping unpublished crate: {crate_name}")
+
+ print(f"Modified crates: {modified_crates.keys()}")
+
+ for crate_name in modified_crates.keys():
+ entry = { "name": crate_name }
+
+ if bump == 'silent' or bump == 'ignore' or bump == 'no change':
+ entry["validate"] = False
+ else:
+ entry["bump"] = bump
+
+ print(f"Adding crate {entry}")
+ prdoc["crates"].append(entry)
+
+ # write the parsed PR documentation back to the file
+ with open(path, "w") as f:
+ yaml.dump(prdoc, f)
+ print(f"PrDoc for PR {pr} written to {path}")
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--pr", type=int, required=True)
+ parser.add_argument("--audience", type=str, default="TODO")
+ parser.add_argument("--bump", type=str, default="TODO")
+ parser.add_argument("--force", type=str)
+ return parser.parse_args()
+
+if __name__ == "__main__":
+ args = parse_args()
+ force = True if args.force.lower() == "true" else False
+ print(f"Args: {args}, force: {force}")
+ from_pr_number(args.pr, args.audience, args.bump, force)
diff --git a/.github/scripts/generate-readmes.py b/.github/scripts/generate-readmes.py
new file mode 100755
index 0000000000000000000000000000000000000000..f838eaa29a74daafe9616d779d070aff36891347
--- /dev/null
+++ b/.github/scripts/generate-readmes.py
@@ -0,0 +1,136 @@
+#!/usr/bin/env python3
+
+"""
+A script to generate READMEs for all public crates,
+if they do not already have one.
+
+It relies on functions from the `check-workspace.py` script.
+
+The resulting README is based on a template defined below,
+and includes the crate name, description, license,
+and optionally - the SDK release version.
+
+# Example
+
+```sh
+python3 -m pip install toml
+.github/scripts/generate-readmes.py . --sdk-version 1.15.0
+```
+"""
+
+import os
+import toml
+import importlib
+import argparse
+
+check_workspace = importlib.import_module("check-workspace")
+
+README_TEMPLATE = """
+
+
+
+# {name}
+
+This crate is part of the [Polkadot SDK](https://github.com/paritytech/polkadot-sdk/).
+
+
+
+## Description
+
+{description}
+
+## Additional Resources
+
+In order to learn about Polkadot SDK, head over to the [Polkadot SDK Developer Documentation](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html).
+
+To learn about Polkadot, visit [polkadot.com](https://polkadot.com/).
+
+## License
+
+This crate is licensed with {license}.
+"""
+
+VERSION_TEMPLATE = """
+## Version
+
+This version of `{name}` is associated with Polkadot {sdk_version} release.
+"""
+
+
+def generate_readme(member, *, workspace_dir, workspace_license, sdk_version):
+ print(f"Loading manifest for: {member}")
+ manifest = toml.load(os.path.join(workspace_dir, member, "Cargo.toml"))
+ if manifest["package"].get("publish", True) == False:
+ print(f"โฉ Skipping un-published crate: {member}")
+ return
+ if os.path.exists(os.path.join(workspace_dir, member, "README.md")):
+ print(f"โฉ Skipping crate with an existing readme: {member}")
+ return
+ print(f"๐ Generating README for: {member}")
+
+ license = manifest["package"]["license"]
+ if isinstance(license, dict):
+ if not license.get("workspace", False):
+ print(
+ f"โ License for {member} is unexpectedly declared as workspace=false."
+ )
+ # Skipping this crate as it is not clear what license it should use.
+ return
+ license = workspace_license
+
+ name = manifest["package"]["name"]
+ description = manifest["package"]["description"]
+ description = description + "." if not description.endswith(".") else description
+
+ filled_readme = README_TEMPLATE.format(
+ name=name, description=description, license=license
+ )
+
+ if sdk_version:
+ filled_readme += VERSION_TEMPLATE.format(name=name, sdk_version=sdk_version)
+
+ with open(os.path.join(workspace_dir, member, "README.md"), "w") as new_readme:
+ new_readme.write(filled_readme)
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description="Generate readmes for published crates."
+ )
+
+ parser.add_argument(
+ "workspace_dir",
+ help="The directory to check",
+ metavar="workspace_dir",
+ type=str,
+ nargs=1,
+ )
+ parser.add_argument(
+ "--sdk-version",
+ help="Optional SDK release version",
+ metavar="sdk_version",
+ type=str,
+ nargs=1,
+ required=False,
+ )
+
+ args = parser.parse_args()
+ return (args.workspace_dir[0], args.sdk_version[0] if args.sdk_version else None)
+
+
+def main():
+ (workspace_dir, sdk_version) = parse_args()
+ root_manifest = toml.load(os.path.join(workspace_dir, "Cargo.toml"))
+ workspace_license = root_manifest["workspace"]["package"]["license"]
+ members = check_workspace.get_members(workspace_dir, [])
+ for member in members:
+ generate_readme(
+ member,
+ workspace_dir=workspace_dir,
+ workspace_license=workspace_license,
+ sdk_version=sdk_version,
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/.github/scripts/update-wishlist-leaderboard.py b/.github/scripts/update-wishlist-leaderboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..82d1085144844f0fc9b46d94f668ba9a153400a3
--- /dev/null
+++ b/.github/scripts/update-wishlist-leaderboard.py
@@ -0,0 +1,79 @@
+from github import Github
+import re
+import os
+from datetime import date
+
+g = Github(os.getenv("GH_TOKEN"))
+
+# Regex pattern to match wish format:
+wish_pattern = re.compile(
+ r"I wish for:? (https://github\.com/([a-zA-Z0-9_.-]+)/([a-zA-Z0-9_.-]+)/(issues|pull)/(\d+))"
+)
+
+wishlist_issue = g.get_repo(os.getenv("WISHLIST_REPOSITORY")).get_issue(
+ int(os.getenv("WISHLIST_ISSUE_NUMBER"))
+)
+new_leaderboard = (
+ "| Feature Request | Summary | Votes | Status |\n| --- | --- | --- | --- |\n"
+)
+wishes = {}
+issue_details = {}
+
+for comment in wishlist_issue.get_comments():
+ # in the comment body, if there is a string `#(\d)`, replace it with
+ # https://github.com/paritytech/polkadot-sdk/issues/(number)
+ updated_body = re.sub(
+ r"#(\d+)", r"https://github.com/paritytech/polkadot-sdk/issues/\1", comment.body
+ )
+
+ matches = wish_pattern.findall(updated_body)
+ for match in matches:
+ url, org, repo_name, _, issue_id = match
+ issue_key = (url, org, repo_name, issue_id)
+ if issue_key not in wishes:
+ wishes[issue_key] = []
+
+ # Get the author and upvoters of the wish comment.
+ wishes[issue_key].append(comment.user.id)
+ wishes[issue_key].extend(
+ [
+ reaction.user.id
+ for reaction in comment.get_reactions()
+ if reaction.content in ["+1", "heart", "rocket"]
+ ]
+ )
+
+ # Get upvoters of the desired issue.
+ desired_issue = g.get_repo(f"{org}/{repo_name}").get_issue(int(issue_id))
+ wishes[issue_key].extend(
+ [
+ reaction.user.id
+ for reaction in desired_issue.get_reactions()
+ if reaction.content in ["+1", "heart", "rocket"]
+ ]
+ )
+ issue_details[url] = [
+ desired_issue.title,
+ "๐พ Open" if desired_issue.state == "open" else "โ
Closed",
+ ]
+
+# Count unique wishes - the author of the wish, upvoters of the wish, and upvoters of the desired issue.
+for key in wishes:
+ wishes[key] = len(list(set(wishes[key])))
+
+# Sort wishes by count and add to the markdown table
+sorted_wishes = sorted(wishes.items(), key=lambda x: x[1], reverse=True)
+for (url, _, _, _), count in sorted_wishes:
+ [summary, status] = issue_details.get(url, "No summary available")
+ new_leaderboard += f"| {url} | {summary} | {count} | {status} |\n"
+new_leaderboard += f"\n> Last updated: {date.today().strftime('%Y-%m-%d')}\n"
+print(new_leaderboard)
+
+new_content = re.sub(
+ r"(\| Feature Request \|)(.*?)(> Last updated:)(.*?\n)",
+ new_leaderboard,
+ wishlist_issue.body,
+ flags=re.DOTALL,
+)
+
+wishlist_issue.edit(body=new_content)
diff --git a/.github/workflows/check-cargo-check-runtimes.yml b/.github/workflows/check-cargo-check-runtimes.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ebcf6c5fc9bd30b16d4cdfaa3d2fd8f35b9eb3e1
--- /dev/null
+++ b/.github/workflows/check-cargo-check-runtimes.yml
@@ -0,0 +1,136 @@
+name: Check Cargo Check Runtimes
+
+on:
+ pull_request:
+ types: [ opened, synchronize, reopened, ready_for_review, labeled ]
+
+
+# Jobs in this workflow depend on each other, only for limiting peak amount of spawned workers
+
+jobs:
+ # GitHub Actions allows using 'env' in a container context.
+ # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
+ # This workaround sets the container image for each job using 'set-image' job output.
+ set-image:
+ if: contains(github.event.label.name, 'GHA-migration') || contains(github.event.pull_request.labels.*.name, 'GHA-migration')
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ outputs:
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+ check-runtime-assets:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [set-image]
+ timeout-minutes: 20
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/assets
+
+ check-runtime-collectives:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [check-runtime-assets, set-image]
+ timeout-minutes: 20
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/collectives
+
+ check-runtime-coretime:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ needs: [check-runtime-assets, set-image]
+ timeout-minutes: 20
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/coretime
+
+ check-runtime-bridge-hubs:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ needs: [set-image]
+ timeout-minutes: 20
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/bridge-hubs
+
+ check-runtime-contracts:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ needs: [check-runtime-collectives, set-image]
+ timeout-minutes: 20
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/contracts
+
+ check-runtime-starters:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ needs: [check-runtime-assets, set-image]
+ timeout-minutes: 20
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/starters
+
+ check-runtime-testing:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ needs: [check-runtime-starters, set-image]
+ timeout-minutes: 20
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Run cargo check
+ uses: ./.github/actions/cargo-check-runtimes
+ with:
+ root: cumulus/parachains/runtimes/testing
+
+ confirm-required-jobs-passed:
+ runs-on: ubuntu-latest
+ name: All check-runtime-* tests passed
+ # If any new job gets added, be sure to add it to this array
+ needs:
+ - check-runtime-assets
+ - check-runtime-collectives
+ - check-runtime-coretime
+ - check-runtime-bridge-hubs
+ - check-runtime-contracts
+ - check-runtime-starters
+ - check-runtime-testing
+ steps:
+ - run: echo '### Good job! All the tests passed ๐' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/check-changed-files.yml b/.github/workflows/check-changed-files.yml
deleted file mode 100644
index 657c05cd047db40af642886eb2710e7324dd40ce..0000000000000000000000000000000000000000
--- a/.github/workflows/check-changed-files.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# Reusable workflow to perform checks and generate conditions for other workflows.
-# Currently it checks if any Rust (build-related) file is changed
-# and if the current (caller) workflow file is changed.
-# Example:
-#
-# jobs:
-# changes:
-# permissions:
-# pull-requests: read
-# uses: ./.github/workflows/check-changed-files.yml
-# some-job:
-# needs: changes
-# if: ${{ needs.changes.outputs.rust }}
-# .......
-
-name: Check changes files
-
-on:
- workflow_call:
- # Map the workflow outputs to job outputs
- outputs:
- rust:
- value: ${{ jobs.changes.outputs.rust }}
- description: 'true if any of the build-related OR current (caller) workflow files have changed'
- current-workflow:
- value: ${{ jobs.changes.outputs.current-workflow }}
- description: 'true if current (caller) workflow file has changed'
-
-jobs:
- changes:
- runs-on: ubuntu-latest
- permissions:
- pull-requests: read
- outputs:
- # true if current workflow (caller) file is changed
- rust: ${{ steps.filter.outputs.rust == 'true' || steps.filter.outputs.current-workflow == 'true' }}
- current-workflow: ${{ steps.filter.outputs.current-workflow }}
- steps:
- - id: current-file
- run: echo "current-workflow-file=$(echo ${{ github.workflow_ref }} | sed -nE "s/.*(\.github\/workflows\/[a-zA-Z0-9_-]*\.y[a]?ml)@refs.*/\1/p")" >> $GITHUB_OUTPUT
- - run: echo "${{ steps.current-file.outputs.current-workflow-file }}"
- # For pull requests it's not necessary to checkout the code
- - id: filter
- uses: dorny/paths-filter@v3
- with:
- predicate-quantifier: 'every'
- # current-workflow - check if the current (caller) workflow file is changed
- # rust - check if any Rust (build-related) file is changed
- filters: |
- current-workflow:
- - '${{ steps.current-file.outputs.current-workflow-file }}'
- rust:
- - '**/*'
- - '!.github/**/*'
- - '!prdoc/**/*'
- - '!docs/**/*'
- #
\ No newline at end of file
diff --git a/.github/workflows/check-frame-omni-bencher.yml b/.github/workflows/check-frame-omni-bencher.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e9db2d9129797b1707a273122c5edf19542f9381
--- /dev/null
+++ b/.github/workflows/check-frame-omni-bencher.yml
@@ -0,0 +1,85 @@
+name: Short benchmarks (frame-omni-bencher)
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [ opened, synchronize, reopened, ready_for_review, labeled ]
+ merge_group:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+env:
+ ARTIFACTS_NAME: frame-omni-bencher-artifacts
+
+jobs:
+ changes:
+ # TODO: remove once migration is complete or this workflow is fully stable
+ if: contains(github.event.label.name, 'GHA-migration')
+ permissions:
+ pull-requests: read
+ uses: ./.github/workflows/reusable-check-changed-files.yml
+
+ set-image:
+ # GitHub Actions allows using 'env' in a container context.
+ # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
+ # This workaround sets the container image for each job using 'set-image' job output.
+ runs-on: ubuntu-latest
+ needs: changes
+ if: ${{ needs.changes.outputs.rust }}
+ outputs:
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+
+ run-frame-omni-bencher:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [ set-image, changes ] # , build-frame-omni-bencher ]
+ if: ${{ needs.changes.outputs.rust }}
+ timeout-minutes: 30
+ strategy:
+ fail-fast: false # keep running other workflows even if one fails, to see the logs of all possible failures
+ matrix:
+ runtime:
+ [
+ westend-runtime,
+ rococo-runtime,
+ asset-hub-rococo-runtime,
+ asset-hub-westend-runtime,
+ bridge-hub-rococo-runtime,
+ bridge-hub-westend-runtime,
+ collectives-westend-runtime,
+ coretime-rococo-runtime,
+ coretime-westend-runtime,
+ people-rococo-runtime,
+ people-westend-runtime,
+ glutton-westend-runtime,
+ ]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ env:
+ PACKAGE_NAME: ${{ matrix.runtime }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: script
+ run: |
+ RUNTIME_BLOB_NAME=$(echo $PACKAGE_NAME | sed 's/-/_/g').compact.compressed.wasm
+ RUNTIME_BLOB_PATH=./target/release/wbuild/$PACKAGE_NAME/$RUNTIME_BLOB_NAME
+ forklift cargo build --release --locked -p $PACKAGE_NAME -p frame-omni-bencher --features runtime-benchmarks
+ echo "Running short benchmarking for PACKAGE_NAME=$PACKAGE_NAME and RUNTIME_BLOB_PATH=$RUNTIME_BLOB_PATH"
+ ls -lrt $RUNTIME_BLOB_PATH
+ ./target/release/frame-omni-bencher v1 benchmark pallet --runtime $RUNTIME_BLOB_PATH --all --steps 2 --repeat 1
+ confirm-frame-omni-benchers-passed:
+ runs-on: ubuntu-latest
+ name: All benchmarks passed
+ needs: run-frame-omni-bencher
+ steps:
+ - run: echo '### Good job! All the benchmarks passed ๐' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/check-licenses.yml b/.github/workflows/check-licenses.yml
index 3bc95305f7467ebbede90526eadb156b89b1e7f9..a74986048976ecc0974285da3f14a9f8ee2b683d 100644
--- a/.github/workflows/check-licenses.yml
+++ b/.github/workflows/check-licenses.yml
@@ -16,8 +16,8 @@ jobs:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- - uses: actions/setup-node@v4.0.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/setup-node@v4.0.3
with:
node-version: "18.x"
registry-url: "https://npm.pkg.github.com"
diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml
index 58065f369c9cf160b0b94c233df9df1016426d07..d10f34e6faef4012b6348b20400f5c304f317df4 100644
--- a/.github/workflows/check-links.yml
+++ b/.github/workflows/check-links.yml
@@ -18,17 +18,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Restore lychee cache
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.2 (7. Sep 2023)
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3.3.2 (7. Sep 2023)
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
# This should restore from the most recent one:
restore-keys: cache-lychee-
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023)
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.0 (22. Sep 2023)
- name: Lychee link checker
- uses: lycheeverse/lychee-action@c3089c702fbb949e3f7a8122be0c33c017904f9b # for v1.9.1 (10. Jan 2024)
+ uses: lycheeverse/lychee-action@2b973e86fc7b1f6b36a93795fe2c9c6ae1118621 # for v1.9.1 (10. Jan 2024)
with:
args: >-
--config .config/lychee.toml
diff --git a/.github/workflows/check-prdoc.yml b/.github/workflows/check-prdoc.yml
index c31dee06ec54a0154efc3ad46ff24c79de4d0d7b..69311c41dd6f11800b7a0c23e9f7ab8416e80178 100644
--- a/.github/workflows/check-prdoc.yml
+++ b/.github/workflows/check-prdoc.yml
@@ -6,7 +6,7 @@ on:
merge_group:
env:
- IMAGE: docker.io/paritytech/prdoc:v0.0.7
+ IMAGE: docker.io/paritytech/prdoc:v0.0.8
API_BASE: https://api.github.com/repos
REPO: ${{ github.repository }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -20,7 +20,7 @@ jobs:
if: github.event.pull_request.number != ''
steps:
- name: Checkout repo
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7
# we cannot show the version in this step (ie before checking out the repo)
# due to https://github.com/paritytech/prdoc/issues/15
- name: Check if PRdoc is required
diff --git a/.github/workflows/check-runtime-migration.yml b/.github/workflows/check-runtime-migration.yml
index 671673c02c09e0e0b5babceca6819c3ae7f05af7..b93a07bf61f1152e05df493fa9dc6d8b3f675a68 100644
--- a/.github/workflows/check-runtime-migration.yml
+++ b/.github/workflows/check-runtime-migration.yml
@@ -6,18 +6,16 @@ on:
- master
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
+ # Take a snapshot at 5am when most SDK devs are not working.
+ schedule:
+ - cron: "0 5 * * *"
merge_group:
+ workflow_dispatch:
+
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
-env:
- FORKLIFT_storage_s3_bucketName: ${{ secrets.FORKLIFT_storage_s3_bucketName }}
- FORKLIFT_storage_s3_accessKeyId: ${{ secrets.FORKLIFT_storage_s3_accessKeyId }}
- FORKLIFT_storage_s3_secretAccessKey: ${{ secrets.FORKLIFT_storage_s3_secretAccessKey }}
- FORKLIFT_storage_s3_endpointUrl: ${{ secrets.FORKLIFT_storage_s3_endpointUrl }}
- FORKLIFT_metrics_pushEndpoint: ${{ secrets.FORKLIFT_metrics_pushEndpoint }}
-
jobs:
set-image:
# GitHub Actions allows using 'env' in a container context.
@@ -26,24 +24,38 @@ jobs:
runs-on: ubuntu-latest
outputs:
IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ RUNNER: ${{ steps.set_runner.outputs.RUNNER }}
steps:
- name: Checkout
uses: actions/checkout@v4
- id: set_image
run: cat .github/env >> $GITHUB_OUTPUT
- # rococo and westend are disabled for now (no access to parity-chains.parity.io)
+ # By default we use spot machines that can be terminated at any time.
+ # Merge queues use persistent runners to avoid kicking off from queue when the runner is terminated.
+ - id: set_runner
+ run: |
+ # Run merge queues on persistent runners
+ if [[ $GITHUB_REF_NAME == *"gh-readonly-queue"* ]]; then
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy-persistent" >> $GITHUB_OUTPUT
+ else
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy" >> $GITHUB_OUTPUT
+ fi
+ # More info can be found here: https://github.com/paritytech/polkadot/pull/5865
check-runtime-migration:
- runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 40
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ # We need to set this to rather long to allow the snapshot to be created, but the average time
+ # should be much lower.
+ timeout-minutes: 60
needs: [set-image]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
strategy:
fail-fast: false
matrix:
- network: [
- # westend,
- # rococo,
+ network:
+ [
+ westend,
+ rococo,
asset-hub-westend,
asset-hub-rococo,
bridge-hub-westend,
@@ -53,18 +65,18 @@ jobs:
coretime-rococo,
]
include:
- # - network: westend
- # package: westend-runtime
- # wasm: westend_runtime.compact.compressed.wasm
- # uri: "wss://westend-try-runtime-node.parity-chains.parity.io:443"
- # subcommand_extra_args: "--no-weight-warnings"
- # command_extra_args: ""
- # - network: rococo
- # package: rococo-runtime
- # wasm: rococo_runtime.compact.compressed.wasm
- # uri: "wss://rococo-try-runtime-node.parity-chains.parity.io:443"
- # subcommand_extra_args: "--no-weight-warnings"
- # command_extra_args: ""
+ - network: westend
+ package: westend-runtime
+ wasm: westend_runtime.compact.compressed.wasm
+ uri: "wss://try-runtime-westend.polkadot.io:443"
+ subcommand_extra_args: "--no-weight-warnings"
+ command_extra_args: ""
+ - network: rococo
+ package: rococo-runtime
+ wasm: rococo_runtime.compact.compressed.wasm
+ uri: "wss://try-runtime-rococo.polkadot.io:443"
+ subcommand_extra_args: "--no-weight-warnings"
+ command_extra_args: ""
- network: asset-hub-westend
package: asset-hub-westend-runtime
wasm: asset_hub_westend_runtime.compact.compressed.wasm
@@ -101,22 +113,54 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- - name: script
- run: |
- echo "Running ${{ matrix.network }} runtime migration check"
- 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
+ - name: Download CLI
+ run: |
+ curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.7.0/try-runtime-x86_64-unknown-linux-musl -o try-runtime
chmod +x ./try-runtime
echo "Using try-runtime-cli version:"
./try-runtime --version
+ - name: Get Date
+ id: get-date
+ run: |
+ echo "today=$(/bin/date -u "+%Y%m%d")" >> $GITHUB_OUTPUT
+ shell: bash
+
+ - name: Download Snapshot
+ uses: actions/cache@v4
+ with:
+ path: snapshot.raw
+ key: try-runtime-snapshot-${{ matrix.network }}-${{ steps.get-date.outputs.today }}
+ save-always: true
+
+ - name: Create Snapshot If Stale
+ if: ${{ hashFiles('snapshot.raw') == '' }}
+ run: |
+ echo "Creating new snapshot for today (${{ steps.get-date.outputs.today }})"
+ ./try-runtime create-snapshot --uri ${{ matrix.uri }} snapshot.raw
+
+ - name: Build Runtime
+ run: |
echo "---------- Building ${{ matrix.package }} runtime ----------"
- time forklift cargo build --release --locked -p ${{ matrix.package }} --features try-runtime
+ time forklift cargo build --release --locked -p ${{ matrix.package }} --features try-runtime -q
+
+ - name: Run Check
+ run: |
+ echo "Running ${{ matrix.network }} runtime migration check"
+ export RUST_LOG=remote-ext=debug,runtime=debug
echo "---------- Executing on-runtime-upgrade for ${{ matrix.network }} ----------"
time ./try-runtime ${{ matrix.command_extra_args }} \
--runtime ./target/release/wbuild/${{ matrix.package }}/${{ matrix.wasm }} \
- on-runtime-upgrade --disable-spec-version-check --checks=all ${{ matrix.subcommand_extra_args }} live --uri ${{ matrix.uri }}
+ on-runtime-upgrade --disable-spec-version-check --checks=all ${{ matrix.subcommand_extra_args }} snap -p snapshot.raw
sleep 5
+ # name of this job must be unique across all workflows
+ # otherwise GitHub will mark all these jobs as required
+ confirm-required-checks-passed:
+ runs-on: ubuntu-latest
+ name: All runtime migrations passed
+ # If any new job gets added, be sure to add it to this array
+ needs: [check-runtime-migration]
+ steps:
+ - run: echo '### Good job! All the checks passed ๐' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/check-semver.yml b/.github/workflows/check-semver.yml
index 04c63f4192b29ca1773d1018698b2abe6a666e1c..15eb32f4062cfaa0a18125117c8015f0e57f05bb 100644
--- a/.github/workflows/check-semver.yml
+++ b/.github/workflows/check-semver.yml
@@ -3,8 +3,14 @@ name: Check semver
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
- paths:
- - prdoc/*.prdoc
+ workflow_dispatch:
+
+concurrency:
+ group: check-semver-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+env:
+ TOOLCHAIN: nightly-2024-06-01
jobs:
check-semver:
@@ -12,7 +18,48 @@ jobs:
container:
image: docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ with:
+ fetch-depth: 2
+
+ - name: extra git setup
+ run: |
+ git config --global --add safe.directory '*'
+
+ git branch old HEAD^1
+
+ - name: Comment If Backport
+ if: ${{ startsWith(github.event.pull_request.base.ref, 'stable') }}
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ PR: ${{ github.event.pull_request.number }}
+ run: |
+ echo "This is a backport into stable."
+
+ wget -q https://github.com/cli/cli/releases/download/v2.51.0/gh_2.51.0_linux_amd64.tar.gz -O gh.tar.gz && \
+ tar -xzf gh.tar.gz && mv gh_2.51.0_linux_amd64/bin/gh /usr/local/bin/gh && rm gh.tar.gz
+ chmod +x /usr/local/bin/gh
+
+ cat > msg.txt <Emergency Bypass
+
+
+ If you really need to bypass this check: add validate: false
to each crate
+ in the Prdoc where a breaking change is introduced. This will release a new major
+ version of that crate and all its reverse dependencies and basically break the release.
+
+
+
+ EOF
+ gh issue comment $PR --edit-last -F msg.txt || gh issue comment $PR -F msg.txt
+
+ echo "PRDOC_EXTRA_ARGS=--max-bump minor" >> $GITHUB_ENV
- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
@@ -21,25 +68,21 @@ jobs:
- name: Rust compilation prerequisites
run: |
- rustup default nightly-2024-03-01
- rustup target add wasm32-unknown-unknown --toolchain nightly-2024-03-01
- rustup component add rust-src --toolchain nightly-2024-03-01
+ rustup default $TOOLCHAIN
+ rustup component add rust-src --toolchain $TOOLCHAIN
- name: install parity-publish
- run: cargo install parity-publish@0.5.1
-
- - name: extra git setup
- run: |
- git config --global --add safe.directory '*'
- git fetch --no-tags --no-recurse-submodules --depth=1 origin master
- git branch old origin/master
+ # Set the target dir to cache the build.
+ run: CARGO_TARGET_DIR=./target/ cargo install parity-publish@0.8.0 -q
- name: check semver
run: |
export CARGO_TARGET_DIR=target
export RUSTFLAGS='-A warnings -A missing_docs'
export SKIP_WASM_BUILD=1
- if ! parity-publish --color always prdoc --since old --validate prdoc/pr_$PR.prdoc --toolchain nightly-2024-03-01 -v; then
+
+ if ! parity-publish --color always prdoc --since old --validate prdoc/pr_$PR.prdoc $PRDOC_EXTRA_ARGS -v --toolchain $TOOLCHAIN; then
+
cat <> $GITHUB_OUTPUT
fmt:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
needs: [set-image]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Cargo fmt
run: cargo +nightly fmt --all -- --check
check-dependency-rules:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: check dependency rules
run: |
cd substrate/
../.gitlab/ensure-deps.sh
check-rust-feature-propagation:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
needs: [set-image]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - name: fetch deps
+ run: |
+ # Pull all dependencies eagerly:
+ time cargo metadata --format-version=1 --locked > /dev/null
- name: run zepter
- run: zepter run check
+ run: |
+ zepter --version
+ time zepter run check
test-rust-features:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
needs: [set-image]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: run rust features
run: bash .gitlab/rust-features.sh .
check-toml-format:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
needs: [set-image]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: check toml format
run: |
taplo format --check --config .config/taplo.toml
echo "Please run `taplo format --config .config/taplo.toml` to fix any toml formatting issues"
check-workspace:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023)
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.0 (22. Sep 2023)
- name: install python deps
run: |
sudo apt-get update && sudo apt-get install -y python3-pip python3
@@ -94,16 +100,18 @@ jobs:
--exclude
"substrate/frame/contracts/fixtures/build"
"substrate/frame/contracts/fixtures/contracts/common"
+ "substrate/frame/revive/fixtures/build"
+ "substrate/frame/revive/fixtures/contracts/common"
- name: deny git deps
run: python3 .github/scripts/deny-git-deps.py .
check-markdown:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
steps:
- name: Checkout sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Setup Node.js
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@v4.0.3
with:
node-version: "18.x"
registry-url: "https://npm.pkg.github.com"
@@ -121,12 +129,12 @@ jobs:
markdownlint --config "$CONFIG" --ignore target .
check-umbrella:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ timeout-minutes: 20
needs: [set-image]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023)
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.0 (22. Sep 2023)
- name: install python deps
run: pip3 install "cargo-workspace>=1.2.4" toml
- name: check umbrella correctness
@@ -148,3 +156,28 @@ jobs:
git diff
exit 1
fi
+ check-fail-ci:
+ runs-on: ubuntu-latest
+ container:
+ # there's no "rg" in ci-unified, and tools is a smaller image anyway
+ image: "paritytech/tools:latest"
+ # paritytech/tools uses "nonroot" user by default, which doesn't have enough
+ # permissions to create GHA context
+ options: --user root
+ steps:
+ - name: Fetch latest code
+ uses: actions/checkout@v4
+ - name: Check
+ run: |
+ set +e
+ rg --line-number --hidden --type rust --glob '!{.git,target}' "$ASSERT_REGEX" .; exit_status=$?
+ if [ $exit_status -eq 0 ]; then
+ echo "$ASSERT_REGEX was found, exiting with 1";
+ exit 1;
+ else
+ echo "No $ASSERT_REGEX was found, exiting with 0";
+ exit 0;
+ fi
+ env:
+ ASSERT_REGEX: "FAIL-CI"
+ GIT_DEPTH: 1
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ad9d0d1a959d6911fcafeb51b55f08a8dc200fc8
--- /dev/null
+++ b/.github/workflows/checks.yml
@@ -0,0 +1,109 @@
+name: Checks
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ merge_group:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+permissions: {}
+
+jobs:
+ # temporary disabled because currently doesn't work in merge queue
+ # changes:
+ # permissions:
+ # pull-requests: read
+ # uses: ./.github/workflows/reusable-check-changed-files.yml
+ set-image:
+ # GitHub Actions allows using 'env' in a container context.
+ # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
+ # This workaround sets the container image for each job using 'set-image' job output.
+ runs-on: ubuntu-latest
+ outputs:
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ RUNNER: ${{ steps.set_runner.outputs.RUNNER }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+ # By default we use spot machines that can be terminated at any time.
+ # Merge queues use persistent runners to avoid kicking off from queue when the runner is terminated.
+ - id: set_runner
+ run: |
+ # Run merge queues on persistent runners
+ if [[ $GITHUB_REF_NAME == *"gh-readonly-queue"* ]]; then
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy-persistent" >> $GITHUB_OUTPUT
+ else
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy" >> $GITHUB_OUTPUT
+ fi
+ cargo-clippy:
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ needs: [set-image]
+ # if: ${{ needs.changes.outputs.rust }}
+ timeout-minutes: 40
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ env:
+ RUSTFLAGS: "-D warnings"
+ SKIP_WASM_BUILD: 1
+ steps:
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - name: script
+ run: |
+ forklift cargo clippy --all-targets --locked --workspace
+ forklift cargo clippy --all-targets --all-features --locked --workspace
+ check-try-runtime:
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ needs: [set-image]
+ # if: ${{ needs.changes.outputs.rust }}
+ timeout-minutes: 40
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - name: script
+ run: |
+ forklift cargo check --locked --all --features try-runtime
+ # this is taken from cumulus
+ # Check that parachain-template will compile with `try-runtime` feature flag.
+ forklift cargo check --locked -p parachain-template-node --features try-runtime
+ # add after https://github.com/paritytech/substrate/pull/14502 is merged
+ # experimental code may rely on try-runtime and vice-versa
+ forklift cargo check --locked --all --features try-runtime,experimental
+ # check-core-crypto-features works fast without forklift
+ check-core-crypto-features:
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ needs: [set-image]
+ # if: ${{ needs.changes.outputs.rust }}
+ timeout-minutes: 30
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - name: script
+ run: |
+ cd substrate/primitives/core
+ ./check-features-variants.sh
+ cd -
+ cd substrate/primitives/application-crypto
+ ./check-features-variants.sh
+ cd -
+ cd substrate/primitives/keyring
+ ./check-features-variants.sh
+ cd -
+ # name of this job must be unique across all workflows
+ # otherwise GitHub will mark all these jobs as required
+ confirm-required-checks-passed:
+ runs-on: ubuntu-latest
+ name: All checks passed
+ # If any new job gets added, be sure to add it to this array
+ needs: [cargo-clippy, check-try-runtime, check-core-crypto-features]
+ steps:
+ - run: echo '### Good job! All the checks passed ๐' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/cmd.yml b/.github/workflows/cmd.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7a742751005d9c8ce324c1220366403764b6082b
--- /dev/null
+++ b/.github/workflows/cmd.yml
@@ -0,0 +1,452 @@
+name: Command
+
+on:
+ issue_comment: # listen for comments on issues
+ types: [ created ]
+
+permissions: # allow the action to comment on the PR
+ contents: write
+ issues: write
+ pull-requests: write
+ actions: read
+
+jobs:
+ is-org-member:
+ if: startsWith(github.event.comment.body, '/cmd')
+ runs-on: ubuntu-latest
+ outputs:
+ member: ${{ steps.is-member.outputs.result }}
+ steps:
+ - name: Generate token
+ id: generate_token
+ uses: tibdex/github-app-token@v2.1.0
+ with:
+ app_id: ${{ secrets.CMD_BOT_APP_ID }}
+ private_key: ${{ secrets.CMD_BOT_APP_KEY }}
+
+ - name: Check if user is a member of the organization
+ id: is-member
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ steps.generate_token.outputs.token }}
+ result-encoding: string
+ script: |
+ const fs = require("fs");
+ try {
+ const org = '${{ github.event.repository.owner.login }}';
+ const username = '${{ github.event.comment.user.login }}';
+
+ const membership = await github.rest.orgs.checkMembershipForUser({
+ org: org,
+ username: username
+ });
+
+ console.log(membership, membership.status, membership.status === 204);
+
+ if (membership.status === 204) {
+ return 'true';
+ } else {
+ console.log(membership);
+ fs.appendFileSync(process.env["GITHUB_STEP_SUMMARY"], `${membership.data && membership.data.message || 'Unknown error happened, please check logs'}`);
+ }
+ } catch (error) {
+ console.log(error)
+ }
+
+ return 'false';
+
+ reject-non-members:
+ needs: is-org-member
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && needs.is-org-member.outputs.member != 'true' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Add reaction to rejected comment
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: 'confused'
+ })
+
+ - name: Comment PR (Rejected)
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: `Sorry, only members of the organization ${{ github.event.repository.owner.login }} members can run commands.`
+ })
+
+ acknowledge:
+ needs: is-org-member
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && needs.is-org-member.outputs.member == 'true' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Add reaction to triggered comment
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: 'eyes'
+ })
+
+ clean:
+ needs: is-org-member
+ runs-on: ubuntu-latest
+ steps:
+ - name: Clean previous comments
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && contains(github.event.comment.body, '--clean') && needs.is-org-member.outputs.member == 'true' }}
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.issues.listComments({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo
+ }).then(comments => {
+ for (let comment of comments.data) {
+ console.log(comment)
+ if (
+ ${{ github.event.comment.id }} !== comment.id &&
+ (
+ (
+ (
+ comment.body.startsWith('Command') ||
+ comment.body.startsWith('Command') ||
+ comment.body.startsWith('Sorry, only ')
+ ) && comment.user.type === 'Bot'
+ ) ||
+ (comment.body.startsWith('/cmd') && comment.user.login === context.actor)
+ )
+ ) {
+ github.rest.issues.deleteComment({
+ comment_id: comment.id,
+ owner: context.repo.owner,
+ repo: context.repo.repo
+ })
+ }
+ }
+ })
+ help:
+ needs: [ clean, is-org-member ]
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && contains(github.event.comment.body, '--help') && needs.is-org-member.outputs.member == 'true' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Get command
+ uses: actions-ecosystem/action-regex-match@v2
+ id: get-pr-comment
+ with:
+ text: ${{ github.event.comment.body }}
+ regex: '^(\/cmd )([-\/\s\w.=:]+)$' # see explanation in docs/contributor/commands-readme.md#examples
+
+ - name: Save output of help
+ id: help
+ env:
+ CMD: ${{ steps.get-pr-comment.outputs.group2 }} # to avoid "" around the command
+ run: |
+ echo 'help<> $GITHUB_OUTPUT
+ python3 .github/scripts/cmd/cmd.py $CMD >> $GITHUB_OUTPUT
+ echo 'EOF' >> $GITHUB_OUTPUT
+
+ - name: Comment PR (Help)
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: `Command help:
+
+ \`\`\`
+ ${{ steps.help.outputs.help }}
+ \`\`\`
+
+ `
+ })
+
+ - name: Add confused reaction on failure
+ uses: actions/github-script@v7
+ if: ${{ failure() }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: 'confused'
+ })
+
+ - name: Add ๐ reaction on success
+ uses: actions/github-script@v7
+ if: ${{ !failure() }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: '+1'
+ })
+
+ set-image:
+ needs: [ clean, is-org-member ]
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && !contains(github.event.comment.body, '--help') && needs.is-org-member.outputs.member == 'true' }}
+ runs-on: ubuntu-latest
+ outputs:
+ IMAGE: ${{ steps.set-image.outputs.IMAGE }}
+ RUNNER: ${{ steps.set-image.outputs.RUNNER }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - id: set-image
+ run: |
+ BODY=$(echo "${{ github.event.comment.body }}" | xargs)
+ IMAGE_OVERRIDE=$(echo $BODY | grep -oe 'docker.io/paritytech/ci-unified:.*\s' | xargs)
+
+ cat .github/env >> $GITHUB_OUTPUT
+
+ if [ -n "$IMAGE_OVERRIDE" ]; then
+ echo "IMAGE=$IMAGE_OVERRIDE" >> $GITHUB_OUTPUT
+ fi
+
+ if [[ $BODY == "/cmd bench"* ]]; then
+ echo "RUNNER=arc-runners-polkadot-sdk-benchmark" >> $GITHUB_OUTPUT
+ elif [[ $BODY == "/cmd update-ui"* ]]; then
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy" >> $GITHUB_OUTPUT
+ else
+ echo "RUNNER=ubuntu-latest" >> $GITHUB_OUTPUT
+ fi
+
+ # Get PR branch name, because the issue_comment event does not contain the PR branch name
+ get-pr-branch:
+ needs: [ set-image ]
+ runs-on: ubuntu-latest
+ outputs:
+ pr-branch: ${{ steps.get-pr.outputs.pr_branch }}
+ repo: ${{ steps.get-pr.outputs.repo }}
+ steps:
+ - name: Check if the issue is a PR
+ id: check-pr
+ run: |
+ if [ -n "${{ github.event.issue.pull_request.url }}" ]; then
+ echo "This is a pull request comment"
+ else
+ echo "This is not a pull request comment"
+ exit 1
+ fi
+
+ - name: Get PR Branch Name and Repo
+ if: steps.check-pr.outcome == 'success'
+ id: get-pr
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const pr = await github.rest.pulls.get({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ pull_number: context.issue.number,
+ });
+ const prBranch = pr.data.head.ref;
+ const repo = pr.data.head.repo.full_name;
+ console.log(prBranch, repo)
+ core.setOutput('pr_branch', prBranch);
+ core.setOutput('repo', repo);
+
+ - name: Use PR Branch Name and Repo
+ run: |
+ echo "The PR branch is ${{ steps.get-pr.outputs.pr_branch }}"
+ echo "The repository is ${{ steps.get-pr.outputs.repo }}"
+
+ cmd:
+ needs: [ set-image, get-pr-branch ]
+ env:
+ JOB_NAME: 'cmd'
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - name: Get command
+ uses: actions-ecosystem/action-regex-match@v2
+ id: get-pr-comment
+ with:
+ text: ${{ github.event.comment.body }}
+ regex: '^(\/cmd )([-\/\s\w.=:]+)$' # see explanation in docs/contributor/commands-readme.md#examples
+
+ - name: Build workflow link
+ if: ${{ !contains(github.event.comment.body, '--quiet') }}
+ id: build-link
+ run: |
+ # Get exactly the CMD job link, filtering out the other jobs
+ jobLink=$(curl -s \
+ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
+ -H "Accept: application/vnd.github.v3+json" \
+ https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs | jq '.jobs[] | select(.name | contains("${{ env.JOB_NAME }}")) | .html_url')
+
+ runLink=$(curl -s \
+ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
+ -H "Accept: application/vnd.github.v3+json" \
+ https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }} | jq '.html_url')
+
+ echo "job_url=${jobLink}"
+ echo "run_url=${runLink}"
+ echo "job_url=$jobLink" >> $GITHUB_OUTPUT
+ echo "run_url=$runLink" >> $GITHUB_OUTPUT
+
+
+ - name: Comment PR (Start)
+ if: ${{ !contains(github.event.comment.body, '--quiet') }}
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ let job_url = ${{ steps.build-link.outputs.job_url }}
+
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: `Command "${{ steps.get-pr-comment.outputs.group2 }}" has started ๐ [See logs here](${job_url})`
+ })
+
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ repository: ${{ needs.get-pr-branch.outputs.repo }}
+ ref: ${{ needs.get-pr-branch.outputs.pr-branch }}
+
+ - name: Install dependencies for bench
+ if: startsWith(steps.get-pr-comment.outputs.group2, 'bench')
+ run: cargo install subweight frame-omni-bencher --locked
+
+ - name: Run cmd
+ id: cmd
+ env:
+ CMD: ${{ steps.get-pr-comment.outputs.group2 }} # to avoid "" around the command
+ run: |
+ echo "Running command: '$CMD' on '${{ needs.set-image.outputs.RUNNER }}' runner, container: '${{ needs.set-image.outputs.IMAGE }}'"
+ echo "RUST_NIGHTLY_VERSION: $RUST_NIGHTLY_VERSION"
+ # Fixes "detected dubious ownership" error in the ci
+ git config --global --add safe.directory '*'
+ git remote -v
+ python3 .github/scripts/cmd/cmd.py $CMD
+ git status
+ git diff
+
+ - name: Commit changes
+ run: |
+ if [ -n "$(git status --porcelain)" ]; then
+ git config --local user.email "action@github.com"
+ git config --local user.name "GitHub Action"
+
+ git pull origin ${{ needs.get-pr-branch.outputs.pr-branch }}
+ git add .
+ git restore --staged Cargo.lock # ignore changes in Cargo.lock
+ git commit -m "Update from ${{ github.actor }} running command '${{ steps.get-pr-comment.outputs.group2 }}'" || true
+ git push origin ${{ needs.get-pr-branch.outputs.pr-branch }}
+ else
+ echo "Nothing to commit";
+ fi
+
+ - name: Run Subweight
+ id: subweight
+ if: startsWith(steps.get-pr-comment.outputs.group2, 'bench')
+ shell: bash
+ run: |
+ git fetch
+ result=$(subweight compare commits \
+ --path-pattern "./**/weights/**/*.rs,./**/weights.rs" \
+ --method asymptotic \
+ --format markdown \
+ --no-color \
+ --change added changed \
+ --ignore-errors \
+ refs/remotes/origin/master ${{ github.ref }})
+
+ # Save the multiline result to the output
+ {
+ echo "result<> $GITHUB_OUTPUT
+
+ - name: Comment PR (End)
+ if: ${{ !failure() && !contains(github.event.comment.body, '--quiet') }}
+ uses: actions/github-script@v7
+ env:
+ SUBWEIGHT: '${{ steps.subweight.outputs.result }}'
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ let runUrl = ${{ steps.build-link.outputs.run_url }}
+ let subweight = process.env.SUBWEIGHT;
+
+ let subweightCollapsed = subweight
+ ? `\n\nSubweight results: \n\n${subweight}\n\n `
+ : '';
+
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: `Command "${{ steps.get-pr-comment.outputs.group2 }}" has finished โ
[See logs here](${runUrl})${subweightCollapsed}`
+ })
+
+ - name: Comment PR (Failure)
+ if: ${{ failure() && !contains(github.event.comment.body, '--quiet') }}
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ let jobUrl = ${{ steps.build-link.outputs.job_url }}
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: `Command "${{ steps.get-pr-comment.outputs.group2 }}" has failed โ! [See logs here](${jobUrl})`
+ })
+
+ - name: Add ๐ reaction on failure
+ uses: actions/github-script@v7
+ if: ${{ failure() }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: 'confused'
+ })
+
+ - name: Add ๐ reaction on success
+ uses: actions/github-script@v7
+ if: ${{ !failure() }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: '+1'
+ })
diff --git a/.github/workflows/command-backport.yml b/.github/workflows/command-backport.yml
new file mode 100644
index 0000000000000000000000000000000000000000..72da40f198394a0d651976721338bbc256d5855e
--- /dev/null
+++ b/.github/workflows/command-backport.yml
@@ -0,0 +1,66 @@
+name: Backport into stable
+
+on:
+ # This trigger can be problematic, see: https://securitylab.github.com/resources/github-actions-preventing-pwn-requests/
+ # In our case it is fine since we only run it on merged Pull Requests and do not execute any of the repo code itself.
+ pull_request_target:
+ types: [ closed, labeled ]
+
+permissions:
+ contents: write # so it can comment
+ pull-requests: write # so it can create pull requests
+
+jobs:
+ backport:
+ name: Backport pull request
+ runs-on: ubuntu-latest
+
+ # The 'github.event.pull_request.merged' ensures that it got into master:
+ if: >
+ ( !startsWith(github.event.pull_request.base.ref, 'stable') ) &&
+ (
+ github.event_name == 'pull_request_target' &&
+ github.event.pull_request.merged &&
+ github.event.pull_request.base.ref == 'master' &&
+ contains(github.event.pull_request.labels.*.name, 'A4-needs-backport')
+ )
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Create backport pull requests
+ uses: korthout/backport-action@v3
+ id: backport
+ with:
+ target_branches: stable2407
+ merge_commits: skip
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ pull_description: |
+ Backport #${pull_number} into `${target_branch}` (cc @${pull_author}).
+
+
+ pull_title: |
+ [${target_branch}] Backport #${pull_number}
+ experimental: >
+ {
+ "conflict_resolution": "draft_commit_conflicts"
+ }
+
+ - name: Label Backports
+ if: ${{ steps.backport.outputs.created_pull_numbers != '' }}
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const pullNumbers = '${{ steps.backport.outputs.created_pull_numbers }}'.split(' ');
+
+ for (const pullNumber of pullNumbers) {
+ await github.rest.issues.addLabels({
+ issue_number: parseInt(pullNumber),
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ labels: ['A3-backport']
+ });
+ console.log(`Added A3-backport label to PR #${pullNumber}`);
+ }
diff --git a/.github/workflows/command-inform.yml b/.github/workflows/command-inform.yml
new file mode 100644
index 0000000000000000000000000000000000000000..97346395319362b0455bcbcfbb490fa23e6b3b07
--- /dev/null
+++ b/.github/workflows/command-inform.yml
@@ -0,0 +1,22 @@
+name: Inform of new command action
+
+on:
+ issue_comment:
+ types: [ created ]
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+ # Temporary disable the bot until the new command bot works properly
+ if: github.event.issue.pull_request && startsWith(github.event.comment.body, 'bot ') && false # disabled for now, until tested
+ steps:
+ - name: Inform that the new command exist
+ uses: actions/github-script@v7
+ with:
+ script: |
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: 'We have migrated the command bot to GHA Please, see the new usage instructions here . Soon the old commands will be disabled.'
+ })
\ No newline at end of file
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..523c2b19ba892a760cb553fa9b33fccb6597bc68
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,141 @@
+name: Docs
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review, labeled]
+ merge_group:
+
+concurrency:
+ group: ${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
+
+jobs:
+ set-image:
+ # GitHub Actions allows using 'env' in a container context.
+ # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
+ # This workaround sets the container image for each job using 'set-image' job output.
+ # TODO: remove once migration is complete or this workflow is fully stable
+ if: contains(github.event.label.name, 'GHA-migration') || contains(github.event.pull_request.labels.*.name, 'GHA-migration')
+ runs-on: ubuntu-latest
+ outputs:
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+ test-rustdoc:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@v4
+ - run: forklift cargo doc --workspace --all-features --no-deps
+ env:
+ SKIP_WASM_BUILD: 1
+ test-doc:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@v4
+ - run: forklift cargo test --doc --workspace
+ env:
+ RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
+
+ build-rustdoc:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [set-image, test-rustdoc]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@v4
+ - run: forklift cargo doc --all-features --workspace --no-deps
+ env:
+ SKIP_WASM_BUILD: 1
+ 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"
+ - run: rm -f ./target/doc/.lock
+ - run: mv ./target/doc ./crate-docs
+ - name: Inject Simple Analytics script
+ run: |
+ script_content=" "
+ docs_dir="./crate-docs"
+
+ inject_simple_analytics() {
+ find "$1" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'file="{}"; echo "Adding Simple Analytics script to $file"; sed -i "s||'"$2"'|" "$file";'
+ }
+
+ inject_simple_analytics "$docs_dir" "$script_content"
+ - run: echo " " > ./crate-docs/index.html
+ - uses: actions/upload-artifact@v4
+ with:
+ name: ${{ github.sha }}-doc
+ path: ./crate-docs/
+ retention-days: 1
+ if-no-files-found: error
+
+ build-implementers-guide:
+ runs-on: ubuntu-latest
+ container:
+ image: paritytech/mdbook-utils:e14aae4a-20221123
+ options: --user root
+ steps:
+ - uses: actions/checkout@v4
+ - run: mdbook build ./polkadot/roadmap/implementers-guide
+ - run: mkdir -p artifacts
+ - run: mv polkadot/roadmap/implementers-guide/book artifacts/
+ - uses: actions/upload-artifact@v4
+ with:
+ name: ${{ github.sha }}-guide
+ path: ./artifacts/
+ retention-days: 1
+ if-no-files-found: error
+
+ publish-rustdoc:
+ if: github.ref == 'refs/heads/master'
+ runs-on: ubuntu-latest
+ environment: subsystem-benchmarks
+ needs: [build-rustdoc, build-implementers-guide]
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: gh-pages
+ - 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: Ensure destination dir does not exist
+ run: |
+ rm -rf book/
+ rm -rf ${REF_NAME}
+ env:
+ REF_NAME: ${{ github.head_ref || github.ref_name }}
+ - name: Download rustdocs
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ github.sha }}-doc
+ path: ${{ github.head_ref || github.ref_name }}
+ - name: Download guide
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ github.sha }}-guide
+ path: /tmp
+ - run: mkdir -p book
+ - name: Move book files
+ run: mv /tmp/book/html/* book/
+ - name: Push to GH-Pages branch
+ uses: github-actions-x/commit@v2.9
+ with:
+ github-token: ${{ steps.app-token.outputs.token }}
+ push-branch: "gh-pages"
+ commit-message: "___Updated docs for ${{ github.head_ref || github.ref_name }}___"
+ force-add: "true"
+ files: ${{ github.head_ref || github.ref_name }}/ book/
+ name: devops-parity
+ email: devops-team@parity.io
diff --git a/.github/workflows/fork-sync-action.yml b/.github/workflows/fork-sync-action.yml
new file mode 100644
index 0000000000000000000000000000000000000000..69e9e93bf54b023330232c0fe5df0430832a6e2b
--- /dev/null
+++ b/.github/workflows/fork-sync-action.yml
@@ -0,0 +1,20 @@
+# This Workflow is not supposed to run in the paritytech/polkadot-sdk repo.
+# This Workflow is supposed to run only in the forks of the repo,
+# paritytech-release/polkadot-sdk specifically,
+# to automatically maintain the critical fork synced with the upstream.
+# This Workflow should be always disabled in the paritytech/polkadot-sdk repo.
+
+name: Sync the forked repo with the upstream
+on:
+ schedule:
+ - cron: "0 0/4 * * *"
+ workflow_dispatch:
+
+jobs:
+ job_sync_branches:
+ uses: paritytech-release/sync-workflows/.github/workflows/sync-with-upstream.yml@latest
+ with:
+ fork_writer_app_id: ${{ vars.UPSTREAM_CONTENT_SYNC_APP_ID}}
+ fork_owner: ${{ vars.RELEASE_ORG}}
+ secrets:
+ fork_writer_app_key: ${{ secrets.UPSTREAM_CONTENT_SYNC_APP_KEY }}
diff --git a/.github/workflows/misc-sync-templates.yml b/.github/workflows/misc-sync-templates.yml
index d8027014863936ffd6c6a217f282dfa45bc2edd7..c06beb5e98eb7772f8f364c3a8a4121d40b7e522 100644
--- a/.github/workflows/misc-sync-templates.yml
+++ b/.github/workflows/misc-sync-templates.yml
@@ -18,11 +18,10 @@ on:
# A manual dispatch for now - automatic on releases later.
workflow_dispatch:
inputs:
- crate_release_version:
- description: 'A release version to use, e.g. 1.9.0'
+ stable_release_branch:
+ description: 'Stable release branch, e.g. stable2407'
required: true
-
jobs:
sync-templates:
runs-on: ubuntu-latest
@@ -41,10 +40,10 @@ jobs:
run: |
git config --global user.name "Template Bot"
git config --global user.email "163342540+paritytech-polkadotsdk-templatebot[bot]@users.noreply.github.com"
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
path: polkadot-sdk
- ref: "release-crates-io-v${{ github.event.inputs.crate_release_version }}"
+ ref: "${{ github.event.inputs.stable_release_branch }}"
- name: Generate a token for the template repository
id: app_token
uses: actions/create-github-app-token@v1.9.3
@@ -53,7 +52,7 @@ jobs:
repositories: "polkadot-sdk-${{ matrix.template }}-template"
app-id: ${{ secrets.TEMPLATE_APP_ID }}
private-key: ${{ secrets.TEMPLATE_APP_KEY }}
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: "paritytech/polkadot-sdk-${{ matrix.template }}-template"
path: "${{ env.template-path }}"
@@ -69,11 +68,11 @@ jobs:
protobuf-compiler
rustup target add wasm32-unknown-unknown
rustup component add rustfmt clippy rust-src
-
+
# 2. Yanking the template out of the monorepo workspace.
- - name: Use psvm to replace git references with released creates.
- run: find . -type f -name 'Cargo.toml' -exec psvm -o -v ${{ github.event.inputs.crate_release_version }} -p {} \;
+ - name: Replace dev-dependencies path references with workspace references
+ run: find . -type f -name 'Cargo.toml' -exec sed -i'' -E "s/path = \"\.\.\/.*\"/workspace = true/g" {} \;
working-directory: polkadot-sdk/templates/${{ matrix.template }}/
- name: Create a new workspace Cargo.toml
run: |
@@ -81,7 +80,7 @@ jobs:
[workspace.package]
license = "MIT-0"
authors = ["Parity Technologies "]
- homepage = "https://substrate.io"
+ homepage = "https://paritytech.github.io/polkadot-sdk/"
[workspace]
members = [
@@ -90,7 +89,12 @@ jobs:
"runtime",
]
resolver = "2"
+
+ [workspace.dependencies]
EOF
+
+ echo "$(toml get -r ./runtime/Cargo.toml 'package.name') = { path = \"./runtime\", default-features = false }" >> Cargo.toml
+ echo "$(toml get -r ./pallets/template/Cargo.toml 'package.name') = { path = \"./pallets/template\", default-features = false }" >> Cargo.toml
shell: bash
working-directory: polkadot-sdk/templates/${{ matrix.template }}/
- name: Update workspace configuration
@@ -116,9 +120,12 @@ jobs:
- name: Copy over the new changes
run: |
cp -r polkadot-sdk/templates/${{ matrix.template }}/* "${{ env.template-path }}/"
+
+ - name: Run psvm on monorepo workspace dependencies
+ run: psvm -o -v ${{ github.event.inputs.stable_release_branch }} -p ./Cargo.toml
+ working-directory: polkadot-sdk/
- name: Copy over required workspace dependencies
run: |
- echo -e "\n[workspace.dependencies]" >> Cargo.toml
set +e
# If a workspace dependency is required..
while cargo tree --depth 1 --prefix none --no-dedupe 2>&1 | grep 'was not found in `workspace.dependencies`'; do
@@ -150,18 +157,22 @@ jobs:
timeout-minutes: 90
- name: Create PR on failure
if: failure() && steps.check-compilation.outcome == 'failure'
- uses: peter-evans/create-pull-request@5b4a9f6a9e2af26e5f02351490b90d01eb8ec1e5 # v5
+ uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v5
with:
path: "${{ env.template-path }}"
token: ${{ steps.app_token.outputs.token }}
add-paths: |
./*
- title: "[Don't merge] Update the ${{ matrix.template }} template to ${{ github.event.inputs.crate_release_version }}"
+ title: "[Don't merge] Update the ${{ matrix.template }} template to ${{ github.event.inputs.stable_release_branch }}"
body: "The template has NOT been successfully built and needs to be inspected."
- branch: "update-template/${{ github.event.inputs.crate_release_version }}"
- - name: Push changes
- run: |
- git add -A .
- git commit --allow-empty -m "Update to ${{ github.event.inputs.crate_release_version }} triggered by ${{ github.event_name }}"
- git push
- working-directory: "${{ env.template-path }}"
+ branch: "update-template/${{ github.event.inputs.stable_release_branch }}"
+ - name: Create PR on success
+ uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v5
+ with:
+ path: "${{ env.template-path }}"
+ token: ${{ steps.app_token.outputs.token }}
+ add-paths: |
+ ./*
+ title: "Update the ${{ matrix.template }} template to ${{ github.event.inputs.stable_release_branch }}"
+ body: "This synchronizes the template to the ${{ github.event.inputs.stable_release_branch }} branch."
+ branch: "update-template/${{ github.event.inputs.stable_release_branch }}"
diff --git a/.github/workflows/misc-update-wishlist-leaderboard.yml b/.github/workflows/misc-update-wishlist-leaderboard.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3261687176746841a57bf2d247aeb6f596310c8b
--- /dev/null
+++ b/.github/workflows/misc-update-wishlist-leaderboard.yml
@@ -0,0 +1,37 @@
+name: Update wishlist leaderboard
+
+on:
+ schedule:
+ # Run every 3 hours
+ - cron: '0 */3 * * *'
+
+permissions:
+ contents: read
+ issues: write
+
+jobs:
+ update-wishlist-leaderboard:
+ if: github.repository == 'paritytech/polkadot-sdk'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.x'
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install PyGithub
+ - name: Update developer wishlist
+ env:
+ GH_TOKEN: ${{ github.token }}
+ WISHLIST_REPOSITORY: "paritytech/polkadot-sdk"
+ WISHLIST_ISSUE_NUMBER: "3900"
+ run: python .github/scripts/update-wishlist-leaderboard.py
+ - name: Update user wishlist
+ env:
+ GH_TOKEN: ${{ github.token }}
+ WISHLIST_REPOSITORY: "paritytech/polkadot-sdk"
+ WISHLIST_ISSUE_NUMBER: "3901"
+ run: python .github/scripts/update-wishlist-leaderboard.py
diff --git a/.github/workflows/publish-check-crates.yml b/.github/workflows/publish-check-crates.yml
index 9b5b89e34475699ccbcaeca34cd290882ee45a9a..9f96b92e0ce73eb1874ff7e11c9e43d820eaa649 100644
--- a/.github/workflows/publish-check-crates.yml
+++ b/.github/workflows/publish-check-crates.yml
@@ -12,7 +12,7 @@ jobs:
check-publish:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
@@ -20,7 +20,7 @@ jobs:
cache-on-failure: true
- name: install parity-publish
- run: cargo install parity-publish@0.5.1
+ run: cargo install parity-publish@0.8.0
- name: parity-publish check
run: parity-publish --color always check --allow-unpublished
diff --git a/.github/workflows/publish-claim-crates.yml b/.github/workflows/publish-claim-crates.yml
index 9643361d9d318f84d64a212358a825a8e0b5aa20..bee709a12076ed4a5ff212796f7691650f32ad7f 100644
--- a/.github/workflows/publish-claim-crates.yml
+++ b/.github/workflows/publish-claim-crates.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
environment: master
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
@@ -18,7 +18,7 @@ jobs:
cache-on-failure: true
- name: install parity-publish
- run: cargo install parity-publish@0.5.1
+ run: cargo install parity-publish@0.8.0
- name: parity-publish claim
env:
diff --git a/.github/workflows/publish-subsystem-benchmarks.yml b/.github/workflows/publish-subsystem-benchmarks.yml
index 1a726b669e9094e8be53ef5a1ddb1b3198210d33..e5b9db0836f3f6a944778a30df49ea7f98b3af34 100644
--- a/.github/workflows/publish-subsystem-benchmarks.yml
+++ b/.github/workflows/publish-subsystem-benchmarks.yml
@@ -23,7 +23,7 @@ jobs:
echo "${{ github.event.inputs.output-file-path }}" | grep -P '^[a-z\-]+\.json'
- name: Checkout Sources
- uses: actions/checkout@v4.1.2
+ uses: actions/checkout@v4
with:
fetch-depth: 0
ref: "gh-pages"
diff --git a/.github/workflows/release-10_rc-automation.yml b/.github/workflows/release-10_rc-automation.yml
index 7231a8b75886d04ce18bb89fcef99029e3ab14c6..2d91850b82c180e25bbf87dfef529f8ab4667edd 100644
--- a/.github/workflows/release-10_rc-automation.yml
+++ b/.github/workflows/release-10_rc-automation.yml
@@ -1,13 +1,18 @@
name: Release - RC automation
on:
- push:
- branches:
- # Catches release-polkadot-v1.2.3, release-v1.2.3-rc1, etc
- - release-v[0-9]+.[0-9]+.[0-9]+*
- - release-cumulus-v[0-9]+*
- - release-polkadot-v[0-9]+*
+ # TODO: Activate it and delete old branches patterns, when the release process from stable is setteled
+ #push:
+ # branches:
+ # # Catches release-polkadot-v1.2.3, release-v1.2.3-rc1, etc
+ # - release-v[0-9]+.[0-9]+.[0-9]+*
+ # - release-cumulus-v[0-9]+*
+ # - release-polkadot-v[0-9]+*
+ # - stable
workflow_dispatch:
+ inputs:
+ version:
+ description: Current release/rc version in format vX.X.X
jobs:
tag_rc:
@@ -21,32 +26,23 @@ jobs:
steps:
- name: Checkout sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
fetch-depth: 0
- - name: Get release product
- id: get_rel_product
- shell: bash
- run: |
- current_branch=$(git branch --show-current)
- echo "Current branch: $current_branch"
- if [[ "$current_branch" =~ "release-polkadot" ]]; then
- echo "product=polkadot" >> $GITHUB_OUTPUT
- elif [[ "$current_branch" =~ "release-cumulus" ]]; then
- echo "product=polkadot-parachain" >> $GITHUB_OUTPUT
- fi
-
-
- - name: Compute next rc tag for polkadot
- if: ${{ steps.get_rel_product.outputs.product == 'polkadot' }}
- id: compute_tag_polkadot
+ - name: Compute next rc tag
+ # if: ${{ steps.get_rel_product.outputs.product == 'polkadot' }}
+ id: compute_tag
shell: bash
run: |
. ./.github/scripts/common/lib.sh
# Get last rc tag if exists, else set it to {version}-rc1
- version=$(get_version_from_ghref ${GITHUB_REF})
+ if [[ -z "${{ inputs.version }}" ]]; then
+ version=v$(get_polkadot_node_version_from_code)
+ else
+ version=$(filter_version_from_input ${{ inputs.version }})
+ fi
echo "$version"
echo "version=$version" >> $GITHUB_OUTPUT
@@ -61,28 +57,6 @@ jobs:
echo "first_rc=true" >> $GITHUB_OUTPUT
fi
- - name: Compute next rc tag for polkadot-parachain
- if: ${{ steps.get_rel_product.outputs.product == 'polkadot-parachain' }}
- id: compute_tag_cumulus
- shell: bash
- run: |
- . ./.github/scripts/common/lib.sh
-
- # Get last rc tag if exists, else set it to polkadot-parachains-{version}-rc1
- version=$(get_version_from_ghref ${GITHUB_REF})
- echo "$version"
- echo "version=$version" >> $GITHUB_OUTPUT
-
- last_rc=$(get_latest_rc_tag $version polkadot-parachain)
- if [ -n "$last_rc" ]; then
- suffix=$(increment_rc_tag $last_rc)
- echo "new_tag=polkadot-parachains-$version-rc$suffix" >> $GITHUB_OUTPUT
- echo "first_rc=false" >> $GITHUB_OUTPUT
- else
- echo "new_tag=polkadot-parachain-$version-rc1" >> $GITHUB_OUTPUT
- echo "first_rc=true" >> $GITHUB_OUTPUT
- fi
-
- name: Apply new tag
uses: tvdias/github-tagger@ed7350546e3e503b5e942dffd65bc8751a95e49d # v0.0.2
with:
@@ -90,17 +64,7 @@ jobs:
# https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token
# RELEASE_BRANCH_TOKEN requires public_repo OAuth scope
repo-token: "${{ secrets.RELEASE_BRANCH_TOKEN }}"
- tag: ${{ steps.compute_tag_polkadot.outputs.new_tag || steps.compute_tag_cumulus.outputs.new_tag }}
-
- # - id: create-issue
- # uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1
- # # Only create the issue if it's the first release candidate
- # if: steps.compute_tag.outputs.first_rc == 'true'
- # env:
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # VERSION: ${{ steps.compute_tag.outputs.version }}
- # with:
- # filename: .github/ISSUE_TEMPLATE/release.md
+ tag: ${{ steps.compute_tag.outputs.new_tag }}
- name: Send Matrix message to ${{ matrix.channel.name }}
uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
@@ -110,4 +74,4 @@ jobs:
access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
server: m.parity.io
message: |
- Release process for polkadot ${{ steps.compute_tag_polkadot.outputs.new_tag || steps.compute_tag_cumulus.outputs.new_tag }} has been started.
+ Release process for polkadot ${{ steps.compute_tag.outputs.new_tag }} has been started.
diff --git a/.github/workflows/release-30_publish_release_draft.yml b/.github/workflows/release-30_publish_release_draft.yml
index f39eb4c1716ebea4fb3207ea1a2ecc8227037448..4343dbf915a9809996274dec48c27b40140170b2 100644
--- a/.github/workflows/release-30_publish_release_draft.yml
+++ b/.github/workflows/release-30_publish_release_draft.yml
@@ -26,36 +26,33 @@ jobs:
uses: "./.github/workflows/release-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"
+ build_opts: "--features on-chain-release-build"
build-binaries:
runs-on: ubuntu-latest
strategy:
matrix:
- binary: [ frame-omni-bencher, chain-spec-builder ]
+ # Tuples of [package, binary-name]
+ binary: [ [frame-omni-bencher, frame-omni-bencher], [staging-chain-spec-builder, chain-spec-builder] ]
steps:
- name: Checkout sources
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
- name: Install protobuf-compiler
run: |
sudo apt update
sudo apt install -y protobuf-compiler
- - name: Build ${{ matrix.binary }} binary
+ - name: Build ${{ matrix.binary[1] }} binary
run: |
- if [[ ${{ matrix.binary }} =~ chain-spec-builder ]]; then
- cargo build --locked --profile=production -p staging-${{ matrix.binary }} --bin ${{ matrix.binary }}
- target/production/${{ matrix.binary }} -h
- else
- cargo build --locked --profile=production -p ${{ matrix.binary }}
- target/production/${{ matrix.binary }} --version
- fi
+ cargo build --locked --profile=production -p ${{ matrix.binary[0] }} --bin ${{ matrix.binary[1] }}
+ target/production/${{ matrix.binary[1] }} --version
- - name: Upload ${{ matrix.binary }} binary
+ - name: Upload ${{ matrix.binary[1] }} binary
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
- name: ${{ matrix.binary }}
- path: target/production/${{ matrix.binary }}
+ name: ${{ matrix.binary[1] }}
+ path: target/production/${{ matrix.binary[1] }}
publish-release-draft:
@@ -66,10 +63,10 @@ jobs:
asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
- name: Checkout
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
- name: Download artifacts
- uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
- name: Prepare tooling
run: |
@@ -137,10 +134,10 @@ jobs:
steps:
- name: Checkout sources
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
- name: Download artifacts
- uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
- name: Get runtime info
env:
@@ -170,7 +167,7 @@ jobs:
steps:
- name: Download artifacts
- uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ matrix.binary }}
diff --git a/.github/workflows/release-50_publish-docker.yml b/.github/workflows/release-50_publish-docker.yml
index 4679f58578f7906b75e4a3d6d623ebc1d55df40d..c5d214ec68abac781b9b350897ae8267d1740e04 100644
--- a/.github/workflows/release-50_publish-docker.yml
+++ b/.github/workflows/release-50_publish-docker.yml
@@ -45,7 +45,7 @@ on:
type: string
default: docker.io
- # The owner is often the same than the Docker Hub username but does ont have to be.
+ # The owner is often the same as the Docker Hub username but does ont have to be.
# In our case, it is not.
owner:
description: Owner of the container image repo
@@ -58,6 +58,10 @@ on:
default: v0.9.18
required: true
+ stable_tag:
+ description: Tag matching the actual stable release version in the format stableYYMM or stableYYMM-X for patch releases
+ required: true
+
permissions:
contents: write
@@ -71,16 +75,43 @@ env:
# EVENT_ACTION: ${{ github.event.action }}
EVENT_NAME: ${{ github.event_name }}
IMAGE_TYPE: ${{ inputs.image_type }}
- VERSION: ${{ inputs.version }}
jobs:
+ validate-inputs:
+ runs-on: ubuntu-latest
+ outputs:
+ version: ${{ steps.validate_inputs.outputs.VERSION }}
+ release_id: ${{ steps.validate_inputs.outputs.RELEASE_ID }}
+ stable_tag: ${{ steps.validate_inputs.outputs.stable_tag }}
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+
+ - name: Validate inputs
+ id: validate_inputs
+ run: |
+ . ./.github/scripts/common/lib.sh
+
+ VERSION=$(filter_version_from_input "${{ inputs.version }}")
+ echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
+
+ RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
+ echo "RELEASE_ID=${RELEASE_ID}" >> $GITHUB_OUTPUT
+
+ echo "Release ID: $RELEASE_ID"
+
+ STABLE_TAG=$(validate_stable_tag ${{ inputs.stable_tag }})
+ echo "stable_tag=${STABLE_TAG}" >> $GITHUB_OUTPUT
+
fetch-artifacts: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build
if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }}
runs-on: ubuntu-latest
+ needs: [validate-inputs]
steps:
- name: Checkout sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
#TODO: this step will be needed when automated triggering will work
#this step runs only if the workflow is triggered automatically when new release is published
@@ -102,9 +133,7 @@ jobs:
run: |
. ./.github/scripts/common/lib.sh
- VERSION=$(filter_version_from_input "${{ inputs.version }}")
- echo "VERSION=${VERSION}" >> $GITHUB_ENV
-
+ VERSION="${{ needs.validate-inputs.outputs.VERSION }}"
fetch_release_artifacts_from_s3
- name: Fetch chain-spec-builder rc artifacts or release artifacts based on release id
@@ -112,7 +141,8 @@ jobs:
if: ${{ env.EVENT_NAME == 'workflow_dispatch' && inputs.binary == 'chain-spec-builder' }}
run: |
. ./.github/scripts/common/lib.sh
- RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
+
+ RELEASE_ID="${{ needs.validate-inputs.outputs.RELEASE_ID }}"
fetch_release_artifacts
- name: Upload artifacts
@@ -124,15 +154,15 @@ jobs:
build-container: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build
if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }}
runs-on: ubuntu-latest
- needs: fetch-artifacts
+ needs: [fetch-artifacts, validate-inputs]
environment: release
steps:
- name: Checkout sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Download artifacts
- uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
- name: Check sha256 ${{ env.BINARY }}
if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'polkadot' }}
@@ -157,8 +187,7 @@ jobs:
run: |
. ./.github/scripts/common/lib.sh
- RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
- release=release-$RELEASE_ID && \
+ release="release-${{ needs.validate-inputs.outputs.RELEASE_ID }}" && \
echo "release=${release}" >> $GITHUB_OUTPUT
commit=$(git rev-parse --short HEAD) && \
@@ -174,11 +203,17 @@ jobs:
id: fetch_release_refs
run: |
chmod a+rx $BINARY
- [[ $BINARY != 'chain-spec-builder' ]] && VERSION=$(./$BINARY --version | awk '{ print $2 }' )
- release=$( echo $VERSION | cut -f1 -d- )
+ if [[ $BINARY != 'chain-spec-builder' ]]; then
+ VERSION=$(./$BINARY --version | awk '{ print $2 }' )
+ release=$( echo $VERSION | cut -f1 -d- )
+ else
+ release=$(echo ${{ needs.validate-inputs.outputs.VERSION }} | sed 's/^v//')
+ fi
+
echo "tag=latest" >> $GITHUB_OUTPUT
echo "release=${release}" >> $GITHUB_OUTPUT
+ echo "stable=${{ needs.validate-inputs.outputs.stable_tag }}" >> $GITHUB_OUTPUT
- name: Build Injected Container image for polkadot rc or chain-spec-builder
if: ${{ env.BINARY == 'polkadot' || env.BINARY == 'chain-spec-builder' }}
@@ -209,7 +244,7 @@ jobs:
./docker/scripts/build-injected.sh
- name: Login to Dockerhub
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
username: ${{ secrets.CUMULUS_DOCKERHUB_USERNAME }}
password: ${{ secrets.CUMULUS_DOCKERHUB_TOKEN }}
@@ -256,17 +291,17 @@ jobs:
build-polkadot-release-container: # this job will be triggered for polkadot release build
if: ${{ inputs.binary == 'polkadot' && inputs.image_type == 'release' }}
runs-on: ubuntu-latest
- needs: fetch-latest-debian-package-version
+ needs: [fetch-latest-debian-package-version, validate-inputs]
environment: release
steps:
- name: Checkout sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
+ uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
- name: Cache Docker layers
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
@@ -274,7 +309,7 @@ jobs:
${{ runner.os }}-buildx-
- name: Login to Docker Hub
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
username: ${{ secrets.POLKADOT_DOCKERHUB_USERNAME }}
password: ${{ secrets.POLKADOT_DOCKERHUB_TOKEN }}
@@ -287,13 +322,14 @@ jobs:
- name: Build and push
id: docker_build
- uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0
+ uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6.7.0
with:
push: true
file: docker/dockerfiles/polkadot/polkadot_injected_debian.Dockerfile
# TODO: The owner should be used below but buildx does not resolve the VARs
# TODO: It would be good to get rid of this GHA that we don't really need.
tags: |
+ parity/polkadot:${{ needs.validate-inputs.outputs.stable_tag }}
parity/polkadot:latest
parity/polkadot:${{ needs.fetch-latest-debian-package-version.outputs.polkadot_container_tag }}
build-args: |
diff --git a/.github/workflows/release-check-runtimes.yml b/.github/workflows/release-check-runtimes.yml
index 0e5ad104766a89aaa678cc5436475d95e3ab76fd..930b8da772d0b6d19c0a723f9de09ff8fa5cd0b2 100644
--- a/.github/workflows/release-check-runtimes.yml
+++ b/.github/workflows/release-check-runtimes.yml
@@ -35,7 +35,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Get list
id: get-list
@@ -56,7 +56,7 @@ jobs:
steps:
- name: Checkout the repo
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Fetch release artifacts based on release id
env:
diff --git a/.github/workflows/release-clobber-stable.yml b/.github/workflows/release-clobber-stable.yml
new file mode 100644
index 0000000000000000000000000000000000000000..50c20563b4347334aa591f0f4f2e544f17f12afe
--- /dev/null
+++ b/.github/workflows/release-clobber-stable.yml
@@ -0,0 +1,70 @@
+name: Clobber Stable
+
+# This action implements the
+# [Clobbering](https://github.com/paritytech/polkadot-sdk/blob/master/docs/RELEASE.md#clobbering)
+# process from the release process. It pushes a new commit to the `stable` branch with all the
+# current content of the `audited` tag. It does not use a merge commit, but rather 'clobbers' the
+# branch with a single commit that contains all the changes. It has a naming scheme of `Clobber with
+# audited ($COMMIT)`.
+# Currently, the script is only triggered manually, but can be easily changed to a schedule.
+
+on:
+ workflow_dispatch:
+
+permissions:
+ contents: write
+
+jobs:
+ clobber-stable:
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ env:
+ STABLE: stable
+ UNSTABLE: master
+ AUDITED: audited
+ steps:
+ - name: Checkout
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+
+ - name: Prechecks
+ run: |
+ # Properly fetch
+ git fetch --prune --unshallow origin tag $AUDITED
+ git fetch origin $STABLE
+
+ # Sanity checks
+ git checkout -q tags/$AUDITED || (echo "Could not find the '$AUDITED' tag." && exit 1)
+ COMMIT=$(git rev-parse tags/$AUDITED)
+ #$(git branch --contains $COMMIT | grep -q $UNSTABLE) || (echo "The '$AUDITED' tag is not on the '$UNSTABLE' branch." && exit 1)
+
+ git config --global user.email "admin@parity.io"
+ git config --global user.name "Parity Release Team"
+
+ - name: Prepare commit
+ run: |
+ git checkout --quiet origin/$STABLE
+
+ # Delete all tracked files in the working directory
+ git ls-files -z | xargs -0 rm -f
+
+ # Find and delete any empty directories
+ find . -type d -empty -delete
+
+ git add . 1>/dev/null 2>/dev/null
+ git commit -qm "Delete all files"
+
+ # Grab the files from the commit
+ git checkout --quiet tags/$AUDITED -- .
+
+ # Stage, commit, and push the working directory which now matches 'audited' 1:1
+ git status
+ COMMIT=$(git rev-parse --short=10 tags/$AUDITED)
+ git add . 1>/dev/null 2>/dev/null
+ git commit --allow-empty --amend -qm "Clobber with $AUDITED ($COMMIT)"
+
+ - name: Push stable branch
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ git log -3
+ git push --verbose origin HEAD:$STABLE
diff --git a/.github/workflows/release-srtool.yml b/.github/workflows/release-srtool.yml
index 95b1846b98e0c47cc6de2c92cadc16adc0cab487..262203f0500523652a9a9e38eab1a1c00bc83a4c 100644
--- a/.github/workflows/release-srtool.yml
+++ b/.github/workflows/release-srtool.yml
@@ -5,17 +5,12 @@ env:
TOML_CLI_VERSION: 0.2.4
on:
- push:
- tags:
- - "*"
- branches:
- - 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
+ build_opts:
+ type: string
outputs:
published_runtimes:
value: ${{ jobs.find-runtimes.outputs.runtime }}
@@ -33,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
with:
fetch-depth: 0
@@ -74,13 +69,15 @@ jobs:
matrix: ${{ fromJSON(needs.find-runtimes.outputs.runtime) }}
steps:
- - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
with:
fetch-depth: 0
- name: Srtool build
id: srtool_build
uses: chevdor/srtool-actions@v0.9.2
+ env:
+ BUILD_OPTS: ${{ inputs.build_opts }}
with:
chain: ${{ matrix.chain }}
runtime_dir: ${{ matrix.runtime_dir }}
diff --git a/.github/workflows/reusable-check-changed-files.yml b/.github/workflows/reusable-check-changed-files.yml
new file mode 100644
index 0000000000000000000000000000000000000000..47f0620439c77f262c4fda1b68f0e250f2ec8ac6
--- /dev/null
+++ b/.github/workflows/reusable-check-changed-files.yml
@@ -0,0 +1,59 @@
+# Reusable workflow to perform checks and generate conditions for other workflows.
+# Currently it checks if any Rust (build-related) file is changed
+# and if the current (caller) workflow file is changed.
+# Example:
+#
+# jobs:
+# changes:
+# permissions:
+# pull-requests: read
+# uses: ./.github/workflows/reusable-check-changed-files.yml
+# some-job:
+# needs: changes
+# if: ${{ needs.changes.outputs.rust }}
+# .......
+
+name: Check changes files
+
+on:
+ workflow_call:
+ # Map the workflow outputs to job outputs
+ outputs:
+ rust:
+ value: ${{ jobs.changes.outputs.rust }}
+ description: "true if any of the build-related OR current (caller) workflow files have changed"
+ current-workflow:
+ value: ${{ jobs.changes.outputs.current-workflow }}
+ description: "true if current (caller) workflow file has changed"
+
+jobs:
+ changes:
+ runs-on: ubuntu-latest
+ permissions:
+ pull-requests: read
+ outputs:
+ # true if current workflow (caller) file is changed
+ rust: ${{ steps.filter.outputs.rust == 'true' || steps.filter.outputs.current-workflow == 'true' }}
+ current-workflow: ${{ steps.filter.outputs.current-workflow }}
+ steps:
+ - id: current-file
+ run: echo "current-workflow-file=$(echo ${{ github.workflow_ref }} | sed -nE "s/.*(\.github\/workflows\/[a-zA-Z0-9_-]*\.y[a]?ml)@refs.*/\1/p")" >> $GITHUB_OUTPUT
+ - run: echo "${{ steps.current-file.outputs.current-workflow-file }}"
+ # For pull requests it's not necessary to checkout the code
+ - name: Checkout
+ if: github.event_name != 'pull_request'
+ uses: actions/checkout@v4
+ - id: filter
+ uses: dorny/paths-filter@v3
+ with:
+ predicate-quantifier: "every"
+ # current-workflow - check if the current (caller) workflow file is changed
+ # rust - check if any Rust (build-related) file is changed
+ filters: |
+ current-workflow:
+ - '${{ steps.current-file.outputs.current-workflow-file }}'
+ rust:
+ - '**/*'
+ - '!.github/**/*'
+ - '!prdoc/**/*'
+ - '!docs/**/*'
diff --git a/.github/workflows/review-bot.yml b/.github/workflows/review-bot.yml
index f1401406ae47afd3230cc163f35df0e3bcbac7b7..3dd5b1114813dbb2e151319293ade7ce44f4aae9 100644
--- a/.github/workflows/review-bot.yml
+++ b/.github/workflows/review-bot.yml
@@ -15,7 +15,6 @@ on:
jobs:
review-approvals:
runs-on: ubuntu-latest
- environment: master
steps:
- name: Generate token
id: app_token
@@ -30,7 +29,7 @@ jobs:
with:
artifact-name: pr_number
- name: "Evaluates PR reviews and assigns reviewers"
- uses: paritytech/review-bot@v2.4.0
+ uses: paritytech/review-bot@v2.6.0
with:
repo-token: ${{ steps.app_token.outputs.token }}
team-token: ${{ steps.app_token.outputs.token }}
diff --git a/.github/workflows/runtimes-matrix.json b/.github/workflows/runtimes-matrix.json
new file mode 100644
index 0000000000000000000000000000000000000000..45a3acd3f166d9f2fad3187e2f3f3ac9f0245bfb
--- /dev/null
+++ b/.github/workflows/runtimes-matrix.json
@@ -0,0 +1,98 @@
+[
+ {
+ "name": "dev",
+ "package": "kitchensink-runtime",
+ "path": "substrate/frame",
+ "uri": null,
+ "is_relay": false
+ },
+ {
+ "name": "westend",
+ "package": "westend-runtime",
+ "path": "polkadot/runtime/westend",
+ "uri": "wss://try-runtime-westend.polkadot.io:443",
+ "is_relay": true
+ },
+ {
+ "name": "rococo",
+ "package": "rococo-runtime",
+ "path": "polkadot/runtime/rococo",
+ "uri": "wss://try-runtime-rococo.polkadot.io:443",
+ "is_relay": true
+ },
+ {
+ "name": "asset-hub-westend",
+ "package": "asset-hub-westend-runtime",
+ "path": "cumulus/parachains/runtimes/assets/asset-hub-westend",
+ "uri": "wss://westend-asset-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "asset-hub-rococo",
+ "package": "asset-hub-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/assets/asset-hub-rococo",
+ "uri": "wss://rococo-asset-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "bridge-hub-rococo",
+ "package": "bridge-hub-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/bridges/bridge-hub-rococo",
+ "uri": "wss://rococo-bridge-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "bridge-hub-westend",
+ "package": "bridge-hub-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/bridges/bridge-hub-westend",
+ "uri": "wss://westend-bridge-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "collectives-westend",
+ "package": "collectives-westend-runtime",
+ "path": "cumulus/parachains/runtimes/collectives/collectives-westend",
+ "uri": "wss://westend-collectives-rpc.polkadot.io:443"
+ },
+ {
+ "name": "contracts-rococo",
+ "package": "contracts-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/contracts/contracts-rococo",
+ "uri": "wss://rococo-contracts-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "coretime-rococo",
+ "package": "coretime-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/coretime/coretime-rococo",
+ "uri": "wss://rococo-coretime-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "coretime-westend",
+ "package": "coretime-westend-runtime",
+ "path": "cumulus/parachains/runtimes/coretime/coretime-westend",
+ "uri": "wss://westend-coretime-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "glutton-westend",
+ "package": "glutton-westend-runtime",
+ "path": "cumulus/parachains/runtimes/gluttons/glutton-westend",
+ "is_relay": false
+ },
+ {
+ "name": "people-rococo",
+ "package": "people-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/people/people-rococo",
+ "uri": "wss://rococo-people-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "people-westend",
+ "package": "people-westend-runtime",
+ "path": "cumulus/parachains/runtimes/people/people-westend",
+ "uri": "wss://westend-people-rpc.polkadot.io:443",
+ "is_relay": false
+ }
+]
diff --git a/.github/workflows/subsystem-benchmarks.yml b/.github/workflows/subsystem-benchmarks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7c19b420a6acb42ed473bb2c4bd54c07cefdd0e4
--- /dev/null
+++ b/.github/workflows/subsystem-benchmarks.yml
@@ -0,0 +1,82 @@
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [ opened, synchronize, reopened, closed, labeled ]
+ merge_group:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+ pull-requests: write
+
+jobs:
+ set-image:
+ # TODO: remove once migration is complete or this workflow is fully stable
+ if: contains(github.event.label.name, 'GHA-migration')
+ # GitHub Actions allows using 'env' in a container context.
+ # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
+ # This workaround sets the container image for each job using 'set-image' job output.
+ runs-on: ubuntu-latest
+ outputs:
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+
+ build:
+ needs: [ set-image ]
+ runs-on: arc-runners-polkadot-sdk-benchmark
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ env:
+ BENCH_DIR: ./charts/bench/${{ matrix.features.bench }}
+ BENCH_FILE_NAME: ${{ matrix.features.bench }}
+ strategy:
+ fail-fast: false
+ matrix:
+ features: [
+ { name: "polkadot-availability-recovery", bench: "availability-recovery-regression-bench" },
+ { name: "polkadot-availability-distribution", bench: "availability-distribution-regression-bench" },
+ { name: "polkadot-node-core-approval-voting", bench: "approval-voting-regression-bench" },
+ { name: "polkadot-statement-distribution", bench: "statement-distribution-regression-bench" }
+ ]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Check Rust
+ run: |
+ rustup show
+ rustup +nightly show
+
+ - name: Run Benchmarks
+ continue-on-error: true
+ id: run-benchmarks
+ run: |
+ cargo bench -p ${{ matrix.features.name }} --bench ${{ matrix.features.bench }} --features subsystem-benchmarks || echo "Benchmarks failed"
+ ls -lsa ./charts
+ mkdir -p $BENCH_DIR || echo "Directory exists"
+ cp charts/${BENCH_FILE_NAME}.json $BENCH_DIR
+ ls -lsa $BENCH_DIR
+ # Fixes "detected dubious ownership" error in the ci
+ git config --global --add safe.directory '*'
+
+ - name: Publish result to GH Pages
+ if: ${{ steps.run-benchmarks.outcome == 'success' }}
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ env.BENCH_FILE_NAME }}
+ output-file-path: ${{ env.BENCH_DIR }}/${{ env.BENCH_FILE_NAME }}.json
+ benchmark-data-dir-path: ${{ env.BENCH_DIR }}
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ comment-on-alert: ${{ github.event_name == 'pull_request' }} # will comment on PRs if regression is detected
+ auto-push: false # TODO: enable when gitlab part is removed ${{ github.ref == 'refs/heads/master' }}
+
diff --git a/.github/workflows/tests-linux-stable.yml b/.github/workflows/tests-linux-stable.yml
index 5fdfabc437fe721339af817f12aea1a58a6c0346..4a13f5318f7deb34a4727a3dc88967df12a67ed7 100644
--- a/.github/workflows/tests-linux-stable.yml
+++ b/.github/workflows/tests-linux-stable.yml
@@ -6,32 +6,26 @@ on:
branches:
- master
pull_request:
- types: [opened, synchronize, reopened, ready_for_review]
+ types: [opened, synchronize, reopened, ready_for_review, labeled]
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
-env:
- FORKLIFT_storage_s3_bucketName: ${{ secrets.FORKLIFT_storage_s3_bucketName }}
- FORKLIFT_storage_s3_accessKeyId: ${{ secrets.FORKLIFT_storage_s3_accessKeyId }}
- FORKLIFT_storage_s3_secretAccessKey: ${{ secrets.FORKLIFT_storage_s3_secretAccessKey }}
- FORKLIFT_storage_s3_endpointUrl: ${{ secrets.FORKLIFT_storage_s3_endpointUrl }}
- FORKLIFT_metrics_pushEndpoint: ${{ secrets.FORKLIFT_metrics_pushEndpoint }}
-
jobs:
-
changes:
+ # TODO: remove once migration is complete or this workflow is fully stable
+ if: contains(github.event.label.name, 'GHA-migration')
permissions:
pull-requests: read
- uses: ./.github/workflows/check-changed-files.yml
+ uses: ./.github/workflows/reusable-check-changed-files.yml
set-image:
# GitHub Actions allows using 'env' in a container context.
# However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
# This workaround sets the container image for each job using 'set-image' job output.
needs: changes
- if: ${{ needs.changes.outputs.rust }}
+ if: ${{ needs.changes.outputs.rust }}
runs-on: ubuntu-latest
outputs:
IMAGE: ${{ steps.set_image.outputs.IMAGE }}
@@ -40,12 +34,12 @@ jobs:
uses: actions/checkout@v4
- id: set_image
run: cat .github/env >> $GITHUB_OUTPUT
-
+
test-linux-stable-int:
needs: [set-image, changes]
- if: ${{ needs.changes.outputs.rust }}
+ if: ${{ needs.changes.outputs.rust }}
runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 30
+ timeout-minutes: 60
container:
image: ${{ needs.set-image.outputs.IMAGE }}
env:
@@ -59,16 +53,41 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: WASM_BUILD_NO_COLOR=1 time forklift cargo test -p staging-node-cli --release --locked -- --ignored
-
+ run: WASM_BUILD_NO_COLOR=1 forklift cargo test -p staging-node-cli --release --locked -- --ignored
+
# https://github.com/paritytech/ci_cd/issues/864
test-linux-stable-runtime-benchmarks:
needs: [set-image, changes]
- if: ${{ needs.changes.outputs.rust }}
+ if: ${{ needs.changes.outputs.rust }}
runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 30
+ timeout-minutes: 60
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ env:
+ RUST_TOOLCHAIN: stable
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: forklift cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
+
+ test-linux-stable:
+ needs: [set-image, changes]
+ if: ${{ needs.changes.outputs.rust }}
+ runs-on: ${{ matrix.runners }}
+ timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ partition: [1/3, 2/3, 3/3]
+ runners: [arc-runners-polkadot-sdk-beefy, oldlinux]
container:
image: ${{ needs.set-image.outputs.IMAGE }}
+ # needed for tests that use unshare syscall
+ options: --security-opt seccomp=unconfined
env:
RUST_TOOLCHAIN: stable
# Enable debug assertions since we are running optimized builds for testing
@@ -78,4 +97,30 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: time forklift cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
+ run: |
+ # Fixes "detected dubious ownership" error in the ci
+ git config --global --add safe.directory '*'
+ forklift cargo nextest run \
+ --workspace \
+ --locked \
+ --release \
+ --no-fail-fast \
+ --features try-runtime,experimental,riscv,ci-only-tests \
+ --partition count:${{ matrix.partition }}
+ # run runtime-api tests with `enable-staging-api` feature on the 1st node
+ - name: runtime-api tests
+ if: ${{ matrix.partition == '1/3' }}
+ run: forklift cargo nextest run -p sp-api-test --features enable-staging-api
+
+ confirm-required-jobs-passed:
+ runs-on: ubuntu-latest
+ name: All tests passed
+ # If any new job gets added, be sure to add it to this array
+ needs:
+ [
+ test-linux-stable-int,
+ test-linux-stable-runtime-benchmarks,
+ test-linux-stable,
+ ]
+ steps:
+ - run: echo '### Good job! All the tests passed ๐' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 293acadc4e6a892fea9aa7fa3686cd821606992a..25761fb94fd33b5002b7939f972dc372243ea3de 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -11,19 +11,12 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
-env:
- FORKLIFT_storage_s3_bucketName: ${{ secrets.FORKLIFT_storage_s3_bucketName }}
- FORKLIFT_storage_s3_accessKeyId: ${{ secrets.FORKLIFT_storage_s3_accessKeyId }}
- FORKLIFT_storage_s3_secretAccessKey: ${{ secrets.FORKLIFT_storage_s3_secretAccessKey }}
- FORKLIFT_storage_s3_endpointUrl: ${{ secrets.FORKLIFT_storage_s3_endpointUrl }}
- FORKLIFT_metrics_pushEndpoint: ${{ secrets.FORKLIFT_metrics_pushEndpoint }}
-
jobs:
-
- changes:
- permissions:
- pull-requests: read
- uses: ./.github/workflows/check-changed-files.yml
+ # disabled because currently doesn't work in merge queue
+ # changes:
+ # permissions:
+ # pull-requests: read
+ # uses: ./.github/workflows/reusable-check-changed-files.yml
set-image:
# GitHub Actions allows using 'env' in a container context.
@@ -32,17 +25,29 @@ jobs:
runs-on: ubuntu-latest
outputs:
IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ RUNNER: ${{ steps.set_runner.outputs.RUNNER }}
steps:
- name: Checkout
uses: actions/checkout@v4
- id: set_image
run: cat .github/env >> $GITHUB_OUTPUT
+ # By default we use spot machines that can be terminated at any time.
+ # Merge queues use persistent runners to avoid kicking off from queue when the runner is terminated.
+ - id: set_runner
+ run: |
+ # Run merge queues on persistent runners
+ if [[ $GITHUB_REF_NAME == *"gh-readonly-queue"* ]]; then
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy-persistent" >> $GITHUB_OUTPUT
+ else
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy" >> $GITHUB_OUTPUT
+ fi
+ # This job runs all benchmarks defined in the `/bin/node/runtime` once to check that there are no errors.
quick-benchmarks:
- needs: [set-image, changes]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 30
+ needs: [set-image]
+ # if: ${{ needs.changes.outputs.rust }}
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ timeout-minutes: 60
container:
image: ${{ needs.set-image.outputs.IMAGE }}
env:
@@ -54,14 +59,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: time forklift cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet
-
+ run: forklift cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet
+
# cf https://github.com/paritytech/polkadot-sdk/issues/1652
test-syscalls:
- needs: [set-image, changes]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 30
+ needs: [set-image]
+ # if: ${{ needs.changes.outputs.rust }}
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ timeout-minutes: 60
container:
image: ${{ needs.set-image.outputs.IMAGE }}
continue-on-error: true # this rarely triggers in practice
@@ -71,22 +76,22 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
+ id: test
run: |
forklift cargo build --locked --profile production --target x86_64-unknown-linux-musl --bin polkadot-execute-worker --bin polkadot-prepare-worker
cd polkadot/scripts/list-syscalls
./list-syscalls.rb ../../../target/x86_64-unknown-linux-musl/production/polkadot-execute-worker --only-used-syscalls | diff -u execute-worker-syscalls -
./list-syscalls.rb ../../../target/x86_64-unknown-linux-musl/production/polkadot-prepare-worker --only-used-syscalls | diff -u prepare-worker-syscalls -
- # todo:
- # after_script:
- # - if [[ "$CI_JOB_STATUS" == "failed" ]]; then
- # 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
-
+ - name: on_failure
+ if: failure() && steps.test.outcome == 'failure'
+ run: |
+ echo "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." >> $GITHUB_STEP_SUMMARY
+
cargo-check-all-benches:
- needs: [set-image, changes]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 30
+ needs: [set-image]
+ # if: ${{ needs.changes.outputs.rust }}
+ runs-on: ${{ needs.set-image.outputs.RUNNER }}
+ timeout-minutes: 60
container:
image: ${{ needs.set-image.outputs.IMAGE }}
env:
@@ -95,4 +100,4 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: time forklift cargo check --all --benches
+ run: forklift cargo check --all --benches
diff --git a/.gitignore b/.gitignore
index 2f1631fb4b9d14496021907cca96b4cdf4902eb8..0263626d832df2633a3c5fc9db18268c2cc9953b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@
*.orig
*.rej
*.swp
+*.wasm
**/._*
**/.criterion/
**/*.rs.bk
@@ -22,6 +23,7 @@
**/node_modules
**/target/
**/wip/*.stderr
+**/__pycache__/
/.cargo/config
/.envrc
artifacts
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 73a8c52c448f72d12e510d65b2f7ff38469856f0..56d426218c80e3c8f9bf0248b7bbe4d9f03aa52a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -120,7 +120,8 @@ default:
.forklift-cache:
before_script:
- mkdir ~/.forklift
- - cp .forklift/config.toml ~/.forklift/config.toml
+ - cp .forklift/config-gitlab.toml ~/.forklift/config.toml
+ - cat .forklift/config-gitlab.toml > .forklift/config.toml
- >
if [ "$FORKLIFT_BYPASS" != "true" ]; then
echo "FORKLIFT_BYPASS not set";
@@ -339,11 +340,6 @@ cancel-pipeline-check-tracing:
needs:
- job: check-tracing
-cancel-pipeline-cargo-clippy:
- extends: .cancel-pipeline-template
- needs:
- - job: cargo-clippy
-
cancel-pipeline-build-linux-stable:
extends: .cancel-pipeline-template
needs:
@@ -369,16 +365,6 @@ cancel-pipeline-test-frame-ui:
needs:
- job: test-frame-ui
-cancel-pipeline-quick-benchmarks:
- extends: .cancel-pipeline-template
- needs:
- - job: quick-benchmarks
-
-cancel-pipeline-check-try-runtime:
- extends: .cancel-pipeline-template
- needs:
- - job: check-try-runtime
-
cancel-pipeline-test-frame-examples-compile-to-wasm:
extends: .cancel-pipeline-template
needs:
@@ -388,13 +374,3 @@ cancel-pipeline-build-short-benchmark:
extends: .cancel-pipeline-template
needs:
- job: build-short-benchmark
-
-cancel-pipeline-check-runtime-migration-rococo:
- extends: .cancel-pipeline-template
- needs:
- - job: check-runtime-migration-rococo
-
-cancel-pipeline-check-runtime-migration-westend:
- extends: .cancel-pipeline-template
- needs:
- - job: check-runtime-migration-westend
diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml
index 5c1a667a313ce391f0c790881d87f48ebd79d073..2212c1aeb0a81156a60cbca041c978993ddd40b8 100644
--- a/.gitlab/pipeline/check.yml
+++ b/.gitlab/pipeline/check.yml
@@ -1,53 +1,3 @@
-cargo-clippy:
- stage: check
- extends:
- - .docker-env
- - .common-refs
- - .pipeline-stopper-artifacts
- variables:
- RUSTFLAGS: "-D warnings"
- script:
- - 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
- extends:
- - .docker-env
- - .common-refs
- script:
- - time cargo check --locked --all --features try-runtime
- # this is taken from cumulus
- # Check that parachain-template will compile with `try-runtime` feature flag.
- - time cargo check --locked -p parachain-template-node --features try-runtime
- # add after https://github.com/paritytech/substrate/pull/14502 is merged
- # experimental code may rely on try-runtime and vice-versa
- - time cargo check --locked --all --features try-runtime,experimental
-
-# FIXME
-.cargo-deny-licenses:
- stage: check
- extends:
- - .docker-env
- - .test-pr-refs
- variables:
- CARGO_DENY_CMD: "cargo deny --all-features check licenses -c ./substrate/scripts/ci/deny.toml"
- script:
- - $CARGO_DENY_CMD --hide-inclusion-graph
- after_script:
- - echo "___The complete log is in the artifacts___"
- - $CARGO_DENY_CMD 2> deny.log
- - if [ $CI_JOB_STATUS != 'success' ]; then
- echo 'Please check license of your crate or add an exception to scripts/ci/deny.toml';
- fi
- allow_failure: true
- artifacts:
- name: $CI_COMMIT_SHORT_SHA
- expire_in: 3 days
- when: always
- paths:
- - deny.log
-
# from substrate
# not sure if it's needed in monorepo
check-dependency-rules:
@@ -96,88 +46,3 @@ check-toml-format:
script:
- taplo format --check --config .config/taplo.toml
- echo "Please run `taplo format --config .config/taplo.toml` to fix any toml formatting issues"
-
-# More info can be found here: https://github.com/paritytech/polkadot/pull/5865
-.check-runtime-migration:
- stage: check
- extends:
- - .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.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
-
-# Check runtime migrations for Parity managed relay chains
-check-runtime-migration-westend:
- stage: check
- extends:
- - .docker-env
- - .test-pr-refs
- - .check-runtime-migration
- variables:
- NETWORK: "westend"
- PACKAGE: "westend-runtime"
- WASM: "westend_runtime.compact.compressed.wasm"
- URI: "wss://westend-try-runtime-node.parity-chains.parity.io:443"
- SUBCOMMAND_EXTRA_ARGS: "--no-weight-warnings"
-
-check-runtime-migration-rococo:
- stage: check
- extends:
- - .docker-env
- - .test-pr-refs
- - .check-runtime-migration
- variables:
- NETWORK: "rococo"
- PACKAGE: "rococo-runtime"
- WASM: "rococo_runtime.compact.compressed.wasm"
- URI: "wss://rococo-try-runtime-node.parity-chains.parity.io:443"
- SUBCOMMAND_EXTRA_ARGS: "--no-weight-warnings"
-
-find-fail-ci-phrase:
- stage: check
- variables:
- CI_IMAGE: "paritytech/tools:latest"
- ASSERT_REGEX: "FAIL-CI"
- GIT_DEPTH: 1
- extends:
- - .kubernetes-env
- - .test-pr-refs
- script:
- - set +e
- - rg --line-number --hidden --type rust --glob '!{.git,target}' "$ASSERT_REGEX" .; exit_status=$?
- - if [ $exit_status -eq 0 ]; then
- echo "$ASSERT_REGEX was found, exiting with 1";
- exit 1;
- else
- echo "No $ASSERT_REGEX was found, exiting with 0";
- exit 0;
- fi
-
-check-core-crypto-features:
- stage: check
- extends:
- - .docker-env
- - .common-refs
- script:
- - pushd substrate/primitives/core
- - ./check-features-variants.sh
- - popd
- - pushd substrate/primitives/application-crypto
- - ./check-features-variants.sh
- - popd
- - pushd substrate/primitives/keyring
- - ./check-features-variants.sh
- - popd
diff --git a/.gitlab/pipeline/test.yml b/.gitlab/pipeline/test.yml
index d171a8a19426c959f776aa0780f4373c4b23b4e6..85f6e8dc780bd27631df0dc67ff5807f401a4631 100644
--- a/.gitlab/pipeline/test.yml
+++ b/.gitlab/pipeline/test.yml
@@ -110,8 +110,6 @@ test-linux-stable-codecov:
codecovcli -v do-upload -f target/coverage/result/report-${CI_NODE_INDEX}.lcov --disable-search -t ${CODECOV_TOKEN} -r paritytech/polkadot-sdk --commit-sha ${CI_COMMIT_SHA} --fail-on-error --git-service github;
fi
- #
-
test-linux-stable:
stage: test
extends:
@@ -398,25 +396,13 @@ test-frame-ui:
script:
- time cargo test --locked -q --profile testnet -p frame-support-test --features=frame-feature-testing,no-metadata-docs,try-runtime,experimental
- time cargo test --locked -q --profile testnet -p frame-support-test --features=frame-feature-testing,frame-feature-testing-2,no-metadata-docs,try-runtime,experimental
+ - time cargo test --locked -q --profile testnet -p xcm-procedural
+ - time cargo test --locked -q --profile testnet -p frame-election-provider-solution-type
+ - time cargo test --locked -q --profile testnet -p sp-api-test
+ # There is multiple version of sp-runtime-interface in the repo. So we point to the manifest.
+ - time cargo test --locked -q --profile testnet --manifest-path substrate/primitives/runtime-interface/Cargo.toml
- cat /cargo_target_dir/debug/.fingerprint/memory_units-759eddf317490d2b/lib-memory_units.json || true
-# This job runs all benchmarks defined in the `/bin/node/runtime` once to check that there are no errors.
-quick-benchmarks:
- 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 -D warnings"
- RUST_BACKTRACE: "full"
- 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 --quiet -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet
-
quick-benchmarks-omni:
stage: test
extends:
diff --git a/.gitlab/pipeline/zombienet/bridges.yml b/.gitlab/pipeline/zombienet/bridges.yml
index 9d7a8b9311934a148e855caf7c4315d8a281aed1..070bfc8472d5ab797141862bd0d0066d420bc922 100644
--- a/.gitlab/pipeline/zombienet/bridges.yml
+++ b/.gitlab/pipeline/zombienet/bridges.yml
@@ -52,12 +52,12 @@ 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
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-test.sh 0001-asset-transfer --docker
- echo "Done"
zombienet-bridges-0002-free-headers-synced-while-idle:
extends:
- .zombienet-bridges-common
script:
- - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0002-free-headers-synced-while-idle --docker
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-test.sh 0002-free-headers-synced-while-idle --docker
- echo "Done"
diff --git a/.gitlab/pipeline/zombienet/cumulus.yml b/.gitlab/pipeline/zombienet/cumulus.yml
index a7f321505bacf99df202c1469e7a75b4f0b30ba4..6e2b53fae6198501297960de84ecdb1606d3e128 100644
--- a/.gitlab/pipeline/zombienet/cumulus.yml
+++ b/.gitlab/pipeline/zombienet/cumulus.yml
@@ -149,3 +149,27 @@ zombienet-cumulus-0007-full_node_warp_sync:
--local-dir="${LOCAL_DIR}"
--concurrency=1
--test="0007-full_node_warp_sync.zndsl"
+
+zombienet-cumulus-0008-elastic_authoring:
+ extends:
+ - .zombienet-cumulus-common
+ - .zombienet-refs
+ - .zombienet-before-script
+ - .zombienet-after-script
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}"
+ --concurrency=1
+ --test="0008-elastic_authoring.zndsl"
+
+zombienet-cumulus-0009-elastic_pov_recovery:
+ extends:
+ - .zombienet-cumulus-common
+ - .zombienet-refs
+ - .zombienet-before-script
+ - .zombienet-after-script
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}"
+ --concurrency=1
+ --test="0009-elastic_pov_recovery.zndsl"
diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml
index b158cbe0b5aa3a50d490129dab87c9e7d6769b35..b4ef4bb7446c8a9bfe602322cd8ac07a30f14b40 100644
--- a/.gitlab/pipeline/zombienet/polkadot.yml
+++ b/.gitlab/pipeline/zombienet/polkadot.yml
@@ -162,6 +162,9 @@ zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks:
- .zombienet-polkadot-common
variables:
FORCED_INFRA_INSTANCE: "spot-iops"
+ before_script:
+ - !reference [.zombienet-polkadot-common, before_script]
+ - cp --remove-destination ${LOCAL_DIR}/assign-core.js ${LOCAL_DIR}/elastic_scaling
script:
- /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
--local-dir="${LOCAL_DIR}/elastic_scaling"
@@ -170,6 +173,9 @@ zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks:
zombienet-polkadot-elastic-scaling-0002-elastic-scaling-doesnt-break-parachains:
extends:
- .zombienet-polkadot-common
+ before_script:
+ - !reference [.zombienet-polkadot-common, before_script]
+ - cp --remove-destination ${LOCAL_DIR}/assign-core.js ${LOCAL_DIR}/elastic_scaling
script:
- /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
--local-dir="${LOCAL_DIR}/elastic_scaling"
@@ -199,6 +205,17 @@ zombienet-polkadot-functional-0014-chunk-fetching-network-compatibility:
--local-dir="${LOCAL_DIR}/functional"
--test="0014-chunk-fetching-network-compatibility.zndsl"
+zombienet-polkadot-functional-0015-coretime-shared-core:
+ extends:
+ - .zombienet-polkadot-common
+ before_script:
+ - !reference [.zombienet-polkadot-common, before_script]
+ - cp --remove-destination ${LOCAL_DIR}/assign-core.js ${LOCAL_DIR}/functional
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}/functional"
+ --test="0015-coretime-shared-core.zndsl"
+
zombienet-polkadot-smoke-0001-parachains-smoke-test:
extends:
- .zombienet-polkadot-common
@@ -259,6 +276,14 @@ zombienet-polkadot-smoke-0004-coretime-smoke-test:
--local-dir="${LOCAL_DIR}/smoke"
--test="0004-coretime-smoke-test.zndsl"
+zombienet-polkadot-smoke-0005-precompile-pvf-smoke:
+ extends:
+ - .zombienet-polkadot-common
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}/smoke"
+ --test="0005-precompile-pvf-smoke.zndsl"
+
zombienet-polkadot-misc-0001-parachains-paritydb:
extends:
- .zombienet-polkadot-common
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 120000
index 0000000000000000000000000000000000000000..63b2a0dc1abc8daf348a8112688d254407837dd9
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+docs/contributor/CODE_OF_CONDUCT.md
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 120000
index 0000000000000000000000000000000000000000..0f645512e8e47f744720a79767f0f78f919ea914
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1 @@
+docs/contributor/CONTRIBUTING.md
\ No newline at end of file
diff --git a/Cargo.lock b/Cargo.lock
index 92b79a9182a794645211913f800b4db8164035a8..ab209b070ec7584bca60c70324093cc092836601 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -83,19 +83,19 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
"once_cell",
"version_check",
]
[[package]]
name = "ahash"
-version = "0.8.8"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
- "getrandom 0.2.10",
+ "getrandom",
"once_cell",
"version_check",
"zerocopy",
@@ -130,7 +130,7 @@ dependencies = [
"hex-literal",
"itoa",
"proptest",
- "rand 0.8.5",
+ "rand",
"ruint",
"serde",
"tiny-keccak",
@@ -158,7 +158,7 @@ dependencies = [
"heck 0.4.1",
"proc-macro-error",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
"syn-solidity",
"tiny-keccak",
@@ -262,9 +262,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.81"
+version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
[[package]]
name = "approx"
@@ -285,7 +285,7 @@ dependencies = [
"itertools 0.10.5",
"proc-macro-error",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -294,6 +294,9 @@ name = "arbitrary"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+dependencies = [
+ "derive_arbitrary",
+]
[[package]]
name = "ark-bls12-377"
@@ -481,7 +484,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
dependencies = [
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -491,7 +494,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"
dependencies = [
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -503,7 +506,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20"
dependencies = [
"num-bigint",
"num-traits",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -516,7 +519,7 @@ dependencies = [
"num-bigint",
"num-traits",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -577,7 +580,7 @@ dependencies = [
[[package]]
name = "ark-secret-scalar"
version = "0.0.2"
-source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
+source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d"
dependencies = [
"ark-ec",
"ark-ff 0.4.2",
@@ -618,7 +621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -629,7 +632,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c"
dependencies = [
"num-traits",
- "rand 0.8.5",
+ "rand",
]
[[package]]
@@ -639,20 +642,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"
dependencies = [
"num-traits",
- "rand 0.8.5",
+ "rand",
"rayon",
]
[[package]]
name = "ark-transcript"
version = "0.0.2"
-source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
+source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d"
dependencies = [
"ark-ff 0.4.2",
"ark-serialize 0.4.2",
"ark-std 0.4.0",
"digest 0.10.7",
- "rand_core 0.6.4",
+ "rand_core",
"sha3",
]
@@ -689,8 +692,24 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
+ "asn1-rs-derive 0.4.0",
+ "asn1-rs-impl 0.1.0",
+ "displaydoc",
+ "nom",
+ "num-traits",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "asn1-rs"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d"
+dependencies = [
+ "asn1-rs-derive 0.5.0",
+ "asn1-rs-impl 0.2.0",
"displaydoc",
"nom",
"num-traits",
@@ -706,9 +725,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
- "synstructure",
+ "synstructure 0.12.6",
+]
+
+[[package]]
+name = "asn1-rs-derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
+ "synstructure 0.13.1",
]
[[package]]
@@ -718,15 +749,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
+[[package]]
+name = "asn1-rs-impl"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
+]
+
[[package]]
name = "assert_cmd"
-version = "2.0.12"
+version = "2.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
dependencies = [
"anstyle",
"bstr",
@@ -763,7 +805,6 @@ name = "asset-hub-rococo-integration-tests"
version = "1.0.0"
dependencies = [
"assert_matches",
- "asset-hub-rococo-runtime",
"asset-test-utils",
"cumulus-pallet-parachain-system",
"emulated-integration-tests-common",
@@ -777,14 +818,13 @@ dependencies = [
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
- "penpal-runtime",
"polkadot-runtime-common",
- "rococo-runtime",
"rococo-runtime-constants",
"rococo-system-emulated-network",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
+ "xcm-runtime-apis",
]
[[package]]
@@ -820,6 +860,7 @@ dependencies = [
"pallet-asset-conversion-ops",
"pallet-asset-conversion-tx-payment",
"pallet-assets",
+ "pallet-assets-freezer",
"pallet-aura",
"pallet-authorship",
"pallet-balances",
@@ -856,7 +897,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -867,7 +907,7 @@ dependencies = [
"staging-xcm-executor",
"substrate-wasm-builder",
"testnet-parachains-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -890,7 +930,6 @@ name = "asset-hub-westend-integration-tests"
version = "1.0.0"
dependencies = [
"assert_matches",
- "asset-hub-westend-runtime",
"asset-test-utils",
"cumulus-pallet-parachain-system",
"cumulus-pallet-xcmp-queue",
@@ -908,16 +947,14 @@ dependencies = [
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
- "penpal-runtime",
"polkadot-runtime-common",
"sp-core",
"sp-keyring",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
- "westend-runtime",
"westend-system-emulated-network",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -953,6 +990,7 @@ dependencies = [
"pallet-asset-conversion-ops",
"pallet-asset-conversion-tx-payment",
"pallet-assets",
+ "pallet-assets-freezer",
"pallet-aura",
"pallet-authorship",
"pallet-balances",
@@ -979,6 +1017,7 @@ dependencies = [
"polkadot-runtime-common",
"primitive-types",
"scale-info",
+ "snowbridge-router-primitives",
"sp-api",
"sp-block-builder",
"sp-consensus-aura",
@@ -999,7 +1038,7 @@ dependencies = [
"substrate-wasm-builder",
"testnet-parachains-constants",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -1024,7 +1063,6 @@ dependencies = [
"parity-scale-codec",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"staging-parachain-info",
"staging-xcm",
"staging-xcm-builder",
@@ -1047,7 +1085,6 @@ dependencies = [
"scale-info",
"sp-api",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
@@ -1060,7 +1097,7 @@ version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
dependencies = [
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -1071,7 +1108,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",
]
@@ -1081,11 +1118,11 @@ 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",
- "futures-lite",
+ "futures-lite 1.13.0",
"slab",
]
@@ -1095,10 +1132,10 @@ 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",
+ "futures-lite 1.13.0",
]
[[package]]
@@ -1109,10 +1146,10 @@ checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
dependencies = [
"async-channel",
"async-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
"once_cell",
]
@@ -1122,27 +1159,57 @@ 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",
- "futures-lite",
+ "futures-lite 1.13.0",
"log",
"parking",
- "polling",
+ "polling 2.8.0",
"rustix 0.37.23",
"slab",
"socket2 0.4.9",
"waker-fn",
]
+[[package]]
+name = "async-io"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
+dependencies = [
+ "async-lock 3.4.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.3.0",
+ "parking",
+ "polling 3.4.0",
+ "rustix 0.38.21",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
[[package]]
name = "async-lock"
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.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+dependencies = [
+ "event-listener 5.2.0",
+ "event-listener-strategy",
+ "pin-project-lite",
]
[[package]]
@@ -1151,10 +1218,10 @@ version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f"
dependencies = [
- "async-io",
+ "async-io 1.13.0",
"autocfg",
"blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
]
[[package]]
@@ -1163,13 +1230,13 @@ version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
dependencies = [
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"autocfg",
"blocking",
"cfg-if",
- "event-listener",
- "futures-lite",
+ "event-listener 2.5.3",
+ "futures-lite 1.13.0",
"rustix 0.37.23",
"signal-hook",
"windows-sys 0.48.0",
@@ -1184,19 +1251,19 @@ dependencies = [
"async-attributes",
"async-channel",
"async-global-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"crossbeam-utils",
"futures-channel",
"futures-core",
"futures-io",
- "futures-lite",
+ "futures-lite 1.13.0",
"gloo-timers",
"kv-log-macro",
"log",
"memchr",
"once_cell",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"pin-utils",
"slab",
"wasm-bindgen-futures",
@@ -1210,7 +1277,7 @@ checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
dependencies = [
"async-stream-impl",
"futures-core",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
]
[[package]]
@@ -1220,7 +1287,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -1232,12 +1299,12 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
[[package]]
name = "async-trait"
-version = "0.1.79"
+version = "0.1.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -1251,7 +1318,7 @@ dependencies = [
"futures-sink",
"futures-util",
"memchr",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
]
[[package]]
@@ -1266,6 +1333,17 @@ version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
+[[package]]
+name = "attohttpc"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2"
+dependencies = [
+ "http 0.2.9",
+ "log",
+ "url",
+]
+
[[package]]
name = "atty"
version = "0.2.14"
@@ -1285,7 +1363,7 @@ checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
dependencies = [
"proc-macro-error",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -1301,16 +1379,16 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
"instant",
- "rand 0.8.5",
+ "rand",
]
[[package]]
name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
dependencies = [
"addr2line 0.21.0",
"cc",
@@ -1324,7 +1402,7 @@ dependencies = [
[[package]]
name = "bandersnatch_vrfs"
version = "0.0.4"
-source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
+source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d"
dependencies = [
"ark-bls12-381",
"ark-ec",
@@ -1333,10 +1411,8 @@ dependencies = [
"ark-serialize 0.4.2",
"ark-std 0.4.0",
"dleq_vrf",
- "fflonk",
- "merlin",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "rand_chacha",
+ "rand_core",
"ring 0.1.0",
"sha2 0.10.8",
"sp-ark-bls12-381",
@@ -1368,6 +1444,12 @@ version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
[[package]]
name = "base64ct"
version = "1.6.0"
@@ -1383,25 +1465,16 @@ dependencies = [
"serde",
]
-[[package]]
-name = "beef"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
-dependencies = [
- "serde",
-]
-
[[package]]
name = "binary-merkle-tree"
version = "13.0.0"
dependencies = [
"array-bytes",
- "env_logger 0.11.3",
"hash-db",
"log",
"sp-core",
"sp-runtime",
+ "sp-tracing 16.0.0",
]
[[package]]
@@ -1427,9 +1500,9 @@ dependencies = [
"peeking_take_while",
"prettyplease 0.2.12",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"regex",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"shlex",
"syn 2.0.61",
]
@@ -1490,9 +1563,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.4.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "bitvec"
@@ -1540,13 +1613,13 @@ dependencies = [
[[package]]
name = "blake2b_simd"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
dependencies = [
"arrayref",
"arrayvec 0.7.4",
- "constant_time_eq 0.2.6",
+ "constant_time_eq 0.3.0",
]
[[package]]
@@ -1598,11 +1671,11 @@ 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",
- "futures-lite",
+ "futures-lite 1.13.0",
"log",
]
@@ -1899,7 +1972,7 @@ dependencies = [
"bp-parachains",
"bp-polkadot-core",
"bp-runtime",
- "ed25519-dalek 2.1.1",
+ "ed25519-dalek",
"finality-grandpa",
"parity-scale-codec",
"sp-application-crypto",
@@ -1951,7 +2024,6 @@ dependencies = [
"snowbridge-core",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
]
@@ -1972,8 +2044,6 @@ dependencies = [
name = "bridge-hub-rococo-integration-tests"
version = "1.0.0"
dependencies = [
- "asset-hub-rococo-runtime",
- "bridge-hub-rococo-runtime",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
"frame-support",
@@ -2033,6 +2103,7 @@ dependencies = [
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
+ "frame-metadata-hash-extension",
"frame-support",
"frame-system",
"frame-system-benchmarking",
@@ -2095,11 +2166,9 @@ dependencies = [
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
- "static_assertions",
"substrate-wasm-builder",
"testnet-parachains-constants",
- "tuplex",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -2134,7 +2203,6 @@ dependencies = [
"sp-io",
"sp-keyring",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"staging-xcm",
"staging-xcm-builder",
@@ -2158,10 +2226,13 @@ dependencies = [
name = "bridge-hub-westend-integration-tests"
version = "1.0.0"
dependencies = [
+ "asset-hub-westend-runtime",
"bridge-hub-westend-runtime",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
"frame-support",
+ "hex-literal",
+ "log",
"pallet-asset-conversion",
"pallet-assets",
"pallet-balances",
@@ -2169,10 +2240,20 @@ dependencies = [
"pallet-message-queue",
"pallet-xcm",
"parachains-common",
+ "parity-scale-codec",
"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",
+ "snowbridge-router-primitives",
+ "sp-core",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
+ "testnet-parachains-constants",
]
[[package]]
@@ -2205,6 +2286,7 @@ dependencies = [
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
+ "frame-metadata-hash-extension",
"frame-support",
"frame-system",
"frame-system-benchmarking",
@@ -2236,6 +2318,17 @@ dependencies = [
"polkadot-runtime-common",
"scale-info",
"serde",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-outbound-queue-runtime-api",
+ "snowbridge-pallet-ethereum-client",
+ "snowbridge-pallet-inbound-queue",
+ "snowbridge-pallet-outbound-queue",
+ "snowbridge-pallet-system",
+ "snowbridge-router-primitives",
+ "snowbridge-runtime-common",
+ "snowbridge-runtime-test-common",
+ "snowbridge-system-runtime-api",
"sp-api",
"sp-block-builder",
"sp-consensus-aura",
@@ -2255,12 +2348,10 @@ dependencies = [
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
- "static_assertions",
"substrate-wasm-builder",
"testnet-parachains-constants",
- "tuplex",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -2278,7 +2369,6 @@ dependencies = [
"bp-xcm-bridge-hub-router",
"frame-support",
"frame-system",
- "hash-db",
"log",
"pallet-balances",
"pallet-bridge-grandpa",
@@ -2289,8 +2379,6 @@ dependencies = [
"pallet-utility",
"parity-scale-codec",
"scale-info",
- "sp-api",
- "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
@@ -2309,9 +2397,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
[[package]]
name = "bs58"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896"
+checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
dependencies = [
"tinyvec",
]
@@ -2439,14 +2527,20 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
[[package]]
name = "cc"
-version = "1.0.83"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
dependencies = [
"jobserver",
"libc",
]
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
[[package]]
name = "cexpr"
version = "0.6.0"
@@ -2511,6 +2605,31 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "chain-spec-guide-runtime"
+version = "0.0.0"
+dependencies = [
+ "docify",
+ "pallet-balances",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec",
+ "polkadot-sdk-frame",
+ "sc-chain-spec",
+ "scale-info",
+ "serde",
+ "serde_json",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-keyring",
+ "sp-runtime",
+ "staging-chain-spec-builder",
+ "substrate-wasm-builder",
+]
+
[[package]]
name = "chrono"
version = "0.4.31"
@@ -2562,7 +2681,7 @@ dependencies = [
"multibase",
"multihash 0.17.0",
"serde",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
]
[[package]]
@@ -2575,7 +2694,7 @@ dependencies = [
"multibase",
"multihash 0.18.1",
"serde",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
]
[[package]]
@@ -2652,12 +2771,12 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.3"
+version = "4.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
+checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3"
dependencies = [
"clap_builder",
- "clap_derive 4.5.3",
+ "clap_derive 4.5.11",
]
[[package]]
@@ -2671,9 +2790,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.2"
+version = "4.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa"
dependencies = [
"anstream",
"anstyle",
@@ -2688,7 +2807,7 @@ version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
]
[[package]]
@@ -2700,19 +2819,19 @@ dependencies = [
"heck 0.4.1",
"proc-macro-error",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
[[package]]
name = "clap_derive"
-version = "4.5.3"
+version = "4.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
+checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e"
dependencies = [
"heck 0.5.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -2739,7 +2858,7 @@ checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354"
dependencies = [
"libc",
"once_cell",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
"wasm-bindgen",
]
@@ -2771,8 +2890,6 @@ name = "collectives-westend-integration-tests"
version = "1.0.0"
dependencies = [
"assert_matches",
- "asset-hub-westend-runtime",
- "collectives-westend-runtime",
"cumulus-pallet-parachain-system",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
@@ -2783,6 +2900,7 @@ dependencies = [
"pallet-message-queue",
"pallet-treasury",
"pallet-utility",
+ "pallet-whitelist",
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
@@ -2791,7 +2909,6 @@ dependencies = [
"staging-xcm",
"staging-xcm-executor",
"testnet-parachains-constants",
- "westend-runtime",
"westend-runtime-constants",
"westend-system-emulated-network",
]
@@ -2859,7 +2976,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -2870,7 +2986,7 @@ dependencies = [
"substrate-wasm-builder",
"testnet-parachains-constants",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -2903,7 +3019,7 @@ checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b"
dependencies = [
"nom",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -2948,7 +3064,7 @@ dependencies = [
[[package]]
name = "common"
version = "0.1.0"
-source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224"
+source = "git+https://github.com/w3f/ring-proof?rev=665f5f5#665f5f51af5734c7b6d90b985dd6861d4c5b4752"
dependencies = [
"ark-ec",
"ark-ff 0.4.2",
@@ -2958,7 +3074,7 @@ dependencies = [
"fflonk",
"getrandom_or_panic",
"merlin",
- "rand_chacha 0.3.1",
+ "rand_chacha",
]
[[package]]
@@ -3034,7 +3150,7 @@ version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
"once_cell",
"proc-macro-hack",
"tiny-keccak",
@@ -3116,7 +3232,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -3126,7 +3241,7 @@ dependencies = [
"staging-xcm-executor",
"substrate-wasm-builder",
"testnet-parachains-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -3137,9 +3252,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
[[package]]
name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
dependencies = [
"core-foundation-sys",
"libc",
@@ -3147,9 +3262,9 @@ dependencies = [
[[package]]
name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "core2"
@@ -3160,6 +3275,36 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "coretime-rococo-emulated-chain"
+version = "0.0.0"
+dependencies = [
+ "coretime-rococo-runtime",
+ "cumulus-primitives-core",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "parachains-common",
+ "sp-core",
+ "testnet-parachains-constants",
+]
+
+[[package]]
+name = "coretime-rococo-integration-tests"
+version = "0.1.0"
+dependencies = [
+ "emulated-integration-tests-common",
+ "frame-support",
+ "pallet-balances",
+ "pallet-identity",
+ "pallet-message-queue",
+ "polkadot-runtime-common",
+ "rococo-runtime-constants",
+ "rococo-system-emulated-network",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
[[package]]
name = "coretime-rococo-runtime"
version = "0.1.0"
@@ -3175,6 +3320,7 @@ dependencies = [
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
+ "frame-metadata-hash-extension",
"frame-support",
"frame-system",
"frame-system-benchmarking",
@@ -3213,7 +3359,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -3223,7 +3368,37 @@ dependencies = [
"staging-xcm-executor",
"substrate-wasm-builder",
"testnet-parachains-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
+]
+
+[[package]]
+name = "coretime-westend-emulated-chain"
+version = "0.0.0"
+dependencies = [
+ "coretime-westend-runtime",
+ "cumulus-primitives-core",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "parachains-common",
+ "sp-core",
+ "testnet-parachains-constants",
+]
+
+[[package]]
+name = "coretime-westend-integration-tests"
+version = "0.1.0"
+dependencies = [
+ "emulated-integration-tests-common",
+ "frame-support",
+ "pallet-balances",
+ "pallet-identity",
+ "pallet-message-queue",
+ "polkadot-runtime-common",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-executor",
+ "westend-runtime-constants",
+ "westend-system-emulated-network",
]
[[package]]
@@ -3241,6 +3416,7 @@ dependencies = [
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
+ "frame-metadata-hash-extension",
"frame-support",
"frame-system",
"frame-system-benchmarking",
@@ -3277,7 +3453,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -3288,7 +3463,7 @@ dependencies = [
"substrate-wasm-builder",
"testnet-parachains-constants",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -3459,7 +3634,7 @@ dependencies = [
"anes",
"cast",
"ciborium",
- "clap 4.5.3",
+ "clap 4.5.11",
"criterion-plot",
"futures",
"is-terminal",
@@ -3544,7 +3719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
dependencies = [
"generic-array 0.14.7",
- "rand_core 0.6.4",
+ "rand_core",
"subtle 2.5.0",
"zeroize",
]
@@ -3556,7 +3731,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
"generic-array 0.14.7",
- "rand_core 0.6.4",
+ "rand_core",
"typenum",
]
@@ -3593,7 +3768,7 @@ dependencies = [
name = "cumulus-client-cli"
version = "0.7.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"parity-scale-codec",
"sc-chain-spec",
"sc-cli",
@@ -3618,7 +3793,7 @@ dependencies = [
"cumulus-test-runtime",
"futures",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
@@ -3649,6 +3824,7 @@ dependencies = [
"cumulus-relay-chain-interface",
"futures",
"parity-scale-codec",
+ "parking_lot 0.12.3",
"polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-overseer",
@@ -3659,6 +3835,7 @@ dependencies = [
"sc-consensus-babe",
"sc-consensus-slots",
"sc-telemetry",
+ "sc-utils",
"schnellru",
"sp-api",
"sp-application-crypto",
@@ -3673,6 +3850,7 @@ dependencies = [
"sp-state-machine",
"sp-timestamp",
"substrate-prometheus-endpoint",
+ "tokio",
"tracing",
]
@@ -3704,6 +3882,7 @@ dependencies = [
"sp-timestamp",
"sp-tracing 16.0.0",
"sp-trie",
+ "sp-version",
"substrate-prometheus-endpoint",
"tracing",
]
@@ -3731,7 +3910,7 @@ dependencies = [
"cumulus-primitives-core",
"cumulus-relay-chain-interface",
"futures",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-consensus",
"sp-api",
"sp-block-builder",
@@ -3756,14 +3935,17 @@ dependencies = [
"futures",
"futures-timer",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-primitives",
+ "polkadot-node-subsystem",
"polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-test-client",
"portpicker",
+ "rstest",
"sc-cli",
"sc-client-api",
+ "sp-api",
"sp-blockchain",
"sp-consensus",
"sp-core",
@@ -3771,6 +3953,7 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-state-machine",
+ "sp-version",
"substrate-test-utils",
"tokio",
"tracing",
@@ -3788,13 +3971,11 @@ dependencies = [
"cumulus-test-relay-sproof-builder",
"parity-scale-codec",
"sc-client-api",
- "scale-info",
"sp-api",
"sp-crypto-hashing",
"sp-inherents",
"sp-runtime",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-trie",
"tracing",
@@ -3804,9 +3985,11 @@ dependencies = [
name = "cumulus-client-pov-recovery"
version = "0.7.0"
dependencies = [
+ "assert_matches",
"async-trait",
"cumulus-primitives-core",
"cumulus-relay-chain-interface",
+ "cumulus-test-client",
"cumulus-test-service",
"futures",
"futures-timer",
@@ -3816,13 +3999,19 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"portpicker",
- "rand 0.8.5",
+ "rand",
+ "rstest",
"sc-cli",
"sc-client-api",
"sc-consensus",
+ "sc-utils",
+ "sp-api",
+ "sp-blockchain",
"sp-consensus",
"sp-maybe-compressed-blob",
"sp-runtime",
+ "sp-tracing 16.0.0",
+ "sp-version",
"substrate-test-utils",
"tokio",
"tracing",
@@ -3878,7 +4067,6 @@ dependencies = [
"sp-application-crypto",
"sp-consensus-aura",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -3895,7 +4083,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"staging-xcm",
]
@@ -3927,7 +4114,7 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-runtime-common",
"polkadot-runtime-parachains",
- "rand 0.8.5",
+ "rand",
"sc-client-api",
"scale-info",
"sp-consensus-slots",
@@ -3955,7 +4142,7 @@ version = "0.6.0"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -3969,7 +4156,6 @@ dependencies = [
"pallet-session",
"parity-scale-codec",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -3984,7 +4170,6 @@ dependencies = [
"polkadot-primitives",
"scale-info",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -3998,7 +4183,6 @@ dependencies = [
"scale-info",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
]
@@ -4023,7 +4207,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
@@ -4040,21 +4223,33 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
]
[[package]]
-name = "cumulus-primitives-aura"
-version = "0.7.0"
+name = "cumulus-pov-validator"
+version = "0.1.0"
dependencies = [
+ "anyhow",
+ "clap 4.5.11",
"parity-scale-codec",
- "polkadot-core-primitives",
+ "polkadot-node-primitives",
+ "polkadot-parachain-primitives",
"polkadot-primitives",
+ "sc-executor",
+ "sp-core",
+ "sp-io",
+ "sp-maybe-compressed-blob",
+ "tracing",
+ "tracing-subscriber 0.3.18",
+]
+
+[[package]]
+name = "cumulus-primitives-aura"
+version = "0.7.0"
+dependencies = [
"sp-api",
"sp-consensus-aura",
- "sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -4068,7 +4263,6 @@ dependencies = [
"scale-info",
"sp-api",
"sp-runtime",
- "sp-std 14.0.0",
"sp-trie",
"staging-xcm",
]
@@ -4083,9 +4277,6 @@ dependencies = [
"scale-info",
"sp-core",
"sp-inherents",
- "sp-runtime",
- "sp-state-machine",
- "sp-std 14.0.0",
"sp-trie",
]
@@ -4116,7 +4307,6 @@ dependencies = [
"scale-info",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-trie",
]
@@ -4125,10 +4315,7 @@ name = "cumulus-primitives-timestamp"
version = "0.7.0"
dependencies = [
"cumulus-primitives-core",
- "futures",
- "parity-scale-codec",
"sp-inherents",
- "sp-std 14.0.0",
"sp-timestamp",
]
@@ -4142,10 +4329,7 @@ dependencies = [
"pallet-asset-conversion",
"parity-scale-codec",
"polkadot-runtime-common",
- "polkadot-runtime-parachains",
- "sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
@@ -4193,6 +4377,7 @@ dependencies = [
"sp-api",
"sp-blockchain",
"sp-state-machine",
+ "sp-version",
"thiserror",
]
@@ -4206,15 +4391,8 @@ dependencies = [
"cumulus-relay-chain-interface",
"cumulus-relay-chain-rpc-interface",
"futures",
- "parking_lot 0.12.1",
- "polkadot-availability-recovery",
- "polkadot-collator-protocol",
"polkadot-core-primitives",
"polkadot-network-bridge",
- "polkadot-node-collation-generation",
- "polkadot-node-core-chain-api",
- "polkadot-node-core-prospective-parachains",
- "polkadot-node-core-runtime-api",
"polkadot-node-network-protocol",
"polkadot-node-subsystem-util",
"polkadot-overseer",
@@ -4251,7 +4429,7 @@ dependencies = [
"parity-scale-codec",
"pin-project",
"polkadot-overseer",
- "rand 0.8.5",
+ "rand",
"sc-client-api",
"sc-rpc-api",
"sc-service",
@@ -4321,7 +4499,6 @@ dependencies = [
"polkadot-primitives",
"sp-runtime",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-trie",
]
@@ -4360,9 +4537,9 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-transaction-pool",
"sp-version",
+ "staging-parachain-info",
"substrate-wasm-builder",
]
@@ -4371,7 +4548,7 @@ name = "cumulus-test-service"
version = "0.1.0"
dependencies = [
"async-trait",
- "clap 4.5.3",
+ "clap 4.5.11",
"criterion",
"cumulus-client-cli",
"cumulus-client-collator",
@@ -4406,8 +4583,7 @@ dependencies = [
"polkadot-service",
"polkadot-test-service",
"portpicker",
- "rand 0.8.5",
- "rococo-parachain-runtime",
+ "rand",
"sc-basic-authorship",
"sc-block-builder",
"sc-chain-spec",
@@ -4432,7 +4608,6 @@ dependencies = [
"sp-blockchain",
"sp-consensus",
"sp-consensus-aura",
- "sp-consensus-grandpa",
"sp-core",
"sp-io",
"sp-keyring",
@@ -4459,7 +4634,7 @@ dependencies = [
"openssl-probe",
"openssl-sys",
"schannel",
- "socket2 0.5.6",
+ "socket2 0.5.7",
"windows-sys 0.52.0",
]
@@ -4481,29 +4656,15 @@ dependencies = [
[[package]]
name = "curve25519-dalek"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
-dependencies = [
- "byteorder",
- "digest 0.9.0",
- "rand_core 0.5.1",
- "subtle 2.5.0",
- "zeroize",
-]
-
-[[package]]
-name = "curve25519-dalek"
-version = "4.1.2"
+version = "4.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
dependencies = [
"cfg-if",
"cpufeatures",
"curve25519-dalek-derive",
"digest 0.10.7",
"fiat-crypto",
- "platforms",
"rustc_version 0.4.0",
"subtle 2.5.0",
"zeroize",
@@ -4516,7 +4677,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -4528,7 +4689,7 @@ checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8"
dependencies = [
"byteorder",
"digest 0.9.0",
- "rand_core 0.6.4",
+ "rand_core",
"subtle-ng",
"zeroize",
]
@@ -4555,7 +4716,7 @@ dependencies = [
"codespan-reporting",
"once_cell",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"scratch",
"syn 2.0.61",
]
@@ -4573,7 +4734,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -4641,7 +4802,21 @@ version = "8.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
+ "displaydoc",
+ "nom",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
+]
+
+[[package]]
+name = "der-parser"
+version = "9.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553"
+dependencies = [
+ "asn1-rs 0.6.1",
"displaydoc",
"nom",
"num-bigint",
@@ -4651,9 +4826,12 @@ dependencies = [
[[package]]
name = "deranged"
-version = "0.3.8"
+version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
[[package]]
name = "derivative"
@@ -4662,29 +4840,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
[[package]]
name = "derive-syn-parse"
-version = "0.1.5"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd"
+checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
- "syn 1.0.109",
+ "quote 1.0.36",
+ "syn 2.0.61",
]
[[package]]
-name = "derive-syn-parse"
-version = "0.2.0"
+name = "derive_arbitrary"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -4696,7 +4874,7 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
"convert_case",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"rustc_version 0.4.0",
"syn 1.0.109",
]
@@ -4792,7 +4970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -4805,7 +4983,7 @@ checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
[[package]]
name = "dleq_vrf"
version = "0.0.2"
-source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
+source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d"
dependencies = [
"ark-ec",
"ark-ff 0.4.2",
@@ -4849,10 +5027,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad"
dependencies = [
"common-path",
- "derive-syn-parse 0.2.0",
+ "derive-syn-parse",
"once_cell",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"regex",
"syn 2.0.61",
"termcolor",
@@ -4901,7 +5079,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -4922,19 +5100,10 @@ dependencies = [
"elliptic-curve",
"rfc6979",
"serdect",
- "signature 2.1.0",
+ "signature",
"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"
@@ -4942,21 +5111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
dependencies = [
"pkcs8",
- "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",
+ "signature",
]
[[package]]
@@ -4965,9 +5120,9 @@ version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
dependencies = [
- "curve25519-dalek 4.1.2",
- "ed25519 2.2.2",
- "rand_core 0.6.4",
+ "curve25519-dalek",
+ "ed25519",
+ "rand_core",
"serde",
"sha2 0.10.8",
"subtle 2.5.0",
@@ -4980,11 +5135,11 @@ version = "4.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9"
dependencies = [
- "curve25519-dalek 4.1.2",
- "ed25519 2.2.2",
+ "curve25519-dalek",
+ "ed25519",
"hashbrown 0.14.3",
"hex",
- "rand_core 0.6.4",
+ "rand_core",
"sha2 0.10.8",
"zeroize",
]
@@ -5008,7 +5163,7 @@ dependencies = [
"generic-array 0.14.7",
"group",
"pkcs8",
- "rand_core 0.6.4",
+ "rand_core",
"sec1",
"serdect",
"subtle 2.5.0",
@@ -5070,7 +5225,7 @@ checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
dependencies = [
"heck 0.4.1",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -5082,7 +5237,7 @@ checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
dependencies = [
"heck 0.4.1",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -5102,18 +5257,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "enumn"
-version = "0.1.12"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
+checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -5124,7 +5279,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
dependencies = [
"log",
- "regex",
]
[[package]]
@@ -5137,19 +5291,6 @@ dependencies = [
"regex",
]
-[[package]]
-name = "env_logger"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
[[package]]
name = "env_logger"
version = "0.10.1"
@@ -5172,7 +5313,6 @@ dependencies = [
"anstream",
"anstyle",
"env_filter",
- "humantime",
"log",
]
@@ -5290,6 +5430,27 @@ version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+[[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
+dependencies = [
+ "event-listener 5.2.0",
+ "pin-project-lite",
+]
+
[[package]]
name = "exit-future"
version = "0.2.0"
@@ -5301,14 +5462,16 @@ dependencies = [
[[package]]
name = "expander"
-version = "2.0.0"
+version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7"
+checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2"
dependencies = [
"blake2 0.10.6",
+ "file-guard",
"fs-err",
+ "prettyplease 0.2.12",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -5380,7 +5543,7 @@ dependencies = [
"indexmap 2.2.3",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -5416,7 +5579,7 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
"subtle 2.5.0",
]
@@ -5439,6 +5602,16 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
+[[package]]
+name = "file-guard"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
[[package]]
name = "file-per-thread-logger"
version = "0.1.6"
@@ -5473,8 +5646,8 @@ dependencies = [
"log",
"num-traits",
"parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"scale-info",
]
@@ -5489,7 +5662,7 @@ dependencies = [
"futures",
"log",
"num-traits",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"relay-utils",
]
@@ -5512,7 +5685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534"
dependencies = [
"byteorder",
- "rand 0.8.5",
+ "rand",
"rustc-hex",
"static_assertions",
]
@@ -5530,7 +5703,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
dependencies = [
"crc32fast",
- "libz-sys",
"miniz_oxide",
]
@@ -5573,9 +5745,9 @@ dependencies = [
[[package]]
name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [
"percent-encoding",
]
@@ -5628,7 +5800,6 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-runtime-interface 24.0.0",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"static_assertions",
]
@@ -5640,7 +5811,7 @@ dependencies = [
"Inflector",
"array-bytes",
"chrono",
- "clap 4.5.3",
+ "clap 4.5.11",
"comfy-table",
"frame-benchmarking",
"frame-support",
@@ -5652,7 +5823,7 @@ dependencies = [
"linked-hash-map",
"log",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"rand_pcg",
"sc-block-builder",
"sc-chain-spec",
@@ -5693,7 +5864,6 @@ dependencies = [
"scale-info",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -5705,7 +5875,7 @@ dependencies = [
"parity-scale-codec",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"scale-info",
"sp-arithmetic",
"syn 2.0.61",
@@ -5720,27 +5890,26 @@ dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"sp-arithmetic",
"sp-core",
"sp-io",
"sp-npos-elections",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
name = "frame-election-solution-type-fuzzer"
version = "2.0.0-alpha.5"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"frame-election-provider-solution-type",
"frame-election-provider-support",
"frame-support",
"honggfuzz",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"sp-arithmetic",
"sp-npos-elections",
@@ -5765,7 +5934,6 @@ dependencies = [
"sp-inherents",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"sp-version",
]
@@ -5807,14 +5975,14 @@ dependencies = [
name = "frame-omni-bencher"
version = "0.1.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"cumulus-primitives-proof-size-hostfunction",
- "env_logger 0.11.3",
"frame-benchmarking-cli",
"log",
"sc-cli",
"sp-runtime",
"sp-statement-store",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -5890,16 +6058,27 @@ version = "23.0.0"
dependencies = [
"Inflector",
"cfg-expr",
- "derive-syn-parse 0.2.0",
+ "derive-syn-parse",
+ "docify",
"expander",
+ "frame-support",
"frame-support-procedural-tools",
+ "frame-system",
"itertools 0.11.0",
"macro_magic",
- "proc-macro-warning",
+ "parity-scale-codec",
+ "pretty_assertions",
+ "proc-macro-warning 1.0.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"regex",
+ "scale-info",
+ "sp-core",
"sp-crypto-hashing",
+ "sp-io",
+ "sp-metadata-ir",
+ "sp-runtime",
+ "static_assertions",
"syn 2.0.61",
]
@@ -5910,7 +6089,7 @@ dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -5919,7 +6098,7 @@ name = "frame-support-procedural-tools-derive"
version = "11.0.0"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -5945,7 +6124,6 @@ dependencies = [
"sp-metadata-ir",
"sp-runtime",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-version",
"static_assertions",
"trybuild",
@@ -6020,7 +6198,6 @@ dependencies = [
"sp-externalities 0.25.0",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-version",
]
@@ -6028,6 +6205,7 @@ dependencies = [
name = "frame-system-rpc-runtime-api"
version = "26.0.0"
dependencies = [
+ "docify",
"parity-scale-codec",
"sp-api",
]
@@ -6040,7 +6218,6 @@ dependencies = [
"parity-scale-codec",
"sp-api",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -6096,6 +6273,16 @@ dependencies = [
"futures-util",
]
+[[package]]
+name = "futures-bounded"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b07bbbe7d7e78809544c6f718d875627addc73a7c3582447abc052cd3dc67e0"
+dependencies = [
+ "futures-timer",
+ "futures-util",
+]
+
[[package]]
name = "futures-channel"
version = "0.3.30"
@@ -6141,10 +6328,20 @@ dependencies = [
"futures-io",
"memchr",
"parking",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"waker-fn",
]
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
[[package]]
name = "futures-macro"
version = "0.3.30"
@@ -6152,19 +6349,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "futures-rustls"
-version = "0.22.2"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd"
+checksum = "35bd3cf68c183738046838e300353e4716c674dc5e56890de4826801a6622a28"
dependencies = [
"futures-io",
- "rustls 0.20.8",
- "webpki",
+ "rustls 0.21.7",
]
[[package]]
@@ -6198,7 +6394,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"pin-utils",
"slab",
]
@@ -6255,17 +6451,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
[[package]]
name = "getrandom"
version = "0.2.10"
@@ -6274,7 +6459,7 @@ checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
"cfg-if",
"libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
]
[[package]]
@@ -6283,8 +6468,8 @@ version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9"
dependencies = [
- "rand 0.8.5",
- "rand_core 0.6.4",
+ "rand",
+ "rand_core",
]
[[package]]
@@ -6370,7 +6555,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -6394,9 +6578,9 @@ dependencies = [
"futures-timer",
"no-std-compat",
"nonzero_ext",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"quanta",
- "rand 0.8.5",
+ "rand",
"smallvec",
]
@@ -6407,7 +6591,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
dependencies = [
"ff",
- "rand_core 0.6.4",
+ "rand_core",
"subtle 2.5.0",
]
@@ -6422,7 +6606,26 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
- "http",
+ "http 0.2.9",
+ "indexmap 2.2.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http 1.1.0",
"indexmap 2.2.3",
"slab",
"tokio",
@@ -6480,7 +6683,7 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
- "ahash 0.8.8",
+ "ahash 0.8.11",
]
[[package]]
@@ -6489,7 +6692,7 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
dependencies = [
- "ahash 0.8.8",
+ "ahash 0.8.11",
"allocator-api2",
"serde",
]
@@ -6559,9 +6762,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
[[package]]
name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
dependencies = [
"hmac 0.12.1",
]
@@ -6630,6 +6833,17 @@ dependencies = [
"itoa",
]
+[[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
[[package]]
name = "http-body"
version = "0.4.5"
@@ -6637,15 +6851,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [
"bytes",
- "http",
- "pin-project-lite 0.2.12",
+ "http 0.2.9",
+ "pin-project-lite",
]
[[package]]
-name = "http-range-header"
-version = "0.3.1"
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "pin-project-lite",
+]
[[package]]
name = "httparse"
@@ -6667,55 +6898,114 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "hyper"
-version = "0.14.27"
+version = "0.14.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33"
dependencies = [
"bytes",
"futures-channel",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
"httparse",
"httpdate",
"itoa",
- "pin-project-lite 0.2.12",
- "socket2 0.4.9",
+ "pin-project-lite",
+ "socket2 0.5.7",
"tokio",
"tower-service",
"tracing",
"want",
]
+[[package]]
+name = "hyper"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.5",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
[[package]]
name = "hyper-rustls"
-version = "0.24.1"
+version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
dependencies = [
"futures-util",
- "http",
- "hyper",
+ "http 0.2.9",
+ "hyper 0.14.29",
"log",
- "rustls 0.21.6",
+ "rustls 0.21.7",
"rustls-native-certs 0.6.3",
"tokio",
"tokio-rustls 0.24.1",
]
[[package]]
-name = "iana-time-zone"
-version = "0.1.57"
+name = "hyper-rustls"
+version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.3.1",
+ "hyper-util",
+ "log",
+ "rustls 0.23.10",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.26.0",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.3.1",
+ "pin-project-lite",
+ "socket2 0.5.7",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
"windows 0.48.0",
]
@@ -6749,23 +7039,33 @@ dependencies = [
"unicode-normalization",
]
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
[[package]]
name = "if-addrs"
-version = "0.7.0"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9"
+checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a"
dependencies = [
"libc",
- "winapi",
+ "windows-sys 0.48.0",
]
[[package]]
name = "if-watch"
-version = "3.0.1"
+version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9465340214b296cd17a0009acdb890d6160010b8adf8f78a00d0d7ab270f79f"
+checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e"
dependencies = [
- "async-io",
+ "async-io 2.3.3",
"core-foundation",
"fnv",
"futures",
@@ -6775,7 +7075,26 @@ dependencies = [
"rtnetlink",
"system-configuration",
"tokio",
- "windows 0.34.0",
+ "windows 0.51.1",
+]
+
+[[package]]
+name = "igd-next"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4"
+dependencies = [
+ "async-trait",
+ "attohttpc",
+ "bytes",
+ "futures",
+ "http 0.2.9",
+ "hyper 0.14.29",
+ "log",
+ "rand",
+ "tokio",
+ "url",
+ "xmltree",
]
[[package]]
@@ -6823,7 +7142,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -6843,7 +7162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
]
[[package]]
@@ -6948,7 +7267,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [
- "socket2 0.5.6",
+ "socket2 0.5.7",
"widestring",
"windows-sys 0.48.0",
"winreg",
@@ -6992,13 +7311,13 @@ dependencies = [
"curl",
"curl-sys",
"encoding_rs",
- "event-listener",
- "futures-lite",
- "http",
+ "event-listener 2.5.3",
+ "futures-lite 1.13.0",
+ "http 0.2.9",
"log",
"mime",
"once_cell",
- "polling",
+ "polling 2.8.0",
"slab",
"sluice",
"tracing",
@@ -7031,6 +7350,43 @@ version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+[[package]]
+name = "jemalloc_pprof"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96368c0fc161a0a1a20b3952b6fd31ee342fffc87ed9e48ac1ed49fb25686655"
+dependencies = [
+ "anyhow",
+ "libc",
+ "mappings",
+ "once_cell",
+ "pprof_util",
+ "tempfile",
+ "tikv-jemalloc-ctl",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "jni"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
[[package]]
name = "jobserver"
version = "0.1.26"
@@ -7068,9 +7424,9 @@ dependencies = [
[[package]]
name = "jsonrpsee"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad"
+checksum = "5ec465b607a36dc5dd45d48b7689bc83f679f66a3ac6b6b21cc787a11e0f8685"
dependencies = [
"jsonrpsee-core",
"jsonrpsee-http-client",
@@ -7084,20 +7440,22 @@ dependencies = [
[[package]]
name = "jsonrpsee-client-transport"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa"
+checksum = "90f0977f9c15694371b8024c35ab58ca043dbbf4b51ccb03db8858a021241df1"
dependencies = [
+ "base64 0.22.1",
"futures-util",
- "http",
+ "http 1.1.0",
"jsonrpsee-core",
"pin-project",
- "rustls-native-certs 0.7.0",
+ "rustls 0.23.10",
"rustls-pki-types",
- "soketto",
+ "rustls-platform-verifier",
+ "soketto 0.8.0",
"thiserror",
"tokio",
- "tokio-rustls 0.25.0",
+ "tokio-rustls 0.26.0",
"tokio-util",
"tracing",
"url",
@@ -7105,21 +7463,22 @@ dependencies = [
[[package]]
name = "jsonrpsee-core"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d"
+checksum = "e942c55635fbf5dc421938b8558a8141c7e773720640f4f1dbe1f4164ca4e221"
dependencies = [
- "anyhow",
"async-trait",
- "beef",
+ "bytes",
"futures-timer",
"futures-util",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
"jsonrpsee-types",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
- "rand 0.8.5",
- "rustc-hash",
+ "rand",
+ "rustc-hash 2.0.0",
"serde",
"serde_json",
"thiserror",
@@ -7130,15 +7489,20 @@ dependencies = [
[[package]]
name = "jsonrpsee-http-client"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5"
+checksum = "e33774602df12b68a2310b38a535733c477ca4a498751739f89fe8dbbb62ec4c"
dependencies = [
"async-trait",
- "hyper",
- "hyper-rustls",
+ "base64 0.22.1",
+ "http-body 1.0.0",
+ "hyper 1.3.1",
+ "hyper-rustls 0.27.2",
+ "hyper-util",
"jsonrpsee-core",
"jsonrpsee-types",
+ "rustls 0.23.10",
+ "rustls-platform-verifier",
"serde",
"serde_json",
"thiserror",
@@ -7150,33 +7514,36 @@ dependencies = [
[[package]]
name = "jsonrpsee-proc-macros"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0"
+checksum = "6b07a2daf52077ab1b197aea69a5c990c060143835bf04c77070e98903791715"
dependencies = [
- "heck 0.4.1",
+ "heck 0.5.0",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "jsonrpsee-server"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41"
+checksum = "038fb697a709bec7134e9ccbdbecfea0e2d15183f7140254afef7c5610a3f488"
dependencies = [
"futures-util",
- "http",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-util",
"jsonrpsee-core",
"jsonrpsee-types",
"pin-project",
"route-recognizer",
"serde",
"serde_json",
- "soketto",
+ "soketto 0.8.0",
"thiserror",
"tokio",
"tokio-stream",
@@ -7187,12 +7554,11 @@ dependencies = [
[[package]]
name = "jsonrpsee-types"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d"
+checksum = "23b67d6e008164f027afbc2e7bb79662650158d26df200040282d2aa1cbb093b"
dependencies = [
- "anyhow",
- "beef",
+ "http 1.1.0",
"serde",
"serde_json",
"thiserror",
@@ -7200,11 +7566,11 @@ dependencies = [
[[package]]
name = "jsonrpsee-ws-client"
-version = "0.22.5"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070"
+checksum = "992bf67d1132f88edf4a4f8cff474cf01abb2be203004a2b8e11c2b20795b99e"
dependencies = [
- "http",
+ "http 1.1.0",
"jsonrpsee-client-transport",
"jsonrpsee-core",
"jsonrpsee-types",
@@ -7293,7 +7659,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2"
dependencies = [
"kvdb",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
]
[[package]]
@@ -7304,7 +7670,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6"
dependencies = [
"kvdb",
"num_cpus",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"regex",
"rocksdb",
"smallvec",
@@ -7350,9 +7716,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
[[package]]
name = "libc"
-version = "0.2.153"
+version = "0.2.155"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
[[package]]
name = "libflate"
@@ -7397,9 +7763,9 @@ dependencies = [
[[package]]
name = "libm"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]]
name = "libnghttp2-sys"
@@ -7413,14 +7779,15 @@ dependencies = [
[[package]]
name = "libp2p"
-version = "0.51.4"
+version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe"
+checksum = "e94495eb319a85b70a68b85e2389a95bb3555c71c49025b78c691a854a7e6464"
dependencies = [
"bytes",
+ "either",
"futures",
"futures-timer",
- "getrandom 0.2.10",
+ "getrandom",
"instant",
"libp2p-allow-block-list",
"libp2p-connection-limits",
@@ -7437,18 +7804,21 @@ dependencies = [
"libp2p-request-response",
"libp2p-swarm",
"libp2p-tcp",
+ "libp2p-upnp",
"libp2p-wasm-ext",
"libp2p-websocket",
"libp2p-yamux",
- "multiaddr",
+ "multiaddr 0.18.1",
"pin-project",
+ "rw-stream-sink",
+ "thiserror",
]
[[package]]
name = "libp2p-allow-block-list"
-version = "0.1.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50"
+checksum = "55b46558c5c0bf99d3e2a1a38fd54ff5476ca66dd1737b12466a1824dd219311"
dependencies = [
"libp2p-core",
"libp2p-identity",
@@ -7458,9 +7828,9 @@ dependencies = [
[[package]]
name = "libp2p-connection-limits"
-version = "0.1.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0"
+checksum = "2f5107ad45cb20b2f6c3628c7b6014b996fcb13a88053f4569c872c6e30abf58"
dependencies = [
"libp2p-core",
"libp2p-identity",
@@ -7470,9 +7840,9 @@ dependencies = [
[[package]]
name = "libp2p-core"
-version = "0.39.2"
+version = "0.40.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2"
+checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713"
dependencies = [
"either",
"fnv",
@@ -7481,50 +7851,53 @@ dependencies = [
"instant",
"libp2p-identity",
"log",
- "multiaddr",
- "multihash 0.17.0",
+ "multiaddr 0.18.1",
+ "multihash 0.19.1",
"multistream-select",
"once_cell",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
"quick-protobuf",
- "rand 0.8.5",
+ "rand",
"rw-stream-sink",
"smallvec",
"thiserror",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
"void",
]
[[package]]
name = "libp2p-dns"
-version = "0.39.0"
+version = "0.40.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554"
+checksum = "e6a18db73084b4da2871438f6239fef35190b05023de7656e877c18a00541a3b"
dependencies = [
+ "async-trait",
"futures",
"libp2p-core",
+ "libp2p-identity",
"log",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"smallvec",
- "trust-dns-resolver 0.22.0",
+ "trust-dns-resolver",
]
[[package]]
name = "libp2p-identify"
-version = "0.42.2"
+version = "0.43.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c"
+checksum = "45a96638a0a176bec0a4bcaebc1afa8cf909b114477209d7456ade52c61cd9cd"
dependencies = [
"asynchronous-codec",
"either",
"futures",
+ "futures-bounded",
"futures-timer",
"libp2p-core",
"libp2p-identity",
"libp2p-swarm",
"log",
- "lru 0.10.1",
+ "lru 0.12.3",
"quick-protobuf",
"quick-protobuf-codec",
"smallvec",
@@ -7534,27 +7907,27 @@ dependencies = [
[[package]]
name = "libp2p-identity"
-version = "0.1.3"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce"
+checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8"
dependencies = [
- "bs58 0.4.0",
- "ed25519-dalek 2.1.1",
- "log",
- "multiaddr",
- "multihash 0.17.0",
+ "bs58 0.5.1",
+ "ed25519-dalek",
+ "hkdf",
+ "multihash 0.19.1",
"quick-protobuf",
- "rand 0.8.5",
+ "rand",
"sha2 0.10.8",
"thiserror",
+ "tracing",
"zeroize",
]
[[package]]
name = "libp2p-kad"
-version = "0.43.3"
+version = "0.44.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff"
+checksum = "16ea178dabba6dde6ffc260a8e0452ccdc8f79becf544946692fff9d412fc29d"
dependencies = [
"arrayvec 0.7.4",
"asynchronous-codec",
@@ -7569,20 +7942,21 @@ dependencies = [
"libp2p-swarm",
"log",
"quick-protobuf",
- "rand 0.8.5",
+ "quick-protobuf-codec",
+ "rand",
"sha2 0.10.8",
"smallvec",
"thiserror",
"uint",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
"void",
]
[[package]]
name = "libp2p-mdns"
-version = "0.43.1"
+version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b"
+checksum = "42a2567c305232f5ef54185e9604579a894fd0674819402bb0ac0246da82f52a"
dependencies = [
"data-encoding",
"futures",
@@ -7591,9 +7965,9 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm",
"log",
- "rand 0.8.5",
+ "rand",
"smallvec",
- "socket2 0.4.9",
+ "socket2 0.5.7",
"tokio",
"trust-dns-proto 0.22.0",
"void",
@@ -7601,63 +7975,69 @@ dependencies = [
[[package]]
name = "libp2p-metrics"
-version = "0.12.0"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46"
+checksum = "239ba7d28f8d0b5d77760dc6619c05c7e88e74ec8fbbe97f856f20a56745e620"
dependencies = [
+ "instant",
"libp2p-core",
"libp2p-identify",
+ "libp2p-identity",
"libp2p-kad",
"libp2p-ping",
"libp2p-swarm",
+ "once_cell",
"prometheus-client",
]
[[package]]
name = "libp2p-noise"
-version = "0.42.2"
+version = "0.43.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e"
+checksum = "d2eeec39ad3ad0677551907dd304b2f13f17208ccebe333bef194076cd2e8921"
dependencies = [
"bytes",
- "curve25519-dalek 3.2.0",
+ "curve25519-dalek",
"futures",
"libp2p-core",
"libp2p-identity",
"log",
+ "multiaddr 0.18.1",
+ "multihash 0.19.1",
"once_cell",
"quick-protobuf",
- "rand 0.8.5",
+ "rand",
"sha2 0.10.8",
"snow",
"static_assertions",
"thiserror",
- "x25519-dalek 1.1.1",
+ "x25519-dalek",
"zeroize",
]
[[package]]
name = "libp2p-ping"
-version = "0.42.0"
+version = "0.43.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202"
+checksum = "e702d75cd0827dfa15f8fd92d15b9932abe38d10d21f47c50438c71dd1b5dae3"
dependencies = [
"either",
"futures",
"futures-timer",
"instant",
"libp2p-core",
+ "libp2p-identity",
"libp2p-swarm",
"log",
- "rand 0.8.5",
+ "rand",
"void",
]
[[package]]
name = "libp2p-quic"
-version = "0.7.0-alpha.3"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735"
+checksum = "130d451d83f21b81eb7b35b360bc7972aeafb15177784adc56528db082e6b927"
dependencies = [
"bytes",
"futures",
@@ -7667,19 +8047,21 @@ dependencies = [
"libp2p-identity",
"libp2p-tls",
"log",
- "parking_lot 0.12.1",
- "quinn-proto",
- "rand 0.8.5",
- "rustls 0.20.8",
+ "parking_lot 0.12.3",
+ "quinn 0.10.2",
+ "rand",
+ "ring 0.16.20",
+ "rustls 0.21.7",
+ "socket2 0.5.7",
"thiserror",
"tokio",
]
[[package]]
name = "libp2p-request-response"
-version = "0.24.1"
+version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5"
+checksum = "d8e3b4d67870478db72bac87bfc260ee6641d0734e0e3e275798f089c3fecfd4"
dependencies = [
"async-trait",
"futures",
@@ -7687,15 +8069,17 @@ dependencies = [
"libp2p-core",
"libp2p-identity",
"libp2p-swarm",
- "rand 0.8.5",
+ "log",
+ "rand",
"smallvec",
+ "void",
]
[[package]]
name = "libp2p-swarm"
-version = "0.42.2"
+version = "0.43.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296"
+checksum = "580189e0074af847df90e75ef54f3f30059aedda37ea5a1659e8b9fca05c0141"
dependencies = [
"either",
"fnv",
@@ -7706,7 +8090,9 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm-derive",
"log",
- "rand 0.8.5",
+ "multistream-select",
+ "once_cell",
+ "rand",
"smallvec",
"tokio",
"void",
@@ -7714,36 +8100,39 @@ dependencies = [
[[package]]
name = "libp2p-swarm-derive"
-version = "0.32.0"
+version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f"
+checksum = "c4d5ec2a3df00c7836d7696c136274c9c59705bac69133253696a6c932cd1d74"
dependencies = [
"heck 0.4.1",
- "quote 1.0.35",
- "syn 1.0.109",
+ "proc-macro-warning 0.4.2",
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
]
[[package]]
name = "libp2p-tcp"
-version = "0.39.0"
+version = "0.40.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf"
+checksum = "b558dd40d1bcd1aaaed9de898e9ec6a436019ecc2420dd0016e712fbb61c5508"
dependencies = [
"futures",
"futures-timer",
"if-watch",
"libc",
"libp2p-core",
+ "libp2p-identity",
"log",
- "socket2 0.4.9",
+ "socket2 0.5.7",
"tokio",
]
[[package]]
name = "libp2p-tls"
-version = "0.1.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781"
+checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61"
dependencies = [
"futures",
"futures-rustls",
@@ -7751,51 +8140,69 @@ dependencies = [
"libp2p-identity",
"rcgen",
"ring 0.16.20",
- "rustls 0.20.8",
+ "rustls 0.21.7",
+ "rustls-webpki 0.101.4",
"thiserror",
- "webpki",
- "x509-parser 0.14.0",
+ "x509-parser 0.15.1",
"yasna",
]
+[[package]]
+name = "libp2p-upnp"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82775a47b34f10f787ad3e2a22e2c1541e6ebef4fe9f28f3ac553921554c94c1"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "igd-next",
+ "libp2p-core",
+ "libp2p-swarm",
+ "log",
+ "tokio",
+ "void",
+]
+
[[package]]
name = "libp2p-wasm-ext"
-version = "0.39.0"
+version = "0.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43"
+checksum = "1e5d8e3a9e07da0ef5b55a9f26c009c8fb3c725d492d8bb4b431715786eea79c"
dependencies = [
"futures",
"js-sys",
"libp2p-core",
- "parity-send-wrapper",
+ "send_wrapper",
"wasm-bindgen",
"wasm-bindgen-futures",
]
[[package]]
name = "libp2p-websocket"
-version = "0.41.0"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f"
+checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538"
dependencies = [
"either",
"futures",
"futures-rustls",
"libp2p-core",
+ "libp2p-identity",
"log",
- "parking_lot 0.12.1",
- "quicksink",
+ "parking_lot 0.12.3",
+ "pin-project-lite",
"rw-stream-sink",
- "soketto",
+ "soketto 0.8.0",
+ "thiserror",
"url",
- "webpki-roots 0.22.6",
+ "webpki-roots 0.25.2",
]
[[package]]
name = "libp2p-yamux"
-version = "0.43.1"
+version = "0.44.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda"
+checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85"
dependencies = [
"futures",
"libp2p-core",
@@ -7832,7 +8239,7 @@ dependencies = [
"libsecp256k1-core",
"libsecp256k1-gen-ecmult",
"libsecp256k1-gen-genmult",
- "rand 0.8.5",
+ "rand",
"serde",
"sha2 0.9.9",
"typenum",
@@ -7962,40 +8369,40 @@ dependencies = [
[[package]]
name = "litep2p"
-version = "0.5.0"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f02542ae3a94b4c4ffa37dc56388c923e286afa3bf65452e3984b50b2a2f316"
+checksum = "0f46c51c205264b834ceed95c8b195026e700494bc3991aaba3b4ea9e20626d9"
dependencies = [
"async-trait",
"bs58 0.4.0",
"bytes",
"cid 0.10.1",
- "ed25519-dalek 1.0.1",
+ "ed25519-dalek",
"futures",
"futures-timer",
"hex-literal",
"indexmap 2.2.3",
"libc",
"mockall 0.12.1",
- "multiaddr",
+ "multiaddr 0.17.1",
"multihash 0.17.0",
"network-interface",
"nohash-hasher",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
- "prost 0.11.9",
+ "prost 0.12.6",
"prost-build 0.11.9",
- "quinn",
- "rand 0.8.5",
+ "quinn 0.9.4",
+ "rand",
"rcgen",
"ring 0.16.20",
- "rustls 0.20.8",
+ "rustls 0.20.9",
"serde",
"sha2 0.10.8",
"simple-dns",
"smallvec",
"snow",
- "socket2 0.5.6",
+ "socket2 0.5.7",
"static_assertions",
"str0m",
"thiserror",
@@ -8004,13 +8411,13 @@ dependencies = [
"tokio-tungstenite",
"tokio-util",
"tracing",
- "trust-dns-resolver 0.23.2",
+ "trust-dns-resolver",
"uint",
- "unsigned-varint",
+ "unsigned-varint 0.8.0",
"url",
"webpki",
- "x25519-dalek 2.0.0",
- "x509-parser 0.15.1",
+ "x25519-dalek",
+ "x509-parser 0.16.0",
"yasna",
"zeroize",
]
@@ -8027,9 +8434,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.21"
+version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
dependencies = [
"serde",
"value-bag",
@@ -8046,18 +8453,18 @@ dependencies = [
[[package]]
name = "lru"
-version = "0.10.1"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"
-dependencies = [
- "hashbrown 0.13.2",
-]
+checksum = "eedb2bdbad7e0634f83989bf596f497b070130daaa398ab22d84c39e266deec5"
[[package]]
name = "lru"
-version = "0.11.0"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eedb2bdbad7e0634f83989bf596f497b070130daaa398ab22d84c39e266deec5"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+dependencies = [
+ "hashbrown 0.14.3",
+]
[[package]]
name = "lru-cache"
@@ -8108,49 +8515,49 @@ dependencies = [
[[package]]
name = "macro_magic"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d"
+checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d"
dependencies = [
"macro_magic_core",
"macro_magic_macros",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "macro_magic_core"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d"
+checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150"
dependencies = [
"const-random",
- "derive-syn-parse 0.1.5",
+ "derive-syn-parse",
"macro_magic_core_macros",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "macro_magic_core_macros"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654"
+checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "macro_magic_macros"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3"
+checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869"
dependencies = [
"macro_magic_core",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -8160,6 +8567,19 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+[[package]]
+name = "mappings"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fa2605f461115ef6336342b12f0d8cabdfd7b258fed86f5f98c725535843601"
+dependencies = [
+ "anyhow",
+ "libc",
+ "once_cell",
+ "pprof_util",
+ "tracing",
+]
+
[[package]]
name = "match_cfg"
version = "0.1.0"
@@ -8202,9 +8622,9 @@ dependencies = [
[[package]]
name = "memchr"
-version = "2.6.4"
+version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "memfd"
@@ -8282,7 +8702,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"
dependencies = [
"byteorder",
"keccak",
- "rand_core 0.6.4",
+ "rand_core",
"zeroize",
]
@@ -8293,13 +8713,12 @@ dependencies = [
"async-std",
"async-trait",
"bp-messages",
- "env_logger 0.11.3",
"finality-relay",
"futures",
"hex",
"log",
"num-traits",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"relay-utils",
"sp-arithmetic",
]
@@ -8311,7 +8730,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532"
dependencies = [
"futures",
- "rand 0.8.5",
+ "rand",
"thrift",
]
@@ -8327,70 +8746,28 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-[[package]]
-name = "minimal-template"
-version = "0.0.0"
-dependencies = [
- "docify",
- "minimal-template-node",
- "minimal-template-runtime",
- "pallet-minimal-template",
- "polkadot-sdk-docs",
- "polkadot-sdk-frame",
- "simple-mermaid 0.1.1",
-]
-
[[package]]
name = "minimal-template-node"
version = "0.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
+ "docify",
"futures",
"futures-timer",
"jsonrpsee",
"minimal-template-runtime",
- "polkadot-sdk-frame",
- "sc-basic-authorship",
- "sc-cli",
- "sc-client-api",
- "sc-consensus",
- "sc-consensus-manual-seal",
- "sc-executor",
- "sc-network",
- "sc-offchain",
- "sc-rpc-api",
- "sc-service",
- "sc-telemetry",
- "sc-transaction-pool",
- "sc-transaction-pool-api",
+ "polkadot-sdk",
"serde_json",
- "sp-api",
- "sp-block-builder",
- "sp-blockchain",
- "sp-io",
- "sp-keyring",
- "sp-runtime",
- "sp-timestamp",
- "substrate-build-script-utils",
- "substrate-frame-rpc-system",
]
[[package]]
name = "minimal-template-runtime"
version = "0.0.0"
dependencies = [
- "pallet-balances",
"pallet-minimal-template",
- "pallet-sudo",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
- "polkadot-sdk-frame",
+ "polkadot-sdk",
"scale-info",
- "sp-genesis-builder",
- "sp-runtime",
- "substrate-wasm-builder",
]
[[package]]
@@ -8409,7 +8786,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
"windows-sys 0.48.0",
]
@@ -8424,14 +8801,14 @@ dependencies = [
"bitflags 1.3.2",
"blake2 0.10.6",
"c2-chacha",
- "curve25519-dalek 4.1.2",
+ "curve25519-dalek",
"either",
"hashlink",
"lioness",
"log",
- "parking_lot 0.12.1",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "parking_lot 0.12.3",
+ "rand",
+ "rand_chacha",
"rand_distr",
"subtle 2.5.0",
"thiserror",
@@ -8445,7 +8822,7 @@ dependencies = [
"futures",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-offchain",
@@ -8514,7 +8891,7 @@ checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
dependencies = [
"cfg-if",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -8526,10 +8903,16 @@ checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
dependencies = [
"cfg-if",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
+[[package]]
+name = "multi-stash"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685a9ac4b61f4e728e1d2c6a7844609c16527aeb5e6c865915c08e619c16410f"
+
[[package]]
name = "multiaddr"
version = "0.17.1"
@@ -8541,11 +8924,30 @@ dependencies = [
"data-encoding",
"log",
"multibase",
- "multihash 0.17.0",
+ "multihash 0.17.0",
+ "percent-encoding",
+ "serde",
+ "static_assertions",
+ "unsigned-varint 0.7.2",
+ "url",
+]
+
+[[package]]
+name = "multiaddr"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070"
+dependencies = [
+ "arrayref",
+ "byteorder",
+ "data-encoding",
+ "libp2p-identity",
+ "multibase",
+ "multihash 0.19.1",
"percent-encoding",
"serde",
"static_assertions",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
"url",
]
@@ -8571,10 +8973,10 @@ dependencies = [
"blake3",
"core2",
"digest 0.10.7",
- "multihash-derive 0.8.0",
+ "multihash-derive",
"sha2 0.10.8",
"sha3",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
]
[[package]]
@@ -8588,10 +8990,10 @@ dependencies = [
"blake3",
"core2",
"digest 0.10.7",
- "multihash-derive 0.8.0",
+ "multihash-derive",
"sha2 0.10.8",
"sha3",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
]
[[package]]
@@ -8601,27 +9003,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492"
dependencies = [
"core2",
- "unsigned-varint",
-]
-
-[[package]]
-name = "multihash-codetable"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935"
-dependencies = [
- "blake2b_simd",
- "blake2s_simd",
- "blake3",
- "core2",
- "digest 0.10.7",
- "multihash-derive 0.9.0",
- "ripemd",
- "serde",
- "sha1",
- "sha2 0.10.8",
- "sha3",
- "strobe-rs",
+ "unsigned-varint 0.7.2",
]
[[package]]
@@ -8633,34 +9015,9 @@ dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
"proc-macro2 1.0.82",
- "quote 1.0.35",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
-name = "multihash-derive"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e"
-dependencies = [
- "core2",
- "multihash 0.19.1",
- "multihash-derive-impl",
-]
-
-[[package]]
-name = "multihash-derive-impl"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
- "synstructure",
+ "synstructure 0.12.6",
]
[[package]]
@@ -8671,16 +9028,16 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
[[package]]
name = "multistream-select"
-version = "0.12.1"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a"
+checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19"
dependencies = [
"bytes",
"futures",
"log",
"pin-project",
"smallvec",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
]
[[package]]
@@ -8706,7 +9063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -8717,7 +9074,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc"
dependencies = [
"clap 3.2.25",
- "rand 0.8.5",
+ "rand",
]
[[package]]
@@ -8833,7 +9190,7 @@ version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"cfg-if",
"cfg_aliases",
"libc",
@@ -8856,7 +9213,7 @@ name = "node-bench"
version = "0.9.0-dev"
dependencies = [
"array-bytes",
- "clap 4.5.3",
+ "clap 4.5.11",
"derive_more",
"fs_extra",
"futures",
@@ -8869,7 +9226,7 @@ dependencies = [
"node-primitives",
"node-testing",
"parity-db",
- "rand 0.8.5",
+ "rand",
"sc-basic-authorship",
"sc-client-api",
"sc-transaction-pool",
@@ -8913,8 +9270,6 @@ dependencies = [
"sc-consensus-grandpa-rpc",
"sc-mixnet",
"sc-rpc",
- "sc-rpc-api",
- "sc-rpc-spec-v2",
"sc-sync-state-rpc",
"sc-transaction-pool-api",
"sp-api",
@@ -8935,7 +9290,7 @@ dependencies = [
name = "node-runtime-generate-bags"
version = "3.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"generate-bags",
"kitchensink-runtime",
]
@@ -8944,7 +9299,7 @@ dependencies = [
name = "node-template-release"
version = "3.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"flate2",
"fs_extra",
"glob",
@@ -9086,6 +9441,23 @@ dependencies = [
"num-traits",
]
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
+]
+
[[package]]
name = "num-format"
version = "0.4.4"
@@ -9185,13 +9557,31 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "object"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "oid-registry"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
+]
+
+[[package]]
+name = "oid-registry"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d"
+dependencies = [
+ "asn1-rs 0.6.1",
]
[[package]]
@@ -9224,7 +9614,7 @@ version = "0.10.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"cfg-if",
"foreign-types",
"libc",
@@ -9240,7 +9630,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -9280,9 +9670,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]]
name = "orchestra"
-version = "0.3.6"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66"
+checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2"
dependencies = [
"async-trait",
"dyn-clonable",
@@ -9297,9 +9687,9 @@ dependencies = [
[[package]]
name = "orchestra-proc-macro"
-version = "0.3.6"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355"
+checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0"
dependencies = [
"expander",
"indexmap 2.2.3",
@@ -9307,7 +9697,7 @@ dependencies = [
"petgraph",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -9356,7 +9746,6 @@ dependencies = [
"sp-crypto-hashing",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9377,7 +9766,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9398,7 +9786,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9416,7 +9803,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
]
@@ -9433,7 +9819,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9454,7 +9839,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
]
@@ -9465,6 +9849,7 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "impl-trait-for-tuples",
"log",
"pallet-balances",
"parity-scale-codec",
@@ -9472,7 +9857,23 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
+]
+
+[[package]]
+name = "pallet-assets-freezer"
+version = "0.1.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-assets",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
]
[[package]]
@@ -9487,7 +9888,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9505,7 +9905,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9522,7 +9921,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9537,7 +9935,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9565,7 +9962,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -9585,7 +9981,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
]
@@ -9596,7 +9991,7 @@ dependencies = [
"frame-election-provider-support",
"honggfuzz",
"pallet-bags-list",
- "rand 0.8.5",
+ "rand",
]
[[package]]
@@ -9633,7 +10028,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9661,7 +10055,6 @@ dependencies = [
"sp-session",
"sp-staking",
"sp-state-machine",
- "sp-std 14.0.0",
]
[[package]]
@@ -9670,6 +10063,7 @@ version = "28.0.0"
dependencies = [
"array-bytes",
"binary-merkle-tree",
+ "frame-benchmarking",
"frame-support",
"frame-system",
"log",
@@ -9686,7 +10080,6 @@ dependencies = [
"sp-runtime",
"sp-staking",
"sp-state-machine",
- "sp-std 14.0.0",
]
[[package]]
@@ -9704,7 +10097,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9721,7 +10113,7 @@ dependencies = [
"pallet-beefy-mmr",
"pallet-mmr",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"serde",
"sp-consensus-beefy",
@@ -9738,7 +10130,6 @@ dependencies = [
"bp-header-chain",
"bp-runtime",
"bp-test-utils",
- "finality-grandpa",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -9750,13 +10141,13 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
- "sp-trie",
]
[[package]]
name = "pallet-bridge-messages"
version = "0.7.0"
dependencies = [
+ "bp-header-chain",
"bp-messages",
"bp-runtime",
"bp-test-utils",
@@ -9764,13 +10155,15 @@ dependencies = [
"frame-support",
"frame-system",
"log",
- "num-traits",
"pallet-balances",
+ "pallet-bridge-grandpa",
"parity-scale-codec",
"scale-info",
+ "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
+ "sp-trie",
]
[[package]]
@@ -9793,7 +10186,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
- "sp-trie",
]
[[package]]
@@ -9834,7 +10226,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
]
@@ -9854,7 +10245,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9871,14 +10261,13 @@ dependencies = [
"pallet-session",
"pallet-timestamp",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"sp-consensus-aura",
"sp-core",
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
]
@@ -9895,7 +10284,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9910,7 +10298,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9920,7 +10307,6 @@ dependencies = [
"array-bytes",
"assert_matches",
"bitflags 1.3.2",
- "env_logger 0.11.3",
"environmental",
"frame-benchmarking",
"frame-support",
@@ -9940,7 +10326,7 @@ dependencies = [
"parity-scale-codec",
"paste",
"pretty_assertions",
- "rand 0.8.5",
+ "rand",
"rand_pcg",
"scale-info",
"serde",
@@ -9955,7 +10341,7 @@ dependencies = [
"staging-xcm",
"staging-xcm-builder",
"wasm-instrument",
- "wasmi",
+ "wasmi 0.32.3",
"wat",
]
@@ -9966,7 +10352,7 @@ dependencies = [
"anyhow",
"frame-system",
"parity-wasm",
- "polkavm-linker",
+ "polkavm-linker 0.9.2",
"sp-runtime",
"tempfile",
"toml 0.8.8",
@@ -10003,7 +10389,6 @@ dependencies = [
"sp-io",
"sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"staging-xcm",
"staging-xcm-builder",
@@ -10016,7 +10401,7 @@ name = "pallet-contracts-proc-macro"
version = "18.0.0"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -10027,7 +10412,7 @@ dependencies = [
"bitflags 1.3.2",
"parity-scale-codec",
"paste",
- "polkavm-derive",
+ "polkavm-derive 0.9.1",
"scale-info",
]
@@ -10047,7 +10432,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10065,7 +10449,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10079,7 +10462,6 @@ dependencies = [
"scale-info",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10089,6 +10471,7 @@ dependencies = [
"frame-election-provider-support",
"frame-support",
"frame-system",
+ "log",
"pallet-balances",
"pallet-nomination-pools",
"pallet-staking",
@@ -10100,7 +10483,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"substrate-test-utils",
]
@@ -10122,7 +10504,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10138,7 +10519,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10157,7 +10537,7 @@ dependencies = [
"pallet-staking",
"pallet-timestamp",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"scale-info",
"sp-core",
"sp-io",
@@ -10180,15 +10560,14 @@ dependencies = [
"pallet-balances",
"pallet-election-provider-support-benchmarking",
"parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"scale-info",
"sp-arithmetic",
"sp-core",
"sp-io",
"sp-npos-elections",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"strum 0.26.2",
]
@@ -10203,7 +10582,6 @@ dependencies = [
"parity-scale-codec",
"sp-npos-elections",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10222,7 +10600,6 @@ dependencies = [
"sp-npos-elections",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"substrate-test-utils",
]
@@ -10241,7 +10618,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10267,7 +10643,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10298,7 +10673,6 @@ dependencies = [
"sp-io",
"sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10317,7 +10691,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-version",
]
@@ -10333,7 +10706,6 @@ dependencies = [
"scale-info",
"sp-core",
"sp-io",
- "sp-std 14.0.0",
]
[[package]]
@@ -10349,7 +10721,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10387,7 +10758,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"substrate-test-utils",
]
@@ -10405,9 +10775,9 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-core",
+ "sp-inherents",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10437,12 +10807,11 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
name = "pallet-identity"
-version = "28.0.0"
+version = "29.0.0"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -10456,7 +10825,6 @@ dependencies = [
"sp-io",
"sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10476,7 +10844,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -10493,7 +10860,6 @@ dependencies = [
"sp-io",
"sp-keyring",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10508,7 +10874,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10525,7 +10890,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10541,7 +10905,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10554,7 +10917,7 @@ dependencies = [
"frame-system",
"log",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"rand_distr",
"scale-info",
"serde",
@@ -10563,7 +10926,6 @@ dependencies = [
"sp-crypto-hashing",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"sp-weights",
]
@@ -10587,7 +10949,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"sp-version",
]
@@ -10597,7 +10958,7 @@ name = "pallet-minimal-template"
version = "0.0.0"
dependencies = [
"parity-scale-codec",
- "polkadot-sdk-frame",
+ "polkadot-sdk",
"scale-info",
]
@@ -10617,7 +10978,6 @@ dependencies = [
"sp-io",
"sp-mixnet",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10625,7 +10985,6 @@ name = "pallet-mmr"
version = "27.0.0"
dependencies = [
"array-bytes",
- "env_logger 0.11.3",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10637,7 +10996,7 @@ dependencies = [
"sp-io",
"sp-mmr-primitives",
"sp-runtime",
- "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
]
[[package]]
@@ -10653,7 +11012,6 @@ dependencies = [
"scale-info",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10691,7 +11049,6 @@ dependencies = [
"sp-io",
"sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10701,7 +11058,6 @@ dependencies = [
"pallet-nfts",
"parity-scale-codec",
"sp-api",
- "sp-std 14.0.0",
]
[[package]]
@@ -10718,7 +11074,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10733,7 +11088,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10750,7 +11104,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
]
@@ -10776,7 +11129,6 @@ dependencies = [
"sp-runtime",
"sp-runtime-interface 24.0.0",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -10788,7 +11140,7 @@ dependencies = [
"honggfuzz",
"log",
"pallet-nomination-pools",
- "rand 0.8.5",
+ "rand",
"sp-io",
"sp-runtime",
"sp-tracing 16.0.0",
@@ -10801,7 +11153,6 @@ dependencies = [
"pallet-nomination-pools",
"parity-scale-codec",
"sp-api",
- "sp-std 14.0.0",
]
[[package]]
@@ -10868,7 +11219,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -10895,7 +11245,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -10912,7 +11261,6 @@ dependencies = [
"sp-io",
"sp-metadata-ir",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10957,7 +11305,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10974,7 +11321,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10991,7 +11337,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11009,7 +11354,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11025,7 +11369,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11042,28 +11385,135 @@ dependencies = [
"pallet-scheduler",
"parity-scale-codec",
"scale-info",
- "serde",
- "sp-arithmetic",
+ "serde",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-remark"
+version = "28.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-revive"
+version = "0.1.0"
+dependencies = [
+ "array-bytes",
+ "assert_matches",
+ "bitflags 1.3.2",
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-proxy",
+ "pallet-revive-fixtures",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
+ "pallet-timestamp",
+ "pallet-utility",
+ "parity-scale-codec",
+ "paste",
+ "polkavm 0.10.0",
+ "pretty_assertions",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "wat",
+]
+
+[[package]]
+name = "pallet-revive-fixtures"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "frame-system",
+ "parity-wasm",
+ "polkavm-linker 0.10.0",
+ "sp-runtime",
+ "tempfile",
+ "toml 0.8.8",
+]
+
+[[package]]
+name = "pallet-revive-mock-network"
+version = "0.1.0"
+dependencies = [
+ "assert_matches",
+ "frame-support",
+ "frame-system",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-proxy",
+ "pallet-revive",
+ "pallet-revive-fixtures",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
+ "pallet-timestamp",
+ "pallet-utility",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "pretty_assertions",
+ "scale-info",
+ "sp-api",
"sp-core",
"sp-io",
+ "sp-keystore",
"sp-runtime",
- "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "xcm-simulator",
]
[[package]]
-name = "pallet-remark"
-version = "28.0.0"
+name = "pallet-revive-proc-macro"
+version = "0.1.0"
dependencies = [
- "frame-benchmarking",
- "frame-support",
- "frame-system",
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "pallet-revive-uapi"
+version = "0.1.0"
+dependencies = [
+ "bitflags 1.3.2",
"parity-scale-codec",
+ "paste",
+ "polkavm-derive 0.10.0",
"scale-info",
- "serde",
- "sp-core",
- "sp-io",
- "sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11098,7 +11548,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11118,7 +11567,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11136,7 +11584,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11155,7 +11602,6 @@ dependencies = [
"sp-crypto-hashing",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11173,7 +11619,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-weights",
"substrate-test-utils",
]
@@ -11190,7 +11635,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11210,7 +11654,6 @@ dependencies = [
"sp-session",
"sp-staking",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-trie",
]
@@ -11228,13 +11671,12 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"sp-core",
"sp-io",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
]
[[package]]
@@ -11246,7 +11688,6 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11260,14 +11701,13 @@ dependencies = [
"log",
"pallet-balances",
"parity-scale-codec",
- "rand_chacha 0.3.1",
+ "rand_chacha",
"scale-info",
"sp-arithmetic",
"sp-core",
"sp-crypto-hashing",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11286,7 +11726,7 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "rand_chacha 0.3.1",
+ "rand_chacha",
"scale-info",
"serde",
"sp-application-crypto",
@@ -11295,7 +11735,6 @@ dependencies = [
"sp-npos-elections",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"substrate-test-utils",
]
@@ -11306,7 +11745,7 @@ version = "11.0.0"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"sp-runtime",
"syn 2.0.61",
]
@@ -11339,13 +11778,12 @@ dependencies = [
"log",
"pallet-balances",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"scale-info",
"serde",
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"substrate-state-trie-migration-rpc",
"thousands",
@@ -11368,7 +11806,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-statement-store",
- "sp-std 14.0.0",
]
[[package]]
@@ -11384,7 +11821,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11416,7 +11852,6 @@ dependencies = [
"sp-inherents",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-timestamp",
]
@@ -11437,7 +11872,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
]
@@ -11455,7 +11889,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11501,7 +11934,6 @@ dependencies = [
"sp-inherents",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-transaction-storage-proof",
]
@@ -11522,7 +11954,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11541,7 +11972,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11577,7 +12007,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11594,7 +12023,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11612,7 +12040,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -11634,11 +12061,10 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -11658,7 +12084,6 @@ dependencies = [
"scale-info",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"staging-xcm",
"staging-xcm-builder",
@@ -11679,6 +12104,7 @@ dependencies = [
"log",
"pallet-balances",
"pallet-bridge-messages",
+ "pallet-xcm-bridge-hub-router",
"parity-scale-codec",
"scale-info",
"sp-core",
@@ -11713,7 +12139,7 @@ dependencies = [
name = "parachain-template-node"
version = "0.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"color-print",
"cumulus-client-cli",
"cumulus-client-collator",
@@ -11819,7 +12245,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-transaction-pool",
"sp-version",
"staging-parachain-info",
@@ -11852,7 +12277,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"staging-parachain-info",
"staging-xcm",
"staging-xcm-executor",
@@ -11897,7 +12321,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"staging-parachain-info",
"staging-xcm",
@@ -11912,8 +12335,8 @@ 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",
+ "rand",
+ "rand_core",
"serde",
"unicode-normalization",
]
@@ -11938,8 +12361,8 @@ dependencies = [
"log",
"lz4",
"memmap2 0.5.10",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"siphasher",
"snap",
]
@@ -11967,16 +12390,10 @@ checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
-[[package]]
-name = "parity-send-wrapper"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f"
-
[[package]]
name = "parity-util-mem"
version = "0.12.0"
@@ -11989,7 +12406,7 @@ dependencies = [
"impl-trait-for-tuples",
"lru 0.8.1",
"parity-util-mem-derive",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"primitive-types",
"smallvec",
"winapi",
@@ -12003,7 +12420,7 @@ checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"
dependencies = [
"proc-macro2 1.0.82",
"syn 1.0.109",
- "synstructure",
+ "synstructure 0.12.6",
]
[[package]]
@@ -12031,9 +12448,9 @@ dependencies = [
[[package]]
name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
dependencies = [
"lock_api",
"parking_lot_core 0.9.8",
@@ -12079,15 +12496,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
dependencies = [
"base64ct",
- "rand_core 0.6.4",
+ "rand_core",
"subtle 2.5.0",
]
[[package]]
name = "paste"
-version = "1.0.14"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]]
name = "pbkdf2"
@@ -12177,7 +12594,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -12186,7 +12602,7 @@ dependencies = [
"staging-xcm-builder",
"staging-xcm-executor",
"substrate-wasm-builder",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -12214,9 +12630,7 @@ dependencies = [
"pallet-message-queue",
"parachains-common",
"parity-scale-codec",
- "people-rococo-runtime",
"polkadot-runtime-common",
- "rococo-runtime",
"rococo-runtime-constants",
"rococo-system-emulated-network",
"sp-runtime",
@@ -12277,7 +12691,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -12287,7 +12700,7 @@ dependencies = [
"staging-xcm-executor",
"substrate-wasm-builder",
"testnet-parachains-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -12313,14 +12726,13 @@ dependencies = [
"pallet-balances",
"pallet-identity",
"pallet-message-queue",
+ "pallet-xcm",
"parachains-common",
"parity-scale-codec",
- "people-westend-runtime",
"polkadot-runtime-common",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
- "westend-runtime",
"westend-runtime-constants",
"westend-system-emulated-network",
]
@@ -12377,7 +12789,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -12388,14 +12799,14 @@ dependencies = [
"substrate-wasm-builder",
"testnet-parachains-constants",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pest"
@@ -12426,7 +12837,7 @@ dependencies = [
"pest",
"pest_meta",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -12467,21 +12878,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "pin-project-lite"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
[[package]]
name = "pin-utils"
@@ -12566,7 +12971,6 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.11.3",
"futures",
"futures-timer",
"itertools 0.11.0",
@@ -12580,12 +12984,13 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "rand",
+ "rand_chacha",
+ "rand_core",
"schnorrkel 0.11.4",
"sp-authority-discovery",
"sp-core",
+ "sp-tracing 16.0.0",
"tracing-gum",
]
@@ -12596,23 +13001,22 @@ dependencies = [
"always-assert",
"assert_matches",
"bitvec",
- "env_logger 0.11.3",
"futures",
"futures-timer",
- "log",
"maplit",
"polkadot-node-network-protocol",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-primitives",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"sp-application-crypto",
"sp-authority-discovery",
"sp-core",
"sp-keyring",
"sp-keystore",
+ "sp-tracing 16.0.0",
"tracing-gum",
]
@@ -12635,7 +13039,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-subsystem-bench",
- "rand 0.8.5",
+ "rand",
"rstest",
"sc-network",
"schnellru",
@@ -12667,7 +13071,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-subsystem-bench",
- "rand 0.8.5",
+ "rand",
"rstest",
"sc-network",
"schnellru",
@@ -12695,7 +13099,7 @@ name = "polkadot-cli"
version = "7.0.0"
dependencies = [
"cfg-if",
- "clap 4.5.3",
+ "clap 4.5.11",
"frame-benchmarking-cli",
"futures",
"log",
@@ -12725,11 +13129,9 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.11.3",
"fatality",
"futures",
"futures-timer",
- "log",
"parity-scale-codec",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
@@ -12745,6 +13147,7 @@ dependencies = [
"sp-keyring",
"sp-keystore",
"sp-runtime",
+ "sp-tracing 16.0.0",
"thiserror",
"tokio-util",
"tracing-gum",
@@ -12758,7 +13161,6 @@ dependencies = [
"scale-info",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -12818,15 +13220,15 @@ dependencies = [
"futures",
"futures-timer",
"lazy_static",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-network-protocol",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-primitives",
"quickcheck",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"sc-network",
"sc-network-common",
"sp-application-crypto",
@@ -12852,7 +13254,7 @@ dependencies = [
"futures",
"futures-timer",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-metrics",
"polkadot-node-network-protocol",
"polkadot-node-subsystem",
@@ -12899,7 +13301,6 @@ dependencies = [
"async-trait",
"bitvec",
"derive_more",
- "env_logger 0.11.3",
"futures",
"futures-timer",
"itertools 0.11.0",
@@ -12908,7 +13309,7 @@ dependencies = [
"log",
"merlin",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-jaeger",
"polkadot-node-primitives",
"polkadot-node-subsystem",
@@ -12918,9 +13319,9 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-subsystem-bench",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "rand",
+ "rand_chacha",
+ "rand_core",
"sc-keystore",
"schnellru",
"schnorrkel 0.11.4",
@@ -12932,6 +13333,7 @@ dependencies = [
"sp-keyring",
"sp-keystore",
"sp-runtime",
+ "sp-tracing 16.0.0",
"thiserror",
"tracing-gum",
]
@@ -12942,14 +13344,13 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.11.3",
"futures",
"futures-timer",
"kvdb",
"kvdb-memorydb",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-erasure-coding",
"polkadot-node-jaeger",
"polkadot-node-primitives",
@@ -12962,6 +13363,7 @@ dependencies = [
"sp-consensus",
"sp-core",
"sp-keyring",
+ "sp-tracing 16.0.0",
"thiserror",
"tracing-gum",
]
@@ -13029,8 +13431,10 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "sp-application-crypto",
"sp-core",
"sp-keyring",
+ "sp-keystore",
"sp-maybe-compressed-blob",
"tracing-gum",
]
@@ -13065,7 +13469,7 @@ dependencies = [
"kvdb",
"kvdb-memorydb",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
@@ -13125,22 +13529,17 @@ name = "polkadot-node-core-prospective-parachains"
version = "6.0.0"
dependencies = [
"assert_matches",
- "bitvec",
"fatality",
"futures",
- "parity-scale-codec",
- "polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
- "polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "sc-keystore",
- "sp-application-crypto",
+ "rand",
+ "rstest",
"sp-core",
- "sp-keyring",
- "sp-keystore",
+ "sp-tracing 16.0.0",
"thiserror",
"tracing-gum",
]
@@ -13195,7 +13594,7 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-primitives",
"procfs",
- "rand 0.8.5",
+ "rand",
"rococo-runtime",
"rusty-fork",
"sc-sysinfo",
@@ -13270,8 +13669,10 @@ dependencies = [
"nix 0.28.0",
"parity-scale-codec",
"polkadot-node-core-pvf-common",
+ "polkadot-node-primitives",
"polkadot-parachain-primitives",
"polkadot-primitives",
+ "sp-maybe-compressed-blob",
"tracing-gum",
]
@@ -13286,6 +13687,7 @@ dependencies = [
"nix 0.28.0",
"parity-scale-codec",
"polkadot-node-core-pvf-common",
+ "polkadot-node-primitives",
"polkadot-primitives",
"rayon",
"rococo-runtime",
@@ -13327,7 +13729,7 @@ dependencies = [
"log",
"mick-jaeger",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-primitives",
"polkadot-primitives",
"sc-network",
@@ -13342,10 +13744,12 @@ name = "polkadot-node-metrics"
version = "7.0.0"
dependencies = [
"assert_cmd",
- "bs58 0.5.0",
+ "bs58 0.5.1",
"futures",
"futures-timer",
- "hyper",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-util",
"log",
"parity-scale-codec",
"polkadot-primitives",
@@ -13378,8 +13782,8 @@ dependencies = [
"polkadot-node-jaeger",
"polkadot-node-primitives",
"polkadot-primitives",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"sc-authority-discovery",
"sc-network",
"sc-network-types",
@@ -13427,7 +13831,7 @@ version = "1.0.0"
dependencies = [
"async-trait",
"futures",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-erasure-coding",
"polkadot-node-primitives",
"polkadot-node-subsystem",
@@ -13478,7 +13882,6 @@ dependencies = [
"assert_matches",
"async-trait",
"derive_more",
- "env_logger 0.11.3",
"fatality",
"futures",
"futures-channel",
@@ -13490,7 +13893,7 @@ dependencies = [
"log",
"parity-db",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
"polkadot-erasure-coding",
"polkadot-node-jaeger",
@@ -13504,7 +13907,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"prioritized-metered-channel",
- "rand 0.8.5",
+ "rand",
"sc-client-api",
"schnellru",
"sp-application-crypto",
@@ -13525,7 +13928,7 @@ dependencies = [
"futures",
"futures-timer",
"orchestra",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-node-metrics",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
@@ -13545,18 +13948,48 @@ dependencies = [
name = "polkadot-parachain-bin"
version = "4.0.0"
dependencies = [
- "assert_cmd",
"asset-hub-rococo-runtime",
"asset-hub-westend-runtime",
- "async-trait",
"bridge-hub-rococo-runtime",
"bridge-hub-westend-runtime",
- "clap 4.5.3",
"collectives-westend-runtime",
- "color-print",
+ "color-eyre",
"contracts-rococo-runtime",
"coretime-rococo-runtime",
"coretime-westend-runtime",
+ "cumulus-primitives-core",
+ "glutton-westend-runtime",
+ "hex-literal",
+ "log",
+ "parachains-common",
+ "penpal-runtime",
+ "people-rococo-runtime",
+ "people-westend-runtime",
+ "polkadot-parachain-lib",
+ "polkadot-service",
+ "rococo-parachain-runtime",
+ "sc-chain-spec",
+ "sc-cli",
+ "sc-service",
+ "seedling-runtime",
+ "serde",
+ "serde_json",
+ "shell-runtime",
+ "sp-core",
+ "sp-runtime",
+ "staging-xcm",
+ "substrate-build-script-utils",
+ "testnet-parachains-constants",
+]
+
+[[package]]
+name = "polkadot-parachain-lib"
+version = "0.1.0"
+dependencies = [
+ "assert_cmd",
+ "async-trait",
+ "clap 4.5.11",
+ "color-print",
"cumulus-client-cli",
"cumulus-client-collator",
"cumulus-client-consensus-aura",
@@ -13568,14 +14001,13 @@ dependencies = [
"cumulus-primitives-aura",
"cumulus-primitives-core",
"cumulus-relay-chain-interface",
+ "docify",
"frame-benchmarking",
"frame-benchmarking-cli",
"frame-support",
"frame-system-rpc-runtime-api",
"frame-try-runtime",
"futures",
- "glutton-westend-runtime",
- "hex-literal",
"jsonrpsee",
"log",
"nix 0.28.0",
@@ -13584,56 +14016,40 @@ dependencies = [
"pallet-transaction-payment-rpc-runtime-api",
"parachains-common",
"parity-scale-codec",
- "penpal-runtime",
- "people-rococo-runtime",
- "people-westend-runtime",
"polkadot-cli",
"polkadot-primitives",
- "polkadot-service",
- "rococo-parachain-runtime",
"sc-basic-authorship",
"sc-chain-spec",
"sc-cli",
"sc-client-api",
+ "sc-client-db",
"sc-consensus",
"sc-executor",
"sc-network",
- "sc-network-sync",
"sc-rpc",
"sc-service",
"sc-sysinfo",
"sc-telemetry",
"sc-tracing",
"sc-transaction-pool",
- "sc-transaction-pool-api",
- "seedling-runtime",
"serde",
"serde_json",
- "shell-runtime",
"sp-api",
"sp-block-builder",
- "sp-blockchain",
"sp-consensus-aura",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
- "sp-io",
"sp-keystore",
- "sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-timestamp",
- "sp-tracing 16.0.0",
"sp-transaction-pool",
"sp-version",
- "staging-xcm",
- "substrate-build-script-utils",
+ "sp-weights",
"substrate-frame-rpc-system",
"substrate-prometheus-endpoint",
"substrate-state-trie-migration-rpc",
- "tempfile",
- "testnet-parachains-constants",
"tokio",
"wait-timeout",
]
@@ -13650,7 +14066,6 @@ dependencies = [
"serde",
"sp-core",
"sp-runtime",
- "sp-std 14.0.0",
"sp-weights",
]
@@ -13677,7 +14092,6 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-staking",
- "sp-std 14.0.0",
]
[[package]]
@@ -13685,7 +14099,7 @@ name = "polkadot-primitives-test-helpers"
version = "1.0.0"
dependencies = [
"polkadot-primitives",
- "rand 0.8.5",
+ "rand",
"sp-application-crypto",
"sp-core",
"sp-keyring",
@@ -13775,7 +14189,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-staking",
- "sp-std 14.0.0",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
@@ -13786,11 +14199,10 @@ dependencies = [
name = "polkadot-runtime-metrics"
version = "7.0.0"
dependencies = [
- "bs58 0.5.0",
+ "bs58 0.5.1",
"frame-benchmarking",
"parity-scale-codec",
"polkadot-primitives",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
]
@@ -13816,6 +14228,7 @@ dependencies = [
"pallet-balances",
"pallet-broker",
"pallet-message-queue",
+ "pallet-mmr",
"pallet-session",
"pallet-staking",
"pallet-timestamp",
@@ -13826,10 +14239,9 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-runtime-metrics",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"rstest",
- "rustc-hex",
"sc-keystore",
"scale-info",
"serde",
@@ -13861,25 +14273,14 @@ dependencies = [
"asset-test-utils",
"assets-common",
"binary-merkle-tree",
- "bp-asset-hub-rococo",
- "bp-asset-hub-westend",
- "bp-bridge-hub-cumulus",
- "bp-bridge-hub-kusama",
- "bp-bridge-hub-polkadot",
- "bp-bridge-hub-rococo",
- "bp-bridge-hub-westend",
"bp-header-chain",
- "bp-kusama",
"bp-messages",
"bp-parachains",
"bp-polkadot",
- "bp-polkadot-bulletin",
"bp-polkadot-core",
"bp-relayers",
- "bp-rococo",
"bp-runtime",
"bp-test-utils",
- "bp-westend",
"bp-xcm-bridge-hub",
"bp-xcm-bridge-hub-router",
"bridge-hub-common",
@@ -13944,6 +14345,7 @@ dependencies = [
"pallet-asset-rate",
"pallet-asset-tx-payment",
"pallet-assets",
+ "pallet-assets-freezer",
"pallet-atomic-swap",
"pallet-aura",
"pallet-authority-discovery",
@@ -14007,6 +14409,11 @@ dependencies = [
"pallet-recovery",
"pallet-referenda",
"pallet-remark",
+ "pallet-revive",
+ "pallet-revive-fixtures",
+ "pallet-revive-mock-network",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
"pallet-root-offences",
"pallet-root-testing",
"pallet-safe-mode",
@@ -14079,6 +14486,7 @@ dependencies = [
"polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-overseer",
+ "polkadot-parachain-lib",
"polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-rpc",
@@ -14089,7 +14497,6 @@ dependencies = [
"polkadot-service",
"polkadot-statement-distribution",
"polkadot-statement-table",
- "rococo-runtime-constants",
"sc-allocator",
"sc-authority-discovery",
"sc-basic-authorship",
@@ -14233,10 +14640,9 @@ dependencies = [
"testnet-parachains-constants",
"tracing-gum",
"tracing-gum-proc-macro",
- "westend-runtime-constants",
"xcm-emulator",
- "xcm-fee-payment-runtime-api",
"xcm-procedural",
+ "xcm-runtime-apis",
"xcm-simulator",
]
@@ -14244,6 +14650,7 @@ dependencies = [
name = "polkadot-sdk-docs"
version = "0.0.1"
dependencies = [
+ "chain-spec-guide-runtime",
"cumulus-client-service",
"cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
@@ -14255,6 +14662,10 @@ dependencies = [
"frame-support",
"frame-system",
"kitchensink-runtime",
+ "log",
+ "minimal-template-runtime",
+ "pallet-asset-conversion-tx-payment",
+ "pallet-asset-tx-payment",
"pallet-assets",
"pallet-aura",
"pallet-authorship",
@@ -14262,6 +14673,7 @@ dependencies = [
"pallet-balances",
"pallet-broker",
"pallet-collective",
+ "pallet-contracts",
"pallet-default-config-example",
"pallet-democracy",
"pallet-example-offchain-worker",
@@ -14273,13 +14685,17 @@ dependencies = [
"pallet-proxy",
"pallet-referenda",
"pallet-scheduler",
+ "pallet-skip-feeless-payment",
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-uniques",
"pallet-utility",
+ "pallet-xcm",
+ "parachain-template-runtime",
"parity-scale-codec",
"polkadot-sdk",
"polkadot-sdk-frame",
+ "sc-chain-spec",
"sc-cli",
"sc-client-db",
"sc-consensus-aura",
@@ -14295,21 +14711,29 @@ dependencies = [
"sc-service",
"scale-info",
"simple-mermaid 0.1.1",
+ "solochain-template-runtime",
"sp-api",
"sp-arithmetic",
"sp-core",
+ "sp-genesis-builder",
"sp-io",
"sp-keyring",
"sp-offchain",
"sp-runtime",
+ "sp-runtime-interface 24.0.0",
+ "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
"sp-version",
"staging-chain-spec-builder",
"staging-node-cli",
"staging-parachain-info",
"staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
"subkey",
"substrate-wasm-builder",
"xcm-docs",
+ "xcm-simulator",
]
[[package]]
@@ -14339,7 +14763,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -14352,7 +14775,6 @@ dependencies = [
"assert_matches",
"async-trait",
"bitvec",
- "env_logger 0.11.3",
"frame-benchmarking",
"frame-benchmarking-cli",
"frame-metadata-hash-extension",
@@ -14372,7 +14794,7 @@ dependencies = [
"pallet-transaction-payment-rpc-runtime-api",
"parity-db",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"polkadot-approval-distribution",
"polkadot-availability-bitfield-distribution",
"polkadot-availability-distribution",
@@ -14460,6 +14882,7 @@ dependencies = [
"sp-state-machine",
"sp-storage 19.0.0",
"sp-timestamp",
+ "sp-tracing 16.0.0",
"sp-transaction-pool",
"sp-version",
"sp-weights",
@@ -14470,7 +14893,7 @@ dependencies = [
"tracing-gum",
"westend-runtime",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -14494,7 +14917,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-subsystem-bench",
- "rand_chacha 0.3.1",
+ "rand_chacha",
"sc-keystore",
"sc-network",
"sp-application-crypto",
@@ -14526,15 +14949,15 @@ dependencies = [
"async-trait",
"bincode",
"bitvec",
- "clap 4.5.3",
+ "clap 4.5.11",
"clap-num",
"color-eyre",
"colored",
- "env_logger 0.11.3",
"futures",
"futures-timer",
"hex",
"itertools 0.11.0",
+ "jemalloc_pprof",
"kvdb-memorydb",
"log",
"orchestra",
@@ -14558,13 +14981,14 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "polkadot-service",
"polkadot-statement-distribution",
"prometheus",
"pyroscope",
"pyroscope_pprofrs",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "rand",
+ "rand_chacha",
+ "rand_core",
"rand_distr",
"sc-keystore",
"sc-network",
@@ -14583,8 +15007,10 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-timestamp",
- "strum 0.24.1",
+ "sp-tracing 16.0.0",
+ "strum 0.26.2",
"substrate-prometheus-endpoint",
+ "tikv-jemallocator",
"tokio",
"tracing-gum",
]
@@ -14624,7 +15050,7 @@ version = "1.0.0"
dependencies = [
"assert_matches",
"async-trait",
- "clap 4.5.3",
+ "clap 4.5.11",
"color-eyre",
"futures",
"futures-timer",
@@ -14643,7 +15069,7 @@ dependencies = [
"polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-primitives",
- "rand 0.8.5",
+ "rand",
"sp-core",
"sp-keystore",
"substrate-build-script-utils",
@@ -14699,7 +15125,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-staking",
- "sp-std 14.0.0",
"sp-transaction-pool",
"sp-trie",
"sp-version",
@@ -14731,7 +15156,7 @@ dependencies = [
"polkadot-runtime-parachains",
"polkadot-service",
"polkadot-test-runtime",
- "rand 0.8.5",
+ "rand",
"sc-authority-discovery",
"sc-chain-spec",
"sc-cli",
@@ -14767,7 +15192,7 @@ dependencies = [
name = "polkadot-voter-bags"
version = "7.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"generate-bags",
"sp-io",
"westend-runtime",
@@ -14781,9 +15206,22 @@ checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
dependencies = [
"libc",
"log",
- "polkavm-assembler",
- "polkavm-common",
- "polkavm-linux-raw",
+ "polkavm-assembler 0.9.0",
+ "polkavm-common 0.9.0",
+ "polkavm-linux-raw 0.9.0",
+]
+
+[[package]]
+name = "polkavm"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ec0c5935f2eff23cfc4653002f4f8d12b37f87a720e0631282d188c32089d6"
+dependencies = [
+ "libc",
+ "log",
+ "polkavm-assembler 0.10.0",
+ "polkavm-common 0.10.0",
+ "polkavm-linux-raw 0.10.0",
]
[[package]]
@@ -14795,6 +15233,15 @@ dependencies = [
"log",
]
+[[package]]
+name = "polkavm-assembler"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8e4fd5a43100bf1afe9727b8130d01f966f5cfc9144d5604b21e795c2bcd80e"
+dependencies = [
+ "log",
+]
+
[[package]]
name = "polkavm-common"
version = "0.9.0"
@@ -14804,24 +15251,55 @@ dependencies = [
"log",
]
+[[package]]
+name = "polkavm-common"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0097b48bc0bedf9f3f537ce8f37e8f1202d8d83f9b621bdb21ff2c59b9097c50"
+dependencies = [
+ "log",
+ "polkavm-assembler 0.10.0",
+]
+
[[package]]
name = "polkavm-derive"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
+checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
+dependencies = [
+ "polkavm-derive-impl-macro 0.9.0",
+]
+
+[[package]]
+name = "polkavm-derive"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dcc701385c08c31bdb0569f0c51a290c580d892fa77f1dd88a7352a62679ecf"
+dependencies = [
+ "polkavm-derive-impl-macro 0.10.0",
+]
+
+[[package]]
+name = "polkavm-derive-impl"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
dependencies = [
- "polkavm-derive-impl-macro",
+ "polkavm-common 0.9.0",
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
]
[[package]]
name = "polkavm-derive-impl"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
+checksum = "7855353a5a783dd5d09e3b915474bddf66575f5a3cf45dec8d1c5e051ba320dc"
dependencies = [
- "polkavm-common",
+ "polkavm-common 0.10.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -14831,7 +15309,17 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
dependencies = [
- "polkavm-derive-impl",
+ "polkavm-derive-impl 0.9.0",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "polkavm-derive-impl-macro"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9324fe036de37c17829af233b46ef6b5562d4a0c09bb7fdb9f8378856dee30cf"
+dependencies = [
+ "polkavm-derive-impl 0.10.0",
"syn 2.0.61",
]
@@ -14845,7 +15333,22 @@ dependencies = [
"hashbrown 0.14.3",
"log",
"object 0.32.2",
- "polkavm-common",
+ "polkavm-common 0.9.0",
+ "regalloc2 0.9.3",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "polkavm-linker"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d704edfe7bdcc876784f19436d53d515b65eb07bc9a0fae77085d552c2dbbb5"
+dependencies = [
+ "gimli 0.28.0",
+ "hashbrown 0.14.3",
+ "log",
+ "object 0.36.1",
+ "polkavm-common 0.10.0",
"regalloc2 0.9.3",
"rustc-demangle",
]
@@ -14856,6 +15359,12 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120"
+[[package]]
+name = "polkavm-linux-raw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26e45fa59c7e1bb12ef5289080601e9ec9b31435f6e32800a5c90c132453d126"
+
[[package]]
name = "polling"
version = "2.8.0"
@@ -14868,10 +15377,24 @@ dependencies = [
"concurrent-queue",
"libc",
"log",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"windows-sys 0.48.0",
]
+[[package]]
+name = "polling"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.21",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
[[package]]
name = "poly1305"
version = "0.8.0"
@@ -14907,9 +15430,15 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9"
dependencies = [
- "rand 0.8.5",
+ "rand",
]
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
[[package]]
name = "pprof"
version = "0.12.1"
@@ -14923,13 +15452,26 @@ dependencies = [
"log",
"nix 0.26.2",
"once_cell",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"smallvec",
"symbolic-demangle",
"tempfile",
"thiserror",
]
+[[package]]
+name = "pprof_util"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c620a1858d6ebf10d7c60256629078b2d106968d0e6ff63b850d9ecd84008fbe"
+dependencies = [
+ "anyhow",
+ "flate2",
+ "num",
+ "paste",
+ "prost 0.11.9",
+]
+
[[package]]
name = "ppv-lite86"
version = "0.2.17"
@@ -15066,7 +15608,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
"version_check",
]
@@ -15078,7 +15620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"version_check",
]
@@ -15088,6 +15630,17 @@ version = "0.5.20+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+[[package]]
+name = "proc-macro-warning"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
+]
+
[[package]]
name = "proc-macro-warning"
version = "1.0.0"
@@ -15095,7 +15648,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -15123,7 +15676,7 @@ version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"chrono",
"flate2",
"hex",
@@ -15138,7 +15691,7 @@ version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"chrono",
"hex",
]
@@ -15153,19 +15706,19 @@ dependencies = [
"fnv",
"lazy_static",
"memchr",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"thiserror",
]
[[package]]
name = "prometheus-client"
-version = "0.19.0"
+version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e"
+checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2"
dependencies = [
"dtoa",
"itoa",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"prometheus-client-derive-encode",
]
@@ -15176,7 +15729,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -15200,11 +15753,11 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
dependencies = [
"bit-set",
"bit-vec",
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"lazy_static",
"num-traits",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"rand_xorshift",
"regex-syntax 0.8.2",
"rusty-fork",
@@ -15224,12 +15777,12 @@ dependencies = [
[[package]]
name = "prost"
-version = "0.12.4"
+version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922"
+checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
dependencies = [
"bytes",
- "prost-derive 0.12.4",
+ "prost-derive 0.12.6",
]
[[package]]
@@ -15268,7 +15821,7 @@ dependencies = [
"once_cell",
"petgraph",
"prettyplease 0.2.12",
- "prost 0.12.4",
+ "prost 0.12.6",
"prost-types 0.12.4",
"regex",
"syn 2.0.61",
@@ -15284,20 +15837,20 @@ dependencies = [
"anyhow",
"itertools 0.10.5",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
[[package]]
name = "prost-derive"
-version = "0.12.4"
+version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
+checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
dependencies = [
"anyhow",
"itertools 0.11.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -15316,7 +15869,7 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
dependencies = [
- "prost 0.12.4",
+ "prost 0.12.6",
]
[[package]]
@@ -15369,7 +15922,7 @@ dependencies = [
"mach2",
"once_cell",
"raw-cpuid",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
"web-sys",
"winapi",
]
@@ -15391,15 +15944,26 @@ dependencies = [
[[package]]
name = "quick-protobuf-codec"
-version = "0.1.0"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b"
+checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98"
dependencies = [
"asynchronous-codec",
"bytes",
"quick-protobuf",
"thiserror",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
+]
+
+[[package]]
+name = "quick_cache"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5253a3a0d56548d5b0be25414171dc780cc6870727746d05bd2bde352eee96c5"
+dependencies = [
+ "ahash 0.8.11",
+ "hashbrown 0.13.2",
+ "parking_lot 0.12.3",
]
[[package]]
@@ -15410,49 +15974,56 @@ checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
dependencies = [
"env_logger 0.8.4",
"log",
- "rand 0.8.5",
+ "rand",
]
[[package]]
-name = "quicksink"
-version = "0.1.2"
+name = "quinn"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858"
+checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e"
dependencies = [
- "futures-core",
- "futures-sink",
- "pin-project-lite 0.1.12",
+ "bytes",
+ "pin-project-lite",
+ "quinn-proto 0.9.6",
+ "quinn-udp 0.3.2",
+ "rustc-hash 1.1.0",
+ "rustls 0.20.9",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "webpki",
]
[[package]]
name = "quinn"
-version = "0.9.4"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e"
+checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75"
dependencies = [
"bytes",
- "pin-project-lite 0.2.12",
- "quinn-proto",
- "quinn-udp",
- "rustc-hash",
- "rustls 0.20.8",
+ "futures-io",
+ "pin-project-lite",
+ "quinn-proto 0.10.6",
+ "quinn-udp 0.4.1",
+ "rustc-hash 1.1.0",
+ "rustls 0.21.7",
"thiserror",
"tokio",
"tracing",
- "webpki",
]
[[package]]
name = "quinn-proto"
-version = "0.9.5"
+version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989"
+checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863"
dependencies = [
"bytes",
- "rand 0.8.5",
+ "rand",
"ring 0.16.20",
- "rustc-hash",
- "rustls 0.20.8",
+ "rustc-hash 1.1.0",
+ "rustls 0.20.9",
"slab",
"thiserror",
"tinyvec",
@@ -15460,6 +16031,23 @@ dependencies = [
"webpki",
]
+[[package]]
+name = "quinn-proto"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a"
+dependencies = [
+ "bytes",
+ "rand",
+ "ring 0.16.20",
+ "rustc-hash 1.1.0",
+ "rustls 0.21.7",
+ "slab",
+ "thiserror",
+ "tinyvec",
+ "tracing",
+]
+
[[package]]
name = "quinn-udp"
version = "0.3.2"
@@ -15467,12 +16055,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4"
dependencies = [
"libc",
- "quinn-proto",
+ "quinn-proto 0.9.6",
"socket2 0.4.9",
"tracing",
"windows-sys 0.42.0",
]
+[[package]]
+name = "quinn-udp"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
+dependencies = [
+ "bytes",
+ "libc",
+ "socket2 0.5.7",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "quote"
version = "0.6.13"
@@ -15484,9 +16085,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.35"
+version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2 1.0.82",
]
@@ -15497,19 +16098,6 @@ 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"
@@ -15517,18 +16105,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
+ "rand_chacha",
+ "rand_core",
]
[[package]]
@@ -15538,16 +16116,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
+ "rand_core",
]
[[package]]
@@ -15556,7 +16125,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
]
[[package]]
@@ -15566,16 +16135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
dependencies = [
"num-traits",
- "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",
+ "rand",
]
[[package]]
@@ -15584,7 +16144,7 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e"
dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
]
[[package]]
@@ -15593,7 +16153,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
]
[[package]]
@@ -15696,7 +16256,7 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
"redox_syscall 0.2.16",
"thiserror",
]
@@ -15715,21 +16275,21 @@ dependencies = [
[[package]]
name = "ref-cast"
-version = "1.0.20"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280"
+checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
-version = "1.0.20"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
+checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -15753,7 +16313,7 @@ checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6"
dependencies = [
"hashbrown 0.13.2",
"log",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"slice-group-by",
"smallvec",
]
@@ -15826,23 +16386,22 @@ dependencies = [
"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",
+ "quick_cache",
+ "rand",
"relay-utils",
"sc-chain-spec",
"sc-rpc-api",
"sc-transaction-pool-api",
"scale-info",
+ "serde_json",
"sp-consensus-grandpa",
"sp-core",
"sp-rpc",
@@ -15859,21 +16418,21 @@ dependencies = [
name = "relay-utils"
version = "0.1.0"
dependencies = [
- "ansi_term",
"anyhow",
"async-std",
"async-trait",
"backoff",
"bp-runtime",
- "env_logger 0.11.3",
+ "console",
"futures",
"isahc",
"jsonpath_lib",
"log",
"num-traits",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"serde_json",
"sp-runtime",
+ "sp-tracing 16.0.0",
"substrate-prometheus-endpoint",
"sysinfo",
"thiserror",
@@ -15885,7 +16444,7 @@ dependencies = [
name = "remote-ext-tests-bags-list"
version = "1.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"frame-system",
"log",
"pallet-bags-list-remote-tests",
@@ -15907,19 +16466,19 @@ dependencies = [
"encoding_rs",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-rustls",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.29",
+ "hyper-rustls 0.24.2",
"ipnet",
"js-sys",
"log",
"mime",
"once_cell",
"percent-encoding",
- "pin-project-lite 0.2.12",
- "rustls 0.21.6",
+ "pin-project-lite",
+ "rustls 0.21.7",
"rustls-pemfile 1.0.3",
"serde",
"serde_json",
@@ -15958,13 +16517,14 @@ dependencies = [
[[package]]
name = "ring"
version = "0.1.0"
-source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224"
+source = "git+https://github.com/w3f/ring-proof?rev=665f5f5#665f5f51af5734c7b6d90b985dd6861d4c5b4752"
dependencies = [
"ark-ec",
"ark-ff 0.4.2",
"ark-poly",
"ark-serialize 0.4.2",
"ark-std 0.4.0",
+ "arrayvec 0.7.4",
"blake2 0.10.6",
"common",
"fflonk",
@@ -15993,22 +16553,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
dependencies = [
"cc",
- "getrandom 0.2.10",
+ "getrandom",
"libc",
"spin 0.9.8",
"untrusted 0.9.0",
"windows-sys 0.48.0",
]
-[[package]]
-name = "ripemd"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f"
-dependencies = [
- "digest 0.10.7",
-]
-
[[package]]
name = "rle-decode-fast"
version = "1.0.3"
@@ -16092,7 +16643,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-transaction-pool",
"sp-version",
"staging-parachain-info",
@@ -16194,7 +16744,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-staking",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-tracing 16.0.0",
"sp-transaction-pool",
@@ -16207,7 +16756,7 @@ dependencies = [
"substrate-wasm-builder",
"tiny-keccak",
"tokio",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -16231,6 +16780,7 @@ version = "0.0.0"
dependencies = [
"asset-hub-rococo-emulated-chain",
"bridge-hub-rococo-emulated-chain",
+ "coretime-rococo-emulated-chain",
"emulated-integration-tests-common",
"penpal-emulated-chain",
"people-rococo-emulated-chain",
@@ -16289,7 +16839,7 @@ dependencies = [
"cfg-if",
"glob",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"regex",
"relative-path",
"rustc_version 0.4.0",
@@ -16338,7 +16888,7 @@ dependencies = [
"parity-scale-codec",
"primitive-types",
"proptest",
- "rand 0.8.5",
+ "rand",
"rlp",
"ruint-macro",
"serde",
@@ -16364,6 +16914,12 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+[[package]]
+name = "rustc-hash"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
+
[[package]]
name = "rustc-hex"
version = "2.1.0"
@@ -16440,7 +16996,7 @@ version = "0.38.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"errno",
"libc",
"linux-raw-sys 0.4.10",
@@ -16449,11 +17005,10 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.20.8"
+version = "0.20.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
dependencies = [
- "log",
"ring 0.16.20",
"sct",
"webpki",
@@ -16461,9 +17016,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.21.6"
+version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
+checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
dependencies = [
"log",
"ring 0.16.20",
@@ -16473,14 +17028,15 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.22.2"
+version = "0.23.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402"
dependencies = [
"log",
+ "once_cell",
"ring 0.17.7",
"rustls-pki-types",
- "rustls-webpki 0.102.2",
+ "rustls-webpki 0.102.4",
"subtle 2.5.0",
"zeroize",
]
@@ -16531,9 +17087,36 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.2.0"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
+name = "rustls-platform-verifier"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5f0d26fa1ce3c790f9590868f0109289a044acb954525f933e2aa3b871c157d"
+dependencies = [
+ "core-foundation",
+ "core-foundation-sys",
+ "jni",
+ "log",
+ "once_cell",
+ "rustls 0.23.10",
+ "rustls-native-certs 0.7.0",
+ "rustls-platform-verifier-android",
+ "rustls-webpki 0.102.4",
+ "security-framework",
+ "security-framework-sys",
+ "webpki-roots 0.26.3",
+ "winapi",
+]
+
+[[package]]
+name = "rustls-platform-verifier-android"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf"
+checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad"
[[package]]
name = "rustls-webpki"
@@ -16547,9 +17130,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
-version = "0.102.2"
+version = "0.102.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
dependencies = [
"ring 0.17.7",
"rustls-pki-types",
@@ -16558,9 +17141,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.14"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "rusty-fork"
@@ -16587,9 +17170,9 @@ dependencies = [
[[package]]
name = "rw-stream-sink"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04"
+checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1"
dependencies = [
"futures",
"pin-project",
@@ -16650,13 +17233,12 @@ dependencies = [
"libp2p",
"linked_hash_set",
"log",
- "multihash 0.17.0",
- "multihash-codetable",
+ "multihash 0.19.1",
"parity-scale-codec",
- "prost 0.12.4",
+ "prost 0.12.6",
"prost-build 0.12.4",
"quickcheck",
- "rand 0.8.5",
+ "rand",
"sc-client-api",
"sc-network",
"sc-network-types",
@@ -16680,7 +17262,7 @@ dependencies = [
"futures-timer",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-proposer-metrics",
@@ -16718,7 +17300,7 @@ name = "sc-chain-spec"
version = "28.0.0"
dependencies = [
"array-bytes",
- "clap 4.5.3",
+ "clap 4.5.11",
"docify",
"log",
"memmap2 0.9.3",
@@ -16751,7 +17333,7 @@ version = "11.0.0"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -16761,7 +17343,7 @@ version = "0.36.0"
dependencies = [
"array-bytes",
"chrono",
- "clap 4.5.3",
+ "clap 4.5.11",
"fdlimit",
"futures",
"futures-timer",
@@ -16771,7 +17353,7 @@ dependencies = [
"names",
"parity-bip39",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"regex",
"rpassword",
"sc-client-api",
@@ -16806,7 +17388,7 @@ dependencies = [
"futures",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-executor",
"sc-transaction-pool-api",
"sc-utils",
@@ -16842,9 +17424,9 @@ dependencies = [
"log",
"parity-db",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"quickcheck",
- "rand 0.8.5",
+ "rand",
"sc-client-api",
"sc-state-db",
"schnellru",
@@ -16866,10 +17448,9 @@ version = "0.33.0"
dependencies = [
"async-trait",
"futures",
- "futures-timer",
"log",
"mockall 0.11.4",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-client-api",
"sc-network-types",
"sc-utils",
@@ -16893,7 +17474,7 @@ dependencies = [
"futures",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -16935,7 +17516,7 @@ dependencies = [
"num-rational",
"num-traits",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -17004,7 +17585,7 @@ dependencies = [
"futures",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -17045,7 +17626,7 @@ dependencies = [
"jsonrpsee",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-consensus-beefy",
"sc-rpc",
"serde",
@@ -17075,7 +17656,7 @@ dependencies = [
name = "sc-consensus-grandpa"
version = "0.19.0"
dependencies = [
- "ahash 0.8.8",
+ "ahash 0.8.11",
"array-bytes",
"assert_matches",
"async-trait",
@@ -17086,8 +17667,8 @@ dependencies = [
"futures-timer",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
@@ -17192,7 +17773,7 @@ dependencies = [
"futures-timer",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-client-api",
"sc-consensus",
"sp-api",
@@ -17237,10 +17818,9 @@ dependencies = [
"array-bytes",
"assert_matches",
"criterion",
- "env_logger 0.11.3",
"num_cpus",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"paste",
"regex",
"sc-executor-common",
@@ -17274,7 +17854,7 @@ dependencies = [
name = "sc-executor-common"
version = "0.29.0"
dependencies = [
- "polkavm",
+ "polkavm 0.9.3",
"sc-allocator",
"sp-maybe-compressed-blob",
"sp-wasm-interface 20.0.0",
@@ -17287,7 +17867,7 @@ name = "sc-executor-polkavm"
version = "0.29.0"
dependencies = [
"log",
- "polkavm",
+ "polkavm 0.9.3",
"sc-executor-common",
"sp-wasm-interface 20.0.0",
]
@@ -17302,7 +17882,7 @@ dependencies = [
"libc",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"paste",
"rustix 0.36.15",
"sc-allocator",
@@ -17320,7 +17900,7 @@ dependencies = [
name = "sc-informant"
version = "0.33.0"
dependencies = [
- "ansi_term",
+ "console",
"futures",
"futures-timer",
"log",
@@ -17337,7 +17917,7 @@ name = "sc-keystore"
version = "25.0.0"
dependencies = [
"array-bytes",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"serde_json",
"sp-application-crypto",
"sp-core",
@@ -17358,9 +17938,9 @@ dependencies = [
"futures-timer",
"log",
"mixnet",
- "multiaddr",
+ "multiaddr 0.18.1",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-client-api",
"sc-network",
"sc-network-types",
@@ -17398,12 +17978,12 @@ dependencies = [
"multistream-select",
"once_cell",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"partial_sort",
"pin-project",
- "prost 0.12.4",
+ "prost 0.12.6",
"prost-build 0.12.4",
- "rand 0.8.5",
+ "rand",
"sc-block-builder",
"sc-client-api",
"sc-network-common",
@@ -17432,7 +18012,7 @@ dependencies = [
"tokio-stream",
"tokio-test",
"tokio-util",
- "unsigned-varint",
+ "unsigned-varint 0.7.2",
"void",
"wasm-timer",
"zeroize",
@@ -17460,11 +18040,10 @@ dependencies = [
name = "sc-network-gossip"
version = "0.34.0"
dependencies = [
- "ahash 0.8.8",
+ "ahash 0.8.11",
"async-trait",
"futures",
"futures-timer",
- "libp2p",
"log",
"parity-scale-codec",
"quickcheck",
@@ -17489,7 +18068,7 @@ dependencies = [
"futures",
"log",
"parity-scale-codec",
- "prost 0.12.4",
+ "prost 0.12.6",
"prost-build 0.12.4",
"sc-client-api",
"sc-network",
@@ -17507,7 +18086,6 @@ dependencies = [
"array-bytes",
"async-channel",
"futures",
- "libp2p",
"log",
"parity-scale-codec",
"sc-network",
@@ -17534,7 +18112,7 @@ dependencies = [
"log",
"mockall 0.11.4",
"parity-scale-codec",
- "prost 0.12.4",
+ "prost 0.12.6",
"prost-build 0.12.4",
"quickcheck",
"sc-block-builder",
@@ -17570,8 +18148,8 @@ dependencies = [
"futures-timer",
"libp2p",
"log",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -17598,7 +18176,6 @@ version = "0.33.0"
dependencies = [
"array-bytes",
"futures",
- "libp2p",
"log",
"parity-scale-codec",
"sc-network",
@@ -17615,14 +18192,15 @@ dependencies = [
name = "sc-network-types"
version = "0.10.0"
dependencies = [
- "bs58 0.5.0",
- "ed25519-dalek 2.1.1",
+ "bs58 0.5.1",
+ "ed25519-dalek",
"libp2p-identity",
"litep2p",
- "multiaddr",
- "multihash 0.17.0",
+ "log",
+ "multiaddr 0.18.1",
+ "multihash 0.19.1",
"quickcheck",
- "rand 0.8.5",
+ "rand",
"thiserror",
"zeroize",
]
@@ -17637,16 +18215,15 @@ dependencies = [
"fnv",
"futures",
"futures-timer",
- "hyper",
- "hyper-rustls",
+ "hyper 0.14.29",
+ "hyper-rustls 0.24.2",
"lazy_static",
- "libp2p",
"log",
"num_cpus",
"once_cell",
"parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"sc-block-builder",
"sc-client-api",
"sc-client-db",
@@ -17683,12 +18260,11 @@ name = "sc-rpc"
version = "29.0.0"
dependencies = [
"assert_matches",
- "env_logger 0.11.3",
"futures",
"jsonrpsee",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pretty_assertions",
"sc-block-builder",
"sc-chain-spec",
@@ -17717,7 +18293,6 @@ dependencies = [
"sp-version",
"substrate-test-runtime-client",
"tokio",
- "tracing-subscriber 0.3.18",
]
[[package]]
@@ -17743,14 +18318,18 @@ dependencies = [
name = "sc-rpc-server"
version = "11.0.0"
dependencies = [
+ "dyn-clone",
"forwarded-header-value",
"futures",
"governor",
- "http",
- "hyper",
+ "http 1.1.0",
+ "http-body-util",
+ "hyper 1.3.1",
"ip_network",
"jsonrpsee",
"log",
+ "sc-rpc-api",
+ "serde",
"serde_json",
"substrate-prometheus-endpoint",
"tokio",
@@ -17770,9 +18349,9 @@ dependencies = [
"jsonrpsee",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pretty_assertions",
- "rand 0.8.5",
+ "rand",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
@@ -17809,7 +18388,6 @@ dependencies = [
"sp-io",
"sp-runtime",
"sp-runtime-interface 24.0.0",
- "sp-std 14.0.0",
"substrate-wasm-builder",
]
@@ -17825,9 +18403,9 @@ dependencies = [
"jsonrpsee",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
- "rand 0.8.5",
+ "rand",
"sc-chain-spec",
"sc-client-api",
"sc-client-db",
@@ -17888,7 +18466,7 @@ dependencies = [
"futures",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-client-db",
@@ -17920,7 +18498,7 @@ version = "0.30.0"
dependencies = [
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sp-core",
]
@@ -17928,10 +18506,9 @@ dependencies = [
name = "sc-statement-store"
version = "10.0.0"
dependencies = [
- "env_logger 0.11.3",
"log",
"parity-db",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-client-api",
"sc-keystore",
"sp-api",
@@ -17939,6 +18516,7 @@ dependencies = [
"sp-core",
"sp-runtime",
"sp-statement-store",
+ "sp-tracing 16.0.0",
"substrate-prometheus-endpoint",
"tempfile",
"tokio",
@@ -17948,7 +18526,7 @@ dependencies = [
name = "sc-storage-monitor"
version = "0.16.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"fs4",
"log",
"sp-core",
@@ -17982,7 +18560,7 @@ dependencies = [
"futures",
"libc",
"log",
- "rand 0.8.5",
+ "rand",
"rand_pcg",
"regex",
"sc-telemetry",
@@ -18003,9 +18581,9 @@ dependencies = [
"futures",
"libp2p",
"log",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
- "rand 0.8.5",
+ "rand",
"sc-network",
"sc-utils",
"serde",
@@ -18018,17 +18596,17 @@ dependencies = [
name = "sc-tracing"
version = "28.0.0"
dependencies = [
- "ansi_term",
"chrono",
+ "console",
"criterion",
"is-terminal",
"lazy_static",
"libc",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"regex",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"sc-client-api",
"sc-tracing-proc-macro",
"serde",
@@ -18050,7 +18628,7 @@ version = "11.0.0"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -18067,7 +18645,7 @@ dependencies = [
"linked-hash-map",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-block-builder",
"sc-client-api",
"sc-transaction-pool-api",
@@ -18113,7 +18691,7 @@ dependencies = [
"futures-timer",
"lazy_static",
"log",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"prometheus",
"sp-arithmetic",
"tokio-test",
@@ -18131,9 +18709,9 @@ dependencies = [
[[package]]
name = "scale-decode"
-version = "0.13.0"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b12ebca36cec2a3f983c46295b282b35e5f8496346fb859a8776dad5389e5389"
+checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27"
dependencies = [
"derive_more",
"parity-scale-codec",
@@ -18164,7 +18742,7 @@ checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -18202,7 +18780,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"serde_derive_internals",
"syn 1.0.109",
]
@@ -18213,7 +18791,7 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d"
dependencies = [
- "ahash 0.8.8",
+ "ahash 0.8.11",
"cfg-if",
"hashbrown 0.13.2",
]
@@ -18228,7 +18806,7 @@ dependencies = [
"arrayvec 0.7.4",
"curve25519-dalek-ng",
"merlin",
- "rand_core 0.6.4",
+ "rand_core",
"sha2 0.9.9",
"subtle-ng",
"zeroize",
@@ -18243,10 +18821,10 @@ dependencies = [
"aead",
"arrayref",
"arrayvec 0.7.4",
- "curve25519-dalek 4.1.2",
+ "curve25519-dalek",
"getrandom_or_panic",
"merlin",
- "rand_core 0.6.4",
+ "rand_core",
"serde_bytes",
"sha2 0.10.8",
"subtle 2.5.0",
@@ -18291,7 +18869,7 @@ dependencies = [
"crc",
"fxhash",
"log",
- "rand 0.8.5",
+ "rand",
"slab",
"thiserror",
]
@@ -18322,18 +18900,18 @@ dependencies = [
[[package]]
name = "secp256k1"
-version = "0.28.0"
+version = "0.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2acea373acb8c21ecb5a23741452acd2593ed44ee3d343e72baaa143bc89d0d5"
+checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10"
dependencies = [
"secp256k1-sys",
]
[[package]]
name = "secp256k1-sys"
-version = "0.9.0"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09e67c467c38fd24bd5499dc9a18183b31575c12ee549197e3e20d57aa4fe3b7"
+checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb"
dependencies = [
"cc",
]
@@ -18349,22 +18927,23 @@ dependencies = [
[[package]]
name = "security-framework"
-version = "2.9.2"
+version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"core-foundation",
"core-foundation-sys",
"libc",
+ "num-bigint",
"security-framework-sys",
]
[[package]]
name = "security-framework-sys"
-version = "2.9.1"
+version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
dependencies = [
"core-foundation-sys",
"libc",
@@ -18398,7 +18977,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-transaction-pool",
"sp-version",
"staging-parachain-info",
@@ -18456,6 +19034,12 @@ dependencies = [
"pest",
]
+[[package]]
+name = "send_wrapper"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
+
[[package]]
name = "separator"
version = "0.4.1"
@@ -18464,9 +19048,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5"
[[package]]
name = "serde"
-version = "1.0.197"
+version = "1.0.206"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284"
dependencies = [
"serde_derive",
]
@@ -18491,12 +19075,12 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.197"
+version = "1.0.206"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -18507,7 +19091,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -18522,12 +19106,13 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.114"
+version = "1.0.124"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d"
dependencies = [
"indexmap 2.2.3",
"itoa",
+ "memchr",
"ryu",
"serde",
]
@@ -18555,9 +19140,9 @@ dependencies = [
[[package]]
name = "serde_yaml"
-version = "0.9.33"
+version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
"indexmap 2.2.3",
"itoa",
@@ -18586,7 +19171,7 @@ dependencies = [
"futures",
"lazy_static",
"log",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"serial_test_derive",
]
@@ -18597,7 +19182,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -18716,7 +19301,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-transaction-pool",
"sp-version",
"staging-parachain-info",
@@ -18751,12 +19335,6 @@ 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"
@@ -18764,7 +19342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
dependencies = [
"digest 0.10.7",
- "rand_core 0.6.4",
+ "rand_core",
]
[[package]]
@@ -18786,7 +19364,7 @@ version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
]
[[package]]
@@ -18829,7 +19407,6 @@ dependencies = [
"parity-scale-codec",
"paste",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -18867,12 +19444,12 @@ dependencies = [
"async-channel",
"async-executor",
"async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"async-net",
"async-process",
"blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
]
[[package]]
@@ -18891,20 +19468,20 @@ 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",
"blake2-rfc",
- "bs58 0.5.0",
+ "bs58 0.5.1",
"chacha20",
"crossbeam-queue",
"derive_more",
"ed25519-zebra",
"either",
- "event-listener",
+ "event-listener 2.5.3",
"fnv",
- "futures-lite",
+ "futures-lite 1.13.0",
"futures-util",
"hashbrown 0.14.3",
"hex",
@@ -18920,8 +19497,8 @@ dependencies = [
"pbkdf2",
"pin-project",
"poly1305",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"ruzstd",
"schnorrkel 0.10.2",
"serde",
@@ -18931,10 +19508,10 @@ dependencies = [
"siphasher",
"slab",
"smallvec",
- "soketto",
+ "soketto 0.7.1",
"twox-hash",
- "wasmi",
- "x25519-dalek 2.0.0",
+ "wasmi 0.31.2",
+ "x25519-dalek",
"zeroize",
]
@@ -18945,15 +19522,15 @@ 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",
+ "futures-lite 1.13.0",
"futures-util",
"hashbrown 0.14.3",
"hex",
@@ -18961,10 +19538,10 @@ dependencies = [
"log",
"lru 0.11.0",
"no-std-net",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pin-project",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"serde",
"serde_json",
"siphasher",
@@ -18989,8 +19566,8 @@ dependencies = [
"aes-gcm",
"blake2 0.10.6",
"chacha20poly1305",
- "curve25519-dalek 4.1.2",
- "rand_core 0.6.4",
+ "curve25519-dalek",
+ "rand_core",
"ring 0.17.7",
"rustc_version 0.4.0",
"sha2 0.10.8",
@@ -19062,7 +19639,7 @@ dependencies = [
"hex-literal",
"parity-bytes",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"rlp",
"scale-info",
"serde",
@@ -19083,7 +19660,7 @@ dependencies = [
"hex",
"lazy_static",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"snowbridge-amcl",
"zeroize",
@@ -19094,7 +19671,6 @@ name = "snowbridge-outbound-queue-merkle-tree"
version = "0.3.0"
dependencies = [
"array-bytes",
- "env_logger 0.11.3",
"hex",
"hex-literal",
"parity-scale-codec",
@@ -19102,6 +19678,7 @@ dependencies = [
"sp-core",
"sp-crypto-hashing",
"sp-runtime",
+ "sp-tracing 16.0.0",
]
[[package]]
@@ -19127,7 +19704,7 @@ dependencies = [
"log",
"pallet-timestamp",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"serde",
"serde_json",
@@ -19251,7 +19828,6 @@ dependencies = [
"hex-literal",
"log",
"parity-scale-codec",
- "rustc-hex",
"scale-info",
"snowbridge-core",
"sp-core",
@@ -19330,9 +19906,9 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.5.6"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
dependencies = [
"libc",
"windows-sys 0.52.0",
@@ -19340,27 +19916,42 @@ dependencies = [
[[package]]
name = "soketto"
-version = "0.7.1"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2"
+dependencies = [
+ "base64 0.13.1",
+ "bytes",
+ "futures",
+ "httparse",
+ "log",
+ "rand",
+ "sha-1 0.9.8",
+]
+
+[[package]]
+name = "soketto"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2"
+checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53"
dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
"bytes",
- "flate2",
"futures",
- "http",
+ "http 1.1.0",
"httparse",
"log",
- "rand 0.8.5",
- "sha-1 0.9.8",
+ "rand",
+ "sha1",
]
[[package]]
name = "solochain-template-node"
version = "0.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"frame-benchmarking-cli",
+ "frame-metadata-hash-extension",
"frame-system",
"futures",
"jsonrpsee",
@@ -19375,7 +19966,6 @@ dependencies = [
"sc-executor",
"sc-network",
"sc-offchain",
- "sc-rpc-api",
"sc-service",
"sc-telemetry",
"sc-transaction-pool",
@@ -19403,6 +19993,7 @@ version = "0.0.0"
dependencies = [
"frame-benchmarking",
"frame-executive",
+ "frame-metadata-hash-extension",
"frame-support",
"frame-system",
"frame-system-benchmarking",
@@ -19428,7 +20019,6 @@ dependencies = [
"sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-transaction-pool",
"sp-version",
@@ -19439,6 +20029,7 @@ dependencies = [
name = "sp-api"
version = "26.0.0"
dependencies = [
+ "docify",
"hash-db",
"log",
"parity-scale-codec",
@@ -19450,7 +20041,6 @@ dependencies = [
"sp-runtime",
"sp-runtime-interface 24.0.0",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-test-primitives",
"sp-trie",
"sp-version",
@@ -19467,7 +20057,7 @@ dependencies = [
"expander",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -19503,7 +20093,6 @@ dependencies = [
"serde",
"sp-core",
"sp-io",
- "sp-std 14.0.0",
]
[[package]]
@@ -19527,11 +20116,10 @@ dependencies = [
"num-traits",
"parity-scale-codec",
"primitive-types",
- "rand 0.8.5",
+ "rand",
"scale-info",
"serde",
"sp-crypto-hashing",
- "sp-std 14.0.0",
"static_assertions",
]
@@ -19589,16 +20177,17 @@ name = "sp-blockchain"
version = "28.0.0"
dependencies = [
"futures",
- "log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"schnellru",
"sp-api",
"sp-consensus",
+ "sp-core",
"sp-database",
"sp-runtime",
"sp-state-machine",
"thiserror",
+ "tracing",
]
[[package]]
@@ -19665,6 +20254,7 @@ dependencies = [
"sp-keystore",
"sp-mmr-primitives",
"sp-runtime",
+ "sp-weights",
"strum 0.26.2",
"w3f-bls",
]
@@ -19728,7 +20318,7 @@ dependencies = [
"bitflags 1.3.2",
"blake2 0.10.6",
"bounded-collections",
- "bs58 0.5.0",
+ "bs58 0.5.1",
"criterion",
"dyn-clonable",
"ed25519-zebra",
@@ -19744,10 +20334,10 @@ dependencies = [
"merlin",
"parity-bip39",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"paste",
"primitive-types",
- "rand 0.8.5",
+ "rand",
"regex",
"scale-info",
"schnorrkel 0.11.4",
@@ -19851,7 +20441,7 @@ dependencies = [
name = "sp-crypto-hashing-proc-macro"
version = "0.1.0"
dependencies = [
- "quote 1.0.35",
+ "quote 1.0.36",
"sp-crypto-hashing",
"syn 2.0.61",
]
@@ -19861,7 +20451,7 @@ name = "sp-database"
version = "10.0.0"
dependencies = [
"kvdb",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
]
[[package]]
@@ -19870,7 +20460,7 @@ version = "8.0.0"
source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -19879,7 +20469,7 @@ name = "sp-debug-derive"
version = "14.0.0"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -19932,11 +20522,12 @@ name = "sp-io"
version = "30.0.0"
dependencies = [
"bytes",
- "ed25519-dalek 2.1.1",
+ "docify",
+ "ed25519-dalek",
"libsecp256k1",
"log",
"parity-scale-codec",
- "polkavm-derive",
+ "polkavm-derive 0.9.1",
"rustversion",
"secp256k1",
"sp-core",
@@ -19945,7 +20536,6 @@ dependencies = [
"sp-keystore",
"sp-runtime-interface 24.0.0",
"sp-state-machine",
- "sp-std 14.0.0",
"sp-tracing 16.0.0",
"sp-trie",
"tracing",
@@ -19966,9 +20556,9 @@ name = "sp-keystore"
version = "0.34.0"
dependencies = [
"parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "parking_lot 0.12.3",
+ "rand",
+ "rand_chacha",
"sp-core",
"sp-externalities 0.25.0",
]
@@ -20022,7 +20612,7 @@ name = "sp-npos-elections"
version = "26.0.0"
dependencies = [
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"serde",
"sp-arithmetic",
@@ -20035,9 +20625,9 @@ dependencies = [
name = "sp-npos-elections-fuzzer"
version = "2.0.0-alpha.5"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"honggfuzz",
- "rand 0.8.5",
+ "rand",
"sp-npos-elections",
"sp-runtime",
]
@@ -20064,7 +20654,7 @@ dependencies = [
name = "sp-rpc"
version = "26.0.0"
dependencies = [
- "rustc-hash",
+ "rustc-hash 1.1.0",
"serde",
"serde_json",
"sp-core",
@@ -20082,7 +20672,7 @@ dependencies = [
"num-traits",
"parity-scale-codec",
"paste",
- "rand 0.8.5",
+ "rand",
"scale-info",
"serde",
"serde_json",
@@ -20097,6 +20687,7 @@ dependencies = [
"sp-tracing 16.0.0",
"sp-weights",
"substrate-test-runtime-client",
+ "tracing",
"zstd 0.12.4",
]
@@ -20125,7 +20716,7 @@ dependencies = [
"bytes",
"impl-trait-for-tuples",
"parity-scale-codec",
- "polkavm-derive",
+ "polkavm-derive 0.9.1",
"primitive-types",
"rustversion",
"sp-core",
@@ -20150,7 +20741,7 @@ dependencies = [
"Inflector",
"proc-macro-crate 1.3.1",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -20162,7 +20753,7 @@ dependencies = [
"expander",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -20190,7 +20781,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime-interface 24.0.0",
- "sp-std 14.0.0",
"substrate-wasm-builder",
]
@@ -20233,14 +20823,15 @@ dependencies = [
name = "sp-state-machine"
version = "0.35.0"
dependencies = [
+ "arbitrary",
"array-bytes",
"assert_matches",
"hash-db",
"log",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"pretty_assertions",
- "rand 0.8.5",
+ "rand",
"smallvec",
"sp-core",
"sp-externalities 0.25.0",
@@ -20257,11 +20848,11 @@ name = "sp-statement-store"
version = "10.0.0"
dependencies = [
"aes-gcm",
- "curve25519-dalek 4.1.2",
- "ed25519-dalek 2.1.1",
+ "curve25519-dalek",
+ "ed25519-dalek",
"hkdf",
"parity-scale-codec",
- "rand 0.8.5",
+ "rand",
"scale-info",
"sha2 0.10.8",
"sp-api",
@@ -20272,7 +20863,7 @@ dependencies = [
"sp-runtime",
"sp-runtime-interface 24.0.0",
"thiserror",
- "x25519-dalek 2.0.0",
+ "x25519-dalek",
]
[[package]]
@@ -20378,7 +20969,7 @@ dependencies = [
name = "sp-trie"
version = "29.0.0"
dependencies = [
- "ahash 0.8.8",
+ "ahash 0.8.11",
"array-bytes",
"criterion",
"hash-db",
@@ -20386,8 +20977,8 @@ dependencies = [
"memory-db",
"nohash-hasher",
"parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"scale-info",
"schnellru",
"sp-core",
@@ -20423,7 +21014,7 @@ version = "13.0.0"
dependencies = [
"parity-scale-codec",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"sp-version",
"syn 2.0.61",
]
@@ -20480,9 +21071,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]]
name = "spinners"
-version = "4.1.0"
+version = "4.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08615eea740067d9899969bc2891c68a19c315cb1f66640af9a9ecb91b13bcab"
+checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82"
dependencies = [
"lazy_static",
"maplit",
@@ -20508,7 +21099,7 @@ dependencies = [
"Inflector",
"num-format",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"serde",
"serde_json",
"unicode-xid 0.2.4",
@@ -20533,7 +21124,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -20545,9 +21136,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "staging-chain-spec-builder"
-version = "1.6.0"
+version = "1.6.1"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"log",
"sc-chain-spec",
"serde_json",
@@ -20560,7 +21151,7 @@ version = "3.0.0-dev"
dependencies = [
"array-bytes",
"assert_cmd",
- "clap 4.5.3",
+ "clap 4.5.11",
"clap_complete",
"criterion",
"futures",
@@ -20574,13 +21165,14 @@ dependencies = [
"parity-scale-codec",
"platforms",
"polkadot-sdk",
- "rand 0.8.5",
+ "pretty_assertions",
+ "rand",
"regex",
"sc-service-test",
"scale-info",
"serde",
"serde_json",
- "soketto",
+ "soketto 0.7.1",
"staging-node-inspect",
"substrate-cli-test-utils",
"tempfile",
@@ -20594,7 +21186,7 @@ dependencies = [
name = "staging-node-inspect"
version = "0.12.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"parity-scale-codec",
"sc-cli",
"sc-client-api",
@@ -20617,7 +21209,6 @@ dependencies = [
"parity-scale-codec",
"scale-info",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -20641,6 +21232,7 @@ dependencies = [
"schemars",
"serde",
"sp-io",
+ "sp-runtime",
"sp-weights",
"xcm-procedural",
]
@@ -20654,6 +21246,7 @@ dependencies = [
"frame-system",
"impl-trait-for-tuples",
"log",
+ "pallet-asset-conversion",
"pallet-assets",
"pallet-balances",
"pallet-salary",
@@ -20667,9 +21260,9 @@ dependencies = [
"primitive-types",
"scale-info",
"sp-arithmetic",
+ "sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-weights",
"staging-xcm",
"staging-xcm-executor",
@@ -20683,16 +21276,15 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"impl-trait-for-tuples",
- "log",
"parity-scale-codec",
"scale-info",
"sp-arithmetic",
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
"sp-weights",
"staging-xcm",
+ "tracing",
]
[[package]]
@@ -20725,7 +21317,7 @@ dependencies = [
"cfg_aliases",
"memchr",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -20750,16 +21342,14 @@ dependencies = [
]
[[package]]
-name = "strobe-rs"
-version = "0.8.1"
+name = "string-interner"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d"
+checksum = "1c6a0d765f5807e98a091107bae0a56ea3799f66a5de47b2c84c94a39c09974e"
dependencies = [
- "bitflags 1.3.2",
- "byteorder",
- "keccak",
- "subtle 2.5.0",
- "zeroize",
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "serde",
]
[[package]]
@@ -20800,7 +21390,7 @@ dependencies = [
"heck 0.3.3",
"proc-macro-error",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -20836,7 +21426,7 @@ checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck 0.4.1",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"rustversion",
"syn 1.0.109",
]
@@ -20849,7 +21439,7 @@ checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck 0.4.1",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"rustversion",
"syn 2.0.61",
]
@@ -20862,7 +21452,7 @@ checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
dependencies = [
"heck 0.4.1",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"rustversion",
"syn 2.0.61",
]
@@ -20871,7 +21461,7 @@ dependencies = [
name = "subkey"
version = "9.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"sc-cli",
]
@@ -20931,6 +21521,7 @@ name = "substrate-frame-rpc-system"
version = "28.0.0"
dependencies = [
"assert_matches",
+ "docify",
"frame-system-rpc-runtime-api",
"futures",
"jsonrpsee",
@@ -20953,7 +21544,9 @@ dependencies = [
name = "substrate-prometheus-endpoint"
version = "0.17.0"
dependencies = [
- "hyper",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-util",
"log",
"prometheus",
"thiserror",
@@ -20973,9 +21566,7 @@ dependencies = [
"bp-polkadot-core",
"bp-relayers",
"bp-runtime",
- "bridge-runtime-common",
"equivocation-detector",
- "finality-grandpa",
"finality-relay",
"frame-support",
"frame-system",
@@ -20995,9 +21586,11 @@ dependencies = [
"rbtag",
"relay-substrate-client",
"relay-utils",
+ "scale-info",
"sp-consensus-grandpa",
"sp-core",
"sp-runtime",
+ "sp-trie",
"structopt",
"strum 0.26.2",
"thiserror",
@@ -21071,7 +21664,6 @@ dependencies = [
"frame-system",
"frame-system-rpc-runtime-api",
"futures",
- "hex-literal",
"log",
"pallet-babe",
"pallet-balances",
@@ -21109,6 +21701,7 @@ dependencies = [
"sp-version",
"substrate-test-runtime-client",
"substrate-wasm-builder",
+ "tracing",
"trie-db",
]
@@ -21135,7 +21728,7 @@ version = "2.0.0"
dependencies = [
"futures",
"parity-scale-codec",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"sc-transaction-pool",
"sc-transaction-pool-api",
"sp-blockchain",
@@ -21164,10 +21757,11 @@ dependencies = [
"console",
"filetime",
"frame-metadata",
+ "jobserver",
"merkleized-metadata",
"parity-scale-codec",
"parity-wasm",
- "polkavm-linker",
+ "polkavm-linker 0.9.2",
"sc-executor",
"sp-core",
"sp-io",
@@ -21308,7 +21902,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"unicode-ident",
]
@@ -21319,7 +21913,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"unicode-ident",
]
@@ -21331,7 +21925,7 @@ checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047"
dependencies = [
"paste",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -21342,11 +21936,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
"unicode-xid 0.2.4",
]
+[[package]]
+name = "synstructure"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "syn 2.0.61",
+]
+
[[package]]
name = "sysinfo"
version = "0.30.5"
@@ -21462,7 +22067,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -21474,7 +22079,6 @@ dependencies = [
"parity-scale-codec",
"polkadot-parachain-primitives",
"sp-io",
- "sp-std 14.0.0",
"substrate-wasm-builder",
"tiny-keccak",
]
@@ -21483,7 +22087,7 @@ dependencies = [
name = "test-parachain-adder-collator"
version = "1.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"futures",
"futures-timer",
"log",
@@ -21522,7 +22126,6 @@ dependencies = [
"parity-scale-codec",
"polkadot-parachain-primitives",
"sp-io",
- "sp-std 14.0.0",
"substrate-wasm-builder",
"tiny-keccak",
]
@@ -21531,7 +22134,7 @@ dependencies = [
name = "test-parachain-undying-collator"
version = "1.0.0"
dependencies = [
- "clap 4.5.3",
+ "clap 4.5.11",
"futures",
"futures-timer",
"log",
@@ -21632,7 +22235,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 1.0.109",
]
@@ -21643,7 +22246,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -21718,14 +22321,16 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.27"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
"libc",
+ "num-conv",
"num_threads",
+ "powerfmt",
"serde",
"time-core",
"time-macros",
@@ -21733,16 +22338,17 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.13"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "733d258752e9303d392b94b75230d07b0b9c489350c69b851fc6c065fde3e8f9"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
+ "num-conv",
"time-core",
]
@@ -21791,10 +22397,10 @@ dependencies = [
"libc",
"mio",
"num_cpus",
- "parking_lot 0.12.1",
- "pin-project-lite 0.2.12",
+ "parking_lot 0.12.3",
+ "pin-project-lite",
"signal-hook-registry",
- "socket2 0.5.6",
+ "socket2 0.5.7",
"tokio-macros",
"windows-sys 0.48.0",
]
@@ -21806,7 +22412,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -21817,7 +22423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f"
dependencies = [
"pin-project",
- "rand 0.8.5",
+ "rand",
"tokio",
]
@@ -21827,17 +22433,17 @@ version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
dependencies = [
- "rustls 0.21.6",
+ "rustls 0.21.7",
"tokio",
]
[[package]]
name = "tokio-rustls"
-version = "0.25.0"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
dependencies = [
- "rustls 0.22.2",
+ "rustls 0.23.10",
"rustls-pki-types",
"tokio",
]
@@ -21849,7 +22455,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
dependencies = [
"futures-core",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"tokio",
"tokio-util",
]
@@ -21875,7 +22481,7 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
dependencies = [
"futures-util",
"log",
- "rustls 0.21.6",
+ "rustls 0.21.7",
"rustls-native-certs 0.6.3",
"tokio",
"tokio-rustls 0.24.1",
@@ -21892,7 +22498,7 @@ dependencies = [
"futures-core",
"futures-io",
"futures-sink",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"tokio",
]
@@ -21959,7 +22565,8 @@ dependencies = [
"futures-core",
"futures-util",
"pin-project",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
+ "tokio",
"tower-layer",
"tower-service",
"tracing",
@@ -21967,18 +22574,16 @@ dependencies = [
[[package]]
name = "tower-http"
-version = "0.4.3"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82"
+checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.6.0",
"bytes",
- "futures-core",
- "futures-util",
- "http",
- "http-body",
- "http-range-header",
- "pin-project-lite 0.2.12",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "pin-project-lite",
"tower-layer",
"tower-service",
]
@@ -22002,7 +22607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
"log",
- "pin-project-lite 0.2.12",
+ "pin-project-lite",
"tracing-attributes",
"tracing-core",
]
@@ -22014,7 +22619,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -22056,7 +22661,7 @@ dependencies = [
"expander",
"proc-macro-crate 3.1.0",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
@@ -22124,11 +22729,12 @@ dependencies = [
"matchers 0.1.0",
"nu-ansi-term",
"once_cell",
- "parking_lot 0.12.1",
+ "parking_lot 0.12.3",
"regex",
"sharded-slab",
"smallvec",
"thread_local",
+ "time",
"tracing",
"tracing-core",
"tracing-log 0.2.0",
@@ -22152,9 +22758,9 @@ dependencies = [
[[package]]
name = "trie-db"
-version = "0.29.0"
+version = "0.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65ed83be775d85ebb0e272914fff6462c39b3ddd6dc67b5c1c41271aad280c69"
+checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f"
dependencies = [
"hash-db",
"log",
@@ -22197,7 +22803,7 @@ dependencies = [
"idna 0.2.3",
"ipnet",
"lazy_static",
- "rand 0.8.5",
+ "rand",
"smallvec",
"socket2 0.4.9",
"thiserror",
@@ -22223,7 +22829,7 @@ dependencies = [
"idna 0.4.0",
"ipnet",
"once_cell",
- "rand 0.8.5",
+ "rand",
"smallvec",
"thiserror",
"tinyvec",
@@ -22232,26 +22838,6 @@ dependencies = [
"url",
]
-[[package]]
-name = "trust-dns-resolver"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lazy_static",
- "lru-cache",
- "parking_lot 0.12.1",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto 0.22.0",
-]
-
[[package]]
name = "trust-dns-resolver"
version = "0.23.2"
@@ -22263,8 +22849,8 @@ dependencies = [
"ipconfig",
"lru-cache",
"once_cell",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "rand",
"resolv-conf",
"smallvec",
"thiserror",
@@ -22310,11 +22896,11 @@ dependencies = [
"byteorder",
"bytes",
"data-encoding",
- "http",
+ "http 0.2.9",
"httparse",
"log",
- "rand 0.8.5",
- "rustls 0.21.6",
+ "rand",
+ "rustls 0.21.7",
"sha1",
"thiserror",
"url",
@@ -22335,7 +22921,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
"cfg-if",
"digest 0.10.7",
- "rand 0.8.5",
+ "rand",
"static_assertions",
]
@@ -22440,6 +23026,15 @@ dependencies = [
"bytes",
"futures-io",
"futures-util",
+]
+
+[[package]]
+name = "unsigned-varint"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
+dependencies = [
+ "bytes",
"tokio-util",
]
@@ -22457,12 +23052,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
-version = "2.4.0"
+version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [
"form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
"percent-encoding",
]
@@ -22565,9 +23160,9 @@ dependencies = [
"arrayref",
"constcat",
"digest 0.10.7",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "rand",
+ "rand_chacha",
+ "rand_core",
"sha2 0.10.8",
"sha3",
"thiserror",
@@ -22591,9 +23186,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
[[package]]
name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
dependencies = [
"same-file",
"winapi-util",
@@ -22608,12 +23203,6 @@ dependencies = [
"try-lock",
]
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
@@ -22622,11 +23211,12 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
dependencies = [
"cfg-if",
+ "once_cell",
"serde",
"serde_json",
"wasm-bindgen-macro",
@@ -22634,15 +23224,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
"wasm-bindgen-shared",
]
@@ -22661,22 +23251,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
dependencies = [
- "quote 1.0.35",
+ "quote 1.0.36",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
@@ -22684,9 +23274,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
[[package]]
name = "wasm-bindgen-test"
@@ -22709,7 +23299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
]
[[package]]
@@ -22794,7 +23384,24 @@ dependencies = [
"smallvec",
"spin 0.9.8",
"wasmi_arena",
- "wasmi_core",
+ "wasmi_core 0.13.0",
+ "wasmparser-nostd",
+]
+
+[[package]]
+name = "wasmi"
+version = "0.32.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50386c99b9c32bd2ed71a55b6dd4040af2580530fae8bdb9a6576571a80d0cca"
+dependencies = [
+ "arrayvec 0.7.4",
+ "multi-stash",
+ "num-derive",
+ "num-traits",
+ "smallvec",
+ "spin 0.9.8",
+ "wasmi_collections",
+ "wasmi_core 0.32.3",
"wasmparser-nostd",
]
@@ -22804,6 +23411,17 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
+[[package]]
+name = "wasmi_collections"
+version = "0.32.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4"
+dependencies = [
+ "ahash 0.8.11",
+ "hashbrown 0.14.3",
+ "string-interner",
+]
+
[[package]]
name = "wasmi_core"
version = "0.13.0"
@@ -22816,6 +23434,18 @@ dependencies = [
"paste",
]
+[[package]]
+name = "wasmi_core"
+version = "0.32.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a23b3a7f6c8c3ceeec6b83531ee61f0013c56e51cbf2b14b0f213548b23a4b41"
+dependencies = [
+ "downcast-rs",
+ "libm",
+ "num-traits",
+ "paste",
+]
+
[[package]]
name = "wasmparser"
version = "0.102.0"
@@ -22828,9 +23458,9 @@ dependencies = [
[[package]]
name = "wasmparser-nostd"
-version = "0.100.1"
+version = "0.100.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724"
+checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa"
dependencies = [
"indexmap-nostd",
]
@@ -23010,7 +23640,7 @@ dependencies = [
"memfd",
"memoffset 0.8.0",
"paste",
- "rand 0.8.5",
+ "rand",
"rustix 0.36.15",
"wasmtime-asm-macros",
"wasmtime-environ",
@@ -23073,18 +23703,18 @@ dependencies = [
[[package]]
name = "webpki-roots"
-version = "0.22.6"
+version = "0.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
-dependencies = [
- "webpki",
-]
+checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
[[package]]
name = "webpki-roots"
-version = "0.25.2"
+version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+dependencies = [
+ "rustls-pki-types",
+]
[[package]]
name = "westend-emulated-chain"
@@ -23103,7 +23733,7 @@ dependencies = [
"staging-xcm",
"westend-runtime",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -23152,6 +23782,7 @@ dependencies = [
"pallet-nomination-pools-runtime-api",
"pallet-offences",
"pallet-offences-benchmarking",
+ "pallet-parameters",
"pallet-preimage",
"pallet-proxy",
"pallet-recovery",
@@ -23162,7 +23793,6 @@ dependencies = [
"pallet-session-benchmarking",
"pallet-society",
"pallet-staking",
- "pallet-staking-reward-curve",
"pallet-staking-runtime-api",
"pallet-state-trie-migration",
"pallet-sudo",
@@ -23180,7 +23810,6 @@ dependencies = [
"polkadot-primitives",
"polkadot-runtime-common",
"polkadot-runtime-parachains",
- "rustc-hex",
"scale-info",
"serde",
"serde_derive",
@@ -23204,7 +23833,6 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-staking",
- "sp-std 14.0.0",
"sp-storage 19.0.0",
"sp-tracing 16.0.0",
"sp-transaction-pool",
@@ -23216,7 +23844,7 @@ dependencies = [
"tiny-keccak",
"tokio",
"westend-runtime-constants",
- "xcm-fee-payment-runtime-api",
+ "xcm-runtime-apis",
]
[[package]]
@@ -23241,6 +23869,7 @@ dependencies = [
"asset-hub-westend-emulated-chain",
"bridge-hub-westend-emulated-chain",
"collectives-westend-emulated-chain",
+ "coretime-westend-emulated-chain",
"emulated-integration-tests-common",
"penpal-emulated-chain",
"people-westend-emulated-chain",
@@ -23307,23 +23936,20 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
-version = "0.34.0"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
dependencies = [
- "windows_aarch64_msvc 0.34.0",
- "windows_i686_gnu 0.34.0",
- "windows_i686_msvc 0.34.0",
- "windows_x86_64_gnu 0.34.0",
- "windows_x86_64_msvc 0.34.0",
+ "windows-targets 0.48.5",
]
[[package]]
name = "windows"
-version = "0.48.0"
+version = "0.51.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
dependencies = [
+ "windows-core 0.51.1",
"windows-targets 0.48.5",
]
@@ -23333,10 +23959,19 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
dependencies = [
- "windows-core",
+ "windows-core 0.52.0",
"windows-targets 0.52.0",
]
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
[[package]]
name = "windows-core"
version = "0.52.0"
@@ -23451,12 +24086,6 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d"
-
[[package]]
name = "windows_aarch64_msvc"
version = "0.42.2"
@@ -23475,12 +24104,6 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
-[[package]]
-name = "windows_i686_gnu"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed"
-
[[package]]
name = "windows_i686_gnu"
version = "0.42.2"
@@ -23499,12 +24122,6 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
-[[package]]
-name = "windows_i686_msvc"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956"
-
[[package]]
name = "windows_i686_msvc"
version = "0.42.2"
@@ -23523,12 +24140,6 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4"
-
[[package]]
name = "windows_x86_64_gnu"
version = "0.42.2"
@@ -23565,12 +24176,6 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9"
-
[[package]]
name = "windows_x86_64_msvc"
version = "0.42.2"
@@ -23617,42 +24222,30 @@ dependencies = [
"tap",
]
-[[package]]
-name = "x25519-dalek"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f"
-dependencies = [
- "curve25519-dalek 3.2.0",
- "rand_core 0.5.1",
- "zeroize",
-]
-
[[package]]
name = "x25519-dalek"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
dependencies = [
- "curve25519-dalek 4.1.2",
- "rand_core 0.6.4",
+ "curve25519-dalek",
+ "rand_core",
"serde",
"zeroize",
]
[[package]]
name = "x509-parser"
-version = "0.14.0"
+version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
dependencies = [
- "asn1-rs",
- "base64 0.13.1",
+ "asn1-rs 0.5.2",
"data-encoding",
- "der-parser",
+ "der-parser 8.2.0",
"lazy_static",
"nom",
- "oid-registry",
+ "oid-registry 0.6.1",
"rusticata-macros",
"thiserror",
"time",
@@ -23660,16 +24253,16 @@ dependencies = [
[[package]]
name = "x509-parser"
-version = "0.15.1"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69"
dependencies = [
- "asn1-rs",
+ "asn1-rs 0.6.1",
"data-encoding",
- "der-parser",
+ "der-parser 9.0.0",
"lazy_static",
"nom",
- "oid-registry",
+ "oid-registry 0.7.0",
"rusticata-macros",
"thiserror",
"time",
@@ -23767,13 +24360,25 @@ dependencies = [
]
[[package]]
-name = "xcm-fee-payment-runtime-api"
+name = "xcm-procedural"
+version = "7.0.0"
+dependencies = [
+ "Inflector",
+ "proc-macro2 1.0.82",
+ "quote 1.0.36",
+ "staging-xcm",
+ "syn 2.0.61",
+ "trybuild",
+]
+
+[[package]]
+name = "xcm-runtime-apis"
version = "0.1.0"
dependencies = [
- "env_logger 0.9.3",
"frame-executive",
"frame-support",
"frame-system",
+ "hex-literal",
"log",
"pallet-assets",
"pallet-balances",
@@ -23782,26 +24387,13 @@ dependencies = [
"scale-info",
"sp-api",
"sp-io",
- "sp-runtime",
- "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
"sp-weights",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
]
-[[package]]
-name = "xcm-procedural"
-version = "7.0.0"
-dependencies = [
- "Inflector",
- "proc-macro2 1.0.82",
- "quote 1.0.35",
- "staging-xcm",
- "syn 2.0.61",
- "trybuild",
-]
-
[[package]]
name = "xcm-simulator"
version = "7.0.0"
@@ -23878,17 +24470,33 @@ dependencies = [
"xcm-simulator",
]
+[[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
+
+[[package]]
+name = "xmltree"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb"
+dependencies = [
+ "xml-rs",
+]
+
[[package]]
name = "yamux"
-version = "0.10.2"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5"
+checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776"
dependencies = [
"futures",
"log",
"nohash-hasher",
- "parking_lot 0.12.1",
- "rand 0.8.5",
+ "parking_lot 0.12.3",
+ "pin-project",
+ "rand",
"static_assertions",
]
@@ -23923,15 +24531,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
[[package]]
name = "zeroize"
-version = "1.7.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
dependencies = [
"zeroize_derive",
]
@@ -23943,7 +24551,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2 1.0.82",
- "quote 1.0.35",
+ "quote 1.0.36",
"syn 2.0.61",
]
diff --git a/Cargo.toml b/Cargo.toml
index d6099e420f918832d962bde854cd7c619d276f1d..7cd18bc8a590a0d21edff5f77e1cfc72c7651bbf 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,9 +1,9 @@
[workspace.package]
authors = ["Parity Technologies "]
edition = "2021"
-repository = "https://github.com/paritytech/polkadot-sdk.git"
+homepage = "https://paritytech.github.io/polkadot-sdk/"
license = "GPL-3.0-only"
-homepage = "https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html"
+repository = "https://github.com/paritytech/polkadot-sdk.git"
[workspace]
resolver = "2"
@@ -61,6 +61,7 @@ members = [
"bridges/snowbridge/primitives/router",
"bridges/snowbridge/runtime/runtime-common",
"bridges/snowbridge/runtime/test-common",
+ "cumulus/bin/pov-validator",
"cumulus/client/cli",
"cumulus/client/collator",
"cumulus/client/consensus/aura",
@@ -90,6 +91,8 @@ members = [
"cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo",
"cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend",
"cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend",
+ "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo",
+ "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend",
"cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo",
"cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend",
"cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal",
@@ -104,6 +107,8 @@ members = [
"cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo",
"cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend",
"cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend",
+ "cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo",
+ "cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend",
"cumulus/parachains/integration-tests/emulated/tests/people/people-rococo",
"cumulus/parachains/integration-tests/emulated/tests/people/people-westend",
"cumulus/parachains/pallets/collective-content",
@@ -131,6 +136,7 @@ members = [
"cumulus/parachains/runtimes/testing/penpal",
"cumulus/parachains/runtimes/testing/rococo-parachain",
"cumulus/polkadot-parachain",
+ "cumulus/polkadot-parachain/polkadot-parachain-lib",
"cumulus/primitives/aura",
"cumulus/primitives/core",
"cumulus/primitives/parachain-inherent",
@@ -144,6 +150,7 @@ members = [
"cumulus/test/service",
"cumulus/xcm/xcm-emulator",
"docs/sdk",
+ "docs/sdk/src/reference_docs/chain_spec_runtime",
"polkadot",
"polkadot/cli",
"polkadot/core-primitives",
@@ -225,7 +232,7 @@ 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-runtime-apis",
"polkadot/xcm/xcm-simulator",
"polkadot/xcm/xcm-simulator/example",
"polkadot/xcm/xcm-simulator/fuzzer",
@@ -305,6 +312,7 @@ members = [
"substrate/frame/asset-conversion/ops",
"substrate/frame/asset-rate",
"substrate/frame/assets",
+ "substrate/frame/assets-freezer",
"substrate/frame/atomic-swap",
"substrate/frame/aura",
"substrate/frame/authority-discovery",
@@ -387,6 +395,11 @@ members = [
"substrate/frame/recovery",
"substrate/frame/referenda",
"substrate/frame/remark",
+ "substrate/frame/revive",
+ "substrate/frame/revive/fixtures",
+ "substrate/frame/revive/mock-network",
+ "substrate/frame/revive/proc-macro",
+ "substrate/frame/revive/uapi",
"substrate/frame/root-offences",
"substrate/frame/root-testing",
"substrate/frame/safe-mode",
@@ -515,7 +528,6 @@ members = [
"substrate/utils/prometheus",
"substrate/utils/substrate-bip39",
"substrate/utils/wasm-builder",
- "templates/minimal",
"templates/minimal/node",
"templates/minimal/pallets/template",
"templates/minimal/runtime",
@@ -529,72 +541,851 @@ members = [
]
default-members = [
+ "cumulus/polkadot-parachain",
"polkadot",
"substrate/bin/node/cli",
]
[workspace.lints.rust]
suspicious_double_ref_op = { level = "allow", priority = 2 }
+# `substrate_runtime` is a common `cfg` condition name used in the repo.
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(substrate_runtime)'] }
[workspace.lints.clippy]
all = { level = "allow", priority = 0 }
-correctness = { level = "warn", priority = 1 }
+bind_instead_of_map = { level = "allow", priority = 2 } # stylistic
+borrowed-box = { level = "allow", priority = 2 } # Reasonable to fix this one
complexity = { level = "warn", priority = 1 }
+correctness = { level = "warn", priority = 1 }
+default_constructed_unit_structs = { level = "allow", priority = 2 } # stylistic
+derivable_impls = { level = "allow", priority = 2 } # false positives
+eq_op = { level = "allow", priority = 2 } # In tests we test equality.
+erasing_op = { level = "allow", priority = 2 } # E.g. 0 * DOLLARS
+extra-unused-type-parameters = { level = "allow", priority = 2 } # stylistic
+identity-op = { level = "allow", priority = 2 } # One case where we do 0 +
if-same-then-else = { level = "allow", priority = 2 }
-zero-prefixed-literal = { level = "allow", priority = 2 } # 00_1000_000
-type_complexity = { level = "allow", priority = 2 } # raison d'etre
+needless-lifetimes = { level = "allow", priority = 2 } # generated code
+needless_option_as_deref = { level = "allow", priority = 2 } # false positives
nonminimal-bool = { level = "allow", priority = 2 } # maybe
-borrowed-box = { level = "allow", priority = 2 } # Reasonable to fix this one
+option-map-unit-fn = { level = "allow", priority = 2 } # stylistic
+stable_sort_primitive = { level = "allow", priority = 2 } # prefer stable sort
too-many-arguments = { level = "allow", priority = 2 } # (Turning this on would lead to)
-needless-lifetimes = { level = "allow", priority = 2 } # generated code
+type_complexity = { level = "allow", priority = 2 } # raison d'etre
+unit_arg = { level = "allow", priority = 2 } # stylistic
unnecessary_cast = { level = "allow", priority = 2 } # Types may change
-identity-op = { level = "allow", priority = 2 } # One case where we do 0 +
useless_conversion = { level = "allow", priority = 2 } # Types may change
-unit_arg = { level = "allow", priority = 2 } # stylistic
-option-map-unit-fn = { level = "allow", priority = 2 } # stylistic
-bind_instead_of_map = { level = "allow", priority = 2 } # stylistic
-erasing_op = { level = "allow", priority = 2 } # E.g. 0 * DOLLARS
-eq_op = { level = "allow", priority = 2 } # In tests we test equality.
while_immutable_condition = { level = "allow", priority = 2 } # false positives
-needless_option_as_deref = { level = "allow", priority = 2 } # false positives
-derivable_impls = { level = "allow", priority = 2 } # false positives
-stable_sort_primitive = { level = "allow", priority = 2 } # prefer stable sort
-extra-unused-type-parameters = { level = "allow", priority = 2 } # stylistic
-default_constructed_unit_structs = { level = "allow", priority = 2 } # stylistic
+zero-prefixed-literal = { level = "allow", priority = 2 } # 00_1000_000
[workspace.dependencies]
-polkavm = "0.9.3"
-polkavm-linker = "0.9.2"
+Inflector = { version = "0.11.4" }
+aes-gcm = { version = "0.10" }
+ahash = { version = "0.8.2" }
+alloy-primitives = { version = "0.4.2", default-features = false }
+alloy-sol-types = { version = "0.4.2", default-features = false }
+always-assert = { version = "0.1" }
+anyhow = { version = "1.0.81", default-features = false }
+aquamarine = { version = "0.5.0" }
+arbitrary = { version = "1.3.2" }
+ark-bls12-377 = { version = "0.4.0", default-features = false }
+ark-bls12-377-ext = { version = "0.4.1", default-features = false }
+ark-bls12-381 = { version = "0.4.0", default-features = false }
+ark-bls12-381-ext = { version = "0.4.1", default-features = false }
+ark-bw6-761 = { version = "0.4.0", default-features = false }
+ark-bw6-761-ext = { version = "0.4.1", default-features = false }
+ark-ec = { version = "0.4.2", default-features = false }
+ark-ed-on-bls12-377 = { version = "0.4.0", default-features = false }
+ark-ed-on-bls12-377-ext = { version = "0.4.1", default-features = false }
+ark-ed-on-bls12-381-bandersnatch = { version = "0.4.0", default-features = false }
+ark-ed-on-bls12-381-bandersnatch-ext = { version = "0.4.1", default-features = false }
+ark-scale = { version = "0.0.12", default-features = false }
+array-bytes = { version = "6.2.2", default-features = false }
+arrayvec = { version = "0.7.4" }
+assert_cmd = { version = "2.0.14" }
+assert_matches = { version = "1.5.0" }
+asset-hub-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo" }
+asset-hub-rococo-runtime = { path = "cumulus/parachains/runtimes/assets/asset-hub-rococo", default-features = false }
+asset-hub-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend" }
+asset-hub-westend-runtime = { path = "cumulus/parachains/runtimes/assets/asset-hub-westend" }
+asset-test-utils = { path = "cumulus/parachains/runtimes/assets/test-utils", default-features = false }
+assets-common = { path = "cumulus/parachains/runtimes/assets/common", default-features = false }
+async-channel = { version = "1.8.0" }
+async-std = { version = "1.9.0" }
+async-trait = { version = "0.1.79" }
+asynchronous-codec = { version = "0.6" }
+backoff = { version = "0.4" }
+backtrace = { version = "0.3.71" }
+binary-merkle-tree = { path = "substrate/utils/binary-merkle-tree", default-features = false }
+bincode = { version = "1.3.3" }
+bip39 = { version = "2.0.0" }
+bitflags = { version = "1.3.2" }
+bitvec = { version = "1.0.1", default-features = false }
+blake2 = { version = "0.10.4", default-features = false }
+blake2b_simd = { version = "1.0.2", default-features = false }
+blake3 = { version = "1.5" }
+bounded-collections = { version = "0.2.0", default-features = false }
+bounded-vec = { version = "0.7" }
+bp-asset-hub-rococo = { path = "bridges/chains/chain-asset-hub-rococo", default-features = false }
+bp-asset-hub-westend = { path = "bridges/chains/chain-asset-hub-westend", default-features = false }
+bp-beefy = { path = "bridges/primitives/beefy", default-features = false }
+bp-bridge-hub-cumulus = { path = "bridges/chains/chain-bridge-hub-cumulus", default-features = false }
+bp-bridge-hub-kusama = { default-features = false, path = "bridges/chains/chain-bridge-hub-kusama" }
+bp-bridge-hub-polkadot = { path = "bridges/chains/chain-bridge-hub-polkadot", default-features = false }
+bp-bridge-hub-rococo = { path = "bridges/chains/chain-bridge-hub-rococo", default-features = false }
+bp-bridge-hub-westend = { path = "bridges/chains/chain-bridge-hub-westend", default-features = false }
+bp-header-chain = { path = "bridges/primitives/header-chain", default-features = false }
+bp-kusama = { default-features = false, path = "bridges/chains/chain-kusama" }
+bp-messages = { path = "bridges/primitives/messages", default-features = false }
+bp-parachains = { path = "bridges/primitives/parachains", default-features = false }
+bp-polkadot = { default-features = false, path = "bridges/chains/chain-polkadot" }
+bp-polkadot-bulletin = { path = "bridges/chains/chain-polkadot-bulletin", default-features = false }
+bp-polkadot-core = { path = "bridges/primitives/polkadot-core", default-features = false }
+bp-relayers = { path = "bridges/primitives/relayers", default-features = false }
+bp-rococo = { path = "bridges/chains/chain-rococo", default-features = false }
+bp-runtime = { path = "bridges/primitives/runtime", default-features = false }
+bp-test-utils = { path = "bridges/primitives/test-utils", default-features = false }
+bp-westend = { path = "bridges/chains/chain-westend", default-features = false }
+bp-xcm-bridge-hub = { path = "bridges/primitives/xcm-bridge-hub", default-features = false }
+bp-xcm-bridge-hub-router = { path = "bridges/primitives/xcm-bridge-hub-router", default-features = false }
+bridge-hub-common = { path = "cumulus/parachains/runtimes/bridge-hubs/common", default-features = false }
+bridge-hub-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo" }
+bridge-hub-rococo-runtime = { path = "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo", default-features = false }
+bridge-hub-test-utils = { path = "cumulus/parachains/runtimes/bridge-hubs/test-utils", default-features = false }
+bridge-hub-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend" }
+bridge-hub-westend-runtime = { path = "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend", default-features = false }
+bridge-runtime-common = { path = "bridges/bin/runtime-common", default-features = false }
+bs58 = { version = "0.5.1", default-features = false }
+build-helper = { version = "0.1.1" }
+byte-slice-cast = { version = "1.2.1", default-features = false }
+byteorder = { version = "1.3.2", default-features = false }
+bytes = { version = "1.4.0", default-features = false }
+cargo_metadata = { version = "0.15.4" }
+cfg-expr = { version = "0.15.5" }
+cfg-if = { version = "1.0" }
+chain-spec-builder = { path = "substrate/bin/utils/chain-spec-builder", default-features = false, package = "staging-chain-spec-builder" }
+chain-spec-guide-runtime = { path = "docs/sdk/src/reference_docs/chain_spec_runtime" }
+chrono = { version = "0.4.31" }
+cid = { version = "0.9.0" }
+clap = { version = "4.5.10" }
+clap-num = { version = "1.0.2" }
+clap_complete = { version = "4.0.2" }
+coarsetime = { version = "0.1.22" }
+codec = { version = "3.6.12", default-features = false, package = "parity-scale-codec" }
+collectives-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend" }
+collectives-westend-runtime = { path = "cumulus/parachains/runtimes/collectives/collectives-westend" }
+color-eyre = { version = "0.6.1", default-features = false }
+color-print = { version = "0.3.4" }
+colored = { version = "2.0.4" }
+comfy-table = { version = "7.1.0", default-features = false }
+console = { version = "0.15.8" }
+contracts-rococo-runtime = { path = "cumulus/parachains/runtimes/contracts/contracts-rococo" }
+coretime-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo" }
+coretime-rococo-runtime = { path = "cumulus/parachains/runtimes/coretime/coretime-rococo" }
+coretime-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend" }
+coretime-westend-runtime = { path = "cumulus/parachains/runtimes/coretime/coretime-westend" }
+cpu-time = { version = "1.0.0" }
+criterion = { version = "0.5.1", default-features = false }
+cumulus-client-cli = { path = "cumulus/client/cli", default-features = false }
+cumulus-client-collator = { path = "cumulus/client/collator", default-features = false }
+cumulus-client-consensus-aura = { path = "cumulus/client/consensus/aura", default-features = false }
+cumulus-client-consensus-common = { path = "cumulus/client/consensus/common", default-features = false }
+cumulus-client-consensus-proposer = { path = "cumulus/client/consensus/proposer", default-features = false }
+cumulus-client-consensus-relay-chain = { path = "cumulus/client/consensus/relay-chain", default-features = false }
+cumulus-client-network = { path = "cumulus/client/network", default-features = false }
+cumulus-client-parachain-inherent = { path = "cumulus/client/parachain-inherent", default-features = false }
+cumulus-client-pov-recovery = { path = "cumulus/client/pov-recovery", default-features = false }
+cumulus-client-service = { path = "cumulus/client/service", default-features = false }
+cumulus-pallet-aura-ext = { path = "cumulus/pallets/aura-ext", default-features = false }
+cumulus-pallet-dmp-queue = { default-features = false, path = "cumulus/pallets/dmp-queue" }
+cumulus-pallet-parachain-system = { path = "cumulus/pallets/parachain-system", default-features = false }
+cumulus-pallet-parachain-system-proc-macro = { path = "cumulus/pallets/parachain-system/proc-macro", default-features = false }
+cumulus-pallet-session-benchmarking = { path = "cumulus/pallets/session-benchmarking", default-features = false }
+cumulus-pallet-solo-to-para = { path = "cumulus/pallets/solo-to-para", default-features = false }
+cumulus-pallet-xcm = { path = "cumulus/pallets/xcm", default-features = false }
+cumulus-pallet-xcmp-queue = { path = "cumulus/pallets/xcmp-queue", default-features = false }
+cumulus-ping = { path = "cumulus/parachains/pallets/ping", default-features = false }
+cumulus-primitives-aura = { path = "cumulus/primitives/aura", default-features = false }
+cumulus-primitives-core = { path = "cumulus/primitives/core", default-features = false }
+cumulus-primitives-parachain-inherent = { path = "cumulus/primitives/parachain-inherent", default-features = false }
+cumulus-primitives-proof-size-hostfunction = { path = "cumulus/primitives/proof-size-hostfunction", default-features = false }
+cumulus-primitives-storage-weight-reclaim = { path = "cumulus/primitives/storage-weight-reclaim", default-features = false }
+cumulus-primitives-timestamp = { path = "cumulus/primitives/timestamp", default-features = false }
+cumulus-primitives-utility = { path = "cumulus/primitives/utility", default-features = false }
+cumulus-relay-chain-inprocess-interface = { path = "cumulus/client/relay-chain-inprocess-interface", default-features = false }
+cumulus-relay-chain-interface = { path = "cumulus/client/relay-chain-interface", default-features = false }
+cumulus-relay-chain-minimal-node = { path = "cumulus/client/relay-chain-minimal-node", default-features = false }
+cumulus-relay-chain-rpc-interface = { path = "cumulus/client/relay-chain-rpc-interface", default-features = false }
+cumulus-test-client = { path = "cumulus/test/client" }
+cumulus-test-relay-sproof-builder = { path = "cumulus/test/relay-sproof-builder", default-features = false }
+cumulus-test-runtime = { path = "cumulus/test/runtime" }
+cumulus-test-service = { path = "cumulus/test/service" }
+curve25519-dalek = { version = "4.1.3" }
+derivative = { version = "2.2.0", default-features = false }
+derive-syn-parse = { version = "0.2.0" }
+derive_more = { version = "0.99.17", default-features = false }
+digest = { version = "0.10.3", default-features = false }
+directories = { version = "5.0.1" }
+dlmalloc = { version = "0.2.4" }
+docify = { version = "0.2.8" }
+dyn-clonable = { version = "0.9.0" }
+dyn-clone = { version = "1.0.16" }
+ed25519-dalek = { version = "2.1", default-features = false }
+ed25519-zebra = { version = "4.0.3", default-features = false }
+either = { version = "1.8.1", default-features = false }
+emulated-integration-tests-common = { path = "cumulus/parachains/integration-tests/emulated/common", default-features = false }
+enumflags2 = { version = "0.7.7" }
+enumn = { version = "0.1.13" }
+environmental = { version = "1.1.4", default-features = false }
+equivocation-detector = { path = "bridges/relays/equivocation" }
+ethabi = { version = "1.0.0", default-features = false, package = "ethabi-decode" }
+ethbloom = { version = "0.13.0", default-features = false }
+ethereum-types = { version = "0.14.1", default-features = false }
+exit-future = { version = "0.2.0" }
+expander = { version = "2.0.0" }
+fatality = { version = "0.1.1" }
+fdlimit = { version = "0.3.0" }
+femme = { version = "2.2.1" }
+filetime = { version = "0.2.16" }
+finality-grandpa = { version = "0.16.2", default-features = false }
+finality-relay = { path = "bridges/relays/finality" }
+flate2 = { version = "1.0" }
+fnv = { version = "1.0.6" }
+fork-tree = { path = "substrate/utils/fork-tree", default-features = false }
+forwarded-header-value = { version = "0.1.1" }
+fraction = { version = "0.13.1" }
+frame = { path = "substrate/frame", default-features = false, package = "polkadot-sdk-frame" }
+frame-benchmarking = { path = "substrate/frame/benchmarking", default-features = false }
+frame-benchmarking-cli = { path = "substrate/utils/frame/benchmarking-cli", default-features = false }
+frame-benchmarking-pallet-pov = { default-features = false, path = "substrate/frame/benchmarking/pov" }
+frame-election-provider-solution-type = { path = "substrate/frame/election-provider-support/solution-type", default-features = false }
+frame-election-provider-support = { path = "substrate/frame/election-provider-support", default-features = false }
+frame-executive = { path = "substrate/frame/executive", default-features = false }
+frame-metadata = { version = "16.0.0", default-features = false }
+frame-metadata-hash-extension = { path = "substrate/frame/metadata-hash-extension", default-features = false }
+frame-support = { path = "substrate/frame/support", default-features = false }
+frame-support-procedural = { path = "substrate/frame/support/procedural", default-features = false }
+frame-support-procedural-tools = { path = "substrate/frame/support/procedural/tools", default-features = false }
+frame-support-procedural-tools-derive = { path = "substrate/frame/support/procedural/tools/derive", default-features = false }
+frame-support-test = { path = "substrate/frame/support/test" }
+frame-system = { path = "substrate/frame/system", default-features = false }
+frame-system-benchmarking = { path = "substrate/frame/system/benchmarking", default-features = false }
+frame-system-rpc-runtime-api = { path = "substrate/frame/system/rpc/runtime-api", default-features = false }
+frame-try-runtime = { path = "substrate/frame/try-runtime", default-features = false }
+fs4 = { version = "0.7.0" }
+fs_extra = { version = "1.3.0" }
+futures = { version = "0.3.30" }
+futures-channel = { version = "0.3.23" }
+futures-timer = { version = "3.0.2" }
+futures-util = { version = "0.3.30", default-features = false }
+generate-bags = { path = "substrate/utils/frame/generate-bags", default-features = false }
+gethostname = { version = "0.2.3" }
+glob = { version = "0.3" }
+glutton-westend-runtime = { path = "cumulus/parachains/runtimes/glutton/glutton-westend" }
+governor = { version = "0.6.0" }
+gum = { path = "polkadot/node/gum", default-features = false, package = "tracing-gum" }
+gum-proc-macro = { path = "polkadot/node/gum/proc-macro", default-features = false, package = "tracing-gum-proc-macro" }
+handlebars = { version = "5.1.0" }
+hash-db = { version = "0.16.0", default-features = false }
+hash256-std-hasher = { version = "0.15.2", default-features = false }
+hex = { version = "0.4.3", default-features = false }
+hex-literal = { version = "0.4.1", default-features = false }
+hkdf = { version = "0.12.0" }
+hmac = { version = "0.12.1" }
+honggfuzz = { version = "0.5.55" }
+http = { version = "1.1" }
+http-body = { version = "1", default-features = false }
+http-body-util = { version = "0.1.2", default-features = false }
+hyper = { version = "1.3.1", default-features = false }
+hyper-rustls = { version = "0.24.2" }
+hyper-util = { version = "0.1.5", default-features = false }
+# TODO: remove hyper v0.14 https://github.com/paritytech/polkadot-sdk/issues/4896
+hyperv14 = { package = "hyper", version = "0.14.29", default-features = false }
+impl-serde = { version = "0.4.0", default-features = false }
+impl-trait-for-tuples = { version = "0.2.2" }
+indexmap = { version = "2.0.0" }
+indicatif = { version = "0.17.7" }
+integer-sqrt = { version = "0.1.2" }
+ip_network = { version = "0.4.1" }
+is-terminal = { version = "0.4.9" }
+is_executable = { version = "1.0.1" }
+isahc = { version = "1.2" }
+itertools = { version = "0.11" }
+jemalloc_pprof = { version = "0.4" }
+jobserver = { version = "0.1.26" }
+jsonpath_lib = { version = "0.3" }
+jsonrpsee = { version = "0.24.3" }
+jsonrpsee-core = { version = "0.24.3" }
+k256 = { version = "0.13.3", default-features = false }
+kitchensink-runtime = { path = "substrate/bin/node/runtime" }
+kvdb = { version = "0.13.0" }
+kvdb-memorydb = { version = "0.13.0" }
+kvdb-rocksdb = { version = "0.19.0" }
+kvdb-shared-tests = { version = "0.11.0" }
+landlock = { version = "0.3.0" }
+lazy_static = { version = "1.4.0" }
+libc = { version = "0.2.155" }
+libfuzzer-sys = { version = "0.4" }
+libp2p = { version = "0.52.4" }
+libp2p-identity = { version = "0.2.9" }
+libsecp256k1 = { version = "0.7.0", default-features = false }
+linked-hash-map = { version = "0.5.4" }
+linked_hash_set = { version = "0.1.4" }
+linregress = { version = "0.5.1" }
+lite-json = { version = "0.2.0", default-features = false }
+litep2p = { version = "0.6.2" }
+log = { version = "0.4.22", default-features = false }
+macro_magic = { version = "0.5.1" }
+maplit = { version = "1.0.2" }
+memmap2 = { version = "0.9.3" }
+memory-db = { version = "0.32.0", default-features = false }
+merkleized-metadata = { version = "0.1.0" }
+merlin = { version = "3.0", default-features = false }
+messages-relay = { path = "bridges/relays/messages" }
+metered = { version = "0.6.1", default-features = false, package = "prioritized-metered-channel" }
+mick-jaeger = { version = "0.1.8" }
+milagro-bls = { version = "1.5.4", default-features = false, package = "snowbridge-milagro-bls" }
+minimal-template-node = { path = "templates/minimal/node" }
+minimal-template-runtime = { path = "templates/minimal/runtime" }
+mixnet = { version = "0.7.0" }
+mmr-gadget = { path = "substrate/client/merkle-mountain-range", default-features = false }
+mmr-lib = { version = "0.5.2", package = "ckb-merkle-mountain-range" }
+mmr-rpc = { path = "substrate/client/merkle-mountain-range/rpc", default-features = false }
+mockall = { version = "0.11.3" }
+multiaddr = { version = "0.18.1" }
+multihash = { version = "0.19.1", default-features = false }
+multihash-codetable = { version = "0.1.1" }
+multistream-select = { version = "0.13.0" }
+names = { version = "0.14.0", default-features = false }
+nix = { version = "0.28.0" }
+node-cli = { path = "substrate/bin/node/cli", package = "staging-node-cli" }
+node-inspect = { path = "substrate/bin/node/inspect", default-features = false, package = "staging-node-inspect" }
+node-primitives = { path = "substrate/bin/node/primitives", default-features = false }
+node-rpc = { path = "substrate/bin/node/rpc" }
+node-testing = { path = "substrate/bin/node/testing" }
+nohash-hasher = { version = "0.2.0" }
+novelpoly = { version = "2.0.0", package = "reed-solomon-novelpoly" }
+num-bigint = { version = "0.4.3" }
+num-format = { version = "0.4.3" }
+num-rational = { version = "0.4.1" }
+num-traits = { version = "0.2.17", default-features = false }
+num_cpus = { version = "1.13.1" }
+once_cell = { version = "1.19.0" }
+orchestra = { version = "0.4.0", default-features = false }
+pallet-alliance = { path = "substrate/frame/alliance", default-features = false }
+pallet-asset-conversion = { path = "substrate/frame/asset-conversion", default-features = false }
+pallet-asset-conversion-ops = { path = "substrate/frame/asset-conversion/ops", default-features = false }
+pallet-asset-conversion-tx-payment = { path = "substrate/frame/transaction-payment/asset-conversion-tx-payment", default-features = false }
+pallet-asset-rate = { path = "substrate/frame/asset-rate", default-features = false }
+pallet-asset-tx-payment = { path = "substrate/frame/transaction-payment/asset-tx-payment", default-features = false }
+pallet-assets = { path = "substrate/frame/assets", default-features = false }
+pallet-assets-freezer = { path = "substrate/frame/assets-freezer", default-features = false }
+pallet-atomic-swap = { default-features = false, path = "substrate/frame/atomic-swap" }
+pallet-aura = { path = "substrate/frame/aura", default-features = false }
+pallet-authority-discovery = { path = "substrate/frame/authority-discovery", default-features = false }
+pallet-authorship = { path = "substrate/frame/authorship", default-features = false }
+pallet-babe = { path = "substrate/frame/babe", default-features = false }
+pallet-bags-list = { path = "substrate/frame/bags-list", default-features = false }
+pallet-bags-list-remote-tests = { path = "substrate/frame/bags-list/remote-tests" }
+pallet-balances = { path = "substrate/frame/balances", default-features = false }
+pallet-beefy = { path = "substrate/frame/beefy", default-features = false }
+pallet-beefy-mmr = { path = "substrate/frame/beefy-mmr", default-features = false }
+pallet-bounties = { path = "substrate/frame/bounties", default-features = false }
+pallet-bridge-grandpa = { path = "bridges/modules/grandpa", default-features = false }
+pallet-bridge-messages = { path = "bridges/modules/messages", default-features = false }
+pallet-bridge-parachains = { path = "bridges/modules/parachains", default-features = false }
+pallet-bridge-relayers = { path = "bridges/modules/relayers", default-features = false }
+pallet-broker = { path = "substrate/frame/broker", default-features = false }
+pallet-child-bounties = { path = "substrate/frame/child-bounties", default-features = false }
+pallet-collator-selection = { path = "cumulus/pallets/collator-selection", default-features = false }
+pallet-collective = { path = "substrate/frame/collective", default-features = false }
+pallet-collective-content = { path = "cumulus/parachains/pallets/collective-content", default-features = false }
+pallet-contracts = { path = "substrate/frame/contracts", default-features = false }
+pallet-contracts-fixtures = { path = "substrate/frame/contracts/fixtures", default-features = false }
+pallet-contracts-mock-network = { default-features = false, path = "substrate/frame/contracts/mock-network" }
+pallet-contracts-proc-macro = { path = "substrate/frame/contracts/proc-macro", default-features = false }
+pallet-contracts-uapi = { path = "substrate/frame/contracts/uapi", default-features = false }
+pallet-conviction-voting = { path = "substrate/frame/conviction-voting", default-features = false }
+pallet-core-fellowship = { path = "substrate/frame/core-fellowship", default-features = false }
+pallet-default-config-example = { path = "substrate/frame/examples/default-config", default-features = false }
+pallet-delegated-staking = { path = "substrate/frame/delegated-staking", default-features = false }
+pallet-democracy = { path = "substrate/frame/democracy", default-features = false }
+pallet-dev-mode = { path = "substrate/frame/examples/dev-mode", default-features = false }
+pallet-election-provider-multi-phase = { path = "substrate/frame/election-provider-multi-phase", default-features = false }
+pallet-election-provider-support-benchmarking = { path = "substrate/frame/election-provider-support/benchmarking", default-features = false }
+pallet-elections-phragmen = { path = "substrate/frame/elections-phragmen", default-features = false }
+pallet-example-basic = { path = "substrate/frame/examples/basic", default-features = false }
+pallet-example-frame-crate = { path = "substrate/frame/examples/frame-crate", default-features = false }
+pallet-example-kitchensink = { path = "substrate/frame/examples/kitchensink", default-features = false }
+pallet-example-mbm = { path = "substrate/frame/examples/multi-block-migrations", default-features = false }
+pallet-example-offchain-worker = { path = "substrate/frame/examples/offchain-worker", default-features = false }
+pallet-example-single-block-migrations = { path = "substrate/frame/examples/single-block-migrations", default-features = false }
+pallet-example-split = { path = "substrate/frame/examples/split", default-features = false }
+pallet-example-tasks = { path = "substrate/frame/examples/tasks", default-features = false }
+pallet-examples = { path = "substrate/frame/examples" }
+pallet-fast-unstake = { path = "substrate/frame/fast-unstake", default-features = false }
+pallet-glutton = { path = "substrate/frame/glutton", default-features = false }
+pallet-grandpa = { path = "substrate/frame/grandpa", default-features = false }
+pallet-identity = { path = "substrate/frame/identity", default-features = false }
+pallet-im-online = { path = "substrate/frame/im-online", default-features = false }
+pallet-indices = { path = "substrate/frame/indices", default-features = false }
+pallet-insecure-randomness-collective-flip = { path = "substrate/frame/insecure-randomness-collective-flip", default-features = false }
+pallet-lottery = { default-features = false, path = "substrate/frame/lottery" }
+pallet-membership = { path = "substrate/frame/membership", default-features = false }
+pallet-message-queue = { path = "substrate/frame/message-queue", default-features = false }
+pallet-migrations = { path = "substrate/frame/migrations", default-features = false }
+pallet-minimal-template = { path = "templates/minimal/pallets/template", default-features = false }
+pallet-mixnet = { default-features = false, path = "substrate/frame/mixnet" }
+pallet-mmr = { path = "substrate/frame/merkle-mountain-range", default-features = false }
+pallet-multisig = { path = "substrate/frame/multisig", default-features = false }
+pallet-nft-fractionalization = { path = "substrate/frame/nft-fractionalization", default-features = false }
+pallet-nfts = { path = "substrate/frame/nfts", default-features = false }
+pallet-nfts-runtime-api = { path = "substrate/frame/nfts/runtime-api", default-features = false }
+pallet-nis = { path = "substrate/frame/nis", default-features = false }
+pallet-node-authorization = { default-features = false, path = "substrate/frame/node-authorization" }
+pallet-nomination-pools = { path = "substrate/frame/nomination-pools", default-features = false }
+pallet-nomination-pools-benchmarking = { path = "substrate/frame/nomination-pools/benchmarking", default-features = false }
+pallet-nomination-pools-runtime-api = { path = "substrate/frame/nomination-pools/runtime-api", default-features = false }
+pallet-offences = { path = "substrate/frame/offences", default-features = false }
+pallet-offences-benchmarking = { path = "substrate/frame/offences/benchmarking", default-features = false }
+pallet-paged-list = { path = "substrate/frame/paged-list", default-features = false }
+pallet-parachain-template = { path = "templates/parachain/pallets/template", default-features = false }
+pallet-parameters = { path = "substrate/frame/parameters", default-features = false }
+pallet-preimage = { path = "substrate/frame/preimage", default-features = false }
+pallet-proxy = { path = "substrate/frame/proxy", default-features = false }
+pallet-ranked-collective = { path = "substrate/frame/ranked-collective", default-features = false }
+pallet-recovery = { path = "substrate/frame/recovery", default-features = false }
+pallet-referenda = { path = "substrate/frame/referenda", default-features = false }
+pallet-remark = { default-features = false, path = "substrate/frame/remark" }
+pallet-revive = { path = "substrate/frame/revive", default-features = false }
+pallet-revive-fixtures = { path = "substrate/frame/revive/fixtures", default-features = false }
+pallet-revive-mock-network = { default-features = false, path = "substrate/frame/revive/mock-network" }
+pallet-revive-proc-macro = { path = "substrate/frame/revive/proc-macro", default-features = false }
+pallet-revive-uapi = { path = "substrate/frame/revive/uapi", default-features = false }
+pallet-root-offences = { default-features = false, path = "substrate/frame/root-offences" }
+pallet-root-testing = { path = "substrate/frame/root-testing", default-features = false }
+pallet-safe-mode = { default-features = false, path = "substrate/frame/safe-mode" }
+pallet-salary = { path = "substrate/frame/salary", default-features = false }
+pallet-scheduler = { path = "substrate/frame/scheduler", default-features = false }
+pallet-scored-pool = { default-features = false, path = "substrate/frame/scored-pool" }
+pallet-session = { path = "substrate/frame/session", default-features = false }
+pallet-session-benchmarking = { path = "substrate/frame/session/benchmarking", default-features = false }
+pallet-skip-feeless-payment = { path = "substrate/frame/transaction-payment/skip-feeless-payment", default-features = false }
+pallet-society = { path = "substrate/frame/society", default-features = false }
+pallet-staking = { path = "substrate/frame/staking", default-features = false }
+pallet-staking-reward-curve = { path = "substrate/frame/staking/reward-curve", default-features = false }
+pallet-staking-reward-fn = { path = "substrate/frame/staking/reward-fn", default-features = false }
+pallet-staking-runtime-api = { path = "substrate/frame/staking/runtime-api", default-features = false }
+pallet-state-trie-migration = { path = "substrate/frame/state-trie-migration", default-features = false }
+pallet-statement = { default-features = false, path = "substrate/frame/statement" }
+pallet-sudo = { path = "substrate/frame/sudo", default-features = false }
+pallet-template = { path = "templates/solochain/pallets/template", default-features = false }
+pallet-timestamp = { path = "substrate/frame/timestamp", default-features = false }
+pallet-tips = { path = "substrate/frame/tips", default-features = false }
+pallet-transaction-payment = { path = "substrate/frame/transaction-payment", default-features = false }
+pallet-transaction-payment-rpc = { path = "substrate/frame/transaction-payment/rpc", default-features = false }
+pallet-transaction-payment-rpc-runtime-api = { path = "substrate/frame/transaction-payment/rpc/runtime-api", default-features = false }
+pallet-transaction-storage = { default-features = false, path = "substrate/frame/transaction-storage" }
+pallet-treasury = { path = "substrate/frame/treasury", default-features = false }
+pallet-tx-pause = { default-features = false, path = "substrate/frame/tx-pause" }
+pallet-uniques = { path = "substrate/frame/uniques", default-features = false }
+pallet-utility = { path = "substrate/frame/utility", default-features = false }
+pallet-vesting = { path = "substrate/frame/vesting", default-features = false }
+pallet-whitelist = { path = "substrate/frame/whitelist", default-features = false }
+pallet-xcm = { path = "polkadot/xcm/pallet-xcm", default-features = false }
+pallet-xcm-benchmarks = { path = "polkadot/xcm/pallet-xcm-benchmarks", default-features = false }
+pallet-xcm-bridge-hub = { path = "bridges/modules/xcm-bridge-hub", default-features = false }
+pallet-xcm-bridge-hub-router = { path = "bridges/modules/xcm-bridge-hub-router", default-features = false }
+parachain-info = { path = "cumulus/parachains/pallets/parachain-info", default-features = false, package = "staging-parachain-info" }
+parachain-template-runtime = { path = "templates/parachain/runtime" }
+parachains-common = { path = "cumulus/parachains/common", default-features = false }
+parachains-relay = { path = "bridges/relays/parachains" }
+parachains-runtimes-test-utils = { path = "cumulus/parachains/runtimes/test-utils", default-features = false }
+parity-bytes = { version = "0.1.2", default-features = false }
+parity-db = { version = "0.4.12" }
+parity-util-mem = { version = "0.12.0" }
+parity-wasm = { version = "0.45.0" }
+parking_lot = { version = "0.12.1", default-features = false }
+partial_sort = { version = "0.2.0" }
+paste = { version = "1.0.15", default-features = false }
+pbkdf2 = { version = "0.12.2", default-features = false }
+penpal-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal" }
+penpal-runtime = { path = "cumulus/parachains/runtimes/testing/penpal" }
+people-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo" }
+people-rococo-runtime = { path = "cumulus/parachains/runtimes/people/people-rococo" }
+people-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend" }
+people-westend-runtime = { path = "cumulus/parachains/runtimes/people/people-westend" }
+pin-project = { version = "1.1.3" }
+platforms = { version = "3.0" }
+polkadot-approval-distribution = { path = "polkadot/node/network/approval-distribution", default-features = false }
+polkadot-availability-bitfield-distribution = { path = "polkadot/node/network/bitfield-distribution", default-features = false }
+polkadot-availability-distribution = { path = "polkadot/node/network/availability-distribution", default-features = false }
+polkadot-availability-recovery = { path = "polkadot/node/network/availability-recovery", default-features = false }
+polkadot-cli = { path = "polkadot/cli", default-features = false }
+polkadot-collator-protocol = { path = "polkadot/node/network/collator-protocol", default-features = false }
+polkadot-core-primitives = { path = "polkadot/core-primitives", default-features = false }
+polkadot-dispute-distribution = { path = "polkadot/node/network/dispute-distribution", default-features = false }
+polkadot-erasure-coding = { path = "polkadot/erasure-coding", default-features = false }
+polkadot-gossip-support = { path = "polkadot/node/network/gossip-support", default-features = false }
+polkadot-network-bridge = { path = "polkadot/node/network/bridge", default-features = false }
+polkadot-node-collation-generation = { path = "polkadot/node/collation-generation", default-features = false }
+polkadot-node-core-approval-voting = { path = "polkadot/node/core/approval-voting", default-features = false }
+polkadot-node-core-av-store = { path = "polkadot/node/core/av-store", default-features = false }
+polkadot-node-core-backing = { path = "polkadot/node/core/backing", default-features = false }
+polkadot-node-core-bitfield-signing = { path = "polkadot/node/core/bitfield-signing", default-features = false }
+polkadot-node-core-candidate-validation = { path = "polkadot/node/core/candidate-validation", default-features = false }
+polkadot-node-core-chain-api = { path = "polkadot/node/core/chain-api", default-features = false }
+polkadot-node-core-chain-selection = { path = "polkadot/node/core/chain-selection", default-features = false }
+polkadot-node-core-dispute-coordinator = { path = "polkadot/node/core/dispute-coordinator", default-features = false }
+polkadot-node-core-parachains-inherent = { path = "polkadot/node/core/parachains-inherent", default-features = false }
+polkadot-node-core-prospective-parachains = { path = "polkadot/node/core/prospective-parachains", default-features = false }
+polkadot-node-core-provisioner = { path = "polkadot/node/core/provisioner", default-features = false }
+polkadot-node-core-pvf = { path = "polkadot/node/core/pvf", default-features = false }
+polkadot-node-core-pvf-checker = { path = "polkadot/node/core/pvf-checker", default-features = false }
+polkadot-node-core-pvf-common = { path = "polkadot/node/core/pvf/common", default-features = false }
+polkadot-node-core-pvf-execute-worker = { path = "polkadot/node/core/pvf/execute-worker", default-features = false }
+polkadot-node-core-pvf-prepare-worker = { path = "polkadot/node/core/pvf/prepare-worker", default-features = false }
+polkadot-node-core-runtime-api = { path = "polkadot/node/core/runtime-api", default-features = false }
+polkadot-node-jaeger = { path = "polkadot/node/jaeger", default-features = false }
+polkadot-node-metrics = { path = "polkadot/node/metrics", default-features = false }
+polkadot-node-network-protocol = { path = "polkadot/node/network/protocol", default-features = false }
+polkadot-node-primitives = { path = "polkadot/node/primitives", default-features = false }
+polkadot-node-subsystem = { path = "polkadot/node/subsystem", default-features = false }
+polkadot-node-subsystem-test-helpers = { path = "polkadot/node/subsystem-test-helpers" }
+polkadot-node-subsystem-types = { path = "polkadot/node/subsystem-types", default-features = false }
+polkadot-node-subsystem-util = { path = "polkadot/node/subsystem-util", default-features = false }
+polkadot-overseer = { path = "polkadot/node/overseer", default-features = false }
+polkadot-parachain-lib = { path = "cumulus/polkadot-parachain/polkadot-parachain-lib", default-features = false }
+polkadot-parachain-primitives = { path = "polkadot/parachain", default-features = false }
+polkadot-primitives = { path = "polkadot/primitives", default-features = false }
+polkadot-primitives-test-helpers = { path = "polkadot/primitives/test-helpers" }
+polkadot-rpc = { path = "polkadot/rpc", default-features = false }
+polkadot-runtime-common = { path = "polkadot/runtime/common", default-features = false }
+polkadot-runtime-metrics = { path = "polkadot/runtime/metrics", default-features = false }
+polkadot-runtime-parachains = { path = "polkadot/runtime/parachains", default-features = false }
+polkadot-sdk = { path = "umbrella", default-features = false }
+polkadot-sdk-docs = { path = "docs/sdk" }
+polkadot-service = { path = "polkadot/node/service", default-features = false }
+polkadot-statement-distribution = { path = "polkadot/node/network/statement-distribution", default-features = false }
+polkadot-statement-table = { path = "polkadot/statement-table", default-features = false }
+polkadot-subsystem-bench = { path = "polkadot/node/subsystem-bench" }
+polkadot-test-client = { path = "polkadot/node/test/client" }
+polkadot-test-runtime = { path = "polkadot/runtime/test-runtime" }
+polkadot-test-service = { path = "polkadot/node/test/service" }
+polkavm = { version = "0.9.3", default-features = false }
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 }
+polkavm-linker = "0.9.2"
+portpicker = { version = "0.1.1" }
+pretty_assertions = { version = "1.3.0" }
+primitive-types = { version = "0.12.1", default-features = false }
+proc-macro-crate = { version = "3.0.0" }
+proc-macro-warning = { version = "1.0.0", default-features = false }
+proc-macro2 = { version = "1.0.64" }
+procfs = { version = "0.16.0" }
+prometheus = { version = "0.13.0", default-features = false }
+prometheus-endpoint = { path = "substrate/utils/prometheus", default-features = false, package = "substrate-prometheus-endpoint" }
+prometheus-parse = { version = "0.2.2" }
+prost = { version = "0.12.4" }
+prost-build = { version = "0.12.4" }
+pyroscope = { version = "0.5.7" }
+pyroscope_pprofrs = { version = "0.2.7" }
+quick_cache = { version = "0.3" }
+quickcheck = { version = "1.0.3", default-features = false }
+quote = { version = "1.0.36" }
+rand = { version = "0.8.5", default-features = false }
+rand_chacha = { version = "0.3.1", default-features = false }
+rand_core = { version = "0.6.2" }
+rand_distr = { version = "0.4.3" }
+rand_pcg = { version = "0.3.1" }
+rayon = { version = "1.5.1" }
+rbtag = { version = "0.3" }
+ref-cast = { version = "1.0.23" }
+regex = { version = "1.10.2" }
+relay-substrate-client = { path = "bridges/relays/client-substrate" }
+relay-utils = { path = "bridges/relays/utils" }
+remote-externalities = { path = "substrate/utils/frame/remote-externalities", default-features = false, package = "frame-remote-externalities" }
+reqwest = { version = "0.11", default-features = false }
+rlp = { version = "0.5.2", default-features = false }
+rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/relays/rococo" }
+rococo-parachain-runtime = { path = "cumulus/parachains/runtimes/testing/rococo-parachain" }
+rococo-runtime = { path = "polkadot/runtime/rococo" }
+rococo-runtime-constants = { path = "polkadot/runtime/rococo/constants", default-features = false }
+rococo-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/rococo-system" }
+rococo-westend-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/rococo-westend-system" }
+rpassword = { version = "7.0.0" }
+rstest = { version = "0.18.2" }
+rustc-hash = { version = "1.1.0" }
+rustc-hex = { version = "2.1.0", default-features = false }
+rustix = { version = "0.36.7", default-features = false }
+rustversion = { version = "1.0.17" }
+rusty-fork = { version = "0.3.0", default-features = false }
+safe-mix = { version = "1.0", default-features = false }
+sc-allocator = { path = "substrate/client/allocator", default-features = false }
+sc-authority-discovery = { path = "substrate/client/authority-discovery", default-features = false }
+sc-basic-authorship = { path = "substrate/client/basic-authorship", default-features = false }
+sc-block-builder = { path = "substrate/client/block-builder", default-features = false }
+sc-chain-spec = { path = "substrate/client/chain-spec", default-features = false }
+sc-chain-spec-derive = { path = "substrate/client/chain-spec/derive", default-features = false }
+sc-cli = { path = "substrate/client/cli", default-features = false }
+sc-client-api = { path = "substrate/client/api", default-features = false }
+sc-client-db = { path = "substrate/client/db", default-features = false }
+sc-consensus = { path = "substrate/client/consensus/common", default-features = false }
+sc-consensus-aura = { path = "substrate/client/consensus/aura", default-features = false }
+sc-consensus-babe = { path = "substrate/client/consensus/babe", default-features = false }
+sc-consensus-babe-rpc = { path = "substrate/client/consensus/babe/rpc", default-features = false }
+sc-consensus-beefy = { path = "substrate/client/consensus/beefy", default-features = false }
+sc-consensus-beefy-rpc = { path = "substrate/client/consensus/beefy/rpc", default-features = false }
+sc-consensus-epochs = { path = "substrate/client/consensus/epochs", default-features = false }
+sc-consensus-grandpa = { path = "substrate/client/consensus/grandpa", default-features = false }
+sc-consensus-grandpa-rpc = { path = "substrate/client/consensus/grandpa/rpc", default-features = false }
+sc-consensus-manual-seal = { path = "substrate/client/consensus/manual-seal", default-features = false }
+sc-consensus-pow = { path = "substrate/client/consensus/pow", default-features = false }
+sc-consensus-slots = { path = "substrate/client/consensus/slots", default-features = false }
+sc-executor = { path = "substrate/client/executor", default-features = false }
+sc-executor-common = { path = "substrate/client/executor/common", default-features = false }
+sc-executor-polkavm = { path = "substrate/client/executor/polkavm", default-features = false }
+sc-executor-wasmtime = { path = "substrate/client/executor/wasmtime", default-features = false }
+sc-informant = { path = "substrate/client/informant", default-features = false }
+sc-keystore = { path = "substrate/client/keystore", default-features = false }
+sc-mixnet = { path = "substrate/client/mixnet", default-features = false }
+sc-network = { path = "substrate/client/network", default-features = false }
+sc-network-common = { path = "substrate/client/network/common", default-features = false }
+sc-network-gossip = { path = "substrate/client/network-gossip", default-features = false }
+sc-network-light = { path = "substrate/client/network/light", default-features = false }
+sc-network-statement = { default-features = false, path = "substrate/client/network/statement" }
+sc-network-sync = { path = "substrate/client/network/sync", default-features = false }
+sc-network-test = { path = "substrate/client/network/test" }
+sc-network-transactions = { path = "substrate/client/network/transactions", default-features = false }
+sc-network-types = { path = "substrate/client/network/types", default-features = false }
+sc-offchain = { path = "substrate/client/offchain", default-features = false }
+sc-proposer-metrics = { path = "substrate/client/proposer-metrics", default-features = false }
+sc-rpc = { path = "substrate/client/rpc", default-features = false }
+sc-rpc-api = { path = "substrate/client/rpc-api", default-features = false }
+sc-rpc-server = { path = "substrate/client/rpc-servers", default-features = false }
+sc-rpc-spec-v2 = { path = "substrate/client/rpc-spec-v2", default-features = false }
+sc-runtime-test = { path = "substrate/client/executor/runtime-test" }
+sc-service = { path = "substrate/client/service", default-features = false }
+sc-service-test = { path = "substrate/client/service/test" }
+sc-state-db = { path = "substrate/client/state-db", default-features = false }
+sc-statement-store = { default-features = false, path = "substrate/client/statement-store" }
+sc-storage-monitor = { path = "substrate/client/storage-monitor", default-features = false }
+sc-sync-state-rpc = { path = "substrate/client/sync-state-rpc", default-features = false }
+sc-sysinfo = { path = "substrate/client/sysinfo", default-features = false }
+sc-telemetry = { path = "substrate/client/telemetry", default-features = false }
+sc-tracing = { path = "substrate/client/tracing", default-features = false }
+sc-tracing-proc-macro = { path = "substrate/client/tracing/proc-macro", default-features = false }
+sc-transaction-pool = { path = "substrate/client/transaction-pool", default-features = false }
+sc-transaction-pool-api = { path = "substrate/client/transaction-pool/api", default-features = false }
+sc-utils = { path = "substrate/client/utils", default-features = false }
+scale-info = { version = "2.11.1", default-features = false }
+schemars = { version = "0.8.13", default-features = false }
+schnellru = { version = "0.2.1" }
+schnorrkel = { version = "0.11.4", default-features = false }
+seccompiler = { version = "0.4.0" }
+secp256k1 = { version = "0.28.0", default-features = false }
+secrecy = { version = "0.8.0", default-features = false }
+seedling-runtime = { path = "cumulus/parachains/runtimes/starters/seedling" }
+separator = { version = "0.4.1" }
+serde = { version = "1.0.206", 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_json = { version = "1.0.124", default-features = false }
serde_yaml = { version = "0.9" }
+serial_test = { version = "2.0.0" }
+sha1 = { version = "0.10.6" }
+sha2 = { version = "0.10.7", default-features = false }
+sha3 = { version = "0.10.0", default-features = false }
+shell-runtime = { path = "cumulus/parachains/runtimes/starters/shell" }
+slot-range-helper = { path = "polkadot/runtime/common/slot_range_helper", default-features = false }
+slotmap = { version = "1.0" }
+smallvec = { version = "1.11.0", default-features = false }
+smoldot = { version = "0.11.0", default-features = false }
+smoldot-light = { version = "0.9.0", default-features = false }
+snowbridge-beacon-primitives = { path = "bridges/snowbridge/primitives/beacon", default-features = false }
+snowbridge-core = { path = "bridges/snowbridge/primitives/core", default-features = false }
+snowbridge-ethereum = { path = "bridges/snowbridge/primitives/ethereum", default-features = false }
+snowbridge-outbound-queue-merkle-tree = { path = "bridges/snowbridge/pallets/outbound-queue/merkle-tree", default-features = false }
+snowbridge-outbound-queue-runtime-api = { path = "bridges/snowbridge/pallets/outbound-queue/runtime-api", default-features = false }
+snowbridge-pallet-ethereum-client = { path = "bridges/snowbridge/pallets/ethereum-client", default-features = false }
+snowbridge-pallet-ethereum-client-fixtures = { path = "bridges/snowbridge/pallets/ethereum-client/fixtures", default-features = false }
+snowbridge-pallet-inbound-queue = { path = "bridges/snowbridge/pallets/inbound-queue", default-features = false }
+snowbridge-pallet-inbound-queue-fixtures = { path = "bridges/snowbridge/pallets/inbound-queue/fixtures", default-features = false }
+snowbridge-pallet-outbound-queue = { path = "bridges/snowbridge/pallets/outbound-queue", default-features = false }
+snowbridge-pallet-system = { path = "bridges/snowbridge/pallets/system", default-features = false }
+snowbridge-router-primitives = { path = "bridges/snowbridge/primitives/router", default-features = false }
+snowbridge-runtime-common = { path = "bridges/snowbridge/runtime/runtime-common", default-features = false }
+snowbridge-runtime-test-common = { path = "bridges/snowbridge/runtime/test-common", default-features = false }
+snowbridge-system-runtime-api = { path = "bridges/snowbridge/pallets/system/runtime-api", default-features = false }
+soketto = { version = "0.7.1" }
+solochain-template-runtime = { path = "templates/solochain/runtime" }
+sp-api = { path = "substrate/primitives/api", default-features = false }
+sp-api-proc-macro = { path = "substrate/primitives/api/proc-macro", default-features = false }
+sp-application-crypto = { path = "substrate/primitives/application-crypto", default-features = false }
+sp-arithmetic = { path = "substrate/primitives/arithmetic", default-features = false }
+sp-authority-discovery = { path = "substrate/primitives/authority-discovery", default-features = false }
+sp-block-builder = { path = "substrate/primitives/block-builder", default-features = false }
+sp-blockchain = { path = "substrate/primitives/blockchain", default-features = false }
+sp-consensus = { path = "substrate/primitives/consensus/common", default-features = false }
+sp-consensus-aura = { path = "substrate/primitives/consensus/aura", default-features = false }
+sp-consensus-babe = { path = "substrate/primitives/consensus/babe", default-features = false }
+sp-consensus-beefy = { path = "substrate/primitives/consensus/beefy", default-features = false }
+sp-consensus-grandpa = { path = "substrate/primitives/consensus/grandpa", default-features = false }
+sp-consensus-pow = { path = "substrate/primitives/consensus/pow", default-features = false }
+sp-consensus-sassafras = { path = "substrate/primitives/consensus/sassafras", default-features = false }
+sp-consensus-slots = { path = "substrate/primitives/consensus/slots", default-features = false }
+sp-core = { path = "substrate/primitives/core", default-features = false }
+sp-core-hashing = { default-features = false, path = "substrate/deprecated/hashing" }
+sp-core-hashing-proc-macro = { default-features = false, path = "substrate/deprecated/hashing/proc-macro" }
+sp-crypto-ec-utils = { default-features = false, path = "substrate/primitives/crypto/ec-utils" }
+sp-crypto-hashing = { path = "substrate/primitives/crypto/hashing", default-features = false }
+sp-crypto-hashing-proc-macro = { path = "substrate/primitives/crypto/hashing/proc-macro", default-features = false }
+sp-database = { path = "substrate/primitives/database", default-features = false }
+sp-debug-derive = { path = "substrate/primitives/debug-derive", default-features = false }
+sp-externalities = { path = "substrate/primitives/externalities", default-features = false }
+sp-genesis-builder = { path = "substrate/primitives/genesis-builder", default-features = false }
+sp-inherents = { path = "substrate/primitives/inherents", default-features = false }
+sp-io = { path = "substrate/primitives/io", default-features = false }
+sp-keyring = { path = "substrate/primitives/keyring", default-features = false }
+sp-keystore = { path = "substrate/primitives/keystore", default-features = false }
+sp-maybe-compressed-blob = { path = "substrate/primitives/maybe-compressed-blob", default-features = false }
+sp-metadata-ir = { path = "substrate/primitives/metadata-ir", default-features = false }
+sp-mixnet = { path = "substrate/primitives/mixnet", default-features = false }
+sp-mmr-primitives = { path = "substrate/primitives/merkle-mountain-range", default-features = false }
+sp-npos-elections = { path = "substrate/primitives/npos-elections", default-features = false }
+sp-offchain = { path = "substrate/primitives/offchain", default-features = false }
+sp-panic-handler = { path = "substrate/primitives/panic-handler", default-features = false }
+sp-rpc = { path = "substrate/primitives/rpc", default-features = false }
+sp-runtime = { path = "substrate/primitives/runtime", default-features = false }
+sp-runtime-interface = { path = "substrate/primitives/runtime-interface", default-features = false }
+sp-runtime-interface-proc-macro = { path = "substrate/primitives/runtime-interface/proc-macro", default-features = false }
+sp-runtime-interface-test-wasm = { path = "substrate/primitives/runtime-interface/test-wasm" }
+sp-runtime-interface-test-wasm-deprecated = { path = "substrate/primitives/runtime-interface/test-wasm-deprecated" }
+sp-session = { path = "substrate/primitives/session", default-features = false }
+sp-staking = { path = "substrate/primitives/staking", default-features = false }
+sp-state-machine = { path = "substrate/primitives/state-machine", default-features = false }
+sp-statement-store = { path = "substrate/primitives/statement-store", default-features = false }
+sp-std = { path = "substrate/primitives/std", default-features = false }
+sp-storage = { path = "substrate/primitives/storage", default-features = false }
+sp-test-primitives = { path = "substrate/primitives/test-primitives" }
+sp-timestamp = { path = "substrate/primitives/timestamp", default-features = false }
+sp-tracing = { path = "substrate/primitives/tracing", default-features = false }
+sp-transaction-pool = { path = "substrate/primitives/transaction-pool", default-features = false }
+sp-transaction-storage-proof = { path = "substrate/primitives/transaction-storage-proof", default-features = false }
+sp-trie = { path = "substrate/primitives/trie", default-features = false }
+sp-version = { path = "substrate/primitives/version", default-features = false }
+sp-version-proc-macro = { path = "substrate/primitives/version/proc-macro", default-features = false }
+sp-wasm-interface = { path = "substrate/primitives/wasm-interface", default-features = false }
+sp-weights = { path = "substrate/primitives/weights", default-features = false }
+spinners = { version = "4.1.1" }
+ss58-registry = { version = "1.34.0", default-features = false }
+ssz_rs = { version = "0.9.0", default-features = false }
+ssz_rs_derive = { version = "0.9.0", default-features = false }
+static_assertions = { version = "1.1.0", default-features = false }
+static_init = { version = "1.0.3" }
+structopt = { version = "0.3" }
+strum = { version = "0.26.2", default-features = false }
+subkey = { path = "substrate/bin/utils/subkey", default-features = false }
+substrate-bip39 = { path = "substrate/utils/substrate-bip39", default-features = false }
+substrate-build-script-utils = { path = "substrate/utils/build-script-utils", default-features = false }
+substrate-cli-test-utils = { path = "substrate/test-utils/cli" }
+substrate-frame-rpc-support = { default-features = false, path = "substrate/utils/frame/rpc/support" }
+substrate-frame-rpc-system = { path = "substrate/utils/frame/rpc/system", default-features = false }
+substrate-rpc-client = { path = "substrate/utils/frame/rpc/client", default-features = false }
+substrate-state-trie-migration-rpc = { path = "substrate/utils/frame/rpc/state-trie-migration-rpc", default-features = false }
+substrate-test-client = { path = "substrate/test-utils/client" }
+substrate-test-runtime = { path = "substrate/test-utils/runtime" }
+substrate-test-runtime-client = { path = "substrate/test-utils/runtime/client" }
+substrate-test-runtime-transaction-pool = { path = "substrate/test-utils/runtime/transaction-pool" }
+substrate-test-utils = { path = "substrate/test-utils" }
+substrate-wasm-builder = { path = "substrate/utils/wasm-builder", default-features = false }
syn = { version = "2.0.53" }
+sysinfo = { version = "0.30" }
+tar = { version = "0.4" }
+tempfile = { version = "3.8.1" }
+test-log = { version = "0.2.14" }
+test-pallet = { path = "substrate/frame/support/test/pallet", default-features = false, package = "frame-support-test-pallet" }
+test-parachain-adder = { path = "polkadot/parachain/test-parachains/adder" }
+test-parachain-halt = { path = "polkadot/parachain/test-parachains/halt" }
+test-parachain-undying = { path = "polkadot/parachain/test-parachains/undying" }
+test-runtime-constants = { path = "polkadot/runtime/test-runtime/constants", default-features = false }
+testnet-parachains-constants = { path = "cumulus/parachains/runtimes/constants", default-features = false }
thiserror = { version = "1.0.48" }
+thousands = { version = "0.2.0" }
+threadpool = { version = "1.7" }
+tikv-jemalloc-ctl = { version = "0.5.0" }
+tikv-jemallocator = { version = "0.5.0" }
+time = { version = "0.3" }
+tiny-keccak = { version = "2.0.2" }
+tokio = { version = "1.37.0", default-features = false }
+tokio-retry = { version = "0.3.0" }
+tokio-stream = { version = "0.1.14" }
+tokio-test = { version = "0.4.2" }
+tokio-tungstenite = { version = "0.20.1" }
+tokio-util = { version = "0.7.8" }
+toml = { version = "0.8.8" }
+toml_edit = { version = "0.19" }
+tower = { version = "0.4.13" }
+tower-http = { version = "0.5.2" }
+tracing = { version = "0.1.37", default-features = false }
+tracing-core = { version = "0.1.32", default-features = false }
+tracing-futures = { version = "0.2.4" }
+tracing-log = { version = "0.2.0" }
tracing-subscriber = { version = "0.3.18" }
+tracking-allocator = { path = "polkadot/node/tracking-allocator", default-features = false, package = "staging-tracking-allocator" }
+trie-bench = { version = "0.39.0" }
+trie-db = { version = "0.29.1", default-features = false }
+trie-root = { version = "0.18.0", default-features = false }
+trie-standardmap = { version = "0.16.0" }
+trybuild = { version = "1.0.89" }
+tt-call = { version = "1.0.8" }
+tuplex = { version = "0.1", default-features = false }
+twox-hash = { version = "1.6.3", default-features = false }
+unsigned-varint = { version = "0.7.2" }
+url = { version = "2.4.0" }
+void = { version = "1.0.2" }
+w3f-bls = { version = "0.1.3", default-features = false }
+wait-timeout = { version = "0.2" }
+walkdir = { version = "2.5.0" }
+wasm-bindgen-test = { version = "0.3.19" }
+wasm-instrument = { version = "0.4", default-features = false }
+wasm-opt = { version = "0.116" }
+wasm-timer = { version = "0.2.5" }
+wasmi = { version = "0.32.3", default-features = false }
+wasmtime = { version = "8.0.1", default-features = false }
+wat = { version = "1.0.0" }
+westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/relays/westend", default-features = false }
+westend-runtime = { path = "polkadot/runtime/westend" }
+westend-runtime-constants = { path = "polkadot/runtime/westend/constants", default-features = false }
+westend-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/westend-system" }
+x25519-dalek = { version = "2.0" }
+xcm = { path = "polkadot/xcm", default-features = false, package = "staging-xcm" }
+xcm-builder = { path = "polkadot/xcm/xcm-builder", default-features = false, package = "staging-xcm-builder" }
+xcm-docs = { path = "polkadot/xcm/docs" }
+xcm-emulator = { path = "cumulus/xcm/xcm-emulator", default-features = false }
+xcm-executor = { path = "polkadot/xcm/xcm-executor", default-features = false, package = "staging-xcm-executor" }
+xcm-procedural = { path = "polkadot/xcm/procedural", default-features = false }
+xcm-runtime-apis = { path = "polkadot/xcm/xcm-runtime-apis", default-features = false }
+xcm-simulator = { path = "polkadot/xcm/xcm-simulator", default-features = false }
+zeroize = { version = "1.7.0", default-features = false }
+zstd = { version = "0.12.4", default-features = false }
[profile.release]
# Polkadot runtime requires unwinding.
-panic = "unwind"
opt-level = 3
+panic = "unwind"
# make sure dev builds with backtrace do not slow us down
[profile.dev.package.backtrace]
inherits = "release"
[profile.production]
+codegen-units = 1
inherits = "release"
lto = true
-codegen-units = 1
[profile.testnet]
-inherits = "release"
debug = 1 # debug symbols are useful for profilers
debug-assertions = true
+inherits = "release"
overflow-checks = true
# The list of dependencies below (which can be both direct and indirect dependencies) are crates
diff --git a/README.md b/README.md
index 773481732520e2a8c9217e72e426a9bda781fb6f..34d657194daa67de18088fb04d3ae878421c6d9f 100644
--- a/README.md
+++ b/README.md
@@ -10,10 +10,7 @@
forks](https://img.shields.io/github/forks/paritytech/polkadot-sdk)
-[![StackExchange](https://img.shields.io/badge/StackExchange-Community%20&%20Support-222222?logo=stackexchange)](https://substrate.stackexchange.com/) ![GitHub contributors](https://img.shields.io/github/contributors/paritytech/polkadot-sdk) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/paritytech/polkadot-sdk)
-
-![GitHub lines of code](https://tokei.rs/b1/github/paritytech/polkadot-sdk)
-![GitHub last commit](https://img.shields.io/github/last-commit/paritytech/polkadot-sdk)
+[![StackExchange](https://img.shields.io/badge/StackExchange-Community%20&%20Support-222222?logo=stackexchange)](https://substrate.stackexchange.com/) ![GitHub contributors](https://img.shields.io/github/contributors/paritytech/polkadot-sdk) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/paritytech/polkadot-sdk) ![GitHub last commit](https://img.shields.io/github/last-commit/paritytech/polkadot-sdk)
> The Polkadot SDK repository provides all the components needed to start building on the
> [Polkadot](https://polkadot.network) network, a multi-chain blockchain platform that enables
@@ -21,11 +18,21 @@ forks](https://img.shields.io/github/forks/paritytech/polkadot-sdk)
+## โก Quickstart
+If you want to get an example node running quickly you can execute the following getting started script:
+```
+curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/scripts/getting-started.sh | bash
+```
+
## ๐ Documentation
* [๐ฆ rust-docs](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html)
- * [Introduction](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/index.html)
- to each component of the Polkadot SDK: Substrate, FRAME, Cumulus, and XCM
+ * [Introduction](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/index.html)
+ to each component of the Polkadot SDK: Substrate, FRAME, Cumulus, and XCM
+ * [Guides](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/guides/index.html),
+ namely how to build your first FRAME pallet.
+ * [Templates](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/templates/index.html)
+ for starting a new project.
* Other Resources:
* [Polkadot Wiki -> Build](https://wiki.polkadot.network/docs/build-guide)
@@ -39,6 +46,9 @@ The Polkadot-SDK has two release channels: `stable` and `nightly`. Production so
only use `stable`. `nightly` is meant for tinkerers to try out the latest features. The detailed
release process is described in [RELEASE.md](docs/RELEASE.md).
+You can use [`psvm`](https://github.com/paritytech/psvm) to manage your Polkadot-SDK dependency
+versions in downstream projects.
+
### ๐ Stable
`stable` releases have a support duration of **three months**. In this period, the release will not
@@ -50,6 +60,12 @@ non-breaking features on a **two week** cadence.
`nightly` releases are released every night from the `master` branch, potentially with breaking
changes. They have pre-release version numbers in the format `major.0.0-nightlyYYMMDD`.
+## ๐ ๏ธ Tooling
+
+[Polkadot SDK Version Manager](https://github.com/paritytech/psvm):
+A simple tool to manage and update the Polkadot SDK dependencies in any Cargo.toml file.
+It will automatically update the Polkadot SDK dependencies to their correct crates.io version.
+
## ๐ Security
The security policy and procedures can be found in
diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml
index 783009a8c890768bcc85dafec14dc3da9e8da573..36f27b6aa0358fcb8027bbfe6e571bc1a50962e6 100644
--- a/bridges/bin/runtime-common/Cargo.toml
+++ b/bridges/bin/runtime-common/Cargo.toml
@@ -11,48 +11,44 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false, features = ["derive"] }
-hash-db = { version = "0.16.0", default-features = false }
+codec = { features = ["derive"], workspace = true }
log = { workspace = true }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
-static_assertions = { version = "1.1", optional = true }
-tuplex = { version = "0.1", default-features = false }
+scale-info = { features = ["derive"], workspace = true }
+static_assertions = { optional = true, workspace = true, default-features = true }
+tuplex = { workspace = true }
# Bridge dependencies
-
-bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
-bp-messages = { path = "../../primitives/messages", default-features = false }
-bp-parachains = { path = "../../primitives/parachains", default-features = false }
-bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
-bp-relayers = { path = "../../primitives/relayers", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
-bp-xcm-bridge-hub = { path = "../../primitives/xcm-bridge-hub", default-features = false }
-bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
-pallet-bridge-grandpa = { path = "../../modules/grandpa", default-features = false }
-pallet-bridge-messages = { path = "../../modules/messages", default-features = false }
-pallet-bridge-parachains = { path = "../../modules/parachains", default-features = false }
-pallet-bridge-relayers = { path = "../../modules/relayers", default-features = false }
+bp-header-chain = { workspace = true }
+bp-messages = { workspace = true }
+bp-parachains = { workspace = true }
+bp-polkadot-core = { workspace = true }
+bp-relayers = { workspace = true }
+bp-runtime = { workspace = true }
+bp-xcm-bridge-hub = { workspace = true }
+bp-xcm-bridge-hub-router = { workspace = true }
+pallet-bridge-grandpa = { workspace = true }
+pallet-bridge-messages = { workspace = true }
+pallet-bridge-parachains = { workspace = true }
+pallet-bridge-relayers = { workspace = true }
# Substrate dependencies
-
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-frame-system = { path = "../../../substrate/frame/system", default-features = false }
-pallet-transaction-payment = { path = "../../../substrate/frame/transaction-payment", default-features = false }
-pallet-utility = { path = "../../../substrate/frame/utility", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-core = { path = "../../../substrate/primitives/core", default-features = false }
-sp-io = { path = "../../../substrate/primitives/io", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
-sp-trie = { path = "../../../substrate/primitives/trie", default-features = false }
+frame-support = { workspace = true }
+frame-system = { workspace = true }
+pallet-transaction-payment = { workspace = true }
+pallet-utility = { workspace = true }
+sp-io = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
+sp-trie = { optional = true, workspace = true }
# Polkadot dependencies
-xcm = { package = "staging-xcm", path = "../../../polkadot/xcm", default-features = false }
-xcm-builder = { package = "staging-xcm-builder", path = "../../../polkadot/xcm/xcm-builder", default-features = false }
+xcm = { workspace = true }
+xcm-builder = { workspace = true }
[dev-dependencies]
-bp-test-utils = { path = "../../primitives/test-utils" }
-pallet-balances = { path = "../../../substrate/frame/balances" }
+bp-test-utils = { workspace = true }
+pallet-balances = { workspace = true }
+pallet-bridge-messages = { features = ["std", "test-helpers"], workspace = true }
[features]
default = ["std"]
@@ -63,13 +59,14 @@ std = [
"bp-polkadot-core/std",
"bp-relayers/std",
"bp-runtime/std",
+ "bp-test-utils/std",
"bp-xcm-bridge-hub-router/std",
"bp-xcm-bridge-hub/std",
"codec/std",
"frame-support/std",
"frame-system/std",
- "hash-db/std",
"log/std",
+ "pallet-balances/std",
"pallet-bridge-grandpa/std",
"pallet-bridge-messages/std",
"pallet-bridge-parachains/std",
@@ -77,8 +74,6 @@ std = [
"pallet-transaction-payment/std",
"pallet-utility/std",
"scale-info/std",
- "sp-api/std",
- "sp-core/std",
"sp-io/std",
"sp-runtime/std",
"sp-std/std",
@@ -88,15 +83,22 @@ std = [
"xcm/std",
]
runtime-benchmarks = [
+ "bp-runtime/test-helpers",
"frame-support/runtime-benchmarks",
"frame-system/runtime-benchmarks",
"pallet-balances/runtime-benchmarks",
"pallet-bridge-grandpa/runtime-benchmarks",
"pallet-bridge-messages/runtime-benchmarks",
+ "pallet-bridge-messages/test-helpers",
"pallet-bridge-parachains/runtime-benchmarks",
"pallet-bridge-relayers/runtime-benchmarks",
"pallet-utility/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
+ "sp-trie",
"xcm-builder/runtime-benchmarks",
]
integrity-test = ["static_assertions"]
+test-helpers = [
+ "bp-runtime/test-helpers",
+ "sp-trie",
+]
diff --git a/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs b/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
index 2c152aef68226aee36e791a882b5859427a9a33d..df75092af6e8b89fb76003cf0bfff508214ea825 100644
--- a/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
+++ b/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
@@ -36,6 +36,12 @@ use sp_runtime::{
transaction_validity::{TransactionPriority, TransactionValidity, ValidTransactionBuilder},
};
+// Re-export to avoid include tuplex dependency everywhere.
+#[doc(hidden)]
+pub mod __private {
+ pub use tuplex;
+}
+
/// A duplication of the `FilterCall` trait.
///
/// We need this trait in order to be able to implement it for the messages pallet,
@@ -313,7 +319,7 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
info: &sp_runtime::traits::DispatchInfoOf,
len: usize,
) -> Result {
- use tuplex::PushBack;
+ use $crate::extensions::check_obsolete_extension::__private::tuplex::PushBack;
let to_post_dispatch = ();
$(
let (from_validate, call_filter_validity) = <
@@ -336,7 +342,7 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
len: usize,
result: &sp_runtime::DispatchResult,
) -> Result<(), sp_runtime::transaction_validity::TransactionValidityError> {
- use tuplex::PopFront;
+ use $crate::extensions::check_obsolete_extension::__private::tuplex::PopFront;
let Some((relayer, to_post_dispatch)) = to_post_dispatch else { return Ok(()) };
let has_failed = result.is_err();
$(
diff --git a/bridges/bin/runtime-common/src/extensions/priority_calculator.rs b/bridges/bin/runtime-common/src/extensions/priority_calculator.rs
index 92810290f95e77a7fdc04cafaa1e6ab290e1661a..9f559dc13b64d3912f0d1679c21fa682034bdb8e 100644
--- a/bridges/bin/runtime-common/src/extensions/priority_calculator.rs
+++ b/bridges/bin/runtime-common/src/extensions/priority_calculator.rs
@@ -319,6 +319,7 @@ mod integrity_tests {
pub mod per_message {
use super::*;
+ use bp_messages::ChainWithMessages;
use pallet_bridge_messages::WeightInfoExt;
/// Ensures that the value of `PriorityBoostPerMessage` matches the value of
@@ -339,7 +340,7 @@ mod integrity_tests {
BalanceOf: Send + Sync + FixedPointOperand,
{
let maximal_messages_in_delivery_transaction =
- Runtime::MaxUnconfirmedMessagesAtInboundLane::get();
+ Runtime::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
super::ensure_priority_boost_is_sane::>(
"PriorityBoostPerMessage",
maximal_messages_in_delivery_transaction,
diff --git a/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs
index 5aa7f1c095d540a4ee5050aeb7d694c98b744683..6ba3506377d0e602bf9ee706b13c248efd6afaca 100644
--- a/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs
+++ b/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs
@@ -22,9 +22,9 @@
use crate::messages_call_ext::{
CallHelper as MessagesCallHelper, CallInfo as MessagesCallInfo, MessagesCallSubType,
};
-use bp_messages::{LaneId, MessageNonce};
+use bp_messages::{ChainWithMessages, LaneId, MessageNonce};
use bp_relayers::{ExplicitOrAccountParams, RewardsAccountOwner, RewardsAccountParams};
-use bp_runtime::{Parachain, RangeInclusiveExt, StaticStrProvider};
+use bp_runtime::{Chain, Parachain, RangeInclusiveExt, StaticStrProvider};
use codec::{Codec, Decode, Encode};
use frame_support::{
dispatch::{CallableCallFor, DispatchInfo, PostDispatchInfo},
@@ -293,7 +293,7 @@ pub trait RefundSignedExtension:
::Id::get(),
::Instance,
- >>::BridgedChainId::get(),
+ >>::BridgedChain::ID,
if call_info.is_receive_messages_proof_call() {
RewardsAccountOwner::ThisChain
} else {
@@ -406,8 +406,7 @@ pub trait RefundSignedExtension:
// a quick check to avoid invalid high-priority transactions
let max_unconfirmed_messages_in_confirmation_tx = ::Instance,
- >>::MaxUnconfirmedMessagesAtInboundLane::get(
- );
+ >>::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
if bundled_messages > max_unconfirmed_messages_in_confirmation_tx {
return None
}
@@ -935,9 +934,6 @@ where
pub(crate) mod tests {
use super::*;
use crate::{
- messages::{
- source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof,
- },
messages_call_ext::{
BaseMessagesProofInfo, ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo,
UnrewardedRelayerOccupation,
@@ -946,8 +942,10 @@ pub(crate) mod tests {
};
use bp_header_chain::StoredHeaderDataBuilder;
use bp_messages::{
- DeliveredMessages, InboundLaneData, MessageNonce, MessagesOperatingMode, OutboundLaneData,
- UnrewardedRelayer, UnrewardedRelayersState,
+ source_chain::FromBridgedChainMessagesDeliveryProof,
+ target_chain::FromBridgedChainMessagesProof, DeliveredMessages, InboundLaneData,
+ MessageNonce, MessagesOperatingMode, OutboundLaneData, UnrewardedRelayer,
+ UnrewardedRelayersState,
};
use bp_parachains::{BestParaHeadHash, ParaInfo};
use bp_polkadot_core::parachains::{ParaHeadsProof, ParaId};
@@ -1123,7 +1121,7 @@ pub(crate) mod tests {
ParaId(BridgedUnderlyingParachain::PARACHAIN_ID),
[parachain_head_at_relay_header_number as u8; 32].into(),
)],
- parachain_heads_proof: ParaHeadsProof { storage_proof: vec![] },
+ parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() },
})
}
@@ -1136,7 +1134,7 @@ pub(crate) mod tests {
ParaId(BridgedUnderlyingParachain::PARACHAIN_ID),
[parachain_head_at_relay_header_number as u8; 32].into(),
)],
- parachain_heads_proof: ParaHeadsProof { storage_proof: vec![] },
+ parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() },
is_free_execution_expected: false,
})
}
@@ -1144,9 +1142,9 @@ pub(crate) mod tests {
fn message_delivery_call(best_message: MessageNonce) -> RuntimeCall {
RuntimeCall::BridgeMessages(MessagesCall::receive_messages_proof {
relayer_id_at_bridged_chain: relayer_account_at_bridged_chain(),
- proof: FromBridgedChainMessagesProof {
+ proof: Box::new(FromBridgedChainMessagesProof {
bridged_header_hash: Default::default(),
- storage_proof: vec![],
+ storage_proof: Default::default(),
lane: TestLaneId::get(),
nonces_start: pallet_bridge_messages::InboundLanes::::get(
TEST_LANE_ID,
@@ -1154,7 +1152,7 @@ pub(crate) mod tests {
.last_delivered_nonce() +
1,
nonces_end: best_message,
- },
+ }),
messages_count: 1,
dispatch_weight: Weight::zero(),
})
@@ -1164,7 +1162,7 @@ pub(crate) mod tests {
RuntimeCall::BridgeMessages(MessagesCall::receive_messages_delivery_proof {
proof: FromBridgedChainMessagesDeliveryProof {
bridged_header_hash: Default::default(),
- storage_proof: vec![],
+ storage_proof: Default::default(),
lane: TestLaneId::get(),
},
relayers_state: UnrewardedRelayersState {
@@ -1327,8 +1325,10 @@ pub(crate) mod tests {
best_stored_nonce: 100,
},
unrewarded_relayers: UnrewardedRelayerOccupation {
- free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(),
- free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(),
+ free_relayer_slots:
+ BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
+ free_message_slots:
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
},
}),
),
@@ -1397,8 +1397,10 @@ pub(crate) mod tests {
best_stored_nonce: 100,
},
unrewarded_relayers: UnrewardedRelayerOccupation {
- free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(),
- free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(),
+ free_relayer_slots:
+ BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
+ free_message_slots:
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
},
}),
),
@@ -1459,8 +1461,10 @@ pub(crate) mod tests {
best_stored_nonce: 100,
},
unrewarded_relayers: UnrewardedRelayerOccupation {
- free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(),
- free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(),
+ free_relayer_slots:
+ BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
+ free_message_slots:
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
},
}),
),
@@ -1499,8 +1503,10 @@ pub(crate) mod tests {
best_stored_nonce: 100,
},
unrewarded_relayers: UnrewardedRelayerOccupation {
- free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(),
- free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(),
+ free_relayer_slots:
+ BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
+ free_message_slots:
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
},
},
)),
@@ -1735,14 +1741,16 @@ pub(crate) mod tests {
let fns = [run_validate, run_grandpa_validate, run_messages_validate];
for f in fns {
- let priority_of_max_messages_delivery =
- f(message_delivery_call(100 + MaxUnconfirmedMessagesAtInboundLane::get()))
- .unwrap()
- .priority;
- let priority_of_more_than_max_messages_delivery =
- f(message_delivery_call(100 + MaxUnconfirmedMessagesAtInboundLane::get() + 1))
- .unwrap()
- .priority;
+ let priority_of_max_messages_delivery = f(message_delivery_call(
+ 100 + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
+ ))
+ .unwrap()
+ .priority;
+ let priority_of_more_than_max_messages_delivery = f(message_delivery_call(
+ 100 + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX + 1,
+ ))
+ .unwrap()
+ .priority;
assert!(
priority_of_max_messages_delivery > priority_of_more_than_max_messages_delivery,
@@ -2103,7 +2111,7 @@ pub(crate) mod tests {
[1u8; 32].into(),
),
],
- parachain_heads_proof: ParaHeadsProof { storage_proof: vec![] },
+ parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() },
}),
message_delivery_call(200),
],
@@ -2865,7 +2873,8 @@ pub(crate) mod tests {
#[test]
fn does_not_panic_on_boosting_priority_of_empty_message_delivery_transaction() {
run_test(|| {
- let best_delivered_message = MaxUnconfirmedMessagesAtInboundLane::get();
+ let best_delivered_message =
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
initialize_environment(100, 100, best_delivered_message);
// register relayer so it gets priority boost
diff --git a/bridges/bin/runtime-common/src/integrity.rs b/bridges/bin/runtime-common/src/integrity.rs
index d3827a14dd6cc24e088a8d05d26aba9d769eb213..a0a9367dd1400309d0f0be967665a4543ad982cb 100644
--- a/bridges/bin/runtime-common/src/integrity.rs
+++ b/bridges/bin/runtime-common/src/integrity.rs
@@ -19,26 +19,33 @@
//! Most of the tests in this module assume that the bridge is using standard (see `crate::messages`
//! module for details) configuration.
-use crate::{messages, messages::MessageBridge};
-
-use bp_messages::{InboundLaneData, MessageNonce};
-use bp_runtime::{Chain, ChainId};
+use bp_header_chain::ChainWithGrandpa;
+use bp_messages::{ChainWithMessages, InboundLaneData, MessageNonce};
+use bp_runtime::Chain;
use codec::Encode;
use frame_support::{storage::generator::StorageValue, traits::Get, weights::Weight};
use frame_system::limits;
use pallet_bridge_messages::WeightInfoExt as _;
+// Re-export to avoid include all dependencies everywhere.
+#[doc(hidden)]
+pub mod __private {
+ pub use bp_xcm_bridge_hub;
+ pub use static_assertions;
+}
+
/// Macro that ensures that the runtime configuration and chain primitives crate are sharing
/// the same types (nonce, block number, hash, hasher, account id and header).
#[macro_export]
macro_rules! assert_chain_types(
( runtime: $r:path, this_chain: $this:path ) => {
{
+ use frame_system::{Config as SystemConfig, pallet_prelude::{BlockNumberFor, HeaderFor}};
+ use $crate::integrity::__private::static_assertions::assert_type_eq_all;
+
// if one of asserts fail, then either bridge isn't configured properly (or alternatively - non-standard
// configuration is used), or something has broke existing configuration (meaning that all bridged chains
// and relays will stop functioning)
- use frame_system::{Config as SystemConfig, pallet_prelude::{BlockNumberFor, HeaderFor}};
- use static_assertions::assert_type_eq_all;
assert_type_eq_all!(<$r as SystemConfig>::Nonce, bp_runtime::NonceOf<$this>);
assert_type_eq_all!(BlockNumberFor<$r>, bp_runtime::BlockNumberOf<$this>);
@@ -50,23 +57,6 @@ macro_rules! assert_chain_types(
}
);
-/// Macro that ensures that the bridge GRANDPA pallet is configured properly to bridge with given
-/// chain.
-#[macro_export]
-macro_rules! assert_bridge_grandpa_pallet_types(
- ( runtime: $r:path, with_bridged_chain_grandpa_instance: $i:path, bridged_chain: $bridged:path ) => {
- {
- // if one of asserts fail, then either bridge isn't configured properly (or alternatively - non-standard
- // configuration is used), or something has broke existing configuration (meaning that all bridged chains
- // and relays will stop functioning)
- use pallet_bridge_grandpa::Config as GrandpaConfig;
- use static_assertions::assert_type_eq_all;
-
- assert_type_eq_all!(<$r as GrandpaConfig<$i>>::BridgedChain, $bridged);
- }
- }
-);
-
/// Macro that ensures that the bridge messages pallet is configured properly to bridge using given
/// configuration.
#[macro_export]
@@ -74,32 +64,31 @@ macro_rules! assert_bridge_messages_pallet_types(
(
runtime: $r:path,
with_bridged_chain_messages_instance: $i:path,
- bridge: $bridge:path
+ this_chain: $this:path,
+ bridged_chain: $bridged:path,
) => {
{
+ use $crate::messages_xcm_extension::XcmAsPlainPayload;
+ use $crate::integrity::__private::static_assertions::assert_type_eq_all;
+ use bp_messages::ChainWithMessages;
+ use bp_runtime::Chain;
+ use pallet_bridge_messages::Config as MessagesConfig;
+
// if one of asserts fail, then either bridge isn't configured properly (or alternatively - non-standard
// configuration is used), or something has broke existing configuration (meaning that all bridged chains
// and relays will stop functioning)
- use $crate::messages::{
- source::{FromThisChainMessagePayload, TargetHeaderChainAdapter},
- target::{FromBridgedChainMessagePayload, SourceHeaderChainAdapter},
- AccountIdOf, BalanceOf, BridgedChain, ThisChain,
- };
- use pallet_bridge_messages::Config as MessagesConfig;
- use static_assertions::assert_type_eq_all;
- assert_type_eq_all!(<$r as MessagesConfig<$i>>::OutboundPayload, FromThisChainMessagePayload);
+ assert_type_eq_all!(<$r as MessagesConfig<$i>>::ThisChain, $this);
+ assert_type_eq_all!(<$r as MessagesConfig<$i>>::BridgedChain, $bridged);
- assert_type_eq_all!(<$r as MessagesConfig<$i>>::InboundRelayer, AccountIdOf>);
-
- assert_type_eq_all!(<$r as MessagesConfig<$i>>::TargetHeaderChain, TargetHeaderChainAdapter<$bridge>);
- assert_type_eq_all!(<$r as MessagesConfig<$i>>::SourceHeaderChain, SourceHeaderChainAdapter<$bridge>);
+ assert_type_eq_all!(<$r as MessagesConfig<$i>>::OutboundPayload, XcmAsPlainPayload);
+ assert_type_eq_all!(<$r as MessagesConfig<$i>>::InboundPayload, XcmAsPlainPayload);
}
}
);
/// Macro that combines four other macro calls - `assert_chain_types`, `assert_bridge_types`,
-/// `assert_bridge_grandpa_pallet_types` and `assert_bridge_messages_pallet_types`. It may be used
+/// and `assert_bridge_messages_pallet_types`. It may be used
/// at the chain that is implementing complete standard messages bridge (i.e. with bridge GRANDPA
/// and messages pallets deployed).
#[macro_export]
@@ -108,20 +97,15 @@ macro_rules! assert_complete_bridge_types(
runtime: $r:path,
with_bridged_chain_grandpa_instance: $gi:path,
with_bridged_chain_messages_instance: $mi:path,
- bridge: $bridge:path,
this_chain: $this:path,
bridged_chain: $bridged:path,
) => {
$crate::assert_chain_types!(runtime: $r, this_chain: $this);
- $crate::assert_bridge_grandpa_pallet_types!(
- runtime: $r,
- with_bridged_chain_grandpa_instance: $gi,
- bridged_chain: $bridged
- );
$crate::assert_bridge_messages_pallet_types!(
runtime: $r,
with_bridged_chain_messages_instance: $mi,
- bridge: $bridge
+ this_chain: $this,
+ bridged_chain: $bridged,
);
}
);
@@ -184,20 +168,8 @@ where
);
}
-/// Parameters for asserting messages pallet constants.
-#[derive(Debug)]
-pub struct AssertBridgeMessagesPalletConstants {
- /// Maximal number of unrewarded relayer entries in a confirmation transaction at the bridged
- /// chain.
- pub max_unrewarded_relayers_in_bridged_confirmation_tx: MessageNonce,
- /// Maximal number of unconfirmed messages in a confirmation transaction at the bridged chain.
- pub max_unconfirmed_messages_in_bridged_confirmation_tx: MessageNonce,
- /// Identifier of the bridged chain.
- pub bridged_chain_id: ChainId,
-}
-
/// Test that the constants, used in messages pallet configuration are valid.
-pub fn assert_bridge_messages_pallet_constants(params: AssertBridgeMessagesPalletConstants)
+pub fn assert_bridge_messages_pallet_constants()
where
R: pallet_bridge_messages::Config,
MI: 'static,
@@ -207,27 +179,22 @@ where
"ActiveOutboundLanes ({:?}) must not be empty",
R::ActiveOutboundLanes::get(),
);
+
assert!(
- R::MaxUnrewardedRelayerEntriesAtInboundLane::get() <= params.max_unrewarded_relayers_in_bridged_confirmation_tx,
- "MaxUnrewardedRelayerEntriesAtInboundLane ({}) must be <= than the hardcoded value for bridged chain: {}",
- R::MaxUnrewardedRelayerEntriesAtInboundLane::get(),
- params.max_unrewarded_relayers_in_bridged_confirmation_tx,
- );
- assert!(
- R::MaxUnconfirmedMessagesAtInboundLane::get() <= params.max_unconfirmed_messages_in_bridged_confirmation_tx,
- "MaxUnrewardedRelayerEntriesAtInboundLane ({}) must be <= than the hardcoded value for bridged chain: {}",
- R::MaxUnconfirmedMessagesAtInboundLane::get(),
- params.max_unconfirmed_messages_in_bridged_confirmation_tx,
+ pallet_bridge_messages::BridgedChainOf::::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX
+ <= pallet_bridge_messages::BridgedChainOf::::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
+ "MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX ({}) of {:?} is larger than \
+ its MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX ({}). This makes \
+ no sense",
+ pallet_bridge_messages::BridgedChainOf::::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
+ pallet_bridge_messages::BridgedChainOf::::ID,
+ pallet_bridge_messages::BridgedChainOf::::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
);
- assert_eq!(R::BridgedChainId::get(), params.bridged_chain_id);
}
/// Parameters for asserting bridge pallet names.
#[derive(Debug)]
pub struct AssertBridgePalletNames<'a> {
- /// Name of the messages pallet, deployed at the bridged chain and used to bridge with this
- /// chain.
- pub with_this_chain_messages_pallet_name: &'a str,
/// Name of the GRANDPA pallet, deployed at this chain and used to bridge with the bridged
/// chain.
pub with_bridged_chain_grandpa_pallet_name: &'a str,
@@ -238,18 +205,22 @@ pub struct AssertBridgePalletNames<'a> {
/// Tests that bridge pallet names used in `construct_runtime!()` macro call are matching constants
/// from chain primitives crates.
-pub fn assert_bridge_pallet_names(params: AssertBridgePalletNames)
+fn assert_bridge_pallet_names(params: AssertBridgePalletNames)
where
- B: MessageBridge,
R: pallet_bridge_grandpa::Config + pallet_bridge_messages::Config,
GI: 'static,
MI: 'static,
{
- assert_eq!(B::BRIDGED_MESSAGES_PALLET_NAME, params.with_this_chain_messages_pallet_name);
+ // check that the bridge GRANDPA pallet has required name
assert_eq!(
pallet_bridge_grandpa::PalletOwner::::storage_value_final_key().to_vec(),
- bp_runtime::storage_value_key(params.with_bridged_chain_grandpa_pallet_name, "PalletOwner",).0,
+ bp_runtime::storage_value_key(
+ params.with_bridged_chain_grandpa_pallet_name,
+ "PalletOwner",
+ ).0,
);
+
+ // check that the bridge messages pallet has required name
assert_eq!(
pallet_bridge_messages::PalletOwner::::storage_value_final_key().to_vec(),
bp_runtime::storage_value_key(
@@ -262,35 +233,58 @@ where
/// Parameters for asserting complete standard messages bridge.
#[derive(Debug)]
-pub struct AssertCompleteBridgeConstants<'a> {
+pub struct AssertCompleteBridgeConstants {
/// Parameters to assert this chain constants.
pub this_chain_constants: AssertChainConstants,
- /// Parameters to assert messages pallet constants.
- pub messages_pallet_constants: AssertBridgeMessagesPalletConstants,
- /// Parameters to assert pallet names constants.
- pub pallet_names: AssertBridgePalletNames<'a>,
}
-/// All bridge-related constants tests for the complete standard messages bridge (i.e. with bridge
-/// GRANDPA and messages pallets deployed).
-pub fn assert_complete_bridge_constants(params: AssertCompleteBridgeConstants)
-where
+/// All bridge-related constants tests for the complete standard relay-chain messages bridge
+/// (i.e. with bridge GRANDPA and messages pallets deployed).
+pub fn assert_complete_with_relay_chain_bridge_constants(
+ params: AssertCompleteBridgeConstants,
+) where
R: frame_system::Config
+ pallet_bridge_grandpa::Config
+ pallet_bridge_messages::Config,
GI: 'static,
MI: 'static,
- B: MessageBridge,
{
assert_chain_constants::(params.this_chain_constants);
assert_bridge_grandpa_pallet_constants::();
- assert_bridge_messages_pallet_constants::(params.messages_pallet_constants);
- assert_bridge_pallet_names::(params.pallet_names);
+ assert_bridge_messages_pallet_constants::();
+ assert_bridge_pallet_names::(AssertBridgePalletNames {
+ with_bridged_chain_grandpa_pallet_name:
+ >::BridgedChain::WITH_CHAIN_GRANDPA_PALLET_NAME,
+ with_bridged_chain_messages_pallet_name:
+ >::BridgedChain::WITH_CHAIN_MESSAGES_PALLET_NAME,
+ });
+}
+
+/// All bridge-related constants tests for the complete standard parachain messages bridge
+/// (i.e. with bridge GRANDPA, parachains and messages pallets deployed).
+pub fn assert_complete_with_parachain_bridge_constants(
+ params: AssertCompleteBridgeConstants,
+) where
+ R: frame_system::Config
+ + pallet_bridge_grandpa::Config
+ + pallet_bridge_messages::Config,
+ GI: 'static,
+ MI: 'static,
+ RelayChain: ChainWithGrandpa,
+{
+ assert_chain_constants::(params.this_chain_constants);
+ assert_bridge_grandpa_pallet_constants::();
+ assert_bridge_messages_pallet_constants::();
+ assert_bridge_pallet_names::(AssertBridgePalletNames {
+ with_bridged_chain_grandpa_pallet_name: RelayChain::WITH_CHAIN_GRANDPA_PALLET_NAME,
+ with_bridged_chain_messages_pallet_name:
+ >::BridgedChain::WITH_CHAIN_MESSAGES_PALLET_NAME,
+ });
}
/// Check that the message lane weights are correct.
pub fn check_message_lane_weights<
- C: Chain,
+ C: ChainWithMessages,
T: frame_system::Config + pallet_bridge_messages::Config,
MessagesPalletInstance: 'static,
>(
@@ -308,14 +302,20 @@ pub fn check_message_lane_weights<
// check basic weight assumptions
pallet_bridge_messages::ensure_weights_are_correct::>();
+ // check that the maximal message dispatch weight is below hardcoded limit
+ pallet_bridge_messages::ensure_maximal_message_dispatch::>(
+ C::maximal_incoming_message_size(),
+ C::maximal_incoming_message_dispatch_weight(),
+ );
+
// check that weights allow us to receive messages
- let max_incoming_message_proof_size = bridged_chain_extra_storage_proof_size
- .saturating_add(messages::target::maximal_incoming_message_size(C::max_extrinsic_size()));
+ let max_incoming_message_proof_size =
+ bridged_chain_extra_storage_proof_size.saturating_add(C::maximal_incoming_message_size());
pallet_bridge_messages::ensure_able_to_receive_message::>(
C::max_extrinsic_size(),
C::max_extrinsic_weight(),
max_incoming_message_proof_size,
- messages::target::maximal_incoming_message_dispatch_weight(C::max_extrinsic_weight()),
+ C::maximal_incoming_message_dispatch_weight(),
);
// check that weights allow us to receive delivery confirmations
diff --git a/bridges/bin/runtime-common/src/lib.rs b/bridges/bin/runtime-common/src/lib.rs
index 5679acd6006ccb8540f940f0f90363f902d643f7..b65bb6041d5610ce2bdfb63f923f3f24b21dcd7f 100644
--- a/bridges/bin/runtime-common/src/lib.rs
+++ b/bridges/bin/runtime-common/src/lib.rs
@@ -20,11 +20,10 @@
#![cfg_attr(not(feature = "std"), no_std)]
pub mod extensions;
-pub mod messages;
+
pub mod messages_api;
pub mod messages_benchmarking;
pub mod messages_call_ext;
-pub mod messages_generation;
pub mod messages_xcm_extension;
pub mod parachains_benchmarking;
diff --git a/bridges/bin/runtime-common/src/messages.rs b/bridges/bin/runtime-common/src/messages.rs
deleted file mode 100644
index 0fe9935dbdb6dfc776977ff8cfbad87d3eee9f6e..0000000000000000000000000000000000000000
--- a/bridges/bin/runtime-common/src/messages.rs
+++ /dev/null
@@ -1,701 +0,0 @@
-// Copyright (C) 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 .
-
-//! Types that allow runtime to act as a source/target endpoint of message lanes.
-//!
-//! Messages are assumed to be encoded `Call`s of the target chain. Call-dispatch
-//! pallet is used to dispatch incoming messages. Message identified by a tuple
-//! of to elements - message lane id and message nonce.
-
-pub use bp_runtime::{RangeInclusiveExt, UnderlyingChainOf, UnderlyingChainProvider};
-
-use bp_header_chain::HeaderChain;
-use bp_messages::{
- source_chain::TargetHeaderChain,
- target_chain::{ProvedLaneMessages, ProvedMessages, SourceHeaderChain},
- InboundLaneData, LaneId, Message, MessageKey, MessageNonce, MessagePayload, OutboundLaneData,
- VerificationError,
-};
-use bp_runtime::{Chain, RawStorageProof, Size, StorageProofChecker};
-use codec::{Decode, Encode};
-use frame_support::{traits::Get, weights::Weight};
-use hash_db::Hasher;
-use scale_info::TypeInfo;
-use sp_runtime::RuntimeDebug;
-use sp_std::{marker::PhantomData, vec::Vec};
-
-/// Bidirectional message bridge.
-pub trait MessageBridge {
- /// Name of the paired messages pallet instance at the Bridged chain.
- ///
- /// Should be the name that is used in the `construct_runtime!()` macro.
- const BRIDGED_MESSAGES_PALLET_NAME: &'static str;
-
- /// This chain in context of message bridge.
- type ThisChain: ThisChainWithMessages;
- /// Bridged chain in context of message bridge.
- type BridgedChain: BridgedChainWithMessages;
- /// Bridged header chain.
- type BridgedHeaderChain: HeaderChain>;
-}
-
-/// This chain that has `pallet-bridge-messages` module.
-pub trait ThisChainWithMessages: UnderlyingChainProvider {
- /// Call origin on the chain.
- type RuntimeOrigin;
-}
-
-/// Bridged chain that has `pallet-bridge-messages` module.
-pub trait BridgedChainWithMessages: UnderlyingChainProvider {}
-
-/// This chain in context of message bridge.
-pub type ThisChain = ::ThisChain;
-/// Bridged chain in context of message bridge.
-pub type BridgedChain = ::BridgedChain;
-/// Hash used on the chain.
-pub type HashOf = bp_runtime::HashOf<::Chain>;
-/// Hasher used on the chain.
-pub type HasherOf = bp_runtime::HasherOf>;
-/// Account id used on the chain.
-pub type AccountIdOf = bp_runtime::AccountIdOf>;
-/// Type of balances that is used on the chain.
-pub type BalanceOf = bp_runtime::BalanceOf>;
-
-/// Sub-module that is declaring types required for processing This -> Bridged chain messages.
-pub mod source {
- use super::*;
-
- /// Message payload for This -> Bridged chain messages.
- pub type FromThisChainMessagePayload = crate::messages_xcm_extension::XcmAsPlainPayload;
-
- /// Maximal size of outbound message payload.
- pub struct FromThisChainMaximalOutboundPayloadSize(PhantomData);
-
- impl Get for FromThisChainMaximalOutboundPayloadSize {
- fn get() -> u32 {
- maximal_message_size::()
- }
- }
-
- /// Messages delivery proof from bridged chain:
- ///
- /// - hash of finalized header;
- /// - storage proof of inbound lane state;
- /// - lane id.
- #[derive(Clone, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)]
- pub struct FromBridgedChainMessagesDeliveryProof {
- /// Hash of the bridge header the proof is for.
- pub bridged_header_hash: BridgedHeaderHash,
- /// Storage trie proof generated for [`Self::bridged_header_hash`].
- pub storage_proof: RawStorageProof,
- /// Lane id of which messages were delivered and the proof is for.
- pub lane: LaneId,
- }
-
- impl Size for FromBridgedChainMessagesDeliveryProof {
- fn size(&self) -> u32 {
- u32::try_from(
- self.storage_proof
- .iter()
- .fold(0usize, |sum, node| sum.saturating_add(node.len())),
- )
- .unwrap_or(u32::MAX)
- }
- }
-
- /// 'Parsed' message delivery proof - inbound lane id and its state.
- pub type ParsedMessagesDeliveryProofFromBridgedChain =
- (LaneId, InboundLaneData>>);
-
- /// Return maximal message size of This -> Bridged chain message.
- pub fn maximal_message_size() -> u32 {
- super::target::maximal_incoming_message_size(
- UnderlyingChainOf::>::max_extrinsic_size(),
- )
- }
-
- /// `TargetHeaderChain` implementation that is using default types and perform default checks.
- pub struct TargetHeaderChainAdapter(PhantomData);
-
- impl TargetHeaderChain>>
- for TargetHeaderChainAdapter
- {
- type MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof>>;
-
- fn verify_message(payload: &FromThisChainMessagePayload) -> Result<(), VerificationError> {
- verify_chain_message::(payload)
- }
-
- fn verify_messages_delivery_proof(
- proof: Self::MessagesDeliveryProof,
- ) -> Result<(LaneId, InboundLaneData>>), VerificationError> {
- verify_messages_delivery_proof::(proof)
- }
- }
-
- /// Do basic Bridged-chain specific verification of This -> Bridged chain message.
- ///
- /// Ok result from this function means that the delivery transaction with this message
- /// may be 'mined' by the target chain.
- pub fn verify_chain_message(
- payload: &FromThisChainMessagePayload,
- ) -> Result<(), VerificationError> {
- // IMPORTANT: any error that is returned here is fatal for the bridge, because
- // this code is executed at the bridge hub and message sender actually lives
- // at some sibling parachain. So we are failing **after** the message has been
- // sent and we can't report it back to sender (unless error report mechanism is
- // embedded into message and its dispatcher).
-
- // apart from maximal message size check (see below), we should also check the message
- // dispatch weight here. But we assume that the bridged chain will just push the message
- // to some queue (XCMP, UMP, DMP), so the weight is constant and fits the block.
-
- // The maximal size of extrinsic at Substrate-based chain depends on the
- // `frame_system::Config::MaximumBlockLength` and
- // `frame_system::Config::AvailableBlockRatio` constants. This check is here to be sure that
- // the lane won't stuck because message is too large to fit into delivery transaction.
- //
- // **IMPORTANT NOTE**: the delivery transaction contains storage proof of the message, not
- // the message itself. The proof is always larger than the message. But unless chain state
- // is enormously large, it should be several dozens/hundreds of bytes. The delivery
- // transaction also contains signatures and signed extensions. Because of this, we reserve
- // 1/3 of the the maximal extrinsic size for this data.
- if payload.len() > maximal_message_size::() as usize {
- return Err(VerificationError::MessageTooLarge)
- }
-
- Ok(())
- }
-
- /// Verify proof of This -> Bridged chain messages delivery.
- ///
- /// This function is used when Bridged chain is directly using GRANDPA finality. For Bridged
- /// parachains, please use the `verify_messages_delivery_proof_from_parachain`.
- pub fn verify_messages_delivery_proof(
- proof: FromBridgedChainMessagesDeliveryProof>>,
- ) -> Result, VerificationError> {
- let FromBridgedChainMessagesDeliveryProof { bridged_header_hash, storage_proof, lane } =
- proof;
- let mut storage =
- B::BridgedHeaderChain::storage_proof_checker(bridged_header_hash, storage_proof)
- .map_err(VerificationError::HeaderChain)?;
- // Messages delivery proof is just proof of single storage key read => any error
- // is fatal.
- let storage_inbound_lane_data_key = bp_messages::storage_keys::inbound_lane_data_key(
- B::BRIDGED_MESSAGES_PALLET_NAME,
- &lane,
- );
- let inbound_lane_data = storage
- .read_and_decode_mandatory_value(storage_inbound_lane_data_key.0.as_ref())
- .map_err(VerificationError::InboundLaneStorage)?;
-
- // check that the storage proof doesn't have any untouched trie nodes
- storage.ensure_no_unused_nodes().map_err(VerificationError::StorageProof)?;
-
- Ok((lane, inbound_lane_data))
- }
-}
-
-/// Sub-module that is declaring types required for processing Bridged -> This chain messages.
-pub mod target {
- use super::*;
-
- /// Decoded Bridged -> This message payload.
- pub type FromBridgedChainMessagePayload = crate::messages_xcm_extension::XcmAsPlainPayload;
-
- /// Messages proof from bridged chain:
- ///
- /// - hash of finalized header;
- /// - storage proof of messages and (optionally) outbound lane state;
- /// - lane id;
- /// - nonces (inclusive range) of messages which are included in this proof.
- #[derive(Clone, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)]
- pub struct FromBridgedChainMessagesProof {
- /// Hash of the finalized bridged header the proof is for.
- pub bridged_header_hash: BridgedHeaderHash,
- /// A storage trie proof of messages being delivered.
- pub storage_proof: RawStorageProof,
- /// Messages in this proof are sent over this lane.
- pub lane: LaneId,
- /// Nonce of the first message being delivered.
- pub nonces_start: MessageNonce,
- /// Nonce of the last message being delivered.
- pub nonces_end: MessageNonce,
- }
-
- impl Size for FromBridgedChainMessagesProof {
- fn size(&self) -> u32 {
- u32::try_from(
- self.storage_proof
- .iter()
- .fold(0usize, |sum, node| sum.saturating_add(node.len())),
- )
- .unwrap_or(u32::MAX)
- }
- }
-
- /// Return maximal dispatch weight of the message we're able to receive.
- pub fn maximal_incoming_message_dispatch_weight(maximal_extrinsic_weight: Weight) -> Weight {
- maximal_extrinsic_weight / 2
- }
-
- /// Return maximal message size given maximal extrinsic size.
- pub fn maximal_incoming_message_size(maximal_extrinsic_size: u32) -> u32 {
- maximal_extrinsic_size / 3 * 2
- }
-
- /// `SourceHeaderChain` implementation that is using default types and perform default checks.
- pub struct SourceHeaderChainAdapter(PhantomData);
-
- impl SourceHeaderChain for SourceHeaderChainAdapter {
- type MessagesProof = FromBridgedChainMessagesProof>>;
-
- fn verify_messages_proof(
- proof: Self::MessagesProof,
- messages_count: u32,
- ) -> Result, VerificationError> {
- verify_messages_proof::(proof, messages_count)
- }
- }
-
- /// Verify proof of Bridged -> This chain messages.
- ///
- /// This function is used when Bridged chain is directly using GRANDPA finality. For Bridged
- /// parachains, please use the `verify_messages_proof_from_parachain`.
- ///
- /// The `messages_count` argument verification (sane limits) is supposed to be made
- /// outside of this function. This function only verifies that the proof declares exactly
- /// `messages_count` messages.
- pub fn verify_messages_proof(
- proof: FromBridgedChainMessagesProof>>,
- messages_count: u32,
- ) -> Result, VerificationError> {
- let FromBridgedChainMessagesProof {
- bridged_header_hash,
- storage_proof,
- lane,
- nonces_start,
- nonces_end,
- } = proof;
- let storage =
- B::BridgedHeaderChain::storage_proof_checker(bridged_header_hash, storage_proof)
- .map_err(VerificationError::HeaderChain)?;
- let mut parser = StorageProofCheckerAdapter::<_, B> { storage, _dummy: Default::default() };
- let nonces_range = nonces_start..=nonces_end;
-
- // receiving proofs where end < begin is ok (if proof includes outbound lane state)
- let messages_in_the_proof = nonces_range.checked_len().unwrap_or(0);
- if messages_in_the_proof != MessageNonce::from(messages_count) {
- return Err(VerificationError::MessagesCountMismatch)
- }
-
- // Read messages first. All messages that are claimed to be in the proof must
- // be in the proof. So any error in `read_value`, or even missing value is fatal.
- //
- // Mind that we allow proofs with no messages if outbound lane state is proved.
- let mut messages = Vec::with_capacity(messages_in_the_proof as _);
- for nonce in nonces_range {
- let message_key = MessageKey { lane_id: lane, nonce };
- let message_payload = parser.read_and_decode_message_payload(&message_key)?;
- messages.push(Message { key: message_key, payload: message_payload });
- }
-
- // Now let's check if proof contains outbound lane state proof. It is optional, so
- // we simply ignore `read_value` errors and missing value.
- let proved_lane_messages = ProvedLaneMessages {
- lane_state: parser.read_and_decode_outbound_lane_data(&lane)?,
- messages,
- };
-
- // Now we may actually check if the proof is empty or not.
- if proved_lane_messages.lane_state.is_none() && proved_lane_messages.messages.is_empty() {
- return Err(VerificationError::EmptyMessageProof)
- }
-
- // check that the storage proof doesn't have any untouched trie nodes
- parser
- .storage
- .ensure_no_unused_nodes()
- .map_err(VerificationError::StorageProof)?;
-
- // We only support single lane messages in this generated_schema
- let mut proved_messages = ProvedMessages::new();
- proved_messages.insert(lane, proved_lane_messages);
-
- Ok(proved_messages)
- }
-
- struct StorageProofCheckerAdapter {
- storage: StorageProofChecker,
- _dummy: sp_std::marker::PhantomData,
- }
-
- impl StorageProofCheckerAdapter {
- fn read_and_decode_outbound_lane_data(
- &mut self,
- lane_id: &LaneId,
- ) -> Result, VerificationError> {
- let storage_outbound_lane_data_key = bp_messages::storage_keys::outbound_lane_data_key(
- B::BRIDGED_MESSAGES_PALLET_NAME,
- lane_id,
- );
-
- self.storage
- .read_and_decode_opt_value(storage_outbound_lane_data_key.0.as_ref())
- .map_err(VerificationError::OutboundLaneStorage)
- }
-
- fn read_and_decode_message_payload(
- &mut self,
- message_key: &MessageKey,
- ) -> Result {
- let storage_message_key = bp_messages::storage_keys::message_key(
- B::BRIDGED_MESSAGES_PALLET_NAME,
- &message_key.lane_id,
- message_key.nonce,
- );
- self.storage
- .read_and_decode_mandatory_value(storage_message_key.0.as_ref())
- .map_err(VerificationError::MessageStorage)
- }
- }
-}
-
-/// The `BridgeMessagesCall` used by a chain.
-pub type BridgeMessagesCallOf = bp_messages::BridgeMessagesCall<
- bp_runtime::AccountIdOf,
- target::FromBridgedChainMessagesProof>,
- source::FromBridgedChainMessagesDeliveryProof>,
->;
-
-#[cfg(test)]
-mod tests {
- use super::*;
- use crate::{
- messages_generation::{
- encode_all_messages, encode_lane_data, prepare_messages_storage_proof,
- },
- mock::*,
- };
- use bp_header_chain::{HeaderChainError, StoredHeaderDataBuilder};
- use bp_runtime::{HeaderId, StorageProofError};
- use codec::Encode;
- use sp_core::H256;
- use sp_runtime::traits::Header as _;
-
- #[test]
- fn verify_chain_message_rejects_message_with_too_large_declared_weight() {
- assert!(source::verify_chain_message::(&vec![
- 42;
- BRIDGED_CHAIN_MAX_EXTRINSIC_WEIGHT -
- 1
- ])
- .is_err());
- }
-
- #[test]
- fn verify_chain_message_rejects_message_too_large_message() {
- assert!(source::verify_chain_message::(&vec![
- 0;
- source::maximal_message_size::()
- as usize + 1
- ],)
- .is_err());
- }
-
- #[test]
- fn verify_chain_message_accepts_maximal_message() {
- assert_eq!(
- source::verify_chain_message::(&vec![
- 0;
- source::maximal_message_size::()
- as _
- ],),
- Ok(()),
- );
- }
-
- fn using_messages_proof(
- nonces_end: MessageNonce,
- outbound_lane_data: Option,
- encode_message: impl Fn(MessageNonce, &MessagePayload) -> Option>,
- encode_outbound_lane_data: impl Fn(&OutboundLaneData) -> Vec,
- test: impl Fn(target::FromBridgedChainMessagesProof) -> R,
- ) -> R {
- let (state_root, storage_proof) = prepare_messages_storage_proof::(
- TEST_LANE_ID,
- 1..=nonces_end,
- outbound_lane_data,
- bp_runtime::StorageProofSize::Minimal(0),
- vec![42],
- encode_message,
- encode_outbound_lane_data,
- );
-
- sp_io::TestExternalities::new(Default::default()).execute_with(move || {
- let bridged_header = BridgedChainHeader::new(
- 0,
- Default::default(),
- state_root,
- Default::default(),
- Default::default(),
- );
- let bridged_header_hash = bridged_header.hash();
-
- pallet_bridge_grandpa::BestFinalized::::put(HeaderId(
- 0,
- bridged_header_hash,
- ));
- pallet_bridge_grandpa::ImportedHeaders::::insert(
- bridged_header_hash,
- bridged_header.build(),
- );
- test(target::FromBridgedChainMessagesProof {
- bridged_header_hash,
- storage_proof,
- lane: TEST_LANE_ID,
- nonces_start: 1,
- nonces_end,
- })
- })
- }
-
- #[test]
- fn messages_proof_is_rejected_if_declared_less_than_actual_number_of_messages() {
- assert_eq!(
- using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| {
- target::verify_messages_proof::(proof, 5)
- }),
- Err(VerificationError::MessagesCountMismatch),
- );
- }
-
- #[test]
- fn messages_proof_is_rejected_if_declared_more_than_actual_number_of_messages() {
- assert_eq!(
- using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| {
- target::verify_messages_proof::(proof, 15)
- }),
- Err(VerificationError::MessagesCountMismatch),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_header_is_missing_from_the_chain() {
- assert_eq!(
- using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| {
- let bridged_header_hash =
- pallet_bridge_grandpa::BestFinalized::::get().unwrap().1;
- pallet_bridge_grandpa::ImportedHeaders::::remove(bridged_header_hash);
- target::verify_messages_proof::(proof, 10)
- }),
- Err(VerificationError::HeaderChain(HeaderChainError::UnknownHeader)),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_header_state_root_mismatches() {
- assert_eq!(
- using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| {
- let bridged_header_hash =
- pallet_bridge_grandpa::BestFinalized::::get().unwrap().1;
- pallet_bridge_grandpa::ImportedHeaders::::insert(
- bridged_header_hash,
- BridgedChainHeader::new(
- 0,
- Default::default(),
- Default::default(),
- Default::default(),
- Default::default(),
- )
- .build(),
- );
- target::verify_messages_proof::(proof, 10)
- }),
- Err(VerificationError::HeaderChain(HeaderChainError::StorageProof(
- StorageProofError::StorageRootMismatch
- ))),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_it_has_duplicate_trie_nodes() {
- assert_eq!(
- using_messages_proof(10, None, encode_all_messages, encode_lane_data, |mut proof| {
- let node = proof.storage_proof.pop().unwrap();
- proof.storage_proof.push(node.clone());
- proof.storage_proof.push(node);
- target::verify_messages_proof::(proof, 10)
- },),
- Err(VerificationError::HeaderChain(HeaderChainError::StorageProof(
- StorageProofError::DuplicateNodesInProof
- ))),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_it_has_unused_trie_nodes() {
- assert_eq!(
- using_messages_proof(10, None, encode_all_messages, encode_lane_data, |mut proof| {
- proof.storage_proof.push(vec![42]);
- target::verify_messages_proof::(proof, 10)
- },),
- Err(VerificationError::StorageProof(StorageProofError::UnusedNodesInTheProof)),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_required_message_is_missing() {
- matches!(
- using_messages_proof(
- 10,
- None,
- |n, m| if n != 5 { Some(m.encode()) } else { None },
- encode_lane_data,
- |proof| target::verify_messages_proof::(proof, 10)
- ),
- Err(VerificationError::MessageStorage(StorageProofError::StorageValueEmpty)),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_message_decode_fails() {
- matches!(
- using_messages_proof(
- 10,
- None,
- |n, m| {
- let mut m = m.encode();
- if n == 5 {
- m = vec![42]
- }
- Some(m)
- },
- encode_lane_data,
- |proof| target::verify_messages_proof::(proof, 10),
- ),
- Err(VerificationError::MessageStorage(StorageProofError::StorageValueDecodeFailed(_))),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_outbound_lane_state_decode_fails() {
- matches!(
- using_messages_proof(
- 10,
- Some(OutboundLaneData {
- oldest_unpruned_nonce: 1,
- latest_received_nonce: 1,
- latest_generated_nonce: 1,
- }),
- encode_all_messages,
- |d| {
- let mut d = d.encode();
- d.truncate(1);
- d
- },
- |proof| target::verify_messages_proof::(proof, 10),
- ),
- Err(VerificationError::OutboundLaneStorage(
- StorageProofError::StorageValueDecodeFailed(_)
- )),
- );
- }
-
- #[test]
- fn message_proof_is_rejected_if_it_is_empty() {
- assert_eq!(
- using_messages_proof(0, None, encode_all_messages, encode_lane_data, |proof| {
- target::verify_messages_proof::(proof, 0)
- },),
- Err(VerificationError::EmptyMessageProof),
- );
- }
-
- #[test]
- fn non_empty_message_proof_without_messages_is_accepted() {
- assert_eq!(
- using_messages_proof(
- 0,
- Some(OutboundLaneData {
- oldest_unpruned_nonce: 1,
- latest_received_nonce: 1,
- latest_generated_nonce: 1,
- }),
- encode_all_messages,
- encode_lane_data,
- |proof| target::verify_messages_proof::(proof, 0),
- ),
- Ok(vec![(
- TEST_LANE_ID,
- ProvedLaneMessages {
- lane_state: Some(OutboundLaneData {
- oldest_unpruned_nonce: 1,
- latest_received_nonce: 1,
- latest_generated_nonce: 1,
- }),
- messages: Vec::new(),
- },
- )]
- .into_iter()
- .collect()),
- );
- }
-
- #[test]
- fn non_empty_message_proof_is_accepted() {
- assert_eq!(
- using_messages_proof(
- 1,
- Some(OutboundLaneData {
- oldest_unpruned_nonce: 1,
- latest_received_nonce: 1,
- latest_generated_nonce: 1,
- }),
- encode_all_messages,
- encode_lane_data,
- |proof| target::verify_messages_proof::(proof, 1),
- ),
- Ok(vec![(
- TEST_LANE_ID,
- ProvedLaneMessages {
- lane_state: Some(OutboundLaneData {
- oldest_unpruned_nonce: 1,
- latest_received_nonce: 1,
- latest_generated_nonce: 1,
- }),
- messages: vec![Message {
- key: MessageKey { lane_id: TEST_LANE_ID, nonce: 1 },
- payload: vec![42],
- }],
- },
- )]
- .into_iter()
- .collect()),
- );
- }
-
- #[test]
- fn verify_messages_proof_does_not_panic_if_messages_count_mismatches() {
- assert_eq!(
- using_messages_proof(1, None, encode_all_messages, encode_lane_data, |mut proof| {
- proof.nonces_end = u64::MAX;
- target::verify_messages_proof::(proof, u32::MAX)
- },),
- Err(VerificationError::MessagesCountMismatch),
- );
- }
-}
diff --git a/bridges/bin/runtime-common/src/messages_benchmarking.rs b/bridges/bin/runtime-common/src/messages_benchmarking.rs
index 74494f7908045fac601b4c3f64a456ad12dacd6f..1880e65547fe6d5e0af71e6ec7c6e0e214f20866 100644
--- a/bridges/bin/runtime-common/src/messages_benchmarking.rs
+++ b/bridges/bin/runtime-common/src/messages_benchmarking.rs
@@ -19,23 +19,22 @@
#![cfg(feature = "runtime-benchmarks")]
-use crate::{
- messages::{
- source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof,
- AccountIdOf, BridgedChain, HashOf, MessageBridge, ThisChain,
- },
+use bp_messages::{
+ source_chain::FromBridgedChainMessagesDeliveryProof,
+ target_chain::FromBridgedChainMessagesProof, MessagePayload,
+};
+use bp_polkadot_core::parachains::ParaHash;
+use bp_runtime::{AccountIdOf, Chain, HashOf, Parachain};
+use codec::Encode;
+use frame_support::weights::Weight;
+use pallet_bridge_messages::{
+ benchmarking::{MessageDeliveryProofParams, MessageProofParams},
messages_generation::{
encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof,
prepare_messages_storage_proof,
},
+ BridgedChainOf, ThisChainOf,
};
-
-use bp_messages::MessagePayload;
-use bp_polkadot_core::parachains::ParaHash;
-use bp_runtime::{Chain, Parachain, StorageProofSize, UnderlyingChainOf};
-use codec::Encode;
-use frame_support::weights::Weight;
-use pallet_bridge_messages::benchmarking::{MessageDeliveryProofParams, MessageProofParams};
use sp_runtime::traits::{Header, Zero};
use sp_std::prelude::*;
use xcm::latest::prelude::*;
@@ -45,11 +44,7 @@ fn prepare_inbound_message(
params: &MessageProofParams,
successful_dispatch_message_generator: impl Fn(usize) -> MessagePayload,
) -> MessagePayload {
- // we only care about **this** message size when message proof needs to be `Minimal`
- let expected_size = match params.size {
- StorageProofSize::Minimal(size) => size as usize,
- _ => 0,
- };
+ let expected_size = params.proof_params.db_size.unwrap_or(0) as usize;
// if we don't need a correct message, then we may just return some random blob
if !params.is_successful_dispatch_expected {
@@ -75,25 +70,32 @@ fn prepare_inbound_message(
/// This method is intended to be used when benchmarking pallet, linked to the chain that
/// uses GRANDPA finality. For parachains, please use the `prepare_message_proof_from_parachain`
/// function.
-pub fn prepare_message_proof_from_grandpa_chain(
+pub fn prepare_message_proof_from_grandpa_chain(
params: MessageProofParams,
message_generator: impl Fn(usize) -> MessagePayload,
-) -> (FromBridgedChainMessagesProof>>, Weight)
+) -> (FromBridgedChainMessagesProof>>, Weight)
where
- R: pallet_bridge_grandpa::Config>>,
+ R: pallet_bridge_grandpa::Config>
+ + pallet_bridge_messages::Config<
+ MI,
+ BridgedHeaderChain = pallet_bridge_grandpa::Pallet,
+ >,
FI: 'static,
- B: MessageBridge,
+ MI: 'static,
{
// prepare storage proof
- let (state_root, storage_proof) = prepare_messages_storage_proof::(
- params.lane,
- params.message_nonces.clone(),
- params.outbound_lane_data.clone(),
- params.size,
- prepare_inbound_message(¶ms, message_generator),
- encode_all_messages,
- encode_lane_data,
- );
+ let (state_root, storage_proof) =
+ prepare_messages_storage_proof::, ThisChainOf>(
+ params.lane,
+ params.message_nonces.clone(),
+ params.outbound_lane_data.clone(),
+ params.proof_params,
+ |_| prepare_inbound_message(¶ms, &message_generator),
+ encode_all_messages,
+ encode_lane_data,
+ false,
+ false,
+ );
// update runtime storage
let (_, bridged_header_hash) = insert_header_to_grandpa_pallet::(state_root);
@@ -118,30 +120,33 @@ where
/// This method is intended to be used when benchmarking pallet, linked to the chain that
/// uses parachain finality. For GRANDPA chains, please use the
/// `prepare_message_proof_from_grandpa_chain` function.
-pub fn prepare_message_proof_from_parachain(
+pub fn prepare_message_proof_from_parachain(
params: MessageProofParams,
message_generator: impl Fn(usize) -> MessagePayload,
-) -> (FromBridgedChainMessagesProof>>, Weight)
+) -> (FromBridgedChainMessagesProof>>, Weight)
where
- R: pallet_bridge_parachains::Config,
+ R: pallet_bridge_parachains::Config + pallet_bridge_messages::Config,
PI: 'static,
- B: MessageBridge,
- UnderlyingChainOf>: Chain + Parachain,
+ MI: 'static,
+ BridgedChainOf: Chain + Parachain,
{
// prepare storage proof
- let (state_root, storage_proof) = prepare_messages_storage_proof::(
- params.lane,
- params.message_nonces.clone(),
- params.outbound_lane_data.clone(),
- params.size,
- prepare_inbound_message(¶ms, message_generator),
- encode_all_messages,
- encode_lane_data,
- );
+ let (state_root, storage_proof) =
+ prepare_messages_storage_proof::, ThisChainOf>(
+ params.lane,
+ params.message_nonces.clone(),
+ params.outbound_lane_data.clone(),
+ params.proof_params,
+ |_| prepare_inbound_message(¶ms, &message_generator),
+ encode_all_messages,
+ encode_lane_data,
+ false,
+ false,
+ );
// update runtime storage
let (_, bridged_header_hash) =
- insert_header_to_parachains_pallet::>>(state_root);
+ insert_header_to_parachains_pallet::>(state_root);
(
FromBridgedChainMessagesProof {
@@ -160,21 +165,24 @@ where
/// This method is intended to be used when benchmarking pallet, linked to the chain that
/// uses GRANDPA finality. For parachains, please use the
/// `prepare_message_delivery_proof_from_parachain` function.
-pub fn prepare_message_delivery_proof_from_grandpa_chain(
- params: MessageDeliveryProofParams>>,
-) -> FromBridgedChainMessagesDeliveryProof>>
+pub fn prepare_message_delivery_proof_from_grandpa_chain(
+ params: MessageDeliveryProofParams>>,
+) -> FromBridgedChainMessagesDeliveryProof>>
where
- R: pallet_bridge_grandpa::Config>>,
+ R: pallet_bridge_grandpa::Config>
+ + pallet_bridge_messages::Config<
+ MI,
+ BridgedHeaderChain = pallet_bridge_grandpa::Pallet,
+ >,
FI: 'static,
- B: MessageBridge,
+ MI: 'static,
{
// prepare storage proof
let lane = params.lane;
- let (state_root, storage_proof) = prepare_message_delivery_storage_proof::(
- params.lane,
- params.inbound_lane_data,
- params.size,
- );
+ let (state_root, storage_proof) = prepare_message_delivery_storage_proof::<
+ BridgedChainOf,
+ ThisChainOf,
+ >(params.lane, params.inbound_lane_data, params.proof_params);
// update runtime storage
let (_, bridged_header_hash) = insert_header_to_grandpa_pallet::(state_root);
@@ -191,26 +199,25 @@ where
/// This method is intended to be used when benchmarking pallet, linked to the chain that
/// uses parachain finality. For GRANDPA chains, please use the
/// `prepare_message_delivery_proof_from_grandpa_chain` function.
-pub fn prepare_message_delivery_proof_from_parachain(
- params: MessageDeliveryProofParams>>,
-) -> FromBridgedChainMessagesDeliveryProof>>
+pub fn prepare_message_delivery_proof_from_parachain(
+ params: MessageDeliveryProofParams>>,
+) -> FromBridgedChainMessagesDeliveryProof>>
where
- R: pallet_bridge_parachains::Config,
+ R: pallet_bridge_parachains::Config + pallet_bridge_messages::Config,
PI: 'static,
- B: MessageBridge,
- UnderlyingChainOf>: Chain + Parachain,
+ MI: 'static,
+ BridgedChainOf: Chain + Parachain,
{
// prepare storage proof
let lane = params.lane;
- let (state_root, storage_proof) = prepare_message_delivery_storage_proof::(
- params.lane,
- params.inbound_lane_data,
- params.size,
- );
+ let (state_root, storage_proof) = prepare_message_delivery_storage_proof::<
+ BridgedChainOf,
+ ThisChainOf,
+ >(params.lane, params.inbound_lane_data, params.proof_params);
// update runtime storage
let (_, bridged_header_hash) =
- insert_header_to_parachains_pallet::>>(state_root);
+ insert_header_to_parachains_pallet::>(state_root);
FromBridgedChainMessagesDeliveryProof {
bridged_header_hash: bridged_header_hash.into(),
diff --git a/bridges/bin/runtime-common/src/messages_call_ext.rs b/bridges/bin/runtime-common/src/messages_call_ext.rs
index fb07f7b6dd69110918af23b227708e226bede625..a9ee1969ae0ca462f36098f03b4454e1399af129 100644
--- a/bridges/bin/runtime-common/src/messages_call_ext.rs
+++ b/bridges/bin/runtime-common/src/messages_call_ext.rs
@@ -14,19 +14,14 @@
// You should have received a copy of the GNU General Public License
// along with Parity Bridges Common. If not, see .
-//! Signed extension for the `pallet-bridge-messages` that is able to reject obsolete
-//! (and some other invalid) transactions.
+//! Helpers for easier manipulation of call processing with signed extensions.
-use crate::messages::{
- source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof,
+use bp_messages::{
+ target_chain::MessageDispatch, ChainWithMessages, InboundLaneData, LaneId, MessageNonce,
};
-use bp_messages::{target_chain::MessageDispatch, InboundLaneData, LaneId, MessageNonce};
-use bp_runtime::OwnedBridgeModule;
-use frame_support::{
- dispatch::CallableCallFor,
- traits::{Get, IsSubType},
-};
-use pallet_bridge_messages::{Config, Pallet};
+use bp_runtime::{AccountIdOf, OwnedBridgeModule};
+use frame_support::{dispatch::CallableCallFor, traits::IsSubType};
+use pallet_bridge_messages::{BridgedChainOf, Config, Pallet};
use sp_runtime::{transaction_validity::TransactionValidity, RuntimeDebug};
use sp_std::ops::RangeInclusive;
@@ -213,18 +208,8 @@ pub trait MessagesCallSubType, I: 'static>:
}
impl<
- BridgedHeaderHash,
- SourceHeaderChain: bp_messages::target_chain::SourceHeaderChain<
- MessagesProof = FromBridgedChainMessagesProof,
- >,
- TargetHeaderChain: bp_messages::source_chain::TargetHeaderChain<
- >::OutboundPayload,
- ::AccountId,
- MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof,
- >,
Call: IsSubType, T>>,
- T: frame_system::Config
- + Config,
+ T: frame_system::Config + Config,
I: 'static,
> MessagesCallSubType for T::RuntimeCall
{
@@ -340,16 +325,17 @@ impl<
/// Returns occupation state of unrewarded relayers vector.
fn unrewarded_relayers_occupation, I: 'static>(
- inbound_lane_data: &InboundLaneData,
+ inbound_lane_data: &InboundLaneData>>,
) -> UnrewardedRelayerOccupation {
UnrewardedRelayerOccupation {
- free_relayer_slots: T::MaxUnrewardedRelayerEntriesAtInboundLane::get()
+ free_relayer_slots: T::BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX
.saturating_sub(inbound_lane_data.relayers.len() as MessageNonce),
free_message_slots: {
let unconfirmed_messages = inbound_lane_data
.last_delivered_nonce()
.saturating_sub(inbound_lane_data.last_confirmed_nonce);
- T::MaxUnconfirmedMessagesAtInboundLane::get().saturating_sub(unconfirmed_messages)
+ T::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX
+ .saturating_sub(unconfirmed_messages)
},
}
}
@@ -358,22 +344,20 @@ fn unrewarded_relayers_occupation, I: 'static>(
mod tests {
use super::*;
use crate::{
- messages::{
- source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof,
- },
messages_call_ext::MessagesCallSubType,
- mock::{
- DummyMessageDispatch, MaxUnconfirmedMessagesAtInboundLane,
- MaxUnrewardedRelayerEntriesAtInboundLane, TestRuntime, ThisChainRuntimeCall,
- },
+ mock::{BridgedUnderlyingChain, DummyMessageDispatch, TestRuntime, ThisChainRuntimeCall},
+ };
+ use bp_messages::{
+ source_chain::FromBridgedChainMessagesDeliveryProof,
+ target_chain::FromBridgedChainMessagesProof, DeliveredMessages, UnrewardedRelayer,
+ UnrewardedRelayersState,
};
- use bp_messages::{DeliveredMessages, UnrewardedRelayer, UnrewardedRelayersState};
use sp_std::ops::RangeInclusive;
fn fill_unrewarded_relayers() {
let mut inbound_lane_state =
pallet_bridge_messages::InboundLanes::::get(LaneId([0, 0, 0, 0]));
- for n in 0..MaxUnrewardedRelayerEntriesAtInboundLane::get() {
+ for n in 0..BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX {
inbound_lane_state.relayers.push_back(UnrewardedRelayer {
relayer: Default::default(),
messages: DeliveredMessages { begin: n + 1, end: n + 1 },
@@ -392,7 +376,7 @@ mod tests {
relayer: Default::default(),
messages: DeliveredMessages {
begin: 1,
- end: MaxUnconfirmedMessagesAtInboundLane::get(),
+ end: BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
},
});
pallet_bridge_messages::InboundLanes::::insert(
@@ -418,13 +402,13 @@ mod tests {
messages_count: nonces_end.checked_sub(nonces_start).map(|x| x + 1).unwrap_or(0)
as u32,
dispatch_weight: frame_support::weights::Weight::zero(),
- proof: FromBridgedChainMessagesProof {
+ proof: Box::new(FromBridgedChainMessagesProof {
bridged_header_hash: Default::default(),
- storage_proof: vec![],
+ storage_proof: Default::default(),
lane: LaneId([0, 0, 0, 0]),
nonces_start,
nonces_end,
- },
+ }),
},
)
.check_obsolete_call()
@@ -508,8 +492,8 @@ mod tests {
sp_io::TestExternalities::new(Default::default()).execute_with(|| {
fill_unrewarded_messages();
assert!(validate_message_delivery(
- MaxUnconfirmedMessagesAtInboundLane::get(),
- MaxUnconfirmedMessagesAtInboundLane::get() - 1
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX - 1
));
});
}
@@ -540,7 +524,7 @@ mod tests {
pallet_bridge_messages::Call::::receive_messages_delivery_proof {
proof: FromBridgedChainMessagesDeliveryProof {
bridged_header_hash: Default::default(),
- storage_proof: Vec::new(),
+ storage_proof: Default::default(),
lane: LaneId([0, 0, 0, 0]),
},
relayers_state: UnrewardedRelayersState {
@@ -608,7 +592,7 @@ mod tests {
free_message_slots: if is_empty {
0
} else {
- MaxUnconfirmedMessagesAtInboundLane::get()
+ BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX
},
},
},
diff --git a/bridges/bin/runtime-common/src/mock.rs b/bridges/bin/runtime-common/src/mock.rs
index f49474667896049cfd6aff4bf4a4b0d9d6e73c95..2f248a7162a6cbdcc09d2980a922b1a065127e40 100644
--- a/bridges/bin/runtime-common/src/mock.rs
+++ b/bridges/bin/runtime-common/src/mock.rs
@@ -18,26 +18,16 @@
#![cfg(test)]
-use crate::messages::{
- source::{
- FromThisChainMaximalOutboundPayloadSize, FromThisChainMessagePayload,
- TargetHeaderChainAdapter,
- },
- target::{FromBridgedChainMessagePayload, SourceHeaderChainAdapter},
- BridgedChainWithMessages, HashOf, MessageBridge, ThisChainWithMessages,
-};
+use crate::messages_xcm_extension::XcmAsPlainPayload;
-use bp_header_chain::{ChainWithGrandpa, HeaderChain};
+use bp_header_chain::ChainWithGrandpa;
use bp_messages::{
target_chain::{DispatchMessage, MessageDispatch},
- LaneId, MessageNonce,
+ ChainWithMessages, LaneId, MessageNonce,
};
use bp_parachains::SingleParaStoredHeaderDataBuilder;
use bp_relayers::PayRewardFromAccount;
-use bp_runtime::{
- messages::MessageDispatchResult, Chain, ChainId, Parachain, UnderlyingChainProvider,
-};
-use codec::{Decode, Encode};
+use bp_runtime::{messages::MessageDispatchResult, Chain, ChainId, Parachain};
use frame_support::{
derive_impl, parameter_types,
weights::{ConstantMultiplier, IdentityFee, RuntimeDbWeight, Weight},
@@ -46,7 +36,7 @@ use pallet_transaction_payment::Multiplier;
use sp_runtime::{
testing::H256,
traits::{BlakeTwo256, ConstU32, ConstU64, ConstU8},
- FixedPointNumber, Perquintill,
+ FixedPointNumber, Perquintill, StateVersion,
};
/// Account identifier at `ThisChain`.
@@ -61,8 +51,6 @@ pub type ThisChainHash = H256;
pub type ThisChainHasher = BlakeTwo256;
/// Runtime call at `ThisChain`.
pub type ThisChainRuntimeCall = RuntimeCall;
-/// Runtime call origin at `ThisChain`.
-pub type ThisChainCallOrigin = RuntimeOrigin;
/// Header of `ThisChain`.
pub type ThisChainHeader = sp_runtime::generic::Header;
/// Block of `ThisChain`.
@@ -100,8 +88,6 @@ pub type TestStakeAndSlash = pallet_bridge_relayers::StakeAndSlashNamed<
pub const TEST_LANE_ID: LaneId = LaneId([0, 0, 0, 0]);
/// Bridged chain id used in tests.
pub const TEST_BRIDGED_CHAIN_ID: ChainId = *b"brdg";
-/// Maximal extrinsic weight at the `BridgedChain`.
-pub const BRIDGED_CHAIN_MAX_EXTRINSIC_WEIGHT: usize = 2048;
/// Maximal extrinsic size at the `BridgedChain`.
pub const BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE: u32 = 1024;
@@ -126,7 +112,6 @@ crate::generate_bridge_reject_obsolete_headers_and_messages! {
parameter_types! {
pub const ActiveOutboundLanes: &'static [LaneId] = &[TEST_LANE_ID];
- pub const BridgedChainId: ChainId = TEST_BRIDGED_CHAIN_ID;
pub const BridgedParasPalletName: &'static str = "Paras";
pub const ExistentialDeposit: ThisChainBalance = 500;
pub const DbWeight: RuntimeDbWeight = RuntimeDbWeight { read: 1, write: 2 };
@@ -136,8 +121,6 @@ parameter_types! {
pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(3, 100_000);
pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 1_000_000u128);
pub MaximumMultiplier: Multiplier = sp_runtime::traits::Bounded::max_value();
- pub const MaxUnrewardedRelayerEntriesAtInboundLane: MessageNonce = 16;
- pub const MaxUnconfirmedMessagesAtInboundLane: MessageNonce = 1_000;
pub const ReserveId: [u8; 8] = *b"brdgrlrs";
}
@@ -203,17 +186,12 @@ impl pallet_bridge_messages::Config for TestRuntime {
type RuntimeEvent = RuntimeEvent;
type WeightInfo = pallet_bridge_messages::weights::BridgeWeight;
type ActiveOutboundLanes = ActiveOutboundLanes;
- type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
- type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane;
- type MaximalOutboundPayloadSize = FromThisChainMaximalOutboundPayloadSize;
- type OutboundPayload = FromThisChainMessagePayload;
+ type OutboundPayload = XcmAsPlainPayload;
- type InboundPayload = FromBridgedChainMessagePayload;
- type InboundRelayer = BridgedChainAccountId;
+ type InboundPayload = Vec;
type DeliveryPayments = ();
- type TargetHeaderChain = TargetHeaderChainAdapter;
type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter<
TestRuntime,
(),
@@ -221,9 +199,11 @@ impl pallet_bridge_messages::Config for TestRuntime {
>;
type OnMessagesDelivered = ();
- type SourceHeaderChain = SourceHeaderChainAdapter;
type MessageDispatch = DummyMessageDispatch;
- type BridgedChainId = BridgedChainId;
+
+ type ThisChain = ThisUnderlyingChain;
+ type BridgedChain = BridgedUnderlyingChain;
+ type BridgedHeaderChain = BridgeGrandpa;
}
impl pallet_bridge_relayers::Config for TestRuntime {
@@ -262,55 +242,6 @@ impl MessageDispatch for DummyMessageDispatch {
}
}
-/// Bridge that is deployed on `ThisChain` and allows sending/receiving messages to/from
-/// `BridgedChain`.
-#[derive(Debug, PartialEq, Eq)]
-pub struct OnThisChainBridge;
-
-impl MessageBridge for OnThisChainBridge {
- const BRIDGED_MESSAGES_PALLET_NAME: &'static str = "";
-
- type ThisChain = ThisChain;
- type BridgedChain = BridgedChain;
- type BridgedHeaderChain = pallet_bridge_grandpa::GrandpaChainHeaders;
-}
-
-/// Bridge that is deployed on `BridgedChain` and allows sending/receiving messages to/from
-/// `ThisChain`.
-#[derive(Debug, PartialEq, Eq)]
-pub struct OnBridgedChainBridge;
-
-impl MessageBridge for OnBridgedChainBridge {
- const BRIDGED_MESSAGES_PALLET_NAME: &'static str = "";
-
- type ThisChain = BridgedChain;
- type BridgedChain = ThisChain;
- type BridgedHeaderChain = ThisHeaderChain;
-}
-
-/// Dummy implementation of `HeaderChain` for `ThisChain` at the `BridgedChain`.
-pub struct ThisHeaderChain;
-
-impl HeaderChain for ThisHeaderChain {
- fn finalized_header_state_root(_hash: HashOf) -> Option> {
- unreachable!()
- }
-}
-
-/// Call origin at `BridgedChain`.
-#[derive(Clone, Debug)]
-pub struct BridgedChainOrigin;
-
-impl From
- for Result, BridgedChainOrigin>
-{
- fn from(
- _origin: BridgedChainOrigin,
- ) -> Result, BridgedChainOrigin> {
- unreachable!()
- }
-}
-
/// Underlying chain of `ThisChain`.
pub struct ThisUnderlyingChain;
@@ -326,6 +257,8 @@ impl Chain for ThisUnderlyingChain {
type Nonce = u32;
type Signature = sp_runtime::MultiSignature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE
}
@@ -335,29 +268,20 @@ impl Chain for ThisUnderlyingChain {
}
}
-/// The chain where we are in tests.
-pub struct ThisChain;
-
-impl UnderlyingChainProvider for ThisChain {
- type Chain = ThisUnderlyingChain;
-}
+impl ChainWithMessages for ThisUnderlyingChain {
+ const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = "";
-impl ThisChainWithMessages for ThisChain {
- type RuntimeOrigin = ThisChainCallOrigin;
+ const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16;
+ const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000;
}
-impl BridgedChainWithMessages for ThisChain {}
-
/// Underlying chain of `BridgedChain`.
pub struct BridgedUnderlyingChain;
/// Some parachain under `BridgedChain` consensus.
pub struct BridgedUnderlyingParachain;
-/// Runtime call of the `BridgedChain`.
-#[derive(Decode, Encode)]
-pub struct BridgedChainCall;
impl Chain for BridgedUnderlyingChain {
- const ID: ChainId = *b"buch";
+ const ID: ChainId = TEST_BRIDGED_CHAIN_ID;
type BlockNumber = BridgedChainBlockNumber;
type Hash = BridgedChainHash;
@@ -368,6 +292,8 @@ impl Chain for BridgedUnderlyingChain {
type Nonce = u32;
type Signature = sp_runtime::MultiSignature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE
}
@@ -384,6 +310,12 @@ impl ChainWithGrandpa for BridgedUnderlyingChain {
const AVERAGE_HEADER_SIZE: u32 = 64;
}
+impl ChainWithMessages for BridgedUnderlyingChain {
+ const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = "";
+ const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16;
+ const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000;
+}
+
impl Chain for BridgedUnderlyingParachain {
const ID: ChainId = *b"bupc";
@@ -396,6 +328,8 @@ impl Chain for BridgedUnderlyingParachain {
type Nonce = u32;
type Signature = sp_runtime::MultiSignature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE
}
@@ -409,19 +343,6 @@ impl Parachain for BridgedUnderlyingParachain {
const MAX_HEADER_SIZE: u32 = 1_024;
}
-/// The other, bridged chain, used in tests.
-pub struct BridgedChain;
-
-impl UnderlyingChainProvider for BridgedChain {
- type Chain = BridgedUnderlyingChain;
-}
-
-impl ThisChainWithMessages for BridgedChain {
- type RuntimeOrigin = BridgedChainOrigin;
-}
-
-impl BridgedChainWithMessages for BridgedChain {}
-
/// Run test within test externalities.
pub fn run_test(test: impl FnOnce()) {
sp_io::TestExternalities::new(Default::default()).execute_with(test)
diff --git a/bridges/bin/runtime-common/src/parachains_benchmarking.rs b/bridges/bin/runtime-common/src/parachains_benchmarking.rs
index b3050b9ac0f3ccec617399d3eb91647dcab7eb3d..bcbd779b44dea5fbef7781335cfa1d359ab8c1f1 100644
--- a/bridges/bin/runtime-common/src/parachains_benchmarking.rs
+++ b/bridges/bin/runtime-common/src/parachains_benchmarking.rs
@@ -18,14 +18,11 @@
#![cfg(feature = "runtime-benchmarks")]
-use crate::{
- messages_benchmarking::insert_header_to_grandpa_pallet,
- messages_generation::grow_trie_leaf_value,
-};
+use crate::messages_benchmarking::insert_header_to_grandpa_pallet;
use bp_parachains::parachain_head_storage_key_at_source;
use bp_polkadot_core::parachains::{ParaHash, ParaHead, ParaHeadsProof, ParaId};
-use bp_runtime::{record_all_trie_keys, StorageProofSize};
+use bp_runtime::{grow_storage_value, record_all_trie_keys, Chain, UnverifiedStorageProofParams};
use codec::Encode;
use frame_support::traits::Get;
use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber};
@@ -39,14 +36,14 @@ use sp_trie::{trie_types::TrieDBMutBuilderV1, LayoutV1, MemoryDB, TrieMut};
pub fn prepare_parachain_heads_proof(
parachains: &[ParaId],
parachain_head_size: u32,
- size: StorageProofSize,
+ proof_params: UnverifiedStorageProofParams,
) -> (RelayBlockNumber, RelayBlockHash, ParaHeadsProof, Vec<(ParaId, ParaHash)>)
where
R: pallet_bridge_parachains::Config
+ pallet_bridge_grandpa::Config,
PI: 'static,
>::BridgedChain:
- bp_runtime::Chain,
+ Chain,
{
let parachain_head = ParaHead(vec![0u8; parachain_head_size as usize]);
@@ -64,7 +61,7 @@ where
let storage_key =
parachain_head_storage_key_at_source(R::ParasPalletName::get(), *parachain);
let leaf_data = if i == 0 {
- grow_trie_leaf_value(parachain_head.encode(), size)
+ grow_storage_value(parachain_head.encode(), &proof_params)
} else {
parachain_head.encode()
};
diff --git a/bridges/chains/chain-asset-hub-rococo/Cargo.toml b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
index d9afe2c8bf76713104beead1ad4c36dc08dae1ed..363a869048aae4d875d68a8ca46e30756cbc799f 100644
--- a/bridges/chains/chain-asset-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
@@ -7,18 +7,21 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+codec = { workspace = true }
+scale-info = { features = ["derive"], workspace = true }
# Substrate Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
+frame-support = { workspace = true }
# Bridge Dependencies
-bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
+bp-xcm-bridge-hub-router = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-asset-hub-westend/Cargo.toml b/bridges/chains/chain-asset-hub-westend/Cargo.toml
index 4b3ed052f1382d0c7f076ad5152c861f60d8bef1..430d9b6116cfc7fba648b96b1de6ef379f3e38f3 100644
--- a/bridges/chains/chain-asset-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-westend/Cargo.toml
@@ -7,18 +7,21 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+codec = { workspace = true }
+scale-info = { features = ["derive"], workspace = true }
# Substrate Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
+frame-support = { workspace = true }
# Bridge Dependencies
-bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
+bp-xcm-bridge-hub-router = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
index 4b900002a4d81abb9d7364f555a150a2af6c839c..99ba721991ee90b04e708beb37dcca2f0aa5c96c 100644
--- a/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
@@ -7,25 +7,28 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
[dependencies]
# Bridge Dependencies
-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 }
+bp-polkadot-core = { workspace = true }
+bp-messages = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Based Dependencies
-frame-system = { path = "../../../substrate/frame/system", default-features = false }
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-system = { workspace = true }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-std = { workspace = true }
# Polkadot Dependencies
-polkadot-primitives = { path = "../../../polkadot/primitives", default-features = false }
+polkadot-primitives = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-bridge-hub-kusama/Cargo.toml b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
index ff6dd8849abe3897f1c3eb3cb1de8b7d89af5ca7..39f7b44daa5543b83108761d7acf5f72d5a8458f 100644
--- a/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
@@ -7,22 +7,25 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
[dependencies]
# Bridge Dependencies
-bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
-bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-bridge-hub-cumulus = { workspace = true }
+bp-runtime = { workspace = true }
+bp-messages = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-bridge-hub-kusama/src/lib.rs b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs
index ef3ef4ab7b7a9bc111218e3c53091ac232f34721..c990e8a12f367cafbd35b0693b323a6ec5fb5e96 100644
--- a/bridges/chains/chain-bridge-hub-kusama/src/lib.rs
+++ b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs
@@ -29,7 +29,7 @@ use frame_support::{
dispatch::DispatchClass,
sp_runtime::{MultiAddress, MultiSigner},
};
-use sp_runtime::RuntimeDebug;
+use sp_runtime::{RuntimeDebug, StateVersion};
/// BridgeHubKusama parachain.
#[derive(RuntimeDebug)]
@@ -48,6 +48,8 @@ impl Chain for BridgeHubKusama {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
*BlockLength::get().max.get(DispatchClass::Normal)
}
diff --git a/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
index da8b8a82fa702eeab719335fa9968b78ee965163..3b0ac96e7cd367cd373cdaedcbeaf299af7debe0 100644
--- a/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
@@ -14,16 +17,16 @@ workspace = true
# Bridge Dependencies
-bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
-bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-bridge-hub-cumulus = { workspace = true }
+bp-runtime = { workspace = true }
+bp-messages = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
index 9db71af928e5df01170cf4ab8bf5f20cd72f7610..7379b8863b1de5c1a1482db90077e958f0a33366 100644
--- a/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
+++ b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
@@ -26,7 +26,7 @@ use bp_runtime::{
decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain,
};
use frame_support::dispatch::DispatchClass;
-use sp_runtime::RuntimeDebug;
+use sp_runtime::{RuntimeDebug, StateVersion};
/// BridgeHubPolkadot parachain.
#[derive(RuntimeDebug)]
@@ -45,6 +45,8 @@ impl Chain for BridgeHubPolkadot {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
*BlockLength::get().max.get(DispatchClass::Normal)
}
diff --git a/bridges/chains/chain-bridge-hub-rococo/Cargo.toml b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
index f7672df012f2fc2a21cfc987468427a3222317ea..66848ba0e2634b3b4e525f27013b04768204c749 100644
--- a/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
@@ -7,22 +7,25 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
[dependencies]
# Bridge Dependencies
-bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
-bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-bridge-hub-cumulus = { workspace = true }
+bp-runtime = { workspace = true }
+bp-messages = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
index d7097f01c5316a58851f400a86b98eda3d7e8bcc..73af997b9950ef640040e44cbba0b93b6a7a56a3 100644
--- a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
+++ b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
@@ -25,8 +25,10 @@ use bp_messages::*;
use bp_runtime::{
decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain,
};
-use frame_support::dispatch::DispatchClass;
-use sp_runtime::{MultiAddress, MultiSigner, RuntimeDebug};
+use frame_support::{
+ dispatch::DispatchClass,
+ sp_runtime::{MultiAddress, MultiSigner, RuntimeDebug, StateVersion},
+};
/// BridgeHubRococo parachain.
#[derive(RuntimeDebug)]
@@ -45,6 +47,8 @@ impl Chain for BridgeHubRococo {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
*BlockLength::get().max.get(DispatchClass::Normal)
}
@@ -103,10 +107,10 @@ frame_support::parameter_types! {
pub const BridgeHubRococoBaseXcmFeeInRocs: u128 = 59_034_266;
/// Transaction fee that is paid at the Rococo BridgeHub for delivering single inbound message.
- /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_delivery_transaction` + `33%`)
+ /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_standalone_message_delivery_transaction` + `33%`)
pub const BridgeHubRococoBaseDeliveryFeeInRocs: u128 = 314_037_860;
/// 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%`)
+ /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_standalone_message_confirmation_transaction` + `33%`)
pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 57_414_813;
}
diff --git a/bridges/chains/chain-bridge-hub-westend/Cargo.toml b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
index ec74c4b947d693dba92d4da5051526e49349e0a5..24a196c1d70d128c49ddb788a699fe6e22e6c359 100644
--- a/bridges/chains/chain-bridge-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
@@ -14,16 +17,16 @@ workspace = true
# Bridge Dependencies
-bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
-bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-bridge-hub-cumulus = { workspace = true }
+bp-runtime = { workspace = true }
+bp-messages = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-bridge-hub-westend/src/lib.rs b/bridges/chains/chain-bridge-hub-westend/src/lib.rs
index 800f290d7bfa41cec4139e80a7dc9ea8962a6da5..17ff2c858a1d3eeae329cb972d95adc32952ede4 100644
--- a/bridges/chains/chain-bridge-hub-westend/src/lib.rs
+++ b/bridges/chains/chain-bridge-hub-westend/src/lib.rs
@@ -25,7 +25,7 @@ use bp_runtime::{
decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain,
};
use frame_support::dispatch::DispatchClass;
-use sp_runtime::RuntimeDebug;
+use sp_runtime::{RuntimeDebug, StateVersion};
/// BridgeHubWestend parachain.
#[derive(RuntimeDebug)]
@@ -44,6 +44,8 @@ impl Chain for BridgeHubWestend {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
*BlockLength::get().max.get(DispatchClass::Normal)
}
diff --git a/bridges/chains/chain-kusama/Cargo.toml b/bridges/chains/chain-kusama/Cargo.toml
index 66061ff2793cbdd3419fa8894ab78e37486102ea..aec4041f7d574243c07f3fefa66b8b6d4cb36057 100644
--- a/bridges/chains/chain-kusama/Cargo.toml
+++ b/bridges/chains/chain-kusama/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
@@ -14,15 +17,15 @@ workspace = true
# Bridge Dependencies
-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 }
+bp-header-chain = { workspace = true }
+bp-polkadot-core = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-kusama/src/lib.rs b/bridges/chains/chain-kusama/src/lib.rs
index fd7172c5869d468ff534e54f9ef6278cf86a88ed..dcd0b23abbbefa2dfba741d6934b5d5510c93017 100644
--- a/bridges/chains/chain-kusama/src/lib.rs
+++ b/bridges/chains/chain-kusama/src/lib.rs
@@ -23,7 +23,7 @@ pub use bp_polkadot_core::*;
use bp_header_chain::ChainWithGrandpa;
use bp_runtime::{decl_bridge_finality_runtime_apis, Chain, ChainId};
-use frame_support::weights::Weight;
+use frame_support::{sp_runtime::StateVersion, weights::Weight};
/// Kusama Chain
pub struct Kusama;
@@ -41,6 +41,8 @@ impl Chain for Kusama {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V0;
+
fn max_extrinsic_size() -> u32 {
max_extrinsic_size()
}
diff --git a/bridges/chains/chain-polkadot-bulletin/Cargo.toml b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
index 700247b7055a891bec2d4a40bfd126720a0d952c..aecf9314273686f03a25b0f4e5988eabb157dfe7 100644
--- a/bridges/chains/chain-polkadot-bulletin/Cargo.toml
+++ b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
@@ -7,27 +7,30 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false, features = ["derive"] }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+codec = { features = ["derive"], workspace = true }
+scale-info = { features = ["derive"], workspace = true }
# Bridge Dependencies
-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 }
+bp-header-chain = { workspace = true }
+bp-messages = { workspace = true }
+bp-polkadot-core = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-frame-system = { path = "../../../substrate/frame/system", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+frame-system = { workspace = true }
+sp-api = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-polkadot-bulletin/src/lib.rs b/bridges/chains/chain-polkadot-bulletin/src/lib.rs
index f3d300567f2b4f92cec272e0929a3c53d718c823..88980a9575016bd5c5e1428329454e8131a2075d 100644
--- a/bridges/chains/chain-polkadot-bulletin/src/lib.rs
+++ b/bridges/chains/chain-polkadot-bulletin/src/lib.rs
@@ -37,7 +37,9 @@ use frame_support::{
};
use frame_system::limits;
use scale_info::TypeInfo;
-use sp_runtime::{traits::DispatchInfoOf, transaction_validity::TransactionValidityError, Perbill};
+use sp_runtime::{
+ traits::DispatchInfoOf, transaction_validity::TransactionValidityError, Perbill, StateVersion,
+};
// This chain reuses most of Polkadot primitives.
pub use bp_polkadot_core::{
@@ -192,6 +194,8 @@ impl Chain for PolkadotBulletin {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
*BlockLength::get().max.get(DispatchClass::Normal)
}
diff --git a/bridges/chains/chain-polkadot/Cargo.toml b/bridges/chains/chain-polkadot/Cargo.toml
index c700935f3083b5f287277c7d9975be53352b2506..50f637af4251c8a7ed822861281a217ec12bdb28 100644
--- a/bridges/chains/chain-polkadot/Cargo.toml
+++ b/bridges/chains/chain-polkadot/Cargo.toml
@@ -14,15 +14,15 @@ workspace = true
# Bridge Dependencies
-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 }
+bp-header-chain = { workspace = true }
+bp-polkadot-core = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-polkadot/src/lib.rs b/bridges/chains/chain-polkadot/src/lib.rs
index a8cac0467d574e9355a8fe9ba2e7c2378019349d..f4b262d40735d7470a4d7e289f24bc1d4556d039 100644
--- a/bridges/chains/chain-polkadot/src/lib.rs
+++ b/bridges/chains/chain-polkadot/src/lib.rs
@@ -25,7 +25,7 @@ use bp_header_chain::ChainWithGrandpa;
use bp_runtime::{
decl_bridge_finality_runtime_apis, extensions::PrevalidateAttests, Chain, ChainId,
};
-use frame_support::weights::Weight;
+use frame_support::{sp_runtime::StateVersion, weights::Weight};
/// Polkadot Chain
pub struct Polkadot;
@@ -43,6 +43,8 @@ impl Chain for Polkadot {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V0;
+
fn max_extrinsic_size() -> u32 {
max_extrinsic_size()
}
diff --git a/bridges/chains/chain-rococo/Cargo.toml b/bridges/chains/chain-rococo/Cargo.toml
index 5a5613bb376a5a4f75c773b3350993262149f973..8a99267691dc218d924fd0786e9fc45a5baa7f3c 100644
--- a/bridges/chains/chain-rococo/Cargo.toml
+++ b/bridges/chains/chain-rococo/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
@@ -14,15 +17,15 @@ workspace = true
# Bridge Dependencies
-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 }
+bp-header-chain = { workspace = true }
+bp-polkadot-core = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-rococo/src/lib.rs b/bridges/chains/chain-rococo/src/lib.rs
index b290fe71c829d08130556a2b061c0d63f0787d4c..bfcafdf41ea2e629c9a58f2545016b2e776375b8 100644
--- a/bridges/chains/chain-rococo/src/lib.rs
+++ b/bridges/chains/chain-rococo/src/lib.rs
@@ -23,7 +23,7 @@ pub use bp_polkadot_core::*;
use bp_header_chain::ChainWithGrandpa;
use bp_runtime::{decl_bridge_finality_runtime_apis, Chain, ChainId};
-use frame_support::weights::Weight;
+use frame_support::{sp_runtime::StateVersion, weights::Weight};
/// Rococo Chain
pub struct Rococo;
@@ -41,6 +41,8 @@ impl Chain for Rococo {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
max_extrinsic_size()
}
diff --git a/bridges/chains/chain-westend/Cargo.toml b/bridges/chains/chain-westend/Cargo.toml
index 10b06d76507ef95bbff00f5560b705ecee1ec4ce..cd6abe8abe6d69d5e5b9aa65d3ff7861c42d23cf 100644
--- a/bridges/chains/chain-westend/Cargo.toml
+++ b/bridges/chains/chain-westend/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository.workspace = true
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
[lints]
workspace = true
@@ -14,15 +17,15 @@ workspace = true
# Bridge Dependencies
-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 }
+bp-header-chain = { workspace = true }
+bp-polkadot-core = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Based Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-sp-api = { path = "../../../substrate/primitives/api", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-support = { workspace = true }
+sp-api = { workspace = true }
+sp-std = { workspace = true }
[features]
default = ["std"]
diff --git a/bridges/chains/chain-westend/src/lib.rs b/bridges/chains/chain-westend/src/lib.rs
index ef451f7de0a9640bc1a278e1c712bbb099193ceb..2a247e03e59d666d3c5dd54d74e3a4f852a60bd3 100644
--- a/bridges/chains/chain-westend/src/lib.rs
+++ b/bridges/chains/chain-westend/src/lib.rs
@@ -23,7 +23,7 @@ pub use bp_polkadot_core::*;
use bp_header_chain::ChainWithGrandpa;
use bp_runtime::{decl_bridge_finality_runtime_apis, Chain, ChainId};
-use frame_support::weights::Weight;
+use frame_support::{sp_runtime::StateVersion, weights::Weight};
/// Westend Chain
pub struct Westend;
@@ -41,6 +41,8 @@ impl Chain for Westend {
type Nonce = Nonce;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
max_extrinsic_size()
}
diff --git a/bridges/modules/beefy/Cargo.toml b/bridges/modules/beefy/Cargo.toml
index e36bbb615f23a20d4ef4a4f4ea8418e752d5b01f..cffc62d290828f032c5c57f27982e7f60f9b94ef 100644
--- a/bridges/modules/beefy/Cargo.toml
+++ b/bridges/modules/beefy/Cargo.toml
@@ -12,32 +12,32 @@ publish = false
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false }
+codec = { workspace = true }
log = { workspace = true }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+scale-info = { features = ["derive"], workspace = true }
serde = { optional = true, workspace = true }
# Bridge Dependencies
-bp-beefy = { path = "../../primitives/beefy", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
+bp-beefy = { workspace = true }
+bp-runtime = { workspace = true }
# 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 }
+frame-support = { workspace = true }
+frame-system = { workspace = true }
+sp-core = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
[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" }
+sp-consensus-beefy = { workspace = true, default-features = true }
+mmr-lib = { workspace = true }
+pallet-beefy-mmr = { workspace = true, default-features = true }
+pallet-mmr = { workspace = true, default-features = true }
+rand = { workspace = true, default-features = true }
+sp-io = { workspace = true, default-features = true }
+bp-test-utils = { workspace = true, default-features = true }
[features]
default = ["std"]
diff --git a/bridges/modules/beefy/src/mock.rs b/bridges/modules/beefy/src/mock.rs
index c99566b6b06d1855319d614f4f4ddfbf2fb1918b..3b751ddf066c9562cd8fc0f054b1b103306479dd 100644
--- a/bridges/modules/beefy/src/mock.rs
+++ b/bridges/modules/beefy/src/mock.rs
@@ -29,6 +29,7 @@ use sp_core::{sr25519::Signature, Pair};
use sp_runtime::{
testing::{Header, H256},
traits::{BlakeTwo256, Hash},
+ StateVersion,
};
pub use sp_consensus_beefy::ecdsa_crypto::{AuthorityId as BeefyId, Pair as BeefyPair};
@@ -66,7 +67,7 @@ construct_runtime! {
}
}
-#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
+#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for TestRuntime {
type Block = Block;
}
@@ -93,6 +94,8 @@ impl Chain for TestBridgedChain {
type Nonce = u64;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
unreachable!()
}
diff --git a/bridges/modules/grandpa/Cargo.toml b/bridges/modules/grandpa/Cargo.toml
index 0ca6b67503511976ea9122f64e3c2e515e971177..6d1419ae5b030733ad9fb38a6a459ab7ce34f99f 100644
--- a/bridges/modules/grandpa/Cargo.toml
+++ b/bridges/modules/grandpa/Cargo.toml
@@ -13,32 +13,31 @@ workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false }
-finality-grandpa = { version = "0.16.2", default-features = false }
+codec = { workspace = true }
log = { workspace = true }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+scale-info = { features = ["derive"], workspace = true }
# Bridge Dependencies
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
-bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-runtime = { workspace = true }
+bp-header-chain = { workspace = true }
# Substrate Dependencies
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-frame-system = { path = "../../../substrate/frame/system", default-features = false }
-sp-consensus-grandpa = { path = "../../../substrate/primitives/consensus/grandpa", default-features = false, features = ["serde"] }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false, features = ["serde"] }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
-sp-trie = { path = "../../../substrate/primitives/trie", default-features = false }
+frame-support = { workspace = true }
+frame-system = { workspace = true }
+sp-consensus-grandpa = { features = ["serde"], workspace = true }
+sp-runtime = { features = ["serde"], workspace = true }
+sp-std = { workspace = true }
# Optional Benchmarking Dependencies
-bp-test-utils = { path = "../../primitives/test-utils", default-features = false, optional = true }
-frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
+bp-test-utils = { optional = true, workspace = true }
+frame-benchmarking = { optional = true, workspace = true }
[dev-dependencies]
-sp-core = { path = "../../../substrate/primitives/core" }
-sp-io = { path = "../../../substrate/primitives/io" }
+bp-runtime = { features = ["test-helpers"], workspace = true }
+sp-core = { workspace = true, default-features = true }
+sp-io = { workspace = true, default-features = true }
[features]
default = ["std"]
@@ -47,7 +46,6 @@ std = [
"bp-runtime/std",
"bp-test-utils/std",
"codec/std",
- "finality-grandpa/std",
"frame-benchmarking/std",
"frame-support/std",
"frame-system/std",
@@ -56,7 +54,6 @@ std = [
"sp-consensus-grandpa/std",
"sp-runtime/std",
"sp-std/std",
- "sp-trie/std",
]
runtime-benchmarks = [
"bp-test-utils",
diff --git a/bridges/modules/grandpa/src/lib.rs b/bridges/modules/grandpa/src/lib.rs
index 3b77f676870e1a28b8367f1b14d24c9ca83ece4a..c62951b74656b052d4858dec2af1393e41553029 100644
--- a/bridges/modules/grandpa/src/lib.rs
+++ b/bridges/modules/grandpa/src/lib.rs
@@ -1443,11 +1443,14 @@ mod tests {
}
#[test]
- fn parse_finalized_storage_proof_rejects_proof_on_unknown_header() {
+ fn verify_storage_proof_rejects_unknown_header() {
run_test(|| {
assert_noop!(
- Pallet::::storage_proof_checker(Default::default(), vec![],)
- .map(|_| ()),
+ Pallet::::verify_storage_proof(
+ Default::default(),
+ Default::default(),
+ )
+ .map(|_| ()),
bp_header_chain::HeaderChainError::UnknownHeader,
);
});
@@ -1465,9 +1468,7 @@ mod tests {
>::put(HeaderId(2, hash));
>::insert(hash, header.build());
- assert_ok!(
- Pallet::::storage_proof_checker(hash, storage_proof).map(|_| ())
- );
+ assert_ok!(Pallet::::verify_storage_proof(hash, storage_proof).map(|_| ()));
});
}
diff --git a/bridges/modules/grandpa/src/mock.rs b/bridges/modules/grandpa/src/mock.rs
index 27df9d9c78f540d0d73f74c6a86ba19af30d4b6b..71af6182e057cca3d06b98ee6fe94283b93ab77d 100644
--- a/bridges/modules/grandpa/src/mock.rs
+++ b/bridges/modules/grandpa/src/mock.rs
@@ -20,7 +20,8 @@
use bp_header_chain::ChainWithGrandpa;
use bp_runtime::{Chain, ChainId};
use frame_support::{
- construct_runtime, derive_impl, parameter_types, traits::Hooks, weights::Weight,
+ construct_runtime, derive_impl, parameter_types, sp_runtime::StateVersion, traits::Hooks,
+ weights::Weight,
};
use sp_core::sr25519::Signature;
@@ -78,6 +79,8 @@ impl Chain for TestBridgedChain {
type Nonce = u64;
type Signature = Signature;
+ const STATE_VERSION: StateVersion = StateVersion::V1;
+
fn max_extrinsic_size() -> u32 {
unreachable!()
}
diff --git a/bridges/modules/messages/Cargo.toml b/bridges/modules/messages/Cargo.toml
index 71c86ccc0361708684d0a93166f858118dbf0d92..33f524030d264e4ed292f8f67273e838e15fc3a9 100644
--- a/bridges/modules/messages/Cargo.toml
+++ b/bridges/modules/messages/Cargo.toml
@@ -11,54 +11,69 @@ repository.workspace = true
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false }
+codec = { workspace = true }
log = { workspace = true }
-num-traits = { version = "0.2", default-features = false }
-scale-info = { version = "2.11.1", default-features = false, features = ["derive"] }
+scale-info = { features = ["derive"], workspace = true }
# Bridge dependencies
-
-bp-messages = { path = "../../primitives/messages", default-features = false }
-bp-runtime = { path = "../../primitives/runtime", default-features = false }
+bp-header-chain = { workspace = true }
+bp-messages = { workspace = true }
+bp-runtime = { workspace = true }
# Substrate Dependencies
-
-frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
-frame-support = { path = "../../../substrate/frame/support", default-features = false }
-frame-system = { path = "../../../substrate/frame/system", default-features = false }
-sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
-sp-std = { path = "../../../substrate/primitives/std", default-features = false }
+frame-benchmarking = { optional = true, workspace = true }
+frame-support = { workspace = true }
+frame-system = { workspace = true }
+sp-runtime = { workspace = true }
+sp-std = { workspace = true }
+sp-trie = { optional = true, workspace = true }
[dev-dependencies]
-bp-test-utils = { path = "../../primitives/test-utils" }
-pallet-balances = { path = "../../../substrate/frame/balances" }
-sp-io = { path = "../../../substrate/primitives/io" }
+bp-runtime = { features = ["test-helpers"], workspace = true }
+bp-test-utils = { workspace = true }
+pallet-balances = { workspace = true }
+pallet-bridge-grandpa = { workspace = true }
+sp-io = { workspace = true }
+sp-core = { workspace = true }
[features]
default = ["std"]
std = [
+ "bp-header-chain/std",
"bp-messages/std",
"bp-runtime/std",
+ "bp-test-utils/std",
"codec/std",
"frame-benchmarking/std",
"frame-support/std",
"frame-system/std",
"log/std",
- "num-traits/std",
+ "pallet-balances/std",
+ "pallet-bridge-grandpa/std",
"scale-info/std",
+ "sp-core/std",
+ "sp-io/std",
"sp-runtime/std",
"sp-std/std",
+ "sp-trie/std",
]
runtime-benchmarks = [
+ "bp-runtime/test-helpers",
"frame-benchmarking/runtime-benchmarks",
"frame-support/runtime-benchmarks",
"frame-system/runtime-benchmarks",
"pallet-balances/runtime-benchmarks",
+ "pallet-bridge-grandpa/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
]
try-runtime = [
"frame-support/try-runtime",
"frame-system/try-runtime",
"pallet-balances/try-runtime",
+ "pallet-bridge-grandpa/try-runtime",
"sp-runtime/try-runtime",
]
+test-helpers = [
+ "bp-runtime/test-helpers",
+ "sp-trie",
+]
diff --git a/bridges/modules/messages/README.md b/bridges/modules/messages/README.md
index c06b96b857dea1cdf7fdaed81e70d66aff116064..80fd92eb0e5a7d975ba45619838007a12f5f5553 100644
--- a/bridges/modules/messages/README.md
+++ b/bridges/modules/messages/README.md
@@ -104,17 +104,22 @@ the message. When a message is delivered to the target chain, the `MessagesDeliv
`receive_messages_delivery_proof()` transaction. The `MessagesDelivered` contains the message lane identifier and
inclusive range of delivered message nonces.
-The pallet provides no means to get the result of message dispatch at the target chain. If that is required, it must be
-done outside of the pallet. For example, XCM messages, when dispatched, have special instructions to send some data back
-to the sender. Other dispatchers may use similar mechanism for that.
-### How to plug-in Messages Module to Send Messages to the Bridged Chain?
-
-The `pallet_bridge_messages::Config` trait has 3 main associated types that are used to work with outbound messages. The
-`pallet_bridge_messages::Config::TargetHeaderChain` defines how we see the bridged chain as the target for our outbound
-messages. It must be able to check that the bridged chain may accept our message - like that the message has size below
-maximal possible transaction size of the chain and so on. And when the relayer sends us a confirmation transaction, this
-implementation must be able to parse and verify the proof of messages delivery. Normally, you would reuse the same
-(configurable) type on all chains that are sending messages to the same bridged chain.
+The pallet provides no means to get the result of message dispatch at the target chain. If that is
+required, it must be done outside of the pallet. For example, XCM messages, when dispatched, have
+special instructions to send some data back to the sender. Other dispatchers may use similar
+mechanism for that.
+
+### How to plug-in Messages Module to Send and Receive Messages from the Bridged Chain?
+
+The `pallet_bridge_messages::Config` trait has 2 main associated types that are used to work with
+inbound messages. The `pallet_bridge_messages::BridgedChain` defines basic primitives of the bridged
+chain. The `pallet_bridge_messages::BridgedHeaderChain` defines the way we access the bridged chain
+headers in our runtime. You may use `pallet_bridge_grandpa` if you're bridging with chain that uses
+GRANDPA finality or `pallet_bridge_parachains::ParachainHeaders` if you're bridging with parachain.
+
+The `pallet_bridge_messages::Config::MessageDispatch` defines a way on how to dispatch delivered
+messages. Apart from actually dispatching the message, the implementation must return the correct
+dispatch weight of the message before dispatch is called.
The last type is the `pallet_bridge_messages::Config::DeliveryConfirmationPayments`. When confirmation
transaction is received, we call the `pay_reward()` method, passing the range of delivered messages.
@@ -129,18 +134,6 @@ You should be looking at the `bp_messages::source_chain::ForbidOutboundMessages`
[`bp_messages::source_chain`](../../primitives/messages/src/source_chain.rs). It implements all required traits and will
simply reject all transactions, related to outbound messages.
-### How to plug-in Messages Module to Receive Messages from the Bridged Chain?
-
-The `pallet_bridge_messages::Config` trait has 2 main associated types that are used to work with inbound messages. The
-`pallet_bridge_messages::Config::SourceHeaderChain` defines how we see the bridged chain as the source of our inbound
-messages. When relayer sends us a delivery transaction, this implementation must be able to parse and verify the proof
-of messages wrapped in this transaction. Normally, you would reuse the same (configurable) type on all chains that are
-sending messages to the same bridged chain.
-
-The `pallet_bridge_messages::Config::MessageDispatch` defines a way on how to dispatch delivered messages. Apart from
-actually dispatching the message, the implementation must return the correct dispatch weight of the message before
-dispatch is called.
-
### I have a Messages Module in my Runtime, but I Want to Reject all Inbound Messages. What shall I do?
You should be looking at the `bp_messages::target_chain::ForbidInboundMessages` structure from the
@@ -150,36 +143,42 @@ and will simply reject all transactions, related to inbound messages.
### What about other Constants in the Messages Module Configuration Trait?
Two settings that are used to check messages in the `send_message()` function. The
-`pallet_bridge_messages::Config::ActiveOutboundLanes` is an array of all message lanes, that may be used to send
-messages. All messages sent using other lanes are rejected. All messages that have size above
-`pallet_bridge_messages::Config::MaximalOutboundPayloadSize` will also be rejected.
-
-To be able to reward the relayer for delivering messages, we store a map of message nonces range => identifier of the
-relayer that has delivered this range at the target chain runtime storage. If a relayer delivers multiple consequent
-ranges, they're merged into single entry. So there may be more than one entry for the same relayer. Eventually, this
-whole map must be delivered back to the source chain to confirm delivery and pay rewards. So to make sure we are able to
-craft this confirmation transaction, we need to: (1) keep the size of this map below a certain limit and (2) make sure
-that the weight of processing this map is below a certain limit. Both size and processing weight mostly depend on the
-number of entries. The number of entries is limited with the
-`pallet_bridge_messages::ConfigMaxUnrewardedRelayerEntriesAtInboundLane` parameter. Processing weight also depends on
-the total number of messages that are being confirmed, because every confirmed message needs to be read. So there's
-another `pallet_bridge_messages::Config::MaxUnconfirmedMessagesAtInboundLane` parameter for that.
-
-When choosing values for these parameters, you must also keep in mind that if proof in your scheme is based on finality
-of headers (and it is the most obvious option for Substrate-based chains with finality notion), then choosing too small
-values for these parameters may cause significant delays in message delivery. That's because there are too many actors
-involved in this scheme: 1) authorities that are finalizing headers of the target chain need to finalize header with
-non-empty map; 2) the headers relayer then needs to submit this header and its finality proof to the source chain; 3)
-the messages relayer must then send confirmation transaction (storage proof of this map) to the source chain; 4) when
-the confirmation transaction will be mined at some header, source chain authorities must finalize this header; 5) the
-headers relay then needs to submit this header and its finality proof to the target chain; 6) only now the messages
-relayer may submit new messages from the source to target chain and prune the entry from the map.
-
-Delivery transaction requires the relayer to provide both number of entries and total number of messages in the map.
-This means that the module never charges an extra cost for delivering a map - the relayer would need to pay exactly for
-the number of entries+messages it has delivered. So the best guess for values of these parameters would be the pair that
-would occupy `N` percent of the maximal transaction size and weight of the source chain. The `N` should be large enough
-to process large maps, at the same time keeping reserve for future source chain upgrades.
+`pallet_bridge_messages::Config::ActiveOutboundLanes` is an array of all message lanes, that
+may be used to send messages. All messages sent using other lanes are rejected. All messages that have
+size above `pallet_bridge_messages::Config::MaximalOutboundPayloadSize` will also be rejected.
+
+To be able to reward the relayer for delivering messages, we store a map of message nonces range =>
+identifier of the relayer that has delivered this range at the target chain runtime storage. If a
+relayer delivers multiple consequent ranges, they're merged into single entry. So there may be more
+than one entry for the same relayer. Eventually, this whole map must be delivered back to the source
+chain to confirm delivery and pay rewards. So to make sure we are able to craft this confirmation
+transaction, we need to: (1) keep the size of this map below a certain limit and (2) make sure that
+the weight of processing this map is below a certain limit. Both size and processing weight mostly
+depend on the number of entries. The number of entries is limited with the
+`pallet_bridge_messages::Config::BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` parameter.
+Processing weight also depends on the total number of messages that are being confirmed, because every
+confirmed message needs to be read. So there's another
+`pallet_bridge_messages::Config::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX` parameter
+for that.
+
+When choosing values for these parameters, you must also keep in mind that if proof in your scheme
+is based on finality of headers (and it is the most obvious option for Substrate-based chains with
+finality notion), then choosing too small values for these parameters may cause significant delays
+in message delivery. That's because there are too many actors involved in this scheme: 1) authorities
+that are finalizing headers of the target chain need to finalize header with non-empty map; 2) the
+headers relayer then needs to submit this header and its finality proof to the source chain; 3) the
+messages relayer must then send confirmation transaction (storage proof of this map) to the source
+chain; 4) when the confirmation transaction will be mined at some header, source chain authorities
+must finalize this header; 5) the headers relay then needs to submit this header and its finality
+proof to the target chain; 6) only now the messages relayer may submit new messages from the source
+to target chain and prune the entry from the map.
+
+Delivery transaction requires the relayer to provide both number of entries and total number of
+messages in the map. This means that the module never charges an extra cost for delivering a map -
+the relayer would need to pay exactly for the number of entries+messages it has delivered. So the
+best guess for values of these parameters would be the pair that would occupy `N` percent of the
+maximal transaction size and weight of the source chain. The `N` should be large enough to process
+large maps, at the same time keeping reserve for future source chain upgrades.
## Non-Essential Functionality
diff --git a/bridges/modules/messages/src/benchmarking.rs b/bridges/modules/messages/src/benchmarking.rs
index 4f13c4409672b3e76d36fd7d3dd2fab5c7e2ec1b..d38aaf32dc94bd157de0d3e910b729a7970c1684 100644
--- a/bridges/modules/messages/src/benchmarking.rs
+++ b/bridges/modules/messages/src/benchmarking.rs
@@ -16,19 +16,22 @@
//! Messages pallet benchmarking.
+#![cfg(feature = "runtime-benchmarks")]
+
use crate::{
inbound_lane::InboundLaneStorage, outbound_lane, weights_ext::EXPECTED_DEFAULT_MESSAGE_LENGTH,
- Call, OutboundLanes, RuntimeInboundLaneStorage,
+ BridgedChainOf, Call, OutboundLanes, RuntimeInboundLaneStorage,
};
use bp_messages::{
- source_chain::TargetHeaderChain, target_chain::SourceHeaderChain, DeliveredMessages,
+ source_chain::FromBridgedChainMessagesDeliveryProof,
+ target_chain::FromBridgedChainMessagesProof, ChainWithMessages, DeliveredMessages,
InboundLaneData, LaneId, MessageNonce, OutboundLaneData, UnrewardedRelayer,
UnrewardedRelayersState,
};
-use bp_runtime::StorageProofSize;
+use bp_runtime::{AccountIdOf, HashOf, UnverifiedStorageProofParams};
use codec::Decode;
-use frame_benchmarking::{account, benchmarks_instance_pallet};
+use frame_benchmarking::{account, v2::*};
use frame_support::weights::Weight;
use frame_system::RawOrigin;
use sp_runtime::{traits::TrailingZeroInput, BoundedVec};
@@ -54,7 +57,7 @@ pub struct MessageProofParams {
/// return `true` from the `is_message_successfully_dispatched`.
pub is_successful_dispatch_expected: bool,
/// Proof size requirements.
- pub size: StorageProofSize,
+ pub proof_params: UnverifiedStorageProofParams,
}
/// Benchmark-specific message delivery proof parameters.
@@ -65,7 +68,7 @@ pub struct MessageDeliveryProofParams {
/// The proof needs to include this inbound lane data.
pub inbound_lane_data: InboundLaneData,
/// Proof size requirements.
- pub size: StorageProofSize,
+ pub proof_params: UnverifiedStorageProofParams,
}
/// Trait that must be implemented by runtime.
@@ -80,8 +83,8 @@ pub trait Config: crate::Config